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

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

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

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

ساخت اولین پروژه برای اندروید

ساخت اولین پروژه برای اندروید

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

 تا شما را با نوشتن ایتدایی ترین برنامه آشنا کنم. در کنار آموزش ساخت پروژه به معرفی قسمت های مختلفی که در اکلیپس ساخته میشود خواهم پرداخت تا متوجه شویم هر قسمت چکاری انجام میدهد. این پروژه از این نظر که تمام قسمت های مختلف را توضیح میدهد، مهم میباشد و کار را برای پروژه های بعدی راحتتر میکند. بدیهی است در این مقاله خیلی کلی راجع به قسمت های مختلف توضیح داده خواهد شد و برای توضیحات بیشتر لطفاً به کتابهای آموزش برنامه نویسی اندروید مراجعه کنید.

اگر تاکنون مقاله های “شروع کار برای برنامه نویسی اندروید” و “تنظیم ماشین مجازی اندروید (AVD)” و “بررسی چند واژه مهم اندروید” را مطالعه نکرده اید، لطفاً این مقاله را بخوانید. همچنین درصورتیکه SDK اندروید را ندارید لطفاً آنرا از صفحه “دانلود اندروید SDK 2.3” دانلود کنید.

حالا که همه چیز آماده است لطفاً برنامه اکلیپس خود را اجرا کنید، با رفتن به File>New>Project یک پنجره باز میشود، در فولدر Android بر روی Android Project کلیک کنید (در حالت انتخاب قرار میگیرد)، و سپس بر روی دکمه Next کلیک کنید. پنجره جدیدی با نام New Android Project نشان داده میشود. تنظیمات اولیه پروژه در این پنجره انجام میشود.
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
۱) برای نمونه در قسمت Project Name (اولین فیلد) نام MyNewProject را وارد کنید.

۲) در قسمت Build Target معلوم میکنیم برای کدام ورژن از اندروید میخواهیم برنامه بنویسیم. در مربع کنار Android 2.3 تیک بزنید.

۳) در قسمت Application Name نام پروژه را مجدد وارد کنید (MyNewProject).

۴) در قسمت Package Name نام پکیج مورد نظرتان را وارد کنید. بعنوان نمونه com.kamalan.MyNewProject . نام پکیج از این نظر بسیار مهم است که شما میتوانید در برنامه های مختلفی که در این پکیج مینویسید به همدیگر دسترسی داشته باشید. دقت کنید برای بار اول نام پکیجی را برای خودتان بسازید که دیگر نیاز به عوض کردن نداشته باشد. اندروید به این نام بسیار حساس است و اگر دو برنامه دو نام پکیج مختلف داشته باشند، بهم دیگر دسترسی نخواهند داشت، مگر در حالت Content Provider که انشالله بعداً مفصل راجع به آن بحث خواهد شد.

۵) در قسمت Create Activity هم نام پروژه را وارد کنید (MyNewProject).

۶) عدد ۳ را در Min SDK Version وارد کنید. عدد ۳ معرف حداقل سطح APIی است که برنامه شما میتواند بر روی آن اجرا شود. اگر فرضاً شما عدد ۸ را وارد کنید به اندروید میگویید که برنامه فقط قابل اجرا بر روی سیستم عاملهایی است که حداقل API Leve 8 باشند. بنابراین برنامه شما بر روی سیستم عاملهای پایینتر (در این حالت خاص گوشی های قدیمی) قابل اجرا نخواهد بود.

در پای09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.comان بر روی دکمه Finish کلیک کنید.

حال مجدداً به برنامه Eclipse وارد میشوید و نام پروژه خود را در پنل Package Workspace به همراه کلی فایل دیگه ۸) مشاهده خواهید کرد. و حالا توضیح کلی این فایلها.

۱) در قسمت src لیست تمام کلاسها و اکتیویتی هایی که تاکنون ساخته اید، نمایش داده خواهد شد.

۲) در این قسمت فایلی با نام R.java وجود دارد که بسیار مهم می باشد. در این فایل شماره هگزادسیمالی ۳۲ بیتی به هر نام و فایلی که قرار است در برنامه استفاده شود، بطور خودکار اختصاص داده خواهد شد. لطفاً این فایل را دست کاری نکنید. در اکلیپس با وارد کردن هر فایل (مثلاً یک عکس) یا نام یک رشته (String) یک آدرس هگز در این فایل ایجاد میشود. در نت بینز تا بر روی کامپایل کلیک نکنید، آدرسی اختصاص داده نمیشود.

۳) با این قسمت کاری نداریم. در این قسمت سورس تمام کتابخانه های موجود در اندروید قرار گرفته است.

۴) در فولدر assets میتوانیم فایلهای صوتی و تصویری را ذخیره کنیم تا در برنامه از آنها استفاده کنیم.

نکته: مدریت فایل بر روی این فولدر انجام نخواهد شد. بدین معنی که انروید به این فایلها آدرسی در R.java اختصاص نخواهد داد. و همچنین تصاویری که در این فولدر قرار میگیرند بدون هیچ دستکاری در برنامه مورد استفاده قرار میگیرند. توضیح بیشتر اینکه مدریت فایل برای کم کردن حجم برنامه تصاویری که در فولدر res قرار دارند را فشرده خواهد کرد بنابراین محتوای عکس (از نظر کیفیت) تغییر خواهد کرد ولی تصاویری که در فولدر assets قرار میگیرند بدون دستکاری باقی خواهند ماند.

۵) در این فولدر نیز مانند فولدر assets میتوانیم فایلهای صوتی و تصویری را قرار دهیم. به هر فایلی که در این فولدر قرار گیرد آدرسی خاص در R.java اختصاص داده خواهد شد.
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
سه فولدر drawable ملاحظه میکنید که برای ذخیره تصاویر مانند آیکون در سایزهای مختلف است. برای اطلاعات بیشتر راجع به استانداردی که اندروید قرار داده است (البته اجباری نیست!) به صفحه “Icon Design” مراجعه کنید.

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

در فولدر آخر values باز هم فایلهای xml قرار میگیرد. این فایلها به تعریف نام های مختلف مانند نام برنامه، رنگ، اندازه فونت و …  پرداخته میشود.

۶) فایل AndroidManifest.xml فایل بسیار مهمی است که اطلاعات مربوط به پروژه را در خودش نگهداری میکند. اطلاعاتی مانند نام پروژه، ورژن پروژه، تعداد اکتیویتی ها، فیلترها، احیاناً API های گوگل اگر در برنامه استفاده شده باشد مانند API مربوط به موقعیت بر روی نقشه و انواع دسترسی ها به منابع سیستم عامل. در مقاله ای مجزا به تعریف کامل مانیفیست خواهیم پرداخت.

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

src>MyNewProject.java فایل اصلی یا بهتر بگویم اولین اکتیویتی است (اگر راجع به اکتیویتی چیزی نمیدانید به اینجا مراجعه کنید). با اجرای برنامه این فایل اجرا میشود. اگر این اکتیویتی را باز کنید، سورس برنامه را مشاهده خواهید کرد. در خط اول پکیج برنامه معرفی شده است (همان پکیجی که قبلاً معرفی کرده بودیم). سپس کلاسهای مختلفی که در برنامه مورد نیاز بوده است به برنامه import شده است. حالا به کلاس برنامه میرسیم که از کلاس Activity ارث برده است و شامل یک تابع با نام onCreate است. در مورد این تابع مفصل در مقاله ای که راجع به چرخه حیات برنامه (Application life cycle) اندروید است، صحبت خواهیم کرد.

setContentView(R.layout.main); وقتی برنامه به این خط میرسد، نوبت به اجرای گرافیک صفحه است که در layout>main.xml تعریف شده است. همانطور که گفتیم وقتی فایلی در فولدر res ایجاد میشود، مدیریت منابع آدرسی خاص به آن اختصاص میدهد. برای دسترسی به آدرس (بطور خاص در اینجا main) از R.layout.main استفاده شده است.

در قسمت res>layout>main.xml طرح گرافیکی صفحه نشان داده شده است. LinearLayout یکی از چهار حالت گرافیکی است که برای طراحی صفحه بکار گرفته شده است (بعداً در یک مقاله مفصل راجع به انواع layout ها صحبت خواهم کرد). در طراحی خطی هر المان بصری (مانند TextBox, EditBox در دلفی و ویژوال #C) در یک سطر قرار میگیرد. در این برنامه فقط یک TextView داریم که محتوای متنی که باید نشان دهد در res>values>strings.xml قرار گرفته است.
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
برای دیدن نتیجه برنامه بر روی ایمولاتور ابتدا باید AVD را راه اندازی کرد (اگر نمیدانید AVD چیست این مقاله را مطالعه کنید). برای اینکار در اکلیپس بر روی Window>Android SDK and AVD Mamager کلیک کنید. در پنجره ای که باز میشود یکی از ایمولاتورهایی را که ساخته اید، Start کنید.

بعد از چند ثانیه ایمولاتور بوت میشود و بالا می آید. حال در محیط اکلیپس دکمه را Run بزنید (میتوانید در قسمت Project Workspace بر روی نام پروژه خود راست کلیک کنید و از پنجره باز شده Run As>1 Android Application را کلیک کنید). حال میتوانید برنامه خود را بر روی ایمولاتور مشاهده کنید.

انجام پروژه های برنامه نویسی تحت وب،ویندوز، اندروید


انجام پروژه های برنامه نویسی تحت وب،ویندوز، اندروید
در انجمن سفارش برنامه نویس
        خدماتی که من برای شما انجام می دهم
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com

        ساخت اپلیکیشن اندروید
        ساخت افزونه وردپرس
        ساخت افزونه مای بی بی
        نصب انواع سیستم مدیریت محتوا
        تعمیر اسکریپت ها وافزونه های تحت وب
        طراحی و ساخت اسکریپت های تحت وب
        توسعه افزونه ها واسکریپت های تحت وب
        برنامه نویسی قالب سیستم های مدیریت محتوا به سلیقه شما
        ساخت انواع برنامه تحت دسکتاپ با C#.net
        اعمال المان های سئو در قالب و هسته سایت


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

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

ا سری آموزش های قدم به قدم با مونو در خدمت شما هستم این جلسه قصد داریم اولین تجربه برنامه نویسی اندرود رو در محیط ویژوال استادیو با هم تجربه کنیم آیا آماده هستید؟
پس از اجرای ویژوال استادیو از منوی File-> New Project یک پروژه اندروید ایجاد نمایید اگر دقت کرده باشید پس از نصب Xamiran چند نوع پروژه جدید به ویژوال استادیو اضافه شده که یکی از آنها پروژه اندروید است.
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com

پروژه اندروید در ویژوال استادیو
قسمت بالا از میان لیست انتخابی گزینه اول یعنی Blank App Android را انتخاب نمایید بطور پیشفرض Xamiran پروژه Hello World را برای شما ایجاد
می نماید
پروژه اندروید در ویژوال استادیو
پس از اجرای شبیه ساز خود لیست از شبیه سازها  قسمت بالا ویژوال استادیو لیست خواهد شد فقط کافیست شبیه ساز مورد نظر خود را انتخاب نمایید
پروژه اندروید در ویژوال استادیو
پس از اجرای برنامه نتیجه اولین پروژه اندروید خود را مشاهده می کنیم پروژه معرف Hello World
پروژه اندروید در ویژوال استادیو
رسیدیم به پایان یکی دیگه از سری آموزش های قدم به قدم با مونو امیدوارم مفید بوده باشه.
شما با موفقیت تونستید اولین پروژه اندروید در ویژوال استادیو خودتون بسازید ، بدونه هیچ دردسری. در صورتی که تونستید بدونه مشکل برنامه خودتون رو ایجاد و اجرا کنید حس خودتون رو با ما به اشتراک بگذارید یا اگه نتونستید مشکل خودتون رو بگید تا ما بتونیم شما رو راهنماییی کنیم ما بی صبرانه منتظر نظرات شما هستیم .
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com


له برنامه نویسی مایکروسافت شامل C# , WPF , ASP.Net , Asp.Net Mvc و چند سال اندروید کار کردم تا اینکه زامارین دست به کار شد الان 3 ساله برنامه های اندرویدم رو با ویژوال استادیو مینویسم و لذت میبرم و دوست دارم این لذت رو با دیگران شریک باشم
برچسب ها: اندروید در ویژوال استادیو, پروژه اندروید, پروژه مونو اندروید, مونو اندروید


آموزش تصویری xamarin
آموزش تصویری AutoCompleteTextView در Xamarin

منابع اصلی Xamarin
آشنایی با AutoCompleteTextView در Xamarin
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
منابع اصلی Xamarin
منابع (Resources) پیشفرض اندروید

منابع اصلی Xamarin
استفاده از منابع (Resources) اندروید


کنترل های ورودی در زامارین
کنترل های ورودی در زامارین بخش ۲ | روز ۱۵

کنترل های ورودی در زامارین
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com

آشنایی با Services در زامارین
آشنایی با Services در زامارین |

انتقال داده بین Activities
انتقال داده بین Activities در زامارین |

آمادگی انجام انواع پروژه های اندروید(B4A ،اندروید استودیو) و ساخت سایت های فروشگاهی ، وبلاگی، خبری و... و پروژهای

 انجام پروژه دیجی کالا (تحت آندروید)

آمادگی انجام انواع پروژه های اندروید(B4A ،اندروید استودیو) و ساخت سایت های فروشگاهی ، وبلاگی، خبری و... و پروژهای

گرافیست نظیر ساخت انواع پوستر ، ساخت لوگو تخصصی و... را با تعرفه مناسب و مطابق با زمان مدنظر کارگذار محترم دارد. در عین حال دیج
نیچ محیط مناسبی برای آن دسته از اشخاص و فارغ التحصیلان ممتازی است که به دنبال کسب درآمد از مهارت های خود می باشند و می خواهند
از آموخته های خود نتیجه بگیرند.
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


بهینه سازی پروژه ه

بهینه سازی پروژه های  شرظ بندی
بهینه سازی پروژه های
بهینه سازی پروژه های مستهجن
بازاریابی اینترنتی سایت های سیاسی (ضد انقلاب اسلامی ایران ؛ ضد قوانین جمهوری اسلامی ایران)
بازاریابی اینترنتی های تبلیغ مذاهب ضد قوانین ایر
بازاریابی اینترنتی سایت های شرظ بندی
بازاریابی اینترنتی سایت های مدل(ضد خلاف دین مبین اسلام)
بازاریابی اینترنتی سایت های مستهجن
طراحی سایت ها و برنامه های اندروید
طراحی سایت ها و برنامه های اندروید تب
طراحی سایت ها و برنامه های اندروید شرظ بندی
طراحی سایت ها و برنامه های اندروید مدل(
طراحی سایت ها و برنامه های اندروید مستهجن
  # شرایط استفاده از خدمات سایت :
به محض عضویت شما در سامانه مشتریان سایت دیجی نیچ، عضویت شما بیانگر پذیرش کلیه ضوابط و مقررات سایت بوده و متعهد هستید به این ضوابط احترام گذاشته و آن‌ها را رعایت نمایید.
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
 
برای ثبت درخواست پروژهای خود از فرم زیر اقدام فرمایید
و در قسمت (پیام شما) اطلاعات خود را وارد کرده مخصوصا اطلاعات تماس خود تا ما با شما تماس حاصل فرماییم
شما میتوانید از تب و قسمت (راه های ارتباطی دیگر) به طور مستقیم با ما در تماس باشید و درخواست خود را ثبت نمایید.

آموزش برنامه‌نویسی جاوا و اندروید

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

create-android-project-8-package-explorer

در آغاز باید توضیح دهیم که در نسخه های متأخر Android SDK وقتی یک پروژه اندروید می سازید، در واقع دو پروژه در اکلیپس ساخته می شود که یکی از آنها یک برنامه کتابخانه است. در واقع برنامه اصلی (در اینجا HelloWorld) برای اجرا نیاز به برنامه کتابخانه (در اینجا appcompat_v7) دارد. در فصل های آینده درباره این کتابخانه خاص که به برنامه اضافه می شود، توضیح خواهیم داد.

قسمت های اصلی این پروژه به شرح زیر است:

    src: این شاخه شامل کلیه کدهای برنامه است. همانطور که می دانید در برنامه های جاوا کلاس ها درون بسته (package) تعریف می شوند. در این شاخه کلیه بسته های برنامه را می بینید که با باز کردن هر کدام از آنها کلاس های داخل آنها را می توانید ببینید. در برنامه HelloWorld فقط یک کلاس است به اسم MainActivity. در قسمت های بعدی درباره Activity ها که یکی از اصلی ترین اجزای هر برنامه اندروید است، بیشتر آشنا می شوید.
    gen: هر برنامه اندروید که ساخته می شود، کلاسی دارد به نام R. این کلاس به صورت خودکار ساخته می شود و شما نباید محتوای آن را تغییر دهید زیرا با هر بار اجرای برنامه، این کلاس دوباره ساخته می شود. این کلاس در شاخه gen (مخفف generated) قرار دارد.
    assets: بعضی برنامه ها ممکن است فایل هایی داشته باشند که در داخل برنامه به آنها نیاز است. مثلاً برنامه می تواند شامل انواع فونت های مختلف باشد یا یک پایگاه داده که از قبل ساخته شده و با داده پر شده است یا تعدادی فایل HTML و جاوااسکریپت و CSS یا فایل های PDF و … این شاخه برای ذخیره این فایل ها است. این فایل ها در فایل apk برنامه (فایلی که در دستگاه های اندرویدی نصب می شود) قرار می گیرند.
    bin: نام این شاخه مخفف binary است و فایل هایی که بعد از ساخت (build) برنامه ساخته می شوند در آن قرار داده خواهند شد. یکی از این فایل ها apk برنامه است.
    libs: اگر برنامه برای کامپایل و اجرا نیاز به کتابخانه های جاوا یا C و C++ داشته باشد، فایل های jar کتابخانه را در این شاخه کپی می کنیم. به صورت پیش فرض در این شاخه یک کتابخانه به نام android-support-v4.jar قرار دارد. درباره این کتابخانه در آینده بیشتر خواهیم گفت.



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

    res: هر برنامه اندروید، تشکیل شده است از تعدادی صفحات که کاربر می بیند و با آنها تعامل دارد. برای طراحی رابط کاربری این صفحات، به فایل هایی از انواع مختلف نیاز داریم. مثلاً تصاویر، فایل های صوتی و تصویری، صفحات چیدمان (layout) (که ترتیب قرار گرفتن عناصر برنامه در صفحه را مشخص می کنند)، منوها، انیمیشن ها، ترجمه های مختلف برنامه برای زبان های مختلف، تنطیمات و … همه این عناصر در این شاخه قرار می گیرند.

    AndroidManifest.xml: این فایل محل تنظیم اصلی ترین اطلاعات برنامه است. هر چیزی که در اندروید ایجاد می کنیم، باید اینجا هم تعریف کنیم. مجوزهایی که برنامه نیاز دارد، اینجا تعریف می شود و …

حالا اصلی ترین اجزای برنامه HelloWorld را در اینجا معرفی می کنیم:

چیدمان activity_main.xml: این فایل شاخه res/layout قرار دارد. این فایل یک صفحه از برنامه اندرویدی HelloWorld (و در اصل تنها صفحه آن) است. اگر آن را باز کنید، این صفحه را در محیط طراحی گرافیکی اندروید به شکل زیر خواهید دید:

ch5-android-graphical-layout

اگر بخواهیم کد XML این صفحه را ببینم باید از پایین صفحه سمت چپ، بر روی زبانه activity_main.xml کلیک کنیم و اگر دوباره خواستیم به محیط طراحی گرافیکی برگردیم، زبانه Graphical Layout را کلیک می کنیم:

ch5-android-source-layout
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
کد XML که این صفحه را می سازد به شکل زیر است:

ch5-android-source-layout2

در چند فصل بعدی به طور کامل با نحوه ساختن چیدمان (layout) در اندروید آشنا خواهید شد.

کلاس HelloWorld: این کلاس جاوا که در شاخه src و در داخل بسته (package) اصلی برنامه (ir.smartlab.android.helloworld) قرار دارد شامل یک کلاس با چندین متد است. به کد این کلاس دقت کنید:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
   
package ir.smartlab.android.helloworld;
 
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
 
public class MainActivity extends ActionBarActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

همانطور که می بینید این کلاس، کلاس Activity را توسعه داده است (یا به عبارتی از آن ارث برده است). Activity یکی از اصلی ترین اجزای برنامه نویسی اندروید است. هر صفحه ای که در برنامه های اندرویدی می بینید، در اصل یک Activity است. کد و برنامه آن در یک فایل جاوا و چیدمان آن در یک فایل xml قرار دارد.

از میان متدهای این کلاس، مهم ترین متد، onCreate است:
1
2
3
4
   
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

خط دوم این متد را ببینید. این خط قلب اصلی این کلاس است. این خط، این Activity را به چیدمانی که قبلاً ساخته شده است مرتبط می کند. یعنی می گوید طرحی که این صفحه قرار است به کاربر نمایش دهد در فایلی به نام activity_main که در شاخه layout در منابع (res) قرار دارد. اینجا اولین کاربرد کلاس R که پیشتر درباره اش گفتیم را می بینید.

AndroidManifest.xml: اگر این فایل را باز کنید، صفحه طراحی مخصوص این فایل را می بینید:

ch5-manifest-settings

احتمالاً بعد از دیدن این همه تنظیمات ممکن است ترسیده باشید! البته واقعاً نکات زیادی درباره این فایل و تنطیمات یک برنامه اندروید وجود دارد. ولی آنچه فعلاً برای ما مهم است، چند مورد بیشتر نیست. زبانه AndroidManifest.xml را باز کنید تا سری به کد XML این فایل بیاندازیم:
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com26
   
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ir.smartlab.android.helloworld"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>

در واقع این فایل شامل همه تنظیماتی است که در ویزارد ایجاد یک پروژه اندروید در فصل قبل انجام دادیم. حال به ترتیب از بالا به پایین مهم ترین نکات این تنطیمات را تشریح می کنیم.

۱- package برنامه:
1
   
package="ir.smartlab.android.helloworld"

هر برنامه اندروید باید به صورت یکتا توسط اندروید شناسایی شود. این شناسه منحصر به قرد اسم بسته اصلی برنامه است. در ویزارد ایجاد یک پروژه جدید در فصل قبل در اولین دیدید که در همان اولین قسمت ویزارد، نام بسته برنامه از شما خواسته می شود. همانطور که در «آموزش جاوا، فصل دهم: کلاس ها در برنامه نویسی شیءگرا» گفتیم، شیوه ساختن بسته برای یک برنامه جاوا (وبالتبع برنامه اندروید) استفاده از نام دامنه متعلق به نویسنده در ابتدای نام بسته است:

«برای نامگداری بسته ها از وارونه نام دامنه (Domain) شرکت استفاده کنید. مثلاً اگر در شرکت The Best Software Company کار می کنید و نام دامنه شرکت شماwww.company.com است، بسته های خود را با com.company آغاز کنید. به دلیل این که نام دامنه ها در جهان یکتا هستند، نامگذاری بسته های شما و در نتیجه کلاس های شما نیز یکتا خواهد بود.»

حالا برای اندروید، یک قسمت دیگر هم باید به نام بسته اضافه کنیم: نام برنامه. برای برنامه HelloWorld نام دامنه را به این شکل تعریف می کنیم: ir.smartlab.android.helloworld. این نام بسته کاملاً منحصر به فرد است زیرا دامنه منحصر به فرد است و اگر نام برنامه را هم منحصر به فرد انتخاب کنیم، نام بسته که به عنوان شناسه برنامه ها در اندروید به کار می رود نیز همیشه یکتا خواهد بود.
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
احتمالاً برایتان سؤال پیش آمده که اگر نام بسته یکتا نباشد چه اتفاقی می افتد؟ خیلی ساده است؛ اندروید اجازه نصب دو برنامه با نام بسته یکسان در یک دستگاه را نمی دهد! البته بازارهای برنامه های اندروید مثل Google Play و کافه بازار هم اجازه انتشار دو برنامه با نام بسته یکسان را نمی دهند. پس در انتخاب نام بسته دقت کنید.

۲- versionCode و versionName برنامه:
1
2
   
android:versionCode="1"
android:versionName="1.0"

هر برنامه اندروید ممکن است بارها و بارها منتشر شود. برخی از این انتشارها به علت رفع خطاهای موجود در برنامه ها و برخی به علت افزودن ویژگی های جدید به برنامه ها است. وقتی یک برنامه قرار است مجدداً منتشر شود، هم خود برنامه باید بداند از چه نسخه ای به چه نسخه ای قرار است ارتقا پیدا کند، هم دستگاه اندرویدی که این برنامه بر روی آن نصب است باید نسخه برنامه را بداند و البته بازارهای برنامه (Google Play  و کافه بازار). بنابراین شما باید به نوعی نسخه برنامه را درون خود برنامه قرار دهید. برای این کار دو ویژگی versionCode و versionName در مانیفست تعریف می شوند. versionCode یک عدد است که در هر بار ارتقای برنامه، باید عددی بزرگتر از عدد قبلی باشد و فقط اعداد صحیح را می توانیم به عنوان versionCode معرفی کنیم. مثلاً از نسخه ۱ برنامه را به نسخه ۲ ارتقا می دهیم. ویژگی versionCode را بازارها و دستگاه می خوانند ولی به کاربران نشان داده نمی شود زیرا غالباً سیستم ورژن گذاری برنامه ها در شرکت ها متفاوت است. خیلی از شرکت ها بین ارتقایی که فقط خطاها را رفع می کند و ارتقایی که ویژگی های جدید به نرم افزار اضافه می کند فرق می گذارند. versionName هر عبارت متنی را می پذیرد و برای مثال می توانید در ارتقا از نسخه ۱ به ۲، versionName را از ۱٫۰٫۰ به ۱٫۰٫۱ تغییر دهید. versionCode را بازارها و دستگاه های اندروید به کاربر نمایش می دهند.

۳- minSdkVersion:
1
   
android:minSdkVersion="8"
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
ابتدا لازم است فرق بین SDK version و Android version را بدانید. اندروید یک سیستم عامل است و به صورت مستقل در حال تکامل است. ابزارهای برنامه نویسی آن (که با نام Android SDK) شناخته می شود، پروژه مستقل دیگری است. معمولاً با هر عرضه جدید از سیستم عامل اندروید، نسخه جدیدی از Android SDK هم منتشر می شود. ولی ممکن است عرضه جدید اندروید منحصر به رفع خطاهای اندروید باشد و ویژگی جدیدی به آن اضافه نشود. بنابراین Android SDK بدون تغییر بماند. یا بر عکس، Android SDK بروزرسانی شود بدون این که نسخه جدیدی از سیستم عامل اندروید منتشر شود. به همین دلیل سیستم عامل اندروید نسخه های خودش را دارد و Android SDK نسخه های خودش را. نسخه های اندروید مثلاً ۴٫۴ است که با نام تجاری KitKat در بازار شناخته می شود. نسخه های Android SDK به صورت عددی هستند و نام تجاری ندارند. نسخه های Android SDK اصطلاحاً API Level نامیده می شوند و به صورت عددی هستند. برای مثال همراه با اندروید KitKat نسخه ای از Android SDK منتشر شد که API Level 19 نامیده می شود. در برنامه نویسی اندروید آن چیزی که مهم است نسخه Android SDK یا همان API Level است.

minSdkVersion شماره پایین ترین API Level ی است که برنامه شما پشتیبانی می کند و بر روی دستگاه هایی که API Level آنها کمتر از مقدار minSdkVersion باشد، برنامه شما نصب نخواهد شد. در هنگام ایجاد یک پروژه اندروید (رجوع کنید به فصل قبل) minSdkVersion در همان اولین مرحله ویزارد تحت عنوان Minimum Required SDK از شما پرسیده می شود ولی اینجا هم می توانید آن را تغییر دهید.

فرض کنید minSdkVersion را ۸ انتخاب کنید. معنی این انتخاب این است که برنامه شما بر روی دستگاه هایی که API Level آنها کمتر از ۸ است اجرا نخواهد شد. اگر به جدول زیر دقت کنید می بینید که API Level اندروید Froyo (نسخه ۲٫۲) ۸ است. بنابراین برنامه شما بر روی اندرویدهای ۲٫۱ و ماقبل اجرا نخواهد شد.
Platform Version     API Level     VERSION_CODE     Notes
Android 4.4     ۱۹     KITKAT     Platform
Highlights
Android 4.3     ۱۸     JELLY_BEAN_MR2     Platform
Highlights
Android 4.2, 4.2.2     ۱۷     JELLY_BEAN_MR1     Platform
Highlights
Android 4.1, 4.1.1     ۱۶     JELLY_BEAN     Platform
Highlights
Android 4.0.3, 4.0.4     ۱۵     ICE_CREAM_SANDWICH_MR1     Platform
Highlights
Android 4.0, 4.0.1, 4.0.2     ۱۴     ICE_CREAM_SANDWICH
Android 3.2     ۱۳     HONEYCOMB_MR2     <!– Platform
Highlights–>
Android 3.1.x     ۱۲     HONEYCOMB_MR1     Platform Highlights
Android 3.0.x     ۱۱     HONEYCOMB     Platform Highlights
Android 2.3.4
Android 2.3.3     ۱۰     GINGERBREAD_MR1     Platform
Highlights
Android 2.3.2
Android 2.3.1Android 2.3     ۹     GINGERBREAD
Android 2.2.x     ۸     FROYO     Platform Highlights
Android 2.1.x     ۷     ECLAIR_MR1     Platform
Highlights
Android 2.0.1     ۶     ECLAIR_0_1
Android 2.0     ۵     ECLAIR
Android 1.6     ۴     DONUT     Platform Highlights
Android 1.5     ۳     CUPCAKE     Platform Highlights
Android 1.1     ۲     BASE_1_1    
Android 1.0     ۱     BASE    

نکته ای که توجه به آن ضروری است این است که اینجا باید همیشه بین انتخاب یک نسخه از API Level که بیشترین دستگاه های موجود در بازار آن را پشتیبانی می کنند و امکانات آن ها صورت گیرد. برای مثال اگر می خواهید از امکانات Download Manager اندروید در برنامه های خود بهره بگیرید، می بینید که این ویژگی در API Level 9 معرفی شده است و اگر minSdkVersion  خود را ۸ انتخاب کنید نمی توانید از آن استفاده کنید. اگر minSdkVersion را ۹ انتخاب کنید، در عوض چند درصدی از گوشی های موجود در بازار دیگر نمی توانند برنامه شما را اجرا کنند. توصیه گوگل این است که سعی کنید ۹۵ درصد دستگاه های موجود در بازار را پشتیبانی کنید. بنابراین minSdkVersion خود را نسخه ای انتخاب کنید که تعداد دستگاه هایی که API Level آن ها کمتر از مقدار فوق است، کمتر ار ۵ درصد دستگاه های موجود در بازار باشند.
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
حال احتمالاً می پرسید از کجا بدانیم درصد استفاده از هر API Level در گوشی ها چقدر است؟ پرسش به جایی است. گوگل به صورت منظم اطلاعاتی را منتشر می کند که درصد استفاده از نسخه های مختلف اندروید را به همراه انبوهی از اطلاعات مفید دیگر منتشر می کند. برای دسترسی به این اطلاعات بخش Dashboard در سایت توسعه دهندگان اندروید بروید:

ch5-android-dashboard-versions

این آخرین اطلاعاتی است که در زمان نگارش متن منتشر شده و مربوط به حدود ۳ هفته قبل است. همانطور که می بینید برای این که شرط ۹۵ درصد محقق شود، می توانید minSdkVersion را ۱۰ تعریف کنید.

(خیلی طولانی شد! ولی لازم بود!)

۴- targetSdkVersion:
1
   
android:targetSdkVersion="21"

targetSdkVersion را همواره بالاترین نسخه API Levelی که منتشر شده و شما هم دانلود کرده این قرار بدهید. در حال حاضر این مقدار احتمالاً ۱۹ (مربوط به KitKat) یا ۲۱ (مربوط به پیش نمایش Android L) است. کاربرد آن را در آینده خواهید دید.

۵- تگ Application:
109367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com6
   
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
</application>

در این تگ اطلاعات کلی درباره نام برنامه، آیکون برنامه، تم (زمینه) برنامه و … و نیز کلیه Activityها، Serviceها و BroadcastReceiver ها تعریف می شوند. (عجله نکنید! در انتهای این دوره آموزشی به همه اینها آشنا می شوید!)

۵-۱- android:allowBackup: اگر مقدار این ویژگی true باشد، برنامه های بکاپ گیری می توانند اطلاعات محرمانه برنامه را بخوانند و آن ها را ذخیره کنند. در صورت که false باشد، برنامه های بکاپ گیری نمی توانند از برنامه شما بکاپ تهیه کنند. انتخاب با شما است.

۵-۲- android:icon: آیکون برنامه شما را مشخص می کند. در فصل های آتی مفصل درباره موضوع تصاویر و عکس ها و آیکون ها در اندروید خواهیم گفت.

۵-۳- android:label: عنوان یا نام برنامه در دستگاه را مشخص می کند. در فصل های آتی مفصل درباره پشتیبانی همزمان از چند زبان در اندروید خواهیم گفت.
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
۵-۴- android:theme: اندروید از نسخه ۴ به بعد از تم پشتیبانی می کند و ۲ تم Holo Light و Holo Dark دارد. می توانید از یکی از این ۲ تم استفاده کنید یا آن ها را بسته به نیاز خود تغییر دهید یا اگر وقت و سلیقه و توانایی کار با ابزارهای گرافیکی و البته دانش اندروید دارید یک تم جدید بسازید. App Theme که اینجا به عنوان تم برنامه معرفی شده است، تمی است که از تم Holo مشتق شده است و می توانید آن را تغییر دهید تا بر نیازهای شما منطبق شود. در فصل های خیلی دور (!) درباره تم خواهیم گفت. فعلاً کارهای خیلی مهم تری از تم نوشتن داریم!

۶- تگ Activity:
1
2
3
4
5
6
7
8
9
   
<activity
 android:name=".MainActivity"
 android:label="@string/app_name" >
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />
 09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
 <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity>

همانطور که گفتیم در داخل تگ Application باید همه Activity ها را تعریف کرد. برنامه ما فعلاً یک صفحه بیشتر ندارد و در نتیجه یک Activity هم بیشتر ندارد. این تگ خود چندین ویژگی دارد:

۶-۱- android:name: نام کلاس جاوای مرتبط با این Activity است. نام کلاس را یا باید کامل و به همراه بسته (package) بنویسید مثل ir.smartlab.android.helloworld.MainActivity یا آن را خلاصه کنید. برای خلاصه کردن می توانید نام package برنامه را از آن حذف کنید: MainActivity.
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
۶-۲- android:label: نامی است که برای این Activity انتخاب کرده اید. این نام در چندین جا ظاهر می شود که مهم ترین آن در بالای صفحه برنامه و در نواری که اصطلاحاً ActionBar نامیده می شود (قسمتی که با رنگ زرد مشخص شده است):


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