انجام پروژهای برنامه نویسی اندروید android

انجام پروژهای برنامه نویسی اندروید android

انجام پروژهای برنامه نویسی اندروید android

انجام پروژهای برنامه نویسی اندروید android


کتاب آموزش پیشرفته برنامه نویسی اندروید

در برنامه نویسی آندروید   
رشته:فنی مهندسی, نوع پروژه:سایر پروژه ها, سطح پروژه:حرفه ای, پشتیبانی قوی:بله, مقطع تحصیلی:کارشناسی, فایل های موجود:فایل نوشتاری(word,pdf,...), فایل تصویری(jpg,png,...), سایر فایل ها
1 فروش09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com

کتاب آموزش مقدماتی برنامه نویسی اندروید
کتاب آموزش مقدماتی برنامه نویسی اندروید

برای سفارش پروژه یا تغییر در پروژه یا آموزش نصب و راه اندازی پروژه  میتوانید با شماره  تلفن یا تلگرام تماس حاصل فرمایید



 انجام کلیه پروژه های د انشجویی اندروید

با نرم افزار اکلیپس و اندروید استادیو

با زبان جاوا

 09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com

کلید واژه :
          
        نمونه پروژه های اندروید

نمونه پروژه اندروید

سفارش پروژه اندروید

انجام پروژه های اندروید

انجام پروژه های دانشجویی اندروید

قیمت پروژه اندروید
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
دانلود رایگان پروژه اندروید

دانلود پروژه اندروید       

در برنامه نویسی آندروید   
رشته:فنی مهندسی, نوع پروژه:سایر پروژه ها, سطح پروژه:حرفه ای, پشتیبانی قوی:بله, مقطع تحصیلی:کارشناسی, فایل های موجود:فایل نوشتاری(word,pdf,...), فایل تصویری(jpg,png,...), سایر فایل ها


09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com

. پروژه دانشجویی به زبان وی بی دات نتVb.net م

 . پروژه دانشجویی به زبان وی بی دات نتVb.net مقاله رشته کامپیوتر ساخت طرح کارآفرینی و کسب و کار ساخت گزارشکار کارآموزی پروژه دانشجویی به زبان (سی شارپ) C# پروژه دانشجویی به زبان C ++ پروژه


09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com

دانشجویی به زبان پاسکال Pascal پروژه دانشجویی به زبان (جاوا اسکریپت) Java script پروژه دانشجویی با زبان بیسیک فور اندروید (b4a) پروژه دانشجویی با زبان جی کوری(jquery) پروژه دانشجویی با زبان css پروژه دانشجویی با زبان اچ تی ام ال یا html ترجمه عمومی و تخصصی رشته کامپیوتر پروژه برای اندروید پروژه با استفاده از زبان جاوا ساخت پاورپوینت و اسلاید پروژه دانشجویی و ساخت نمودارهای مهندسی نرم افزار و uml پروژه با زبان برنامه نویسی اسمبلی پروژه دانشجویی ساختمان داده و سیستم عامل پروژه دانشجویی با vb6 پروژه دانشجویی به زبان ویژوال بیسیک پروژه دانشجویی به زبان asp کلاسیک پروژه دانشجویی به زبان asp.net پروژه طراحی سایت با هر زبانی پروژه دانشجویی به زبان (پی اچ پی) php پروژه دانشجویی به زبان vb script پروژه دانشجویی با زبان برنامه نویسی javascript انجام پروژه دانشجویی بصورت سه لایه پروژه های مربوط با پایگاه داده ها یا بانک اطلاعاتی پروژه دانشجویی به زبان sql و اوراکل ایجاد پروژه با my sql پروژه دانشجویی به صورت حرفه ای با فتوشاپ پروژه دانشجویی با multi media builder پروژه دانشجویی با برنامه ها


09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com

ی auto media studio پروژه دانشجویی با برنامه autorun pro پروژه دانشجویی با flash mx پروژه دانشجویی با زبان q basic ایجاد پروژه های دانشجویی با power point پروژه دانشجویی با بانک اطلاعاتی sqllite ترجمه متون تخصصی کامپیوتر پروژه با زبان نرم افزار اکسل انجام پروژه با زبان اکسس ساخت پروژه با زبان جاوااسکریپت ساخت فروشگاه اینترنتی دانشجویی و تجاری انجام تایپ از روی پی دی اف، عکس، دستخط و غیره و هزاران نوع پروژه دیگر مراحل خرید : ابتدا به شماره تلفن تماس بگیرید یا اس ام اس یا از طریق نرم افزار تلگرام و یا واتس آپ پیام دهید و موضوع پروژه را مطرح کنید، بسته به پروژه، 1 روز تا 5 روز بعد پروژه تحویل شما داده خواهد شد، بعد از اینکه برای شما ارسال شد ، هزینه را به شماره حسابی که برای شما ایمیل می شود ، واریز کنید. اگر زبان برنامه نویسی شما یا درخواست شما در لیست بالا نبود موضوع پروژه خود را به تلگرام، واتس آپ یا ایمیل ما ارسال کنید. تلفن: آی دی تلگرام: یمیل: همراه با مشاوره رایگان چنانچه می خواهید بدانید پروژه شما توسط این شرکت ساخته می شود یا نه ، 24 ساعته میتوانید با شماره تلفن بصورت رایگان مشاوره کنید . یا به ایمیل ایمیل بزنید . ویژگی برتر قیمت ها را بسته به سختی پروژه از 10 هزار به بالا در نظر می گیریم. تمامی قیمت ها بصورت توافقی می باشد و در صورت نیاز به تخفیف مطرح کنید. تخفیف ویژه برای کافینت ها و دانشجویان زمان آماده کردن پروژه با توجه به نیاز شما و توافقی پرداخت هزینه پس از تحویل پروژه رعایت انصاف در هنگام قیمت گذاری برای پروژه کلمات کلیدی ساخت، پروژه، دانشجویی، رشته، کامیپوتر، طراحی ساخت، خرید، فروش، دانلود، سفارش، پروژه، رشته، کامپیوتر، برنامه نویسی، ارزان، قیمت، کم، سریع، گزارشکار، ویژوال، سی،شارپ، جی، کوری، مقاله، ترجمه، تایپ، سفارشی، طراحی، اس،کیو، ال، مای،اس،کیو،ال،کمترین، هزینه، داشنجویی، دانشجویی، فناوری اطلاعات


سفارش پروژه دانشجویی :

فزار مدیریت کتابخانه با 70 درصد تخفیف ویژه فقط این ماه

 09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com

 جدید ترین سیستم اتوماسیون مدیریت کتابخانه

کمک به انجام پروژه های دانشجویی در طراحی وب سایت و نرم افزار

گروه نرم افزار ی دهکده آماده کمک و آموزش جهت انجام پروژه های دانشجویی شما عزیزان میباشد .
 برای کمک گرفتن و انجام  پروژه های دانشجویی خود می توانید روی ما حساب کنید!
انجام پروژه های دانشجویی توسط تیم پروژه های دانشجویی گروه نرم افزاری دهکده به بهترین نحو ممکن پیاده سازی ، و تحویل داده می شود.

هدف کمک به شما برای انجام پروژهایتان و خارج شدن از سر درگمیست. تیم پروژه دانشجویی دهکده در کمترین زمان ممکن و قیمتی متناسب  پروژه را تحویل می دهد.
موارد انجام پروژه های دانشجویی که میتوانید روی ما حساب کنید :

    پروژه های دانشجویی طراحی و تولید اپلیکیشن های اندروید و موبایل
    پروژه های دانشجویی طراحی وب سایت و پرتال با php
    پروژه های دانشجویی طراحی وب سایت با ASP.NET
    پروژه های دانشجویی طراحی و تولید صفحات وب
    پروژه های ساخت وب سایت با cms جوملا و wordpress
    پروژه های ساخت برنامه های ویندوزی با C# و vb
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
web disign 5
سفارش پروژه دانشجویی :
طراحی وب سایت های دانشجویی و نرم افزار و آموزش نکات و مستندات پروژه در جهت یادگیری دانشجویان عزیزتخصص ماست
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com

نت ها (Fragment) در اندروید

نت ها (Fragment) در اندروید
فرگمنت (Fragment) چیست
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
Fragment (فرگمنت) را می توان به عنوان یک زیر مجموعه و یا یک بخش از اکتیویتی (sub-activity) در نظر گرفت که در نهایت قسمتی از رابط کاربری را تشکیل داده و به واسطه آن یک رابط کاربری چند قسمتی ایجاد می شود. فرگمنت در اندروید مشابه آنچه قبلا برای اکتیویتی ها آموختیم، چرخه حیات و رفتار خاص خود را دارد، رویدادهای ورودی را دریافت می کند و از دو قسمت xml (لایه واسط کاربری) و کد عملیاتی (java) تشکیل شده است. هر اکتیویتی می تواند چندین فرگمنت را در خود جای دهد و هر فرگمنت می تواند در چندین اکتیویتی استفاده شود. بنابراین فرگمنت به تنهایی قابلیت اجرا ندارد و به اکتیویتی والد و چرخه حیات آن وابسته است. فرگمنت از API 11 (اندروید Honeycomb) اضافه شد.
چرخه حیات فرگمنت (Fragment Lifecycle)

فرگمنت هم مانند اکتیویتی چرخه حیات خاص خود را دارد که تا حد زیادی مشابه چرخه حیات اکتیویتی است. خوب است ابتدا مروری بر این چرخه حیات داشته باشیم.

چرخه حیات فرگمنت

()onAttach : این متد هنگامی که فرگمنت به اکتیویتی اضافه شده خوانده می شود.
()onCreate : این متد برای مقداردهی در هنگام ساخت فرگمنت فراخوانی می شود.
()onCreateView : این متد زمانی فراخوانده می شود که فرگمنت ایجاد شده و آماده ساخت واسط کاربری (UI) است. در اکتیویتی این وظیفه بر عهده onCreate() بود.
()onActivityCreated : این متد در زمانی فراخوانده می شود که اکتیویتی میزبان فرگمنت اجرا شده است.
()onStart : این متد زمانی فراخوانده می شود که رابط کاربری فرگمنت آماده نمایش است.
()onResume : در این زمان فرگمنت فعال است.
()onPause و ()onStop : این متد در زمان پایان فعالیت فرگمنت اجرا می شود و اگر لازم است چیزی ذخیره شود در این مرحله باید انجام داد.
()onDestroyView : این متد زمانی فراخوانده می شود که UI فرگمنت از اکتیویتی حذف می شود.
()onDestroy : در زمان انتهای حیات فرگمنت این متد اجرا می شود.
()onDetach : زمانی فراخوانده می شود که فرگمنت به طور کامل از اکتیویتی میزبان خود جدا شده است.
از مفاهیم فاصله گرفته و با ذکر مثالهایی، آموزش را ادامه می دهم.
پروژه شماره یک (فرگمنت های استاتیک)

شاید ساده ترین مثال، همان اپلیکیشن کتاب باشد که اگر قبلا در مورد فرگمنت در وب جستجو کرده باشید به احتمال زیاد با آن برخورد کرده اید.
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
Fragment example for news application

تصویر بالا یک تلفن هوشمند و یک تبلت را نشان می دهد. قصد دارم یک کتابچه اندرویدی توسعه بدهم. حالت ساده و ابتدایی این است که چینش اجزاء رابط کاربری در همه اندازه ها و حالت های مختلف صفحه نمایش، یکسان باشد. اما از نظر UX (تجربه کاربری) این امر پسندیده نبوده و باید حالتهای متفاوتی را برای اندازه های مختلف صفحه نمایش در نظر بگیریم تا تمامی کاربران تجربه خوبی هنگام تعامل با برنامه ما داشته باشند.

نکته : تجربه کاربری (UX) مفهومی است که در کنار مفهوم رابط کاربری (UI) مدتیست مورد توجه توسعه دهندگان وب و اپلیکیشن قرار گرفته. به طور خلاصه نحوه چینش عناصر، رنگهای بکار رفته و هرآنچه که باعث می شود تا کاربر ارتباط بهتری با محصول ما برقرار کند، در استفاده از بخش های مختلف آن دچار سردرگمی نشده و در نهایت تعامل رضایت بخشی را تجربه کرده باشد، همگی در حوزه تجربه کاربری قرار می گیرد. توصیه می کنم چند دقیقه ای وقت گذاشته و در این خصوص جستجو و مطالعه کنید.

اپلیکیشن کتاب ما شامل یک لیست موضوعی است که کاربر با انتخاب هریک از گزینه های موجود در لیست، به متن مربوط به آن هدایت می شود. در صفحات عمودی (Portrait) و همچنین صفحات کوچک، حالت مطلوب این است که در صفحه اصلی فقط لیست موضوعات نمایش داده شود و کاربر با انتخاب هر گزینه، برای مطالعه متن به صفحه جدید منتقل شود که به صورت کامل متن را نمایش داده و خبری از لیست موضوعات نیست. اما این حالت برای تبلت و در حالت افقی (Landscape) شاید منطقی به نظر نرسد و پذیرفتنی نیست که یک صفحه عریض بخواهد فقط چند کلمه را در هر سطر نمایش دهد. اینجا گزینه مطلوب این است که لیست و متن، هر دو را در کنار هم برای کاربر نمایش دهیم. هر موضوعی که کاربر انتخاب کرد، متن آن در کنار لیست نشان داده شود.
برای تحقق این هدف، از فرگمنت استفاده می کنیم. با بکارگیری فرگمنت، نیازی به تعریف چندباره لیست و قسمت مربوط به نمایش متن در اکتیویتی های مختلف نداریم و تنها کافیست یکبار آنها را در دو فرگمنت مجزا ایجاد کرده و سپس به تعداد لازم و در اکتیویتی های مختلف، فرگمنتها را فراخوانی کنیم.
یک پروژه با نام FragmentOne و API 16 می سازم. در زمان تهیه این آموزش بر اساس آمار گوگل حدود ۹۶ درصد دیوایس های اندرویدی فعال، شامل نسخه ۱۶ و بالاتر اندروید می شوند و من ترجیح میدهم پروژه خود را روی این ورژن پیاده سازی کنم.
در این مثال من وارد جزئیات از جمله لیست و متن موضوعات نمی شوم و به آشنایی با نحوه پیاده سازی فرگمنت ها بسنده می کنم.
فرگمنت ها به دو صورت ایستا (Static) و پویا (Dynamic) به اکتیویتی اضافه می شوند که در این پروژه من فرگمنتها را به صورت ایستا استفاده می کنم.
روی فولدر app پروژه راست کلیک کرده و در مسیر New > Fragment یک فرگمنت خالی (Blank) انتخاب می کنم:
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
اضافه کردن فرگمنت به پروژه اندروید

در مرحله بعد نام فرگمنت را تعیین می کنم. من برای این فرگمنت نام frg1 را انتخاب کردم:

تعیین نام فرگمنت

با انتخاب گزینه Create layout XML ، لایه رابط کاربری این فرگمنت به صورت خودکار ساخته شده و نیاز به ساخت دستی آن نیست. اندروید استودیو نام Layout را بر اساس نام فرگمنت تعیین می کند که نیازی به تغییر آن نمی بینم. در پایان دو گزینه به صورت پیش فرض انتخاب شده که من فعلا به متدهای اضافی نیازی ندارم و تیک هر دو را برمیدارم. با زدن گزینه Finish، فرگمنت ایجاد می شود.

کد frg1.java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
   
package ir.android_studio.fragmentone;
 
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
 
public class frg1 extends Fragment {
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_frg1, container, false);
    }
 
}

(برای خلوت شدن محیط کار من متد سازنده را به صورت دستی حذف کردم)

کد fragment_frg1.mxl:
1
2
3
4
5
6
7
8
9
10
11
12
13
   
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="ir.android_studio.fragmentone.frg1">
 
    <!-- TODO: Update blank fragment layout -->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/hello_blank_fragment" />
 
</FrameLayout>

به ایمپورت های فرگمنت دقت کنید. دو کلاس android.support.v4.app.Fragment و android.view.LayoutInflater در لیست قرار دارند. قبلا گفتیم فرگمنت در API 11 به اندروید اضافه شده و برای استفاده از آن در نسخه های پایینتر لازم است به جای کلاس android.app.Fragment ، از کلاس android.support.v4.app.Fragment استفاده کنیم تا به واسطه کتابخانه Support امکان استفاده از آن میسر شود. البته در حال حاضر توسعه اپلیکیشن برای نسخه های ۱۱ به پایین توجیهی ندارد. من هم هنگام ساخت پروژه MinSDK را برابر ۱۶ قرار دادم. با این حال اندروید استودیو به صورت پیش فرض این کلاس را اضافه کرده که تفاوتی نمی کند و نیازی به تغییر نیست. در ادامه ملاحظه می کنید کلاس frg1 از Fragment ارث بری کرده است.
برای اتصال لایه xml به فرگمنت و نمایش آن، لازم است متد onCreateView را Override کنیم (مشابه اکتیویتی با این تفاوت که در آنجا متد onCreate استفاده می شد). در نهایت با شئ ای که از LayoutInflater ساخته شده لایه R.layout.fragment_frg1 به فرگمنت متصل شده است.
UI این فرگمنت شامل یک FrameLayout (از FrameLayout برای چهارچوب بندی در اندروید استفاده می شود) است که تنها یک TextView داخل آن قرار گرفته. برای این پروژه هم فعلا به چیز بیشتری نیاز ندارم. فقط برای تشخیص دو فرگمنت از یکدیگر، برای هرکدام متن و رنگ پس زمینه متمایز تعریف می کنم. مشابه قبل یک فرگمنت جدید با نام frg2 ایجاد کرده و Layout ها را مطابق زیر تغییر می دهم:

fragment_frg1.xml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="ir.android_studio.fragmentone.frg1"
    android:background="#bf2e2e">
 
    <!-- TODO: Update blank fragment layout -->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="Fragment A"
        android:gravity="center"/>
 
</FrameLayout>

fragment_frg2.xml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="ir.android_studio.fragmentone.frg2"
    android:background="#1e6ea7">
 
    <!-- TODO: Update blank fragment layout -->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="Fragment B"
        android:gravity="center"/>
 
</FrameLayout>

هدف ما این بود تا در صفحات عادی و پیش فرض (که آنها را به عنوان استثنائات به صورت جداگانه تعریف نکردیم) فقط یک فرگمنت و در صفحات با سایز صفحه نمایش بزرگ (تبلت) و در حالت افقی، هر دو فرگمنت در کنار هم نمایش داده شوند. به سراغ activity_main.xml می روم. با استفاده از به صورت ایستا فرگمنت را به اکتیویتی اضافه می کنم.

فرگمنت ایستا | Static Fragment
1
2
3
4
5
6
7
8
9
10
11
12
   
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="ir.android_studio.fragmentone.MainActivity">
    
    <fragment
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
 
</RelativeLayout>

فرگمنت به اکتیویتی اضافه شد. عرض و ارتفاع را match_parent تنظیم کردم تا فرگمنت تمام اکتیویتی را به خود اختصاص دهد. (دقت کنید ممکن است اختصاص دهم که با استفاده از خاصیت android:name امکانپذیر است:

خاصیت name فرگمنت
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
مقدار این خاصیت را برابر نام کلاسی قرار می دهم که می خواهم نمایش داده شود. اندروید استودیو لیست فرگمنت ها را نمایش داده و نیازی به وارد کردن دستی نیست. با این حال اگر لازم شد نام را خودتان وارد کنید، ترکیب PackageName.FragmentClass است. به هر فرگمنت می بایست یک id نیز اختصاص داد که fr1 را انتخاب می کنم:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="ir.android_studio.fragmentone.MainActivity">
 
    <fragment
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/fr1"
        android:name="ir.android_studio.fragmentone.frg1" />
 
</RelativeLayout>

اگر Layout را در حالت Design قرار دهید ارور زیر را مشاهده خواهید کرد:

ارور نمایش فرگمنت در محیط توسعه

مضمون پیغام این است که اگر مایلم در حالت Preview و در محیط توسعه هم فرگمنت انتخاب شده نمایش داده شود، با کلیک روی Use @layout/fragment_frg1 خاصیت مربوط به آن به اضافه می شود که به دلخواه توسعه دهنده است و استفاده یا عدم استفاده از آن تاثیری در عملکرد اپلیکیشن برای کاربر ندارد و صرفا محدود به محیط اندروید استودیو است. با تایید این پیغام، خط زیر به فرگمنت اضافه می شود:
1
   
tools:layout="@layout/fragment_frg1"
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
حالا در محیط توسعه هم فرگمنت نمایش داده می شود:

خاصیت tools فرگمنت

اضافه کردن به اکتیویتی را به صورت Drag & Drop هم می‌شود انجام داد:

اضافه کردن فرگمنت به اکتیویتی به شیوه Drag & Drop

پس از کشیدن بر روی صفحه، پنجره ای باز می شود که فرگمنت مدنظر را انتخاب کرده و سپس در قسمت Properties سایر تنظیمات از جمله اختصاص id، ارتفاع و … را انجام می دهیم.
چون در این آموزش صرفا نحوه اضافه کردن فرگمنتها را بررسی می کنیم، از انتقال به Fragment B صرف نظر می کنم و به سراغ مرحله دوم می روم، یعنی ساخت رابط کاربری مناسب تبلت ها در حالت افقی. در اندروید سایز صفحه نمایش در ۴ دسته Small، Normal، Large و X-Large قرار می گیرد. قصد ندارم در این آموزش به مبحث سایز بندی بپردازم و صرفا جهت آشنایی با فرگمنت ها به صورت اجمالی ساخت Layout جدید را توضیح می دهم. صفحه نمایش تبلت در رده سایز Large قرار می گیرد. از طرفی قصد دارم لایه جدید بر روی صفحه ای که در حالت افقی (Landscape) قرار گرفته اعمال شود. بنابراین در کنار پوشه layout پروژه، یک پوشه جدید با نام layout-large-land می سازم و یک کپی از activity_main.xml اصلی داخل آن قرار می دهم.

اضافه کردن پوشه جدید به پروژه اندرویدی

برای ساخت پوشه جدید، روی res راست کلیک کرده و Android resource directory را انتخاب می کنم. حالا با انتخاب layout به عنوان Resource type و تکمیل نام دایرکتوری، پوشه جدید را می سازم:

اضافه کردن لایه سایز Large و Landscape به پروژه

علاوه بر نوشتن دستی نام فولدر، با انتخاب گزینه های Size و Orientation و انتقال آنها به قسمت Chosen qualifiers و در نهایت انتخاب گزینه مدنظر، نام دایرکتوری به صورت خودکار تکمیل می شود (ضمن اینکه در خارج از محیط اندروید استودیو و در محل ذخیره پروژه هم به راحتی می توان دایرکتوری موردنیاز را به پروژه اضافه کرد).
حالا یک کپی از activity_main.xml ساخته و به دایرکتوری layout-large-land منتقل می کنم. هنگامی که ساختار نمایش پروژه روی Android تنظیم شده، دایرکتوری که جدید ساختیم نمایش داده نمی شود و لازم است حالت نمایش پروژه را موقتا از Android به Project تغییر داده و فایل کپی شده را روی دایرکتوری مدنظر Paste کنیم (و یا باز هم در محل ذخیره پروژه در سیستم عامل خود، عمل کپی فایل به دایرکتوری را انجام دهیم).

لیست دایرکتوری ها

البته روش ساده تری هم هست. وقتی من activity_main.xml را کپی کرده و یک دایرکتوری خالی هم وجود دارد، اندروید استودیو هدف من را تشخیص می دهد و کافیست در همان حالت نمایش Android، روی layout راست کلیک و Paste کنیم. پنجره ای باز می شود که مسیر انتقال را layout-large-land معرفی می کند که با تایید آن، انتقال به درستی انجام می شود:

اضافه کردن activity_main.xml به دایرکتوری layout-large-land

اضافه کردن activity_main.xml به دایرکتوری layout-large-land

اضافه کردن activity_main.xml به دایرکتوری layout-large-land

نکته : الزامی به کپی کردن layout قبلی و انتقال به دایرکتوری جدید نیست و در واقع این عمل همان ساخت layout جدید است. در مواردی که لایه ما کامپوننت های متعددی داشته و قصد اعمال تغییرات جزئی داشته باشیم، احتمالا کپی راه حل ساده تری است اما در مواردی مثل پروژه فعلی که یک اکتیویتی ساده داریم و علاوه بر آن، لایه پیش فرض را از جنس RelativeLayout ساخته بودیم که لازم است در حالت Large Landscape لایه را از نوع LinearLayout بسازیم، ساخت یک لایه جدید و همنام با لایه پیش فرض منطقی خواهد بود:

Layout > New > Resource File

اگر می خواهید لایه جدید را به این شیوه بسازید و قبلا آنرا توسط کپی از لایه پیش فرض ساخته اید، کافیست آنرا حذف کرده و مجدد از این طریق اقدام کنید.

لایه جدید ایجاد شد و در قسمت Preview به صورت افقی نمایش داده شده است:

لایه افقی Landscape
1
2
3
4
5
6
7
   
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
</LinearLayout>

حالا دو activity_main.xml داریم که دومی مقابل آن large-land قید شده. هنگامی که برنامه روی دیوایسی با سایز صفحه نمایش Large اجرا شود و دیوایس در حالت افقی قرار گرفته باشد، به جای activity_main.xml پیش فرض، activity_main.xml موجود در دایرکتوری layout-large-land برای کاربر رندر می شود. پس در این لایه دو را به صورت افقی در کنار یکدیگر قرار می دهم:
1
2
3
4
5
6
7
8
9
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com10
11
12
13
14
15
16
17
18
19
20
21
   
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <fragment
        android:name="ir.android_studio.fragmentone.frg1"
        android:id="@+id/fr1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"/>
 
    <fragment
        android:name="ir.android_studio.fragmentone.frg2"
        android:id="@+id/fr2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2" />
 
</LinearLayout>

خاصیت orientation را به horizontal تغییر دادم تا دو فرگمنت به صورت افقی در کنار هم قرار بگیرند. با وزن دهی (layout_weight) قبلا در فصل پنجم آشنا شدیم.
حالا پروژه آماده ی اجراست. من یک دیوایس Tablet روی جنی موشن ساخته ام و پروژه را روی آن اجرا می کنم. دیوایس در ابتدا روی حالت عمودی قرار دارد:

اجرای پروژه اندروید روی دیوایس با صفحه نمایش عمودی

همانطور که انتظار داشتم فقط یک فرگمنت نمایش داده می شود (Fragment A). در مرحله بعد با کلیک روی گزینه تنظیمات دیوایس (سه نقطه) و یا Ctrl + F11 دیوایس در حالت افقی قرار می گیرد:

چرخش صفحه نمایش دیوایس به Landscape

صفحه نمایش افقی Landscape

با چرخش دیوایس، Layout موجود در دایرکتوری large-land به درستی جایگزین layout اصلی پروژه شد.
پروژه شماره دو (فرگمنت های داینامیک)

در مثال قبل با فرگمنت های استاتیک آشنا شدیم. تفاوت فرگمنت پویا با استاتیک در این است که در فرگمنت پویا در زمان اجرا می توان یک فرگمنت را جایگزین فرگمنت قبلی کرد. یعنی می توان در یک اکتیویتی چند محتوای متفاوت را بنا به نیازی که کاربر دارد نمایش داد بدون اینکه لازم باشد از یک اکتیویتی به اکتیویتی دیگر منتقل شود. یا به عنوان مثال به جای اینکه به وسیله Intent کاربر به برنامه پیش فرض دوربین دیوایس منتقل شده، عکس گرفته و مجدد به برنامه برگردد و روی تصویر ویرایش انجام دهد، تمامی مراحل درون برنامه انجام شود (مشابه نرم افزارهای بارکدخوان و…).
در این مثال قصد دارم فرگمنت های پویا را با یک مثال ساده معرفی کنم.
از پروژه قبل خارج شده (File > Close Project) و یک پروژه جدید با نام FragmentTwo می سازم. پروژه من شامل یک اکتیویتی و دو فرگمنت است. درون اکتیویتی دو Button و یک FrameLayout وجود دارد که با لمس هریک از دکمه ها، یکی از دو فرگمنت در FrameLayout نمایش داده شده و جایگزین فرگمنت قبل می شود.
ابتدا دو فرگمنت با نامهای FrgOne و FrgTwo عینا مشابه پروژه قبل اضافه می کنم. در مرحله بعد لایه activity_main.xml را همانگونه که در پاراگراف بالا عنوان شد می سازم. اکتیویتی را به نوع LinearLayout و چینش عمودی تغییر داده و به هریک از عناصر یک id اختصاص داده ام.
1
2
3
4
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
   
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="ir.android_studio.fragmenttwo.MainActivity">
    
    <Button
        android:id="@+id/btn_a"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Select Fragment A" />
 
    <Button
        android:id="@+id/btn_b"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Select Fragment B" />
 
    <FrameLayout
        android:id="@+id/frg_holder"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
 
    </FrameLayout>
    
</LinearLayout>

رابط کاربری اکتیویتی activity_main.xml

سپس Button ها را داخل اکتیویتی تعریف کرده و دو متد مربوط به دکمه ها را نیز اضافه می کنم:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
   
package ir.android_studio.fragmenttwo;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
 
public class MainActivity extends AppCompatActivity {
 
    Button btnOne, btnTwo;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        btnOne = (Button) findViewById(R.id.btn_a);
        btnTwo = (Button) findViewById(R.id.btn_b);
 
        btnOne.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                
            }
        });
 09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
        btnTwo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 
            }
        });
 
    }
}

نکته : برای اینکه فرگمنت اجرا شود، باید اکتیویتی والد آن حتما از FragmentActivity یا AppCompatActivity ارث بری شده باشد.

ابتدا متد یکی از دکمه ها را کامل کرده و سپس به توضیح جزئیات می پردازم.
1
2
3
4
5
6
7
8
9
10
11
12
   
btnOne.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
 
        FrgOne frg1 = new FrgOne();
        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.frg_holder, frg1);
        ft.commit();
 
    }
});

در خط اول ابتدا یک نمونه از فرگمنت FrgOne با نام frg1 ساختم. در قدم بعد برای مدیریت فرگمنت ها به نمونه ای از کلاس FragmentManager نیاز دارم:

کلاس FragmentManager

دو گزینه در اختیار داریم که اولی مربوط به کتابخانه Support می شود. همین را انتخاب می کنم. برای گرفتن آن دو گزینه getSupportFragmentManager() یا getFragmentManager() قرار می گیرد که مسلما باید getSupportFragmentManager() را انتخاب کنم. برای تبادل پیامهای فرگمنت در اکتیویتی (add، remove و replace) باید از FragmentTransaction استفاده کنیم که نام ft را درنظر گرفتم و در مقابل با متد beginTransaction() فرگمنت آماده جایگزینی می شود. در خط بعد، از متد replace استفاده کرده ام که دو ورودی می گیرد. اولی، id مربوط به FrameLayout که قرار است فرگمنت در آن جایگذاری شود و دوم، نام فرگمنت موردنظر. در نهایت لازم است با دستور commit() انجام این پروسه را آغاز کنیم.
برای دکمه دوم هم به همینصورت کد را تکمیل می کنم با این تفاوت که فرگمنت دوم باید جایگزین شود.

کد نهاییی MainActivity.java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com38
39
40
41
42
43
44
45
46
47
48
49
   
package ir.android_studio.fragmenttwo;
 
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
 
public class MainActivity extends AppCompatActivity {
 
    Button btnOne, btnTwo;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        btnOne = (Button) findViewById(R.id.btn_a);
        btnTwo = (Button) findViewById(R.id.btn_b);
 
        btnOne.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 
                FrgOne frg1 = new FrgOne();
                FragmentManager fm = getSupportFragmentManager();
                FragmentTransaction ft = fm.beginTransaction();
                ft.replace(R.id.frg_holder, frg1);
                ft.commit();
 
            }
        });
 
        btnTwo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 
                FrgTwo frg2 = new FrgTwo();
                FragmentManager fm = getSupportFragmentManager();
                FragmentTransaction ft = fm.beginTransaction();
                ft.replace(R.id.frg_holder, frg2);
                ft.commit();
 
            }
        });
 
    }
}

پروژه را اجرا می کنم:

اجرای پروژه اندرویدی

در ابتدا ناحیه مربوط به FrameLayout خالی است به این معنی که هیچ فرگمنتی در آن جایگذاری نشده. انتظار دارم با کلیک روی دکمه ها، فرگمنت های مرتبط نمایش داده شوند:

نمایش فرگمنت اول
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
نمایش فرگمنت دوم

ایجاد اولین پروژه اندروی

2017 ساختمانی, صنعتی, نمونه کارها هیچ دیدگاهی برای سیستم مدیریت پروژه از راه دور ثبت نشده

 09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com

سیستم مدیریت پروژه از راه دور یا RPM ( Remote Project Management ) با هدف برطرف کردن مشکلات مذکور معرفی می شود ، که در اجرای این مهم از دو بازوی اصلی برنامه‌ریزی و کنترل پروژه در قالب وب سرویس و اپلیکیشن های موبایل ( اندروید و آی او اس ) بهره می‌گیرد و لذا به ابزاری کاربردی و قدرتمند برای کنترل زمان، هزینه ، مدیریت منابع و نیروی انسانی تبدیل گردیده است

هدف اصلی این سیستم

    به روز رسانی فعالیتهای پروژه، گزارش گیری ، ثبت مشکلات و ثبت عکس های پروژه از طریق اپلیکیشن های موبایل
    ایجاد بستری مطمئن و مناسب برای مدیریت پروژه با استفاده از مدیریت فعالیت ها، کنترل منابع و … می باشد.
    کاربران با کمترین دانش مدیریت پروژه قادر خواهند بود به سادگی پروژه ها، وظایف، منابع و … را برنامه ریزی و از روند انجام پروژه گزارش گیری و مستندات خود را مدیریت نمایند.
    شناخت و حرکت عوامل اجرایی مطابق با برنامه زمانبندی.
    امکان ارائه برنامه زمانبندی بصورت روزانه، هفتگی و ماهیانه به عوامل اجرایی پروژه ها بصورت داده GPRS وSMS و دریافت توسط نرم افزار های موبایل .
    استفاده بهینه از نفرات واحد برنامه ریزی و کنترل پروژه در تهیه و تصحیح برنامه های زمانبندی بسیار قوی بجای فعالیت های وقت گیر، ثبت پیشرفت های پروژه و اعمال در نرم افزار های موجود و محاسبه پیشرفت پروژه و چاپ گزارشات مدیریتی.
    مشاهده پیشرفت فیزیکی و گزارشات در هر جای دنیا بصورت آنلاین و اتخاذ تصمیمات لازم ( پروژه های در سطح ملی ).
    ثبت احجام واقعی انجام شده هر پروژه که برای تهیه صورت وضعیت های پروژه بسیار مفید است.
    ثبت مشکلات پروژه به تفکیک زیرپروژه ،فعالیت و آیتم های برنامه زمانبندی جهت بررسی تاخیرات پروژه ها

سیستم RPM  با ارزیابی و شناخت عمیق از زیر ساختار ها و گلوگاه ها ، بستری را بصورت کاملاً کارشناسانه و فنی برای گروه های اجرایی ، مدیران شرکت و ذینفعان پروژه جهت جلوگیری از اتلاف وقت و همچنین ایجاد فضای تصمیم گیری و ارتقاء  مهارت در جهت کنترل هرچه بهتر و ارزیابی و نهایتا ارتقاء بهره وری و کارایی واحد ها را در شرکت ها ایجاد نماید.


ایجاد اولین پروژه اندروی
د09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com


ایجاد اولین پروژه اندروید (اندروید استودیو)

 

در این آموزش قصد دارم یک پروژه اندروید ایجاد کنم، کدهای آنرا توضیح دهم، کمی در پروژه را تحلیل و در مورد نحوه کار برنامه بحث کنم و در آخر از برنامه خروجی بگیرم و برنامه را تست کنم.

ایجاد اولین پروژه اندروید (اندروید استودیو)

پیشنیازها

    اکتیویتی های اندروید
    جزئیات برنامه نویسی اندروید

برای ایجاد یک پروژه اندروید در اندروید استودیو پس از اجرا شدن نرم افزار Android Studio ، کادر زیر نمایش داده میشود.

ایجاد اولین پروژه اندروید (اندروید استودیو)

سمت چپ این پنجره پروژه های قبلی تان لیست میشوند. سمت راست نیز ۵ گزینه در دسترس هستند که ما برای ایجاد پروژه جدید به اولین گزینه یعنی Start a new Android studio project نیاز داریم. روی آن کلیک کنید.

ایجاد اولین پروژه اندروید (اندروید استودیو)

با نمایش این دیالوگ فرآیند ایجاد پروژه جدید شروع میشود.
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
    Application name: این نام، نام اپلیکیشن شما میباشد. از آنجاکه این نام بخشی از نام پکیج برنامه شما بصورت پیشفرض قرار میگیرد، باید این نام را بصورت لاتین وارد کنید. بعدا میتوانید این نام را در جای دیگر (xml) تغییر دهید.
    Company domain: این قسمت، نام کمپانی، نام دامنه شرکت یا نام خودتان میتواند قرار بگیرد. این قسمت هم بخشی از نام پکیج شما میباشد.
    Package name: نام پکیج یکی از مهمترین قسمتهای این دیالوگ است. درواقع هر برنامه اندرویدی (پروژه اندروید) یک پکیج نام منحصر بفرد دارد که مارکتها و گوشی های اندرویدی این اپلیکیشن ها را فقط با این نام میشناسند.نام گذاری نام پکیج ها هم کاملا شخصی میباشد، فقط باید از قاعده خاصی استفاده شود. برای مثال چون سایت من ir میباشد، و نام این پروژه را My Application قرار دادم، نام پکیج من برای این برنامه نمونه ir.coderoid.myapplication قرار میگیرد. میتوانم آنرا بصورت ir.mahmoud.myapplication نیز قرار دهم.
    Project location: در این قسمت مکان فایلهای پروژه تعیین میشود.

روی Next کلیک کنید.

ایجاد اولین پروژه اندروید (اندروید استودیو)

در این قسمت از پروژه اندروید مشخص میکنیم که برای چه نوع دستگاه اندرویدی (گوشی، تبلت/ گجت/تی وی/…) قصد داریم اپلیکیشن بسازیم.

    Minimum SDK : حداقل ورژن اندرویدی (حداقل api) که قرار است برنامه ما روی آن اجرا شود. این مقدار مشخص میکند که برنامه ما روی مثلا اندروید ۴٫۰٫۳ به بالا (که طبق آمار گوگل پلی حدود ۹۸٫۳ درصد گوشی های اندرویدی را شامل میشود)، اجازه نصب دارد و اندرویدهای پایین تر از ۴٫۰٫۳ را پوشش نخواهد داد.

حداقل api را مشخص و روی Next کلیک کنید.

ایجاد اولین پروژه اندروید (اندروید استودیو)

در این قسمت میتوانید یک اکتیویتی به پروژه خود اضافه کنید. چون فعلا قرار است یک پروژه ساده ایجاد کنیم، Empty activity را انتخاب کنید و Next را بزنید.

ایجاد اولین پروژه اندروید (اندروید استودیو)

در این قسمت، برای اکتیویتی ای که در قسمت قبل ایجاد کردید، یک نام در قسمت Activity Name وارد کنید. این نام باید لاتین تایپ شود و حرف اول آن نیز بزرگ باشد. با فعال کردن تیک Generate Layout File میتوان یک لی اوت (یا یک صفحه) برای اکتیویتی بسازیم و در قسمت Layout Name نامی برای آن تعیین کنیم.

    Backwards Compatibility (AppCompat) : بتازگی ویژگی های بصری زیبایی با عنوان AppCompat به پروژه اندروید اضافه شده است که میتوان با فعال کردن تیک این گزینه از آنها در اکتیویتی خود استفاده کرد.
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
اکنون، با زدن دکمه Finish پروژه شما ساخته میشود.

ایجاد اولین پروژه اندروید (اندروید استودیو)

اکنون، پروژه ای که ساختید در اندروید استودیو باز میشود. در ادامه سعی میکنم شما را با قسمتهای مختلف پروژه آشنا کنم.

ایجاد اولین پروژه اندروید (اندروید استودیو)
فایل های یک پروژه اندروید

تصویر بالا شامل تمام فایلهای پروژه ما هستند. در تصویر بالا تمام فایلهای یک پروژه اندروید را مشاهده میکنید که در زیر به توضیح در مورد آنها خواهیم پرداخت.

    app : این پوشه حاوی سه پوشه زیر است:
    manifest : این قسمت شامل فایلی بنام AndroidManifest.xml است که برای ویرایش نام برنامه، اعلان همه ی کامپوننتهای برنامه شامل اکتیویتی ها، سرویس ها و … ، قرار دادن برنامه در لیست برنامه های گوشی کاربر، تعیین نقطه ورود به برنامه ، گرفتن مجوزهای استفاده از اینترنت، مخاطبین، دسترسی به حافظه کاربر و … مورد استفاده قرار میگیرد.
    Java : تمام کلاس های جاوا در پکیج های جداگانه در این پوشه قرار میگیرند. این قسمت سه پوشه دارد که دوتای آنها (androidTest و test) کاربرد خاصی ندارند و فقط پکیج اولی برای ما اهمیت دارد. در این پوشه یک فایل جاوا بنام MainActivity مشاهده میکنید که همان اکتیویتی است که در پروسه ایجاد پروژه آنرا ایجاد کردیم. اندروید استودیو بصورت پیشفرض این اکتیویتی را نقطه ورود به برنامه تعریف کرده است.
    res : این پوشه حاوی تمام منابع برنامه است. منابعی مانند عکسها، فونت ها، مقادیر ثابت و … . این پوشه شامل چند زیرپوشه دیگر است:
    drawable : همه منابع کشیدنی (رسم شدنی) شامل تصاویر و پس زمینه ها و … در این قسمت قرار میگیرند.
    layout : این قسمت همه ی لی اوت های برنامه را شامل میشود. یک لی اوت در واقع رابط کاربری ثابت یک اکتیویتی میباشد که توسط اکتیویتی مدیریت میشود. لی اوتی که قبلا برای اکتیویتی MainActivity ایجاد کردیم را در این پوشه مشاهده میکنید.
    mipmap : این پوشه هم مانند پوشه drawable است که اندروید استودیو از آن برای دسته بندی تصاویر در اندازه های خاص برای گوشی های با اندازه های متفاوت استفاده میکند. این اندازه ها در استانداردهای mdpi، hdpi، xhdpi، xxhdpi و xxxhdpi تفکیک میشوند.
    Values: این پوشه حاوی تمام مقادیر ثابت مانند متن ها یا مقادیر رشته ای (strings)، اندازه های ثابت (dimens)، استایل ها (styles)، رنگها و … میباشد.

در پوشه res ، قسمتهای دیگری مانند xml، raw و … نیز قرار میگیرند که درصورت نیاز ایجاد و فایلهای لازم درون آنها قرار میگیرند و مورد استفاده قرار میگیرند.

    Gradle: گرادل  – gradle شامل فایلی مهم بنام build.gradle(Module:app) است که امکانات زیر را فقط میتوان در این فایل انجام داد:
        تغییر نام پکیج برنامه
        تغییر نسخه و نام نسخه برنامه
        تعیین minSDK و targetSDK برنامه
        محافظت از برنامه با proguard
        تعیین و اضافه کردن نیازمندی های برنامه (کتابخانه ها و …)
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
    حال به توضیح فایلهای کد مهم در هر پروژه اندرویدی میپردازم.

    MainActivity.java

    ایجاد اولین پروژه اندروید (اندروید استودیو)
    کلاس های جاوا در پروژه اندروید

    کلاس ها در جاوا باید از قالب خاصی پیروی کنند. همه کلاس ها باید با کلمه کلیدی package و نام پکیج برنامه شروع شوند. بعد از اعلام نام پکیج، باید کلاسهای مورد نیاز را وارد کلاس کنیم تا بتوانیم از آنها استفاده کنیم. کلمه کلیدی import برای اینکار بکار میرود. در اینجا ما دو کلاس بنام های AppCompatActivity (که در پکیج android.support.v7.app قرار دارد) و Bundle (که در پکیج android.os قرار دارد)، را به این کلاس ایمپورت کردیم.

    در خط بعد (خط ۶)، ما یک کلاس تعریف میکنیم. با کلمه کلیدی public تعیین میکنیم که این کلاس، کلاسی عمومی است و میتواند در تمام قسمتهای برنامه و توسط کلاسهای دیگر مورد استفاده قرار گیرد. کلمه کلیدی class به نرم افزار میفهماند که میخواهیم یک کلاس تعریف کنیم. MainActivity نام کلاس ما میباشد که اگر توجه کنید با نام فایل کلاس یکی است که این از ملزومات تعریف کلاس اصلی درون یک فایل جاوا است. از آنجا که قرار است یک کامپوننت بنام اکتیویتی ایجاد کنیم و از ویژگی های آن در این کلاس استفاده کنیم یا بعبارت صحیح تر از امکانات کلاس AppCompatActivity ارث بری کنیم، باید آنرا با کلمه کلیدی extends به کلاسمان (MainActivity) معرفی کنیم.

    نمونه کاربرد ارث بری از کلاس AppCompatActivity (یا Activity)، متد onCreate() است که یکی از متدهای مهم در چرخه حیات اکتیویتی ایت و به ما اجازه میدهد در هنگام ایجاد شدن یک اکتیویتی کارهایی از قبیل نمایش یک صفحه را انجام دهیم. متدهای دیگر این کلاس عبارتند از: onStart()، onResume()، onPause()، onStop()، onDestroy() و … که در قسمت متدهای چرخه حیات اکیتیویتی بطور کامل توضیح داده شده اند.

    پس، ابتدا کلاس را تعریف کردیم و سپس برای اینکه حالت ایجاد شدن اکتیویتی را مدیریت کنیم، متد onCreate() را بازنویسی کردیم و برای نمایش فایل لی اوت activity_main.xml از متد setContentView() استفاده کردیم.

    activity_main.xml

    ایجاد اولین پروژه اندروید (اندروید استودیو)
    رابط کاربری پروژه اندروید

    سمت چپ کدهای xml ای هستند که لی اوت سمت راست را ایجاد میکنند. در اندروید رابط کاربری با زبان xml نوشته میشود. کل صفحه یک ConstraintLayout است. این لی اوت یک کانتینر است که دربردارنده ویوهای دیگر صفحه است. کانتینر های اندروید عبارتند از:
        LinearLayout
        RelativeLayout
        FrameLayout
        GridLayout
        ScrollView
        …
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
    هستند که هر کدام کاربرد خاصی دارند. در این لی اوت ما فقط از یک TextView برای نمایش یک متن استفاده کردیم. در xml هر ویو دارای ویژگی هایی است. در این تکست ویو، ویژگی های زیر تعیین شده اند:
        layout_width : برای تعیین اندازه طول یک ویو بکار میرود.
        layout_height : برای تعیین اندازه عرض (ارتفاع) یک ویو بکار میرود.
        Text : برای تعیین متن نمایشی ویو بکار میرود
        …

    توضیحات کاملتر را در قسمت رابط کاربری اندروید مشاهده کنید.

    AndroidManifest.xml

    ایجاد اولین پروژه اندروید (اندروید استودیو)
    مانیفست (فایل AndroidManifest.xml) در پروژه اندروید

    فایل مانیفست برنامه که تمام اعلانات و مجوزها و ویژگی های کلی برنامه باید در آن تعریف شوند. در خط سوم نام پکیج برنامه نوشته شده است. در تگ application ویژگی های icon (برای تعیین آیکون برنامه)، label (برای تعیین نام برنامه)، allowbackup (مجوز گرفتن نسخه پشتیبان از برنامه)، supportRtls (پشتیبانی از زبان فارسی – راست به چپ) و theme (تعیین تم برنامه) تعیین شده اند.

    درون تگ <application>، یک اکتیویتی که همان اکتیویتی MainActivity است اعلان شده است. همچنین در خط ۱۴ این اکتیویتی بعنوان نقطه ورود برنامه و اکتیویتی اصلی برنامه قرار داده شده است. در خط ۱۶ نیز این اکتیویتی در لیست برنامه های گوشی کاربر قرار داده شده است (پس از نصب).

    Build.gradle(Module:app)

    ایجاد اولین پروژه اندروید (اندروید استودیو)
    فایل گرادل (gradle) در پروژه اندروید

    این فایل، گردل اصلی برنامه است که دارای دو تگ است. در قسمت android، اطلاعاتی درمورد نسخه، نام نسخه، حداقل SDK، SDK هدف، آی دی اپلیکیشن یا همان نام پکیج قرار دارد. در قسمت dependencies که قسمت نیازمندی های برنامه است، کتابخانه های مورد نیاز به برنامه اضافه شده اند. مثلا دو کلاسی که در اکتیویتی MainActivity ایمپورت شده اند، چون از خارج از برنامه وارد شده اند، ابتدا در خطوط ۲۷ و ۲۸ در برنامه کامپایل شده اند تا مورد استفاده قرار بگیرند.

    نکته: اگر احیاناٌ در build شدن برنامه، خطای testCompile “junit:junit:4.12” ظاهر شد، اینترنت خود را وصل کرده و با نرم افزارهای تغییر آی پی، سعی کنید نرم افزار اندروید استودیو را به سرور توسعه دهندگان گوگل وصل کنید تا نرم افزار بتواند نیازمندی های خود را دانلود و نصب کند.
    تست و اجرای پروژه اندروید

    برای تست نرم افزار راه های زیادی وجود دارد که من در قسمت شبیه ساز های اندروید توضیحات کاملی داده ام. برای تسریع در آموزش از منوی زیر گزینه Build APK را بزنید تا فایل تستی و نصبی برنامه در اختیارتان قرار بگیرد.

    ایجاد اولین پروژه اندروید (اندروید استودیو)
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
    این فایل را به گوشی خود منتقل کنید و آنرا نصب و تست کنید. این فایل محصول یا خروجی پروژه شماست.

    ایجاد اولین پروژه اندروید (اندروید استودیو)

    در این مطلب اطلاعات جامعی در مورد یک پروژه اندروید ارائه شد. امیدوارم مفید واقع شوند.