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

 
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

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

http://ehsanavr.com/wp-content/uploads/2013/04/android-training.jpg

با سلام و احترام خدمت کاربران گرامی سایت راسخون

در این تاپیک قصد داریم مطالب آموزشی درباره برنامه نویسی اندوید را به صورت مبحث های دسته بندی شده خدمتتان ارائه دهیم.

محتواهای ارائه شده ، برداشت شده از سایر سایت ها است و محتواها آماده شده توسط خودم نیست اما در صورت وجود وقت کافی و علاقه مندی زیاد کاربران به این مبحث ، مطمئناً دوره آموزشی برنامه نویسی اندروید را خدمت کاربران ارائه خواهم داد.

برای آموزش برنامه نویسی اندورید مطمئناً نیاز است که برنامه نویسی جاوا را کار کرده باشید ، در صورتی که آشنایی با برنامه نویسی جاوا ندارید می توانید برای یاد گرفتن این زبان برنامه نویسی به لینک زیر مراجعه کنید .

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

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

در صورتی که پیشنهاد ، انتقاد یا نظری در این زمینه دارید ، خوشحال خواهم شد که بتوانم پاسخگوی شما باشم.

تاپیک انتقادات،پیشنهادات تالار برنامه نویسی

موفق باشید

دوشنبه 23 دی 1392  01:49 ب.ظ
تشکرات از این پست
AliFanoodi arkhsha DR460N siriranmanesh amirhmz amin_j a_sadri mahmood_3074 nargesza ghashghaei ria1365 mhzahraee nikonazar alireza110
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

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


اهداف آموزشی این قسمت عبارتند از:
1. معرفی سیستم عامل اندروید
2. معرفی تاریخچه اندروید
3. معرفی کنسرسیوم توسعه اندروید
4. آشنایی با زبان برنامه نویسی اندروید
5. معرفی نسخه های مختلف اندروید
6. آشنایی با محیط برنامه نویسی اکلیپس
7. آشنایی با نسخه ADT Bundle محیط برنامه نویسی اکلیپس
8. آشنایی با محیط برنامه نویسی اندروید استودیو شرکت گوگل
9. آشنایی با محیط برنامه نویسی Beacon Mountain شرکت اینتل

 

معرفی سیستم عامل اندروید

سیستم عامل اندروید(که گاهی آندروید هم در زبان فارسی تلفظ می شود) به منزله اولین سیستم عامل جامع و کامل موبایل است که به صورت Open Source منتشر شده است(به طور خلاصه Open Source به شرایطی گفته می شود که چیزی به صورت رایگان در دسترس همگان قرار گیرد که نه تنها بتوانند از آن استفاده کنند بلکه بتوانند بسته به نیازهای خود تغییراتی هم در آن ایجاد نمایند).


تاریخچه اندروید

این سیستم عامل در ابتدا توسط آقای اندی روبین مدیر عامل شرکت اندروید و همکارانش طراحی شد و در سال 2005 شرکت گوگل این شرکت را خریداری کرد. کلمه اندروید به معنی روبات انسان نما است و شاید علت این وجه تسمیه هم علاقه زیاد آقای روبین به روبات ها بوده است. در نوامبر سال 2007 گروهی از تولید کنندگان مطرح تجهیزات الکترونیکی همچون موبایل و تجهیزات بی سیم به علاوه یکسری از شرکت ها نرم افزاری که از آن جمله می توان به گوگل اشاره کرد که در ابتدا 34 شرکت بودند و سال به سال به تعداد اعضا افزوده شد، در کنار یکدیگر جمع شده و کنسرسیومی را تشکیل دادند که هدف آن ایجاد یک سیستم عامل موبایل Open Source بود تا از این طریق بتوانند هزینه های تولید اپلیکیشن های موبایل را کاهش دهند. در حقیقت از آنجا که شرکت گوگل در این کنسرسیوم رویکردی نرم افزاری داشت و از سوی دیگر صاحب اصلی این سیستم عامل هم محسوب می شد، از این رو به عنوان رهبر اصلی این سیستم عامل جدید انتخاب گردید.

برای این منظور این کنسرسیوم که Open Handset Alliance نام داشت چیزی تحت عنوان SDK که در برگیرنده ابزارهای نرم افزاری مورد نیاز برای توسعه اپلیکیشن های اندروید بود را منتشر کرد( در واقع SDK مخفف واژگاه Software Development Kit به معنی پیکیج توسعه نرم افزار می باشد). از سوی دیگر سایت http://developer.android.com توسط برنامه نویسان این شرکت گوگل همواره برای ارائه آخرین نسخه های SDK ، دانلود محیط های برنامه نویسی و همچنین مستندات این سیستم عامل به روز نگه داشته می شود. در سال 2007 بود که نسخۀ بتای سیستم عامل اندروید به بازار معرفی شد و در اکتبر سال 2008 اولین گوشی موبایل با سیستم عامل اندروید که T-Mobile G1 از شرکت HTC نام داشت روانه بازار شد. از آن سال به بعد شرکت های سازنده تلفن های همراه یکی پس از دیگری به این سیستم عامل روی آوردند و نه تنها تلفن های همراهی مجهز به این سیستم عامل طراحی کردند، بلکه ابزارهای الکترونیکی دیگری همچون تبلت، ساعت، کتاب خوان الکترونیک و حتی تلویزیون هم با این سیستم عامل طراحی کردند.


زبان برنامه نویسی سیستم عامل اندروید

زبان برنامه نویسی اصلی این سیستم عامل زبان جاوا است که به عنوان پرکاربرد ترین زبان برنامه نویسی در دنیا است و به طور حتم علت انتخاب این زبان برنامه نویسی برای سیستم عامل اندروید این بوده است که جاوا بسیار قدرتمند بوده و در عین حال Open Source نیز می باشد(لازم به ذکر است در توسعه این سیستم عامل در دیگر زبان های برنامه نویسی مثل زبان سی و زبان سی پلاس پلاس نیز تا حدودی استفاده شده است).

اما این بدان معنا نیست که برنامه نویسانی با تسلط به دیگر زبان های برنامه نویسی نمی توانند برای این سیستم عامل اپلیکیشن طراحی کنند. در حقیقت کسانیکه که به HTML5 و JavaScript تسلط دارند خواهند توانست برای این سیستم عامل اپلیکیشن های تحت وب طراحی کنند. از سوی دیگر برنامه نویسان سی و همچنین سی پلاس پلاس می توانند با استفاده از NDK که مخفف Native Development Kit است اقدام به توسعه اپلیکیشن های اندروید با استفاده از زبان های فوق الذکر نمایند.

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


معرفی نسخه های مختلف اندروید

نکته ای که در مورد نسخه های اندروید تا حدودی عجیب ولی در عین حال جالب توجه است این می باشد که نسخه های مختلف بر اساس نام دسرهای میان وعده نامگذاری شده اند. نسخه اول سیستم عامل اندروید که 1 بود نام خاصی نداشت و بیشتر کارایی اینترنتی داشت و در عمل توان رقابت با هیچ سیستم عاملی را نداشت. سپس نسخه 1.1 طراحی شد که مجدداً بدون نام انتشار یافت. نسخه 1.5 که Cupcake به معنی کیک فنجانی بود به منزله اولین نسخه دارای نام سیستم عامل اندروید است(برای درک بهتر معنی این واژه می توان کیک یزدی را متصور شد). نسخه 1.6 که Donut به معنی پیراشکی نام داشت پس از نسخه 1.5 انتشار یافت. نسخه بعدی که 2.0-2.1 بود Eclair یا نان خامه ای نام داشت. نسخه بعد که 2.2 بود تحت عنوان Froyo به معنی ماست یخی روانه بازار شد. سپس نسخه 2.3 تحت عنوان Gingerbread به معنی نان زنجبیلی معرفی شد.

قدم بعدی اندروید بازار تبلت ها بود که برای همین منظور نسخه 3.0 تحت عنوان Honeycomb به معنی شانه عسل را معرفی کرد. سپس نسخه 4.0 که Ice cream Sandwich یا بستنی حصیری نام داشت تلفیقی از ویژگی های اندروید 3.0 که برای تبلت های طراحی شده بود به علاوه یکسری ویژگی های جدید بود که این نسخه برای کلیه تجهیزات اندرویدی از موبایل گرفته تا تبلت مورد استفاده قرار می گیرد. در زمان انتشار این سری از آموزش ها آخرین نسخه اندروید 4.3 است که Jelly Bean به معنی آب نبات پاستیلی است.

نکته دیگری که در مورد نحوه نامگذاری نسخه های مختلف اندروید می بایست مد نظر قرار داده شود این است که نام دسرهای انتخابی بر اساس حروف الفبا پیش می روند. به طور مثال همانطور که در الفبای انگلیسی حرف D قبل از حرف E قرار می گیرد، نام انتخابی برای نسخه 1.5 معادل با Donut بود و پس از آن در نسخه 1.6 نام Eclair انتخاب شد(بر اساس حروف الفبا کلمه Donut پیش از کلمه Eclair قرار می گیرد). جهت آشنایی با تاریخچه و همچین قابلیت های هریک از نسخ اندروید به نمودار زیر توجه نمایید:


050492aplikeshenimage1.jpg

محیط برنامه نویسی اکلیپس

به منظور شروع برنامه نویسی برای اندروید چند رویکرد متفاوت را می توان اتخاذ کرد که در این قسمت به طور خلاصه این محیط های برنامه نویسی را معرفی می کنیم.

معروف ترین محیط برنامه نویسی برای توسعه اندروید محیط برنامه نویسی اکلیپس به همراه ابزارهای SDK وADT است. در واقع از آنجا که محیط برنامه نویسی اکلیپس Open Source است شرکت گوگل تمایل به مراتب بیشتری برای فراهم آوردن ابزارهای توسعه اندروید برای این محیط برنامه نویسی قدرتمند از خود نشان داده است(نحوه دانلود، نصب و کار با این محیط برنامه نویسی در آموزش هفتم به طور مفصل توضیح داده خواهد شد).


نسخه ADT Bundle محیط برنامه نویسی اکلیپس

این محیط برنامه نویسی دقیقاً همان محیط برنامه نویسی اکلیپس است با این تفاوت که خود شرکت گوگل تغییراتی در آن صورت داده و آن را منتشر کرده است. این محیط برنامه نویسی بر خلاف اکلیپس که برای توسعه اندروید می بایست تنظیمات خاصی در آن انجام داد، در برگیرندۀ کلیه ابزارهای لازم برای توسعه اندروید از جمله SDK و ADT و Emulator بوده و کاربران دیگر نیازی به دانلود کردن این ابزارها به صورت مجزا نخواهند داشت. لازم به ذکر است توسعه دهندگانی که با نحوه کار با محیط برنامه نویسی اکلیپس آشنایی داشته باشند به راحتی خواهند توانست از این محیط هم در تولید اپلیکیشن اندروید استفاده کنند(نحوه دانلود و نصب این محیط برنامه نویسی در آموزش هفتم توضیح داده خواهد شد).


محیط برنامه نویسی اندروید استودیو

اندروید استودیو (Android Studio) محیطی برای توسعه برنامه های اندرویدی است که برای اولین بار خود شرکت گوگل بر پایه محیط برنامه نویسی قدرتمندIntelliJ IDEA طراحی کرده است که همانند اکلیپس ابزارهای لازم برای طراحی، توسعه و مشکل یابی برنامه ها را داراست. اولین نسخه از اندروید استودیو در کنفرانس سالیانه گوگل که در اردیبهشت ماه سال 1391 اتفاق افتاد تحت عنوان نسخه1 معرفی شد(نحوه دانلود، نصب و کار با این محیط برنامه نویسی در آموزش پنجم به طور مفصل توضیح داده خواهد شد).


محیط برنامه نویسی Beacon Mountain

شرکت معروف اینتل یک محیط برنامه نویسی جدید تحت عنوان Beacon Mountain ساخته که ادعا می کند این ابزار جدید این امکان را به توسعه دهندگان اندروید می دهد تا بتوانند با صرف زمان کمتر و نوشتن کد کمتر دست به توسعه اپلیکیشن های اندرویدی بزنند(از آنجا که این محیط برنامه نویسی تازه به بازار معرفی شده است و این احتمال می رود که دارای یکسری Bug باشد، از توضیح پیرامون نحوه کار با این نرم افزار خودداری می کنیم اما علاقمندان به تست کردن این برنامه می توانند با مراجعه به آدرس http://software.intel.com/en-us/vcsource/tools/beaconmountain این نرم افزار را به صورت رایگان دانلود نمایند).

در این سری از آموزش ها از میان این محیط های توسعه اپلیکیشن اندروید تمرکز روی محیط برنامه نویسی اکلیپس خواهد بود و این در حالی است که نحوۀ نصب و کار با محیط برنامه نویسی اندروید استودیو نیز آموزش داده خواهد شد چرا که به نظر می رسد این محیط برنامه نویسی به عنوان تنها رقیب اصلی اکلیپس در آینده ای نه چندان دور مبدل خواهد شد.

پس از آشنایی با خصوصیات کلی اندروید و همچنین محیط های برنامه نویسی موجود برای توسعه اپلیکیشن اندروید، در قسمت آموزشی دوم با ساختار این سیستم عامل محبوب و اجزای تشکیل دهندۀ آن بیشتر آشنا خواهیم شد.

 

منبع : لینک

دوشنبه 23 دی 1392  01:55 ب.ظ
تشکرات از این پست
AliFanoodi arkhsha amirhmz amin_j kaka rasekhonsalehi nikonazar
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی اندروید - قسمت ۲: آشنایی با اجزای تشکیل دهنده اندروید

اجزای تشکیل دهندۀ سیستم عامل اندروید

سیستم عامل اندروید بر پایه سیستم عامل لینوکس طرح ریزی شده است و ماشینی مجازی در این سیستم عامل تحت عنوان Dalvik تعبیه شده است که برای دستگاه های موبایل بهینه سازی شده است. به طور خلاصه می توان گفت که این ماشین مجازی دارای وظایف متعددی از جمله مدیریت حافظه، سهولت در استفاده از Sandbox در تولید اپلیکیشن، فشرده سازی بیشتر اپلیکیشن و سازگاری با CPU های مختلف در انواع مختلف دستگاه ها بدون نیاز به بازنویسی اپلیکیشن برای هر CPU خاص می باشد(در آموزش سوم با مفهوم Sandbox بیشتر آشنا خواهیم شد).

برای جستجو در اینترنت، سیستم عامل اندروید از موتور جستجوی Open Source یی تحت عنوان WebKit استفاده می کند. به منظور پردازش عکس های دو بعدی و سه بعدی، سیستم عامل اندروید از OpenGL ES استفاده می کند و برای ذخیره سازی اطلاعات از SQLite استفاده می کند.

همانطور که در آموزش اول اشاره شده، زبان برنامه نویسی اصلی سیستم عامل اندروید جاوا است. در واقع پس تکمیل یک اپلیکیشن اندروید، این اپلیکیشن در قالب یک فایل با پسوند apk که مخفف Android Package است Compile می شود که این فایل را می توان در بازارهای مختلفی همچون Google Play و غیره در اختیار علاقمندان قرار داد تا بتوانند با نصب آن از اپلیکیشن ها استفاده نمایند.

به طور خلاصه یک اپلیکیشن اندروید از Component های مختلفی که در ادامه این آموزش به چهار مورد از اصلی ترین ها اشاره می شود، یک فایل Manifest و Resource های متفاوتی تشکیل می شود. در ادامه هر یک از این اجزا را مورد بررسی قرار خواهیم داد.

برای ساخت یک اپلیکیشن اندروید چهار Component اصلی وجود دارد که عبارتند از: Activity و Service و Content Provider و Broadcast Receiver.


معرفی Activity ها در اندروید

در صورتیکه بخواهیم معنای یک Activity را در سیستم عامل اندروید به خوبی متوجه شویم، می توان آن را به منزله یک صفحه از اپلیکیشن تصور کرد. برای روشن شدن این مسئله مثالی ذکر می کنیم. فرض کنیم که یک اپلیکیشن را اجرا می کنیم. این اپلیکیشن پس از اجرا وارد صفحه اصلی برنامه می شود. این صفحه اصلی یک Activity است. حال می بینیم که چندین دکمه در این صفحه اصلی برای رفتن به بخش های مختلف برنامه تعبیه شده به طور مثال یک دکمه جهت صفحه راهنما، یک دکمه جهت ارتباط با طراح اپلیکیشن، یک دکمه جهت وارد شدن به موتور جستجو در اینترنت و غیره. زمانیکه ما پس از زدن دکمه راهنما وارد صفحه راهنما می شویم در واقع وارد یک Activity دیگر شده ایم. اکنون این Activity جدید Activity قبلی که مربوط به صفحه اصلی برنامه بود را پس زده و جای آن را می گیرد. در این حین اگر دکمه Back تلفن همراه خود را فشار دهیم، Activity قبلی مجدد بالا آمده و Activity مربوط به صفحه راهنما را پس می زند.

اکنون ببینیم که یک Activity را به چه نحوی می توان ساخت. در حقیقت دو راه برای ساخت Activity ها در سیستم عامل اندروید وجود دارد: راه اول که به صورت دینامیک و پویا است با استفاده از برنامه نویسی جاوا می باشد و راه دوم با استفاده از XML است. روشی که در این سری از آموزش ها بیشتر مورد استفاده قرار خواهد گرفت، طراحی Activity ها با استفاده از XML است چرا که نه تنها این کار آسان تر است بلکه با پیروی از چنین رویکردی می توان کد های مربوط به GUI یا محیط گرافیکی را از کد های مربوط به نحوه عملکرد عناصر داخل این محیط گرافیکی که در زبان جاوا نوشته می شوند را از یکدیگر مجزا ساخت و این در حالی است که با اتخاذ چنین رویکردی Debug کردن اپلیکیشن ما هم به مراتب آسان تر خواهد شد.


معرفی Service ها در اندروید

دومین Component که از میان دیگر Component های از اهمیت بسزایی برخوردار است Service است. در حقیقت در پروسه طراحی اپلیکیشن اندروید Service به اجرای عملیاتی اطلاق می شود که خارج از دید کاربر رخ می دهند که ممکن است این دسته از عملیات خواه برای مدت زمان کوتاهی صورت پذیرند و خواه برای مدت زمان طولانی تری اجرا گردند. نکته ای که در مورد Service ها جالب است این است که این دسته از Component ها دارای هیچ گونه GUI یی نمی باشند و در Background برنامه اجرا می شوند. برای روشن شدن مطلب مثالی ذکر می کنیم. فرض کنیم که در حین اس ام اس دادن به یکی از دوستان خود تمایل داریم تا به آهنگ مورد علاقه مان نیز گوش فرا دهیم. در حقیقت زمانیکه موسیقی در حال پخش شدن است و ما اقدام به اس ام اس دادن می کنیم ما هیچ اثری به جزء صدای آهنگ نخواهیم دید و این همان خاصیت Service ها است که گفته می شود در پس زمینه اپلیکیشن یا Background اتفاق می افتند.

نکته دیگری که در مورد Service ها می بایست مد نظر قرار دهیم این است که Service ها مجزا از Activity هایی که آن ها را اجرا می کنند می توانند به کار خود ادامه دهند. فرض کنیم که یک Activity داریم که دارای یک دکمه Play است. با زدن این دکمه پخش موسیقی آغاز خواهد شد و این در حالی است که اگر این Activity را ببندیم و یا یک Activity دیگر جای این Activity را بگیرد، Service یی که وظیفه داشت پخش موسیقی را اجرا کند می تواند به کار خود ادامه دهد.


معرفی Content Provider ها در اندروید

جایگاه سوم در میان Component ها را Content Provider ها به خود اختصاص داده اند. وظیفه ای که بر عهده این گروه از Component ها گذاشته شده است، ذخیره سازی اطلاعات و قرار دادن اطلاعات ذخیره شده در اختیار دیگر اپلیکیشن ها می باشد. به طور خلاصه تنها راه به اشتراک گذاری داده ها میان اپلیکیشن های مختلف به کارگیری Content Provider ها می باشد. چنانچه ما داده هایی داشته باشیم و بخواهیم این داده ها را در دسترس دیگر بخش های اپلیکیشن خود قرار دهیم، به سادگی می توانیم یک Content Provider ایجاد کرده و مابین بخش هایی که می خواهند از آن استفاده کنند ارتباطی برقرار سازیم. تعدادی از این Content Provider ها از پیش در سیستم عامل اندروید تعبیه شده اند که از آن جمله می توان به Contact و Media اشاره کرد. به طور مثال اگر بخواهیم در اپلیکیشنی به لیست شماره های تلفن همراه خود دسترسی پیدا کنیم، صرفاً نیاز است تا ارتباطی مابین اپلیکیشن خود و Content Provider مرتبط با Contact سیستم عامل اندروید برقرار سازیم.


معرفی Broadcast Receiver ها در اندروید

آخرین Component تحت عنوان Broadcast Receiver این وظیفه را دارا است تا به هشدارهایی که در سطح کل سیستم بوجود می آیند پاسخ دهد. همانند Service ها Broadcast Receiver ها نیز دارای هیچ گونه GUI یی نمی باشند(عبارت GUI مخفف واژگان Graphical User Interface به معنی رابط گرافیکی کاربر می باشد). برای روشن شدن وظیفه Broadcast Receiver ها به مثالی اکتفا می کنیم. فرض کنیم می خواهیم برنامه ای بنویسیم که زمانیکه انرژی باطری تلفن همراه ما به 30 درصد رسید به ما هشدار دهد. این هشداری که به محض رسیدن انرژی تلفن همراه به 30 درصد روی صفحه تلفن مشاهده می شود یک نوع Broadcast Receiver می باشد.


آشنایی با فایل Manifest اندروید

پس از آشنایی با چهار Component اصلی سیستم عامل اندروید، اکنون به بررسی یکی از مهم ترین فایل ها در ساخت یک اپلیکیشن اندرویدی که همان فایلManifest است می پردازیم. هر اپلیکیشن و یا بازی اندرویدی می بایست دارای فایلی تحت عنوان AndroidManifest.xml در دایرکتوری اصلی خود که همان Root Directory است باشد(به حروف کوچک و بزرگ در نام این فایل توجه کنید). کاری که این فایل انجام می دهد این است که اطلاعاتی کلی پیرامون اپلیکیشن یا بازی طراحی شده به سیستم اندروید می دهد. به عبارت دیگر، این فایل Component هایی را که ما در برنامه خود مورد استفاده قرار داده ایم را به سیستم عامل اندروید معرفی می کند. از سوی دیگر این فایل Permission ها یا مجوزهایی که کاربر برای نصب برنامه می بایست صادر کند را نیز در بر می گیرد. فرض کنیم که برنامه ای طراحی کرده ایم که نیاز به دسترسی به اینترنت دارد. حال اگر کسی بخواهد این برنامه طراحی شده توسط ما را مورد استفاده قرار دهد، در حین نصب اجازه دسترسی به اینترنت از آن کاربر توسط اپلیکیشن گرفته خواهد شد.

همانطور که در آموزش اول توضیح داده شد، سیستم عامل اندروید دارای نسخه های مختلفی است. چنانچه ما برنامه ای طراحی کنیم که برای مثلا نسخه Gingerbread یا نسخه 3.0 طراحی شده باشد، این مسئله در فایل Manifest ذکر خواهد شد و چنانچه کاربری که سیستم عامل اندروید وی پایین تر از نسخه 3.0 باشد بخواهد برنامه طراحی شده ما را استفاده کند در حین نصب فایل Manifest این مسئله را خواهد فهمید و از نصب برنامه جلوگیری به عمل خواهد آورد.

در قسمت های آتی به طور مفصل به بررسی اجزای تشکلیل دهنده فایل Manifest خواهیم پرداخت.

در قسمت آموزشی سوم با تفاوت مابین Platform Level و API Level و همچنین امنیت در سیستم عامل اندروید آشنا خواهیم شد.

 

منبع : لینک

دوشنبه 23 دی 1392  02:05 ب.ظ
تشکرات از این پست
AliFanoodi amin_j kaka ghashghaei nikonazar
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی اندروید - قسمت ۳: آشنایی با API های اندروید

آشنایی با Platform Level و API Level

به طور کلی Platform level شماره ای است که در کنار هر یک از نام دسرها در نسخه های مختلف اندروید مورد استفاده قرار می گیرد و API level عددی است مربوط به API مورد استفاده قرار گرفته در هر یک از نسخه های اندروید به طوریکه شماره API level هر چه بالاتر رود این بدان معنا است که ما به قابلیت های بیشتری در توسعه اندروید دسترسی خواهیم داشت چرا که تیم برنامه نویسان گوگل بیشتر روی توسعه SDK کار کرده و ویژگی های بیشتری را از آن طریق در اختیار توسعه دهندگان قرار داده اند.

به طول مثال نحوه به کار گیری بلوتوث، شتاب سنج و غیره برخی از قابلیت هایی هستند که در API های موجود در SDK اندروید ذخیره شده اند که برخی از این قابلیت ها در نسخه های اولیه اندروید یا وجود نداشته اند و اگر هم وجود داشته اند به صورت ابتدایی بوده اند اما این قابلیت ها در نسخه های بعدی ارتقاء پیدا کرده و بسیاری ویژگی دیگر نیز به این لیست افزوده شده است.

نکته ای که در این رابطه می بایست همواره مد نظر قرار داده شود این است که هر چه سطح API بالاتر رود تلفن های همراه و تبلت های کمتری را به عنوان گروه هدف خود مد نظر قرار خواهیم داد چرا که معمولاً زمانی به طول خواهد انجامید تا تعداد کاربران یک نسخه جدید اندروید به حد قابل توجهی برسند.


جدول تطبیقی Platform Level و API Level

در جدول زیر کلیه اطلاعات مرتبط با نام نسخه و شماره های مرتبط با Platform level و API level آمده است:


920311-IMAGE 1.jpg

اصطلاحی در توسعه اپلیکیشن های اندروید وجود دارد تحت عنوان Backward Compatibility به معنی سازگاری رو به عقب. به عبارت دیگر یک دستگاه تلفن همراه که دارای مثلاً سیستم عامل اندروید نسخه 2.0 یا Éclair باشد، اپلیکیشن های با نسخه اندروید 2.0 و یا پایین تر از آن را اجرا خواهد کرد. به نظر می رسد در حین توسعه اندروید انتخاب نسخه 2.0 یا 2.1 تحت عنوان Éclair به معنی نان خامه ای بخش عمده از کاربرانی که از تلفن های همراه را در بر خواهد گرفت.


دیگر API های به کار گرفته شده تلفن های اندرویدی

علاوه بر API هایی که گوگل برای هر نسخه از سیستم عامل اندروید در نظر می گیرد، گروهی دیگر از API ها هستند که در خود تلفن همراه یا تبلت گنجانده شده و جدای از API های معرفی شده در هر نسخه از اندروید می باشند.

یکی از این API هایی گنجانده شده در خود تلفن همراه یا تبلت اندرویدی Location Services است:


920311-IMAGE 2.jpg

همانطور که در تصویر فوق ملاحظه می شود منظور از Location Services قابلیت هایی همچون GPS و یا دیگر عملکرد های Wireless است. از دیگر API های گنجانده شده در تلفن همراه و یا تبلت می توان به Telephony Services اشاره کرد:


920311-IMAGE 3.jpg

در حقیقت Telephony Services در برگیرنده قابلیت هایی است که این امکان را به ما می دهند تا بتوانیم با استفاده از تلفن همراه اندرویدی خود شماره گرفته، تماس برقرار سازیم، به تماسی پاسخ دهیم و ...

از دیگر API هایی که در این دسته قرار می گیرند می توان به Audio and Video اشاره کرد:


920311-IMAGE 4.jpg

در حقیقت API های مرتبط با Audio and Video این امکان را به کاربران اندروید می دهند تا فایل های صوتی و تصویری را با فرمتهای بسیار متنوعی من جمله MP3 را پخش نمایند.

API ی دیگری که نیاز به معرفی دارد API ی مرتبط به Web Browser است:


920311-IMAGE 5.jpg

شاید بتوان گفت که یکی از جذابیت های اندروید برخورداری از قابلیت سرچ در اینترنت است که این کار با استفاده از API مرتبط با Web Browser در اختیار کاربران قرار داده شده است.

به عنوان آخرین API از نمونه API های گنجانده شده در دستگاه های اندرویدی می توان به API ی مرتبط با Google Maps اشاره کرد:


920311-IMAGE 6.jpg

در حقیقت این API به منزله یکی از API های معروف تلفن ها و تبلت های اندرویدی است به طوریکه این امکان را به کاربران می دهد تا بتوانند از قابلیت های بسیار گسترده Google Maps من جمله مسیریابی استفاده کنند.


امنیت در سیستم عامل اندروید

یکی از برگ های برندۀ سیستم عامل اندروید میزان امنیت بالا در این سیستم عامل است(البته به این موضوع خیلی هم نمی توان افتخار کرد چرا که آمار و ارقام حاکی از آنند که این سیستم عامل محبوب هدف اول هکرها است). در واقع از آنجا که اپلیکیشن های اندروید بدون اجازه کاربر و یا توسعه دهندۀ اپلیکیشن نمی توانند به دیگر اپلیکیشن ها دسترسی پیدا کنند، این مسئله موجب گردیده تا امنیت این سیستم عامل به مراتب ارتقاء یابد. برای درک بهتر این مسئله نیاز است تا با Sandbox آشنا شویم. معنی لغوی این واژه "گودال ماسه بازی" است. در حقیقت طراحان اندروید از این مفهوم استفاده کرده تا بتوانند هر اپلیکیشن اندروید را از دیگر اپلیکیشن ها مجزا سازند. به عبارت دیگر به طور پیش فرض هر اپلیکیشن اندروید در یک Sandbox جدای از دیگر Sandbox ها قرار دارد. حال اگر اپلیکیشن ما بخواهد به چیزهای خارج از Sandbox خود دسترسی پیدا کند، می بایست از کاربر Permission یا اجازه بگیرد.

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

 

دوشنبه 23 دی 1392  02:36 ب.ظ
تشکرات از این پست
AliFanoodi siryahya amin_j nikonazar
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی اندروید - قسمت ۴: نحوه نامگذاری صحیح پکیج ها

علت به کارگیری و همچنین نحوه نامگذاری پکیج ها

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

اول نام دومین شرکت، سازمان و یا وب سایت خود را می نویسیم که در اینجا com است سپس یک نقطه قرار داده و بعد از آن نام اصلی وب سایت را نوشته که در این مثال behzadmoradi می باشد و مجدداً پس از قرار دادن نقطه ای دیگر نام دلخواه پکیج را می نویسیم که در این مثال نام package به معنی پکیج در نظر گرفته شده است.

چنانچه بخواهیم علت این طرز نامگذاری را بیان کنیم بایستی بگوییم که با نامگذاری پکیج ها به صورت برعکس از به هم ریختگی سورس های برنامه خود جلوگیری به عمل خواهد آمد. برای روشن شدن فایده این کار به مثال زیر توجه کنید:

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

در حقیقت اشکال این نوع نامگذاری در اینجا است که این ذهنیت القاء می شود که یک پکیج اصلی به نام news وجود دارد که زیر مجموعه آن پکیج testاست و زیر مجموعه پکیج testپکیج com است. حال ببینیم اگر نحوه نامگذاری را به صورت برعکس انجام دهیم چه معنایی القاء خواهد شد. نام پکیج اول را به com.test.news و نام پکیج دوم را به com.test.archive تغییر می دهیم. این نامگذاری مسلماً با معنی تر خواهد بود چرا که در این صورت ما یک پکیج کلی به نام com داریم که زیر مجموعه اش پکیج دیگری به نام testاست و زیر مجموعه testدو پکیج به نام های news و archive وجود دارد.

حال ببینیم که چرا در نامگذاری پکیج ها از نام دومین استفاده می کنیم. علت آن است که با این کار از تشابه اسمی به طور صد در صد جلوگیری به عمل خواهد آمد چرا که در کل دنیا فقط یک وب سایت به آدرس test.com وجود دارد. برای پی بردن به اهمیت این کار به مثال زیر توجه کنید.

فرض کنیم که دو شرکت مختلف طراح Library های اندرویدی هستند به طوریکه پکیج هایی می نویسند که دیگر برنامه نویسان صرفاً با Import کردن آن پکیج ها خواهند توانست سرعت طراحی اپلیکیشن خود را بالا ببرند و دیگر مجبور نباشند تا پکیجی را خود از اول بنویسندپ(در واقع Library به مجموعه کلاس هایی گفته می شود که با یکدیگر لینک بوده و کار خاصی را انجام می دهند). حال اگر هر دو شرکت در نحوه نامگذاری پکیج های خود از نام دومین خود استفاده نکنند، این احتمال وجود دارد که به صورت اتفاقی هر دو شرکت نام یکسانی را برای پکیج خود انتخاب کنند مثلاً هر دو نام package.news را برای پکیج مرتبط با اخبار روزانه انتخاب کرده و نام package.archive را برای پکیج مرتبط با آرشیو اخبار انتخاب کنند.

اکنون ما در برنامه خود از این پکیج ها استفاده می کنیم اما نکته ای را که هرگز مد نظر قرار نداده ایم این است که در جایی از برنامه از پکیج package.news شرکت اول استفاده کرده و در جایی دیگر از پکیج package.archive شرکت دوم استفاده کرده ایم. از آنجا که ممکن است برخی کلاس های این پکیج ها با همدیگر ارتباط داشته باشند و ما به صورت ناخودآگاه این لینک را از بین برده ایم برنامه ما Crash خواهد کرد.

اکنون ببینیم اگر نام این دو شرکت در نام پکیج ها گنجانده شود چه فایده ای خواهد داشت. فرض کنیم که نام شرکت اول ما companyone باشد و نام شرکت دوم ما companytwo باشد. حال شرکت companyone دو Library طراحی کرده است به نام های com.companyone.package.news و com.companyone.pakcage.archive و از سوی دیگر شرکت companytwo هم دو library به نام های com.companytwo.package.news و com.companytwo.package.archive طراحی کرده است. به طور خلاصه این نحوه نامگذاری به ما کمک خواهد کرد که اگر خواستیم در برنامه خود از این Library ها استفاده کنیم، دو Library یی را مورد استفاده قرار دهیم که از یک شرکت بوده و به عبارت دیگر با یکدیگر مرتبط می باشند.

به عنوان نکته پایانی در مورد نحوه نامگذاری پکیج ها در اندروید بایستی گفت که چنانچه کسی دارای وب سایت شخصی نباشد می تواند به صورت فرضی نامی را برای خود در نظر بگیرد.

چهارشنبه 25 دی 1392  01:06 ب.ظ
تشکرات از این پست
amirhmz amin_j nikonazar
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی اندروید - قسمت ۵: آماده سازی محیط اندروید استودیو

به طور خلاصه، یکی از ساده ترین کارها برای شروع برنامه نویسی اندروید، آماده سازی یا بهتر بگوییم دانلود محیط برنامه نویسی است (البته برای کسانیکه کشورشان تحریم نباشد!). ادامه مطلب را از دست ندهید.

روش نصب جاوا

به منظور توسعه اندروید حتماً بهJRE و JDK نیاز است که می توان آخرین نسخه آن ها را از این لینک دریافت نمود. (لازم به ذکر است چنانچه شما نسخه JDK نصب نمایید دیگر نیازی به نصب JRE نخواهید داشت چرا که JDK در برگیرنده JRE نیز می باشد.) از آنجا که دسترسی به سایت اوراکل برای کاربران ایرانی امکان پذیر نمی باشد، پیشنهاد می شود علاقمندان JDK جاوا را از دیگر منابع دانلود نمایند. برای مثال از سایت http://www.uncocoder.com می توان پس از ورود به بخش مطالعه آموزش های رایگان، سپس کلیک کردن بر روی گزینه آماده کردن محیط برنامه نویسی به لینک دانلود JDK دست پیدا کرد.


اندروید استودیو

اندروید استودیو (Android Studio) محیطی برای توسعه برنامه های اندرویدی است که برای اولین بار خود شرکت گوگل بر پایه محیط برنامه نویسی قدرتمند IntelliJ IDEA طراحی کرده است که همانند اکلیپس ابزارهای لازم برای طراحی، توسعه و مشکل یابی برنامه ها را داراست. اولین نسخه از اندروید استودیو در کنفرانس سالیانه گوگل که در اردیبهشت ماه سال 1391 اتفاق افتاد معرفی شد.

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

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


آماده سازی محیط برنامه نویسی اندروید استودیو

از آنجا که شرکت گوگل دسترسی به سایت اختصاصی اندروید را برای کاربران ایرانی محدود کرده است و از سوی دیگر تنها مرجع رسمی برای دانلود رایگان اندروید استودیو نیز همین وب سایت است، به نظر می رسد که دانلود اندروید استودیو برای گروهی قابل توجهی از کاربران امکان پذیر نباشد. به هر حال علاقمندان می توانند برای دانلود مستقیم اندروید استودیو به آدرس https://developer.android.com/sdk/installing/studio.html مراجعه نموده و نسخه سازگار با سیستم عامل خود را دانلود نمایند.

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

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


تعریف مسیر جاوا (در ویندوز 7)

ابتدا روی My Computer راست کلیک کرده و به بخش Properties می رویم. پنجره ای به شکل زیر مشاهده می شود:


920327-5-IMAGE 1.jpg

سپس روی گزینه Advance system settings همانطور که در تصویر فوق نشان داده شده است کلیک می کنیم و پنجره زیر مشاهده می شود:


920327-5-IMAGE 2.jpg

همانطور که در تصویر فوق مشاهده می شود از Tab های بالای پنجره Advanced را انتخاب کرده سپس در پنجره مربوط به Advanced در پایین پنجره گزینه Environment Variables که در تصویر با دایره قرمز رنگ مشخص شده است را کلیک می کنیم و پنجره زیر را مشاهده خواهیم کرد:


920327-5-IMAGE 3.jpg

در این پنجره دو بخش مجزا مشاهده می شود که بخش بالایی مربوط به User است و بخش پایینی مربوط به System می باشد. حال نیاز داریم تا در بخش System مسیر جاوا را مشخص نماییم. برای این منظور همانطور که در تصویر فوق مشاهده می شود گزینه New را کلیک کرده و پنجره زیر را مشاهده خواهیم کرد:


920327-5-IMAGE 4.jpg

در این پنجره در بخش Variable name می بایست JDK_HOME را بنویسیم (لازم است کلیه حروف بزرگ باشد و مابین دو کلمه JDK و HOME می بایست Underscore یا همان علامت _ قرار گیرد(برای تایپ Underscore نیاز است پیش از فشردن دکمه Dash کلید Shift را پایین نگه داریم). سپس نیاز است تا در بخش Variable value آدرس جایی که نسخه JDK جاوا نصب است را بنویسیم که این آدرس ممکن است در کامپیوترهای هر فرد متفاوت باشد. به طور مثال در سیستم بنده این آدرس در C:\Program Files\Java\jdk1.7.0_05 قرار دارد.

برای پیدا کردن این آدرس به My Computer می رویم سپس گزینه Program Files را انتخاب می کنیم. داخل پوشه Program File پوشه ای تحت عنوان Java را پیدا می کنیم و روی آن کلیک می کنیم. در این مرحله تصویر زیر مشاهده خواهد شد:


920327-5-IMAGE 5.jpg

همانطور که در تصویر فوق مشاهده می شود، کلیه نسخه های نصب شدۀ جاوا روی سیستم عامل خود را مشاهده می کنیم. نکته ای که در اینجا توجه به آن حائز اهمیت است این است که ما می بایست آدرس نسخه JDK را کپی کنیم و چنانچه آدرس JRE را در پنجره قبل وارد کنیم ممکن است با مشکل مواجه شویم(لازم به ذکر است که نسخه JDK در برگیرنده نسخه JRE نیز می باشد. برای آشنایی بیشتر با JDK و JRE به آموزش برنامه نویسی جاوا در سایت نردبان قسمت اول مراجعه نمایید). در این مرحله روی نسخه ای از JDK که مد نظر ماست کلیک کرده و وارد پوشه آن می شویم(در اینجا بنده آخرین نسخه از JDK که نسخه 7 می باشد را مد نظر قرار داده ام). حال تصویر زیر مشاهده خواهد شد:


920327-5-IMAGE 6.jpg

اکنون برای آنکه بتوانیم آدرس این پوشه را پیدا کنیم، همانطور که در تصویر بالا با یک فلش قرمز رنگ مشاهده می شود یک بار مقابل نام jdk1.7 کلیک می کنیم و تصویر زیر را مشاهده خواهیم کرد:


920327-5-IMAGE 7.jpg

همانطور که در تصویر فوق مشاهده می شود آدرس JDK نصب شده روی سیستم عامل ما به رنگ آبی در خواهد آمد. در این مرحله با زدن دکمه های Ctrl و حرف C این آدرس را کپی می کنیم و به صورت زیر در پنجره مربوط به New System Variable که قبلاً نام JDK_HOME را در آن وارد کرده بودیم Paste می کنیم:


920327-5-IMAGE 8.jpg

اکنون کلید OK را می زنیم و به پنجره Environment Variables می گردیم. در این پنجره نیز مجدد کلید OK را می زنیم و به پنجره System Properties باز می گردیم و در این پنجره نیز کلیک OK را زده و با این کار تنظیمات آدرس جاوای نصب شده روی سیستم عامل خود را به پایان می رسانیم.

اکنون پس از اجرای برنامه اندروید استودیو برنامه بدون هیچ مشکلی اجرا خواهد.

چهارشنبه 25 دی 1392  01:09 ب.ظ
تشکرات از این پست
amin_j nikonazar
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی اندروید - قسمت ۶: اولین پروژه اندروید در محیط اندروید استودیو

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

920327-6-IAMGE 1.jpg

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


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

برای اینکار روی گزینه New Project کلید می کنیم و پنجره ای به شکل زیر مشاهده خواهیم کرد:


920327-6-IIMAGE 2.jpg

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

در بخش Application name به معنی "نام اپلیکیشن" نامی برای اپلیکیشن خود در نظر می گیریم. در این مثال نام My First Android Project به معنی "اولین پروژه اندروید من" را وارد می کنیم(لازم به ذکر است رایج است که اولین حرف نام اپلیکیشن می بایست با حرف بزرگ نوشته شود). به محض وارد کردن نامی در بخش Application name مابقی جاهای خالی نیز به طور خودکار بر اساس نام انتخابی ما پر خواهند شد. به طور خلاصه نام ورودی در Application name نامی است که پس از نصب اپلیکیشن روی یک تبلت یا تلفن همراه در معرض دید کاربر قرار خواهد گرفت.

در بخش Module name به معنی "نام ماژول" می بینیم که نام MyFirstAndroidProject وارد شده است. در حقیقت این همان نامی است که در بخش Application name وارد کردیم با این تفاوت که کلیه Space ها حذف شده اند. در واقع این نام نامی است که از آن طریق پروژه ما روی کامپیوتر ذخیره خواهد شد و در اندروید استودیو پروژه ما به این نام شناخته خواهد شد.

در بخش Package name نام com.example.myfirstandroidproject به صورت خودکار وارد شده است اما این در حالی است که با این نام به هیچ وجه نخواهیم توانست به ادامه ساخت پروژه خود بپردازیم چرا که بخشی از این نام که com.example است حتماً بایستی با نامی دیگر جایگزین شود که در غیر این صورت اندروید استودیو از ما ایراد خواهد گرفت. برای رفع این مشکل نام فوق را به نام com.test.mainpackage تغییر می دهیم(جهت آشنایی بیشتر با نحوه نامگذاری پکیج ها به آموزش چهارم از سری آموزش های توسعه اندرووید مراجعه نمایید).

در واقع مقابل Project location به معنی "محل ذخیره سازی پروژه" آدرسی که می خواهیم پروژه ما در آن ذخیره شود را می نویسیم. محیط برنامه نویسی اندروید استودیو به طور خودکار پروژه ما را در پوشه ای به نام AndroidStudioProjects در پوشه Users داخل درایو C ذخیره می سازد. چنانچه تمایل داشته باشیم می توانیم در درایو دیگری پوشه ای اختصاصی برای اپلیکیشن های خود در نظر بگیریم و کلیه پروژه های خود را در آنجا ذخیره سازیم. در این پروژه مکان پیش فرض را در نظر خواهیم گرفت.

در بخش Minimum required SDK به معنی "حداقل SDK مورد نیاز" گزینه API 7: Android 2.1 (Éclair) را در این پروژه انتخاب می کنیم. این بدان معنا است که اپلیکیشن ما برای آنکه اجرا شود حداقل به API سطح 7 نیاز دارد به عبارت دیگر این اپلیکیشن روی تلفن همراهی اجرا خواهد شد که نسخه اندروید آن Éclair باشد(برای آشنایی بیشتر با نام ها و سطوح API اندروید به آموزش سوم مراجعه نمایید).

در بخش Target SDK نیز گزینه API 7: Android 2.1 (Éclair) را انتخاب می کنیم. کاری که Target SDK انجام می دهد این است که به محیط برنامه نویسی اندروید استودیو دستور می دهد تا API سطح 7 را برای توسعه اپلیکیشن ما در نظر بگیرد(نام دیگر Target SDK در دیگر محیط های برنامه نویسی Build SDK می باشد). در واقع در بسیاری از برنامه ها از API های یکسانی هم برای Minimum SDK و Target SDK استفاده می شود. با انتخاب این گزینه این تضمین را ایجاد می کنیم که اپلیکشن طراحی شده در تلفن های همراهی با نسخه اندروید Éclair به خوبی کار خواهد کرد چرا که اندروید استودیو کلیه API های لازم را به صورت خودکار وارد برنامه ما خواهد کرد(نکته ای که در اینجا می بایست حتما مد نظر قرار داده شود این است که Target SDK به هیچ وجه نمی تواند از Minimum SDK کوچک تر باشد).

در ادامه کار در بخش Compile with نسخه ای از API را مشخص خواهیم کرد که بر آن اساس برنامه ما Compile خواهد شد اما این در حالی است که محیط برنامه نویسی اندروید استودیو تنها یک گزینه را در اختیار ما خواهد گذاشت از این رو گزینه پیش را مد نظر قرار می دهیم.

در بخش Theme قادر خواهیم خواهیم بود تا تم اپلیکیشن خود را مشخص کنیم. به عبارت دیگر خواهیم توانست تم هایی با طرح های روشن و تیره برای اپلیکیشن خود انتخاب کنیم اما از آنجا که در این آموزش قصد داریم تا یک اپلیکیشن ساده طراحی کنیم، گزینه None به معنی "هیچ کدام" را انتخاب می کنیم.

چنانچه گزینه Create custom launcher icon را تیک بزنیم، قادر خواهیم بود تا تنظیمات مربوط به آیکون اپلیکیشن مان به توجه به سلیقه شخصی خود تغییر دهیم و به جای آیکون پیش فرض اندروید که یک ربات سبز رنگ است از تصاویر دیگری استفاده کنیم اما از آنجا که این کار را پس از ساخت پروژه نیز می توانیم انجام دهیم، تیک این گزینه را بر می داریم تا همان آیکون پیش فرض در نظر گرفته شود(این آیکون پیش فرض یا هر تصویر دیگری که به جای آن در توسعه اپلیکیشن خود استفاده کنیم چیزی است که پس از نصب روی تلفن همراه و یا تبلت ما قابل رویت خواهد بود و با زدن روی آن وارد برنامه خواهیم شد).

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

گزینه Mark this project as a library این امکان را به ما می دهد تا پروژه های خود را تبدیل به Library هایی کنیم که این قابلیت را دارا هستند تا در دیگر برنامه ها مورد استفاده قرار گیرند. از آنجا که در این قسمت از آموزش به اینکار نیازی نیست، تیک این گزینه را نیز بر می داریم. در این مرحله پنجره مربوط به ساخت پروژه جدید می بایست به شکل زیر باشد:


920327-6-IIMAGE 3.jpg

اکنون دکمه Next را زده و پنجره ای به شکل زیر مشاهده خواهیم کرد:


920327-6-IIMAGE 4.jpg

در این پنجره، اندروید استودیو از ما می خواهد تا نمای ظاهری Activity یی برنامه را مشخص نماییم. از آنجا که در این آموزش قصد داریم تا پروژه ای ساده طراحی کنیم، گزینه اول تحت عنوان Blank Activity را انتخاب کرده و مجدداً دکمه Next را زده و وارد پنجره زیر می شویم:


920327-6-IIMAGE 5.jpg

نحوه نامگذاری Activity ها در اندروید

همانطور که ملاحظه می شود می بایست در این مرحله در قسمت Activity Name نامی برای Activity خود در نظر بگیریم. نکته ای که در ارتباط با نام Activity ها همواره می بایست مد نظر قرار دهیم این است که نام آنها می بایست با حرف بزرگ شروع شود و چنانچه نام Activity ما بیش از یک کلمه بود می توان از ساختار camelCase استفاده کرد(برای آشنایی بیشتر با این اصطلاح علاقمندان می توانند به آموزش برنامه نویسی جاوا قسمت دهم در سایت نردبان مراجعه نمایند). همانطور که در تصویر فوق ملاحظه می شود اندروید استودیو به صورت خودکار نام MainActivity را به معنی Activity اصلی در نظر گرفته است. از آنجا که هر اپلیکیشن اندروید با یک Activity اولیه شروع می شود، بهتر است نام چنین Activity یی نامی گویا باشد. از این رو نام های MainActivity و Main و این دست نام ها پیشنهاد می شود. در این پروژه نام پیش فرض را مورد استفاده قرار خواهیم داد.


نحوه نامگذاری Layout ها در اندروید

سپس در بخش Layout Name می بایست نامی را برای فایل XML خود که همان UI یا "رابط گرافیکی" اپلیکیشن ما است مشخص نماییم. نکته ای که در اینجا می بایست همواره مد نظر قرار دهیم این است که در نامگذاری Layout برنامه خود فقط می توانیم از حروف کوچک استفاده کنیم و چنانچه نام Layout ما از چند واژه تشکیل شده بود می توانیم از _ استفاده کنیم. به طور مثال در تصویر فوق نام activity_main به طور پیش فرض در نظر گرفته شده است که در این پروژه همین نام را مورد استفاده قرار خواهیم داد.

در این مرحله کار تنظیمات اولیه به اتمام رسیده و می توانیم دکمه Finish را بزنیم.


نصب فایل های Gradle

از آنجا که این اولین باری است که در محیط اندروید استودیو اقدام به ساخت یک پروژه جدید می کنیم، این نرم افزار اقدام به دانلود کردن پکیج Gradle از وب سایت مربوطه می کند و پنجره ای به شکل زیر را مشاهده خواهیم کرد:


920327-6-IIMAGE 6.jpg

مدت زمان دانلود بستگی به سرعت اینترنت داشته و گاهاً ممکن است تا 5 الی 7 دقیقه هم به طول انجامد. در واقع پس از یک بار دانلود این پکیج در ساخت پروژه های آتی دیگر نیاز به اینکار نخواهد بود.


مشکل یابی نصب فایل های Gradle

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


920327-6-IIMAGE 7.jpg

که در این صورت می بایست محیط برنامه نویسی اندروید استودیو را ببندیم و مجدداً آن را اجرا کرده و همانطور که در تصویر زیر مشاهده می شود پروژه ساخته شده را از طریق گزینه Open project از همان مسیری که در مرحله قبل برای ذخیره پروژه تعیین کرده بودیم پروژه خود را باز نماییم:


920327-6-IIMAGE 8.jpg

چنانچه پس از اینکار مجدداً در نصب فایل های Gradle با مشکل مواجه شدیم می توانیم نوع Error را در سایت هایی همچون گوگل و Stack Overflow سرچ کردن و مشکل را رفع نماییم. در واقع مشکلاتی از این دست جزو همان Bug های نسخۀ بتای نرم افزارهای جدید الورود به بازار است.

پس از مطالعه این آموزش انتظار می رود بتوانیم به سؤالات زیر پاسخ بدهیم:
1. چرا بایستی نام پکیجی که در حین ساخت پروژه به صورت خودکار ایجاد می شود را تغییر دهیم؟
2. منظور از حداقل SDK مورد نیاز چیست؟
3. منظور Target SDK چیست؟
4. نحوه نامگذاری Activity ها به چه شکل است؟
5. نحوه نامگذاری فایل های XML به چه شکل است؟
به منظور مشاهده آموزش ویدیویی این قسمت از آموزش، به ویدیو زیر توجه نمایید:


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

چهارشنبه 25 دی 1392  01:16 ب.ظ
تشکرات از این پست
amin_j nikonazar
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی اندروید - قسمت ۷: آماده سازی محیط اکلیپس برای توسعه

920327-IMAGE 1.jpg

پس از ورود به بخش مطالعه آموزش های رایگان، سپس کلیک کردن بر روی گزینه آماده کردن محیط برنامه نویسی می توان به لینک های دانلود دسترسی پیدا کرد(در تصویر زیر گزینه 5):

روش نصب JDK جاوا

به منظور توسعه اندروید حتماً بهJRE و JDK نیاز است که می توان آخرین نسخه آن ها را از این لینک دریافت نمود. (لازم به ذکر است چنانچه شما نسخه JDK نصب نمایید دیگر نیازی به نصب JRE نخواهید داشت چرا که JDK در برگیرنده JRE نیز می باشد.) از آنجا که دسترسی به سایت اوراکل برای کاربران ایرانی امکان پذیر نمی باشد، پیشنهاد می شود علاقمندان JDK جاوا را از دیگر منابع دانلود نمایند. برای مثال از سایت uncocoder می توان پس از ورود به بخش مطالعه آموزش های رایگان، سپس کلیک کردن بر روی گزینه آماده کردن محیط برنامه نویسی به لینک دانلود JDK دست پیدا کرد.
معرفی SDK و ADT اندروید

در واقع با دانلود رایگان محیط برنامه نویسی اکلیپس از سایت آن و همچنین دانلود رایگان SDK اندروید که برای توسعه، تست و مشکل یابی اپلیکیشن های طراحی شده مورد استفاده قرار می گیرد و در نهایت دانلود رایگان پلاگین ADT که مخفف واژگان Android Development Tools به معنی ابزارهای توسعه اندروید است از اینجا خواهیم توانست برنامه نویسی اندروید را شروع کنیم.

ادامه مطلب را از دست ندهید.

به طور خلاصه، SDK در برگیرندۀ API های لازم و ضروری برای توسعه اندروید می باشد که توسط تیم برنامه نویسی گوگل طراحی شده اند. در واقع پس از دانلود رایگان SDK و نصب آن روی محیط برنامه نویسی اکلیپس، علاوه بر استفاده از API های جاوا که از طریق JDK در اختیار اکلیپس قرار می گیرند، به API های اختصاصی اندروید که با Syntax یا ساختار زبان برنامه نویسی جاوا نوشته شده اند نیز دسترسی پیدا نموده و از این طریق خواهیم توانست توسعه اندروید را آغاز نماییم. اما پیش از اینکار نیاز داریم تا ADT اندروید را نیز دانلود نموده و به محیط برنامه نویسی اکلیپس معرفی نماییم.

در حقیقت نصب پلاگین ADT این امکان را به ما می دهد تا بتوانیم از طریق محیط برنامه نویسی اکلیپس و استفاده از API های موجود در SDK که برای توسعه اندروید تعبیه شده اند دست به طراحی اپلیکیشن اندروید بزنیم. از سوی دیگر این پلاگین دارای یک ابزار طراحی GUI است که با استفاده از آن خواهیم توانست بدون کدنویسی و صرفا با Drag and Drop به طور مثال به ایجاد یک دکمه بپردازیم(عبارت GUI مخفف واژگان Graphical User Interface به معنی رابط گرافیکی کاربر است).
دانلود ADT Bundle برای توسعه اندروید

علاوه بر محیط برنامه نویسی اکلیپس، شرکت گوگل نسخه ای از نرم افزار اکلیپس را تحت عنوان ADT Bundle تولید کرده است که کلیۀ ابزارهای لازم برای توسعه اندروید از جمله خود محیط برنامه نویسی اکلیپس به علاوۀ SDK و ADT را دارا است. این محیط برنامه نویسی به هیچ وجه نیاز به نتظیمات خاصی نداشته و صرفاً با اجرای برنامه خواهیم توانست توسعه اندروید را شروع نماییم.

برای دانلود این نرم افزار می بایست به سایت توسعه شرکت گوگل مراجعه نموده و این نرم افزار را به صورت کاملاً رایگان دریافت نمود ولی از آنجا که امکان دسترسی کاربران ایرانی به این وب سایت امکان پذیر نمی باشد، اکثر کاربران نخواهند توانست به سادگی ADT Bundle را دانلود کنند.

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

نکته ای که در رابطه با آماده سازی محیط برنامه نویسی از اهمیت بسزایی برخوردار است آگاهی از این موضوع است کدام نسخۀ اکلیپس با کدام نسخۀ SDK بهترین هم خوانی را دارد. از سوی دیگر از آنجا که سایت رسمی اندروید اجازۀ استفاده کاربران ایرانی را از امکانات رایگان این سایت نمی دهد، بالتبع کاربران ایرانی نمی توانند SDK و ADT که برای توسعه اندروید لازم و ضروری است را دانلود کنند.

با سرچ کردن در اینترنت در سایت های ایرانی می توان نسخه هایی از SDK و ADT برای دانلود یافت که همچنین نحوه نصب آنها روی اکلیپس نیز آموزش داده شده است. از جمله این وب سایت ها می توان به این آدرس اشاره کرد. علاوه بر این روش، علاقمندان به توسعه اندروید از طریق محیط برنامه نویسی اکلیپس می توانند از اینجا نسخۀ سازگار اکلیپس به همراه SDK و ADT مورد نیاز را دانلود نمایند.

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

920327-IMAGE 2.jpg

علاقمندان علاوه بر دانلود نرم افزارهای مورد نیاز از آدرس فوق الذکر، می توانند طبق توضیحات موجود در همین آدرس تنظیمات مربوط به SDK و ADT و اکلیپس را انجام دهند. در حقیقت اولین گام برای آغاز توسعه اندروید مطمئن شدن از بابت این مسئله است که محیط برنامه نویسی ما بدون هیچ مشکلی نصب شده و آماده برنامه نویسی هستیم. از این رو چنانچه علاقمندی نتواند مرحله نصب محیط برنامه نویسی را با موفقیت پشت سر بگذارد، به هیچ وجه نخواهد توانست آموزش های آتی را ادامه دهد.

چهارشنبه 25 دی 1392  01:21 ب.ظ
تشکرات از این پست
amin_j nikonazar
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی اندروید - قسمت ۸: ساخت اولین پروژه در محیط اکلیپس

 

تعیین مسیر Workspace

محیط برنامه نویسی اکلیپس نیازی به نصب روی سیستم نداشته و صرفاً با کلیک کردن روی آیکون این نرم افزار خواهیم توانست آن را اجرا کنیم. پس از اجرای نرم افزار اکلیپس، این نرم افزار از کاربر می خواهد تا مسیری را به عنوان مسیر workspace روی هارد مشخص کند که از این پس این مسیر به عنوان مسیری خواهد بود که کلیه پروژه ها در آن ذخیره خواهند شد. پس از انتخاب مسیر با تصویر زیر رو به رو خواهیم شد:


920327-8-IMAGE 1.jpg

در حقیقت این صفحه Welcome Screen یا "صفحه خوشامدگویی" نرم افزار است. همانطور که در تصویر فوق با یک فلش قرمز رنگ نشان داده شده است، با کلیک کردن روی گزینه Workbench خواهیم توانست وارد صفحه اصلی نرم افزار شویم.


مراحل ساخت یک پروژه جدید

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


920327-8-IMAGE 2.jpg

با قرار دادن نشانگر موس روی این گزینه عبارت Opens a wizard to help create a new Android project نشان داده خواهد شد(در تصویر فوق با خط قرمز نشان داده شده است). ترجمه تحت الفظی این عبارت "بازکردن پنجرۀ ساخت یک پروژه جدید اندروید" می باشد. پس از کلیک کردن روی این گزینه پنجره ای به شکل زیر مشاهده خواهد شد:


920327-8-IMAGE 3.jpg

در این پنجره در بخش Project Name می بایست نامی برای پروژه خود انتخاب نماییم. در حقیقت این نام به منزله نام اپلیکیشن ما نخواهد بود بلکه نامی است که از آن طریق پروژه ما در Workspace ذخیره خواهد شد. اکنون نام My First Android Project به معنی "اولین پروژه اندروید من" را مقابل Project Name می نویسیم. سپس می بایست یکی از سه گزینه موجود را انتخاب نماییم و از آنجا که قصد داریم یک پروژه جدید ایجاد کنیم، گزینه Create new project in workspace به معنی "ساخت پروژه جدید در workspace ایجاد شده" را انتخاب می کنیم. سپس با تیک دار کردن گزینه Use default location به معنی "استفاده از محل ذخیره سازی پیش فرض"، این دستور را به اکلیپس می دهیم که همان مسیری که در ابتدای نصب اکلیپس برای Workspace انتخاب کردیم را برای ذخیره سازی این پروژه نیز استفاده کند. در صورتیکه بخواهیم پروژه خود را در مسیر دیگری ذخیره سازیم، می توانیم تیک این گزینه را برداشته و مسیر جدید را وارد کنیم. حال می توانیم روی دکمه Next کلیک کنیم:


920327-8-IMAGE 4.jpg

همانطور که در تصویر فوق مشاهده می شود در این پنجره می بایست نوع Build Target را مشخص کنیم. به طور خلاصه منظور از Build Target همان نسخه ای از سیستم عامل اندروید است که قصد داریم اپلیکیشن خود را اختصاصاً برای آن نسخه طراحی کنیم. در این پروژه نسخه 2.1 را مد نظر قرار می دهیم. به عبارت دیگر کاربرانی که روی تلفن همراه ایشان نسخه 2.1 اندروید یا نسخه های پایین تر نصب باشد خواهند توانست از اپلیکیشن ما استفاده کنند. همانطور که قبلاً توضیح داده شد، هرچه از API های بالاتر مثلاً 4.1 استفاده کنیم به امکانات بیشتری در توسعه اندروید دسترسی خواهیم داشت اما این در حالی است که تعداد کاربران کمتری خواهند توانست از اپلیکیشن ما استفاده کنند چرا که مدت زمانی به طول خواهد انجامید تا تلفن های همراه موجود در دست کاربران با آخرین نسخه های سیستم عامل اندروید به روز رسانی شود.

از سوی دیگر لیست API های موجود در این پنجره بسته به تعداد SDK هایی که در مرحله آماده سازی محیط برنامه نویسی اکلیپس دانلود می کنیم می تواند متفاوت باشد. به طور مثال در این نسخه از SDK که دانلود نموده ایم از نسخه های 1.1 و 1.6 و 3.2 به طور مثال خبری نیست. علت این مسئله هم به نظر می رسد این باشد که مدیر وب سایتی که ما SDK را در آموزش پیشین از آن دانلود کرده ایم ممکن است بر این باور باشند که تفاوت بسیار چندانی مابین نسخه های نزدیک به هم وجود ندارد(مثلاً مابین نسخه 2 و 2.1 ) و این در حالی است که باور ایشان کاملاً درست است.

حال می توانیم روی دکمه Next کلیک کنیم:


920327-8-1-IMAGE 5.jpg

در این پنجره می بایست اطلاعات کلی اپلیکیشن خود را وارد نماییم. همانطور که در تصویر فوق مشاهده می شود بر اساس نامی که در مرحله پیش برای پروژه خود انتخاب نمودیم، جاهای خالی این پنجره پر شده اند. در بخش Application Name به معنی "نام اپلیکیشن" می بایست نامی که می خواهیم اپلیکیشن ما داشته باشد را وارد کنیم. به عبارت دیگر این همان نامی است که کاربران پس از نصب اپلیکیشن ما روی تلفن همراه خود خواهند دید. نام وارد شده را تغییر نداده به مرحله بعد می رویم. در بخش Package Name به معنی "نام پیکج" می بایست نامی برای پکیج اپلیکیشن خود انتخاب کنیم. در واقع هر اپلیکیشن حداقل از یک پکیج تشکیل شده است و کار این پکیج قرار دادن فایل های مرتبط به یکدیگر در اپلیکیشن ما در کنار یکدیگر است. در این پروژه بنده نام com.test.mainpackage را انتخاب می کنم. در واقع این نام بسته به شخص یا شرکتی که اپلیکیشن را طراحی می کند متفاوت است(برای آشنایی بیشتر با نحوه نامگذاری پیکج ها در توسعه اندروید به آموزش چهارم مراجعه نمایید).

همانطور که در آموزش های پیشین توضیح داده شد، هر اپلیکیشن اندروید حداقل از یک Activity تشکیل شده است. در واقع با تیک زدن گزینه Create Activity به معنی "ساخت Activity جدید" می توانیم Activity اصلی که اپلیکیشن ما با آن شروع خواهد شد را در این مرحله بسازیم. به طول معمول این بخش هم توسط اکلیپس به طور پیش فرض برای ما پر می شود اما این در حالی است که این نام نه تنها طولانی است بلکه گویا هم نمی باشد، برای این منظور نام موجود را به نام MainActivity به معنی "یک Activity اصلی" تغییر می دهیم(برای آشنایی بیشتر با Activity ها به آموزش دوم مراجعه نموده و برای آشنایی بیشتر با نحوه نامگذاری Activity ها به آموزش ششم مراجعه نمایید).

در بخش Minimum SDK به معنی "حداقل SDK مورد نیاز" عدد 7 به طور پیش فرض توسط خود اکلیپس وارد شده است. این بدان معنا است که اپلیکیشن ما برای آنکه اجرا شود حداقل به API سطح 7 نیاز دارد. به عبارت دیگر این اپلیکیشن روی تلفن همراهی اجرا خواهد شد که نسخه اندروید آن Éclair باشد(برای آشنایی بیشتر با نام ها و سطوح API اندروید به آموزش سوم مراجعه نمایید). در واقع این عدد با توجه به نوع نسخه اندروید که در مرحله پیش انتخاب کردیم انتخاب شده است. به عبارت دیگر از آنجا که ما نسخه 2.1 را انتخاب کردیم و API اندروید به کار گرفته شده در این نسخه API 7 است، از این رو عدد 7 وارد شده است. نکته ای که در اینجا می بایست حتما مد نظر داشته باشیم این است که API وارد شده در Minimum SDK نمی بایست از API متناظر با نسخه تعیین شده در مرحله پیش بزرگ تر باشد. به طور مثال از آنجا که در مرحله پیش نسخه 2.1 انتخاب شده است از این رو برای Minimum SDK نمی توانیم مثلاً API 15 را انتخاب کنیم(برای آشنایی بیشتر با API ها در توسعه اندروید به آموزش سوم مراجعه نمایید).

اکنون مراحل ساخت اولین پروژه اندروید ما به پایان رسیده و می توانیم دکمه Finish را بزنیم.

پس از زدن دکمه Finish به محیط اکلیپس بازگشته و پروژه ای تحت عنوان My First Android Project در بخش Package Explorer اکلیپس مشاهده خواهد شد:


920327-8-IMAGE 6.jpg

چهارشنبه 25 دی 1392  01:24 ب.ظ
تشکرات از این پست
amin_j nikonazar alialaie
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی اندروید - قسمت ۹: بررسی فولدرهای src و gen

اهداف آموزشی این قسمت عبارتند از:
1. معرفی فولدر src
2. نحوه ایجاد یک پکیج جدید
3. معرفی فولدر gen و فایل R.java


در این قسمت قصد داریم به بررسی تک تک اجزای تشکیل دهنده یک اپلیکیشن بپردازیم اما پیش از آن دانستن این نکته لازم است که هر اپلیکیشن دارای یکسری فولدر به صورت پیش فرض است که این فولدرها در تصویر ادامه مطلب قابل مشاهده می باشند...


920405-9-IMAGE 1.jpg

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


معرفی فولدر src

پس ساخت اولین پروژه اندروید در محیط برنامه نویسی اکلیپس در آموزش هشتم، در این قسمت قصد داریم به بررسی تک تک پوشه های تشکیل دهنده یک پروژه اپلیکیشن اندروید بپردازیم. برای این منظور پروژه ای که در آموزش هشتم تحت عنوان My First Android Project ساخته بودیم را باز می کنیم:


920405-9-IMAGE 2.jpg

همانطور که در تصویر فوق مشاهده می شود، اولین فولدر در یک پروژه اندروید src نام دارد. در واقع واژه src مخفف واژه Source به معنی "منبع" یا "مأخذ" می باشد. این فولدر در برگیرندۀ کلیۀ فایل های جاوا است که در اپلیکیشن خود مورد استفاده قرار می دهیم. زیر مجموعه این فولدر همان پکیجی قرار دارد که در حین ساخت پروژه تحت عنوان com.test.mainpackage ساختیم. به طور کلی کاری که این پکیج می کند این است که از تداخل فایل های جاوا که برای توسعه اپلیکیشن خود طراحی می کنیم جلوگیری به عمل آورده و موجب می گردد کلاس های مورد استفاده سازماندهی شوند.


ایجاد یک پیکج جدید در جاوا

ما به عنوان یک توسعه دهنده اندروید به هر تعداد پکیج که برای اپلیکیشن خود نیاز داشته باشیم می توانیم ایجاد کنیم. به طور مثال چنانچه بخواهیم یک پکیج دیگر در اپلیکیشن خود ایجاد کنیم به صورت زیر عمل خواهیم کرد(لازم به ذکر است چنانچه در محیط اکلیپس چندین پروژه ایجاد کرده باشیم می بایست اول پروژه مد نظر خود را انتخاب کرده سپس به صورت زیر اقدام به ایجاد یک پیکج جدید نماییم):


920405-9-IMAGE 3.jpg

همانطور که در تصویر فوق نشان داده شده است، با قرار دادن نشانگر موس خود روی آیکونی که با فلش قرمز رنگ مشخص شده است، پیام New Java Package به معنی "یک پکیج جدید جاوا" نمایان خواهد شد. با کلیک کردن روی این آیکون پنجره زیر نمایان می گردد:


920405-9-IMAGE 4.jpg

همانطور که در تصویر فوق مشخص است، در بخش Source folder مسیر فولدر src موجود در پروژه My First Android Project مشخص شده است. در بخش Name به معنی "نام" می بایست نامی برای پکیج جدید خود در نظر بگیریم. نکته ای که در انتخاب نام پیکج می بایست همواره مد نظر قرار داده شود این است که دو بخش اول نام پیکج که بخش اول مربوط به نام دامین است که در اینجا com می باشد و بخش دوم که مربوط به آدرس دامین است که در این مثال test است حتماً بایستی با دو بخش اول نام پکیجی که در حین ساخت پروژه تعریف کردیم یکی باشد وصرفاً بخش آخر یا همان قسمت سوم نام پیکج می بایست نامی جدید باشد. علت این مسئله هم ایجاد یکنواختی در کلیۀ پکیج های یک پروژه می باشد. حال با دانستن این نکته همانطور که در تصویر فوق نشان داده شده است نام com.test.secondpackage را وارد می کنیم که عبارت secondpackage به معنی "پکیج دوم" است(برای آشنایی بیشتر با نحوه نامگذاری پیکج ها در جاوا به آموزش چهارم مراجعه نمایید).

اکنون می توانیم دکمه Finish زده و پیکج ایجاد شده در پروژه خود را مشاهده کنیم:


920405-9-IMAGE 5.jpg

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


معرفی فولدر gen و فایل R.java

واژۀ gen مخفف واژه Generated به معنی "تولید شده" یا "حاصله" می باشد. این فولدر محل ذخیره سازی فایل جاوایی تحت عنوان R است:


920405-9-IMAGE 6.jpg

همانطور که در تصویر فوق مشاهده می شود فایل تولید شده R.java نام دارد(حرف R از اول واژه Resource به معنی "منبع" گرفته شده است). به طور خلاصه می توان گفت که ما در توسعه اپلیکیشن اندرویدی از عناصر زیادی استفاده می کنیم که برخی از آنها توسط XML ایجاد می شوند مثل Layout ها، دکمه ها و غیره و برخی دیگر عناصری هستند همچون عکس ها، فایل های صوتی و ... که جزو منابع اپلیکیشن ما قرار دارند. حال برای آنکه بتوانیم به کلیه این عناصر در Activity ها دسترسی داشته باشیم بایستی آدرس آنها را داخل کلاس مرتبط با Activity وارد کنیم(برای آشنایی بیشتر با Activity ها به آموزش دوم مراجعه نمایید).

اگر بخواهیم آدرس XML یی مثلا یک دکمه که در XML ساخته شده است را در کلاس خود بیاوریم، نه تنها این آدرس ممکن است طولانی شود، بلکه ممکن است در حین Run شدن اپلیکیشن نیز با مشکل مواجه شویم و در اینجا است که اهمیت فایل R دوچندان می شود. به عبارت دیگر سیستم عامل اندروید با این کار Java و XML را به یکدیگر مرتبط می سازد. کاربرد این فایل به این شکل است که یک id یا یک "شماره معرف" برای هر یک از عناصر موجود src اپلیکیشن ما من جمله layout، متون، عکس ها، فونت ها و غیره در این فایل ساخته می شود. نکتۀ جالب در ارتباط با این فایل این است که این فایل به صورت خودکار توسط برنامه ایجاد می گردد.

به عبارت دیگر به محض اینکه ما یک عنصر جدید مثلاً یک دکمه جدید داخل UI برنامه می کنیم، اندروید به صورت خودکار به آن دکمه یک id اختصاص داده و آن id را وارد فایل R.java می کند. حال زمانیکه بخواهیم به طول مثال عکس خاصی در یک Activity به کار بریم، از طریق id آن عنصر خاص در فایل R به آن عکس دسترسی پیدا خواهیم کرد. به نظر می رسد علت انتخاب یک نام بسیار کوتاه تک حرفی تحت عنوان R برای این فایل این است که در حین آدرس دادن به عناصر موجود در اپلیکیشن زمان زیادی صرف نوشتن نام این فایل نکنیم(فقط با نوشتن R.id سپس نام عنصر مد نظر به آن دست پیدا خواهیم کرد).

مزیت دیگر این فایل این است که اگر عناصر موجود در src را با همان اسامی XML یی خودشان به فایل جاوا لینک دهیم، چنانچه مثلاً مشکلی در فایل XML باشد این مشکل در حین Run شدن یا "اجرای برنامه" خود را نشان خواهد داد و این اتفاق خوبی نیست چرا که ممکن است این مشکل خود را زمانی نشان دهد که اپلیکیشن به دست کاربر رسیده است. اما زمانیکه یک id برای هر یک از عناصر در فایل R ایجاد می شود، چنانچه مشکلی در برنامه وجود داشته باشد این مشکل در حین Compile شدن برنامه خود را نشان خواهد داد و این مسئله خبر خوبی است چرا که پیش از اینکه اپلیکیشن به دست کاربران برسد، خود برنامه نویس یا توسعه دهنده با مشکلات احتمالی رو به رو خواهد شد.

چنانچه دو بار روی نام این فایل کلیک کنیم خواهیم توانست محتوایات آن را مشاهده کنیم:


  1. package com.test.mainpackage;
  2.  
  3. public final class R {
  4. public static final class attr {
  5. }
  6. public static final class drawable {
  7. public static final int ic_launcher=0x7f020000;
  8. }
  9. public static final class layout {
  10. public static final int main=0x7f030000;
  11. }
  12. public static final class string {
  13. public static final int app_name=0x7f040001;
  14. public static final int hello=0x7f040000;
  15. }
  16. }
  17.  

کد فوق مربوط به محتویات فایل R است که برای پروژه My First Android Project به صورت خودکار توسط برنامه ایجاد شده است. به طور مثال نام ic_launcher مربوط به نام آیکون سبز رنگ اندروید است که به عنوان آیکون اپلیکیشن پس از نصب مورد استفاده قرار می گیرد و یا نام main مربوط به Layout یی است که در حین ساخت پروژه ایجاد کردیم. همانطور که مشاهده می شود هر یک از این اسامی دارای یک id نیز می باشند. نکتۀ بسیار مهمی که در ارتباط با این فایل وجود دارد این است که به هیچ وجه نمی بایست آن را ویرایش کرده و تغییری در آن ایجاد کنیم که در این صورت Compiler به محض Save کردن این فایل پس از تغییر آن را به حالت اول در خواهد آورد اما این در حالی است که می توان آن را به کلی حذف کرد و برنامه بدون هیچ مشکلی اجرا خواهد شد زیرا به محض Compile شدن اپلیکیشن این فایل مجدداً به صورت خودکار با اعمال آخرین تغییرات ساخته خواهد شد. نکته پایانی در ارتباط با فایل R این است که در هر بار Compile شدن اپلیکیشن این فایل Update خواهد شد تا ببیند آیا عنصر جدیدی به برنامه اضافه شده است که بخواهد برای آن یک id اختصاص دهد و یا آیا عنصری حذف شده است که نیاز باشد id اختصاص داده شده به آن را حذف کند یا خیر.

چهارشنبه 25 دی 1392  01:25 ب.ظ
تشکرات از این پست
amin_j nikonazar
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی اندروید - قسمت ۱۰: بررسی فولدرهای Andrtoid و assets و bin و libs

اهداف آموزشی این قسمت عبارتند از: 1. معرفی فولدر Android 2.1
2. معرفی فولدر assets
3. معرفی فولدر bin
4. معرفی فولدر libs

پس از آشنایی با فولدرهای src و gen در قسمت نهم، در این قسمت قصد داریم تا به بررسی دیگر فولدرهای تشکیل دهندۀ یک اپلیکیشن اندرویدی بپردازیم. لطفا به ادامه مطلب بروید.


معرفی فولدر Android 2.1

فولدر بعدی در این لیست فولدر Andtroid 2.1 نام دارد که تصویر آن در بالای مطلب درج شده است.


اگر خاطرمان باشد در حین ساخت اولین پروژه خود در اندروید در پنجره مربوط به مشخص کردن Build Target نسخه اندروید 2.1 را انتخاب کردیم. در حقیقت این فولدر در برگیرندۀ فایل android.jar است که حاوی کلیۀ API های لازم در SDK اندروید نسخه 2.1 است که اپلیکیشن ما تحت آن ساخته می شود. اگر این فولدر را باز کنیم، جایی که این API ها روی کامپیوتر ما نصب شده اند نشان داده خواهد شد. برای روش تر شدن مطلب به تصویر زیر دقت نمایید:


920409-a10-IMAGE 2.jpg

همانطور که مشاهده می شود مسیر C:\dev\android\platforms\android-7 جایی است که بنده در حین آماده سازی محیط برنامه نویسی اکلیپس و ابزار SDK مشخص کرده ام. از این پس در حین توسعه هر اپلیکیشنی Library ها یا اصطلاحاً "کتابخانه های" در برگیرندۀ API های لازم به توسعه تحت یک نسخه خاص از اندروید از این مسیر کپی خواهند شد.

به طور مثال اگر در حین ساخت پروژه نسخه دیگری همچون اندروید نسخه 3.0 را انتخاب کرده بودیم، فولدر Android 3.0 به اپلیکیشن ما Import می شد. چنانچه این فولدر را باز کنیم خواهیم دید که دارای پکیج ها، کلاس ها و منابع بسیار زیادی می باشد. خبر خوشحال کننده در ارتباط با این فولدر این است که در طول توسعه اپلیکیشن برای اندروید نیازی به باز کردن این فولدر و جستجو کردن چیزی در آن نداشته و به منظور استفاده از API های مد نظر در توسعه اپلیکیشن خود از دستورات Import استفاده خواهیم کرد که این لینک به صورت خودکار مابین اپلیکیشن ما و این فولدر برقرار خواهد شد.


معرفی فولدر assets

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


920409-a10-IMAGE 3.jpg

اما این در حالی است که آزادی عمل ما در فولدر assets به مراتب بیشتر بوده و در واقع هر چیزی که بخواهیم به صورت raw یا "خام" در اپلیکیشن خود قرار دهیم را در این فولدر قرار می دهیم(واژه assets به معنی "دارایی ها" می باشد). از سوی دیگر می توانیم فولدرهای زیرمجموعه فولدر assets را بر اساس سلیقه خود دسته بندی کنیم سپس از طریق جاوا به چیزهای داخل این فولدر دسترسی پیدا کنیم. این فولدر بیشتر در مورد طراحی بازی اندرویدی کاربرد خواهد داشت که نیاز داریم از عناصر زیادی برای یک بازی بهره مند شویم. یا فرض کنیم که می خواهیم یک اپلیکیشن یادداشت برداری یا اصطلاحاً نت برداری طراحی کنیم که این اپلیکیشن برای سهولت کاربر دارای یک دیکشنری است که واژگانی که کاربر وارد می کند را حدس زده و تکمیل می کند(همانند اس ام اس دادن که با تایپ قسمت اول یک لغت، اپلیکیشن اس ام اس آن را برای ما تکمیل می کند). حال فرض کنیم که این دیکشنری یک فایل XML یا یک پایگاه داده از جنس SQLite است. فایل هایی از این دست را می بایست داخل فولدر assets قرار دهیم.

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


معرفی فولدر bin

همانطور که در تصویر زیر مشاهده می شود، پس از معرفی فولدر های فوق الذکر فولدر bin قرار گرفته است:


920409-a10-IMAGE 4.jpg

به طور خلاصه می توان گفت که اندروید خروجی های برنامه پس از Compile شدن را در این فولدر قرار می دهد. به عبارت دیگر کلیۀ فایل های Compile شدۀ جاوا که با پسوند class ذخیره می شوند(مثلاً MainActivity.class که از روی فایل MainActivity.java کامپایل شده است) و حتی فایلی با پسوند apk که با فرستادن آن روی تلفن همراه یا تبلت می توانیم اپلیکیشن را نصب کنیم در این فولدر قرار می گیرند. به طور مثال در ساخت اولین پروژه اندروید پس از تکمیل اپلیکیشن خود فایلی تحت عنوان MyFirstAndroidProject.apk در این فولدر ذخیره خواهد شد که به سادگی با کپی کردن آن روی تلفن همراه خواهیم توانست اپلیکیشن خود را اجرا کنیم.


معرفی فولدر libs

فولدرهای مرتبط با Library ها یا "کتابخانه های اندروید" که در برگیرنده API های لازم برای توسعه اندروید می باشند در یک اپلیکیشن قابل روئیت نیستند اما آشنایی با آن بی فایده نیست. به طور خلاصه این فولدر حاوی Library هایی است که شرکت های طراحی و توسعه اپلیکیشن تولید کرده و یا به صورت رایگان و یا به صورت فروشی در اختیار دیگر برنامه نویسان و توسعه دهندگان اندروید قرار می دهند. به عنوان مثال library مرتبط با jTwitter دارای API های لازم برای به کارگیری Twitter در اپلیکیشن اندرویدی می باشد. در واقع اگر به طور مثال بخواهیم از قابلیت های Twitter در اپلیکیشن خود استفاده کنیم، می بایست Library مرتبط با jtwitter.jar را داخل فولدر libs قرار دهیم(کلمه libs مخفف واژه Libraries به معنی "کتابخانه ها" می باشد).

چهارشنبه 25 دی 1392  01:27 ب.ظ
تشکرات از این پست
amin_j nikonazar alialaie
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی اندروید - قسمت ۱۱: بررسی فولدر res

معرفی فولدر res

در یک کلام، کلیۀ عناصر موجود در یک اپلیکیشن اندرویدی از Layout گرفته تا دیگر عناصر مثل عکس، فایل صوتی، فایل تصویری، انیمیشن، فونت، آیکون و ... در فولدر res قرار خواهند گرفت(واژه res مخفف واژه resources به معنی "منابع" است).

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

به همین منوال پس از نصب اپلیکیشن روی تبلت اندروید خواهد دید که اندازه صفحه نمایش این دستگاه ده اینچ است پس به سراغ فولدری در زیرمجموعه فولدر res خواهد رفت که دارای عکس های بهینه شده برای صفحه نمایش های بزرگ می باشد. از سوی دیگر از آنجا که زبان انتخابی تبلت زبان انگلیسی است، در حین نصب به سراغ فولدری خواهد رفت که معادل انگلیسی کلیۀ واژگان، عبارات و جملات در آن قرار گرفته است.

نکته ای که در ارتباط به فولدرهای زیرمجموعه res وجود دارد این است که اسامی کلیۀ فولدرهای زیرمجموعه از پیش تعیین شده هستند و ما به عنوان یک توسعه دهنده اپلیکیشن اندرویدی اجازه نداریم تا هر نوع فولدری به هر نامی در فولدر res ایجاد کنیم. مثلاً فرض کنیم که می خواهیم اپلیکیشنی طراحی کنیم که عکس های شخصی ما را نشان دهد. حال نیاز داریم تا تعدادی عکس شخصی را وارد برنامه خود کنیم اما به هیچ وجه اجازه نداریم فولدری تحت عنوان Personal Photos به معنی "عکس های شخصی" بسازیم.

فولدرهای زیرمجموعه که می توانند در فولدر res قرار گیرند عبارتند از:

1. فولدری تحت عنوان anim که برای ذخیره سازی انیمیشن در نظر گرفته شده است. واژه anim مخفف واژۀ animation به معنی "انیمیشن" یا "تصویر متحرک" است.

2. فولدری تحت عنوان color به معنی "رنگ" که برای ذخیره سازی رنگ ها در نظر گرفته شده است.

3. فولدری تحت عنوان drawable به منظور ذخیره سازی تصاویر، شکل ها و چیزهایی از این دست مورد استفاده قرار می گیرد. فرمت عکس هایی که می توانند در این فولدر قرار گیرند می تواند یکی از فرمت های png یا jpg یا gif یا 9.png باشد.

4. فولدری تحت عنوان drawable-xhdpi جزو فولدرهایی که به صورت پیش فرض ممکن است در یک اپلیکیشن ایجاد نگردد. این فولدر در حقیقت به عنوان نسخه ای از فولدر drawable است که برای تبلت هایی با صفحه خیلی بزرگ مورد استفاده قرار می گیرد(نکته ای که در ارتباط به نحوه نامگذاری این فولدر می بایست همواره مد نظر قرار گیرد این است که پس از نوشتن نام drawable یک Dash یا خط تیره قرار داده سپس عبارت xhdpi را می نویسیم(فراموش نکنیم که Dash با Underscore فرق دارد و اگر Underscore قرار دهیم با مشکل مواجه می شویم. در واقع با پایین نگه داشتن دکمه Shift در حین زدن دکمه Dash می توانیم Underscore را تایپ کنیم.) حرف x مخفف واژه extra به معنی "خیلی" است. حرف h مخفف واژه high به معنی "زیاد" است. حروف dpi مخفف واژگان Dots per inch به "معنی نقطه در هر اینچ" می باشند).

5. فولدری تحت عنوان drawable-hdpi به عنوان نسخه ای از فولدر drawable است که برای تلفن ها یا تبلت هایی با صفحه بزرگ مورد استفاده قرار می گیرد(حرف h مخفف کلمه high به معنی "بزرگ" است).

6. فولدری تحت عنوان drawable-ldpi به عنوان نسخه ای از فولدر drawable است که برای تلفن هایی به اندازه صفحه کوچک(مثلاً دو اینچی) مورد استفاده قرار می گیرد(حرف l مخفف کلمه low به معنی "کوچک" است).

7. فولدری تحت عنوان drawable-mdpi به عنوان نسخه ای از فولدر drawable است که برای تلفن هایی به اندازه صفحه متوسط مورد استفاده قرار می گیرد(حرف m مخفف کلمه medium به معنی "متوسط" است).

8. فولدری تحت عنوان layout به منظور ذخیره سازی UI یا همان "رابط گرافیکی کاربر" مورد استفاده قرار می گیرد(به عبارت دیگر همان صفحۀ اصلی اپلیکیشن که پس از اجرا بالا می آید در این فولدر قرار می گیرد).

9. فولدری تحت عنوان menu به منظور ذخیره سازی منوها مورد استفاده قرار می گیرد(منوها ابزارهایی هستند که با استفاده از دکمه Menu تلفن همراه یا تبلت فرا خوانده می شوند که از طریق گزینه های داخل منو می توان به بخش های مختلف اپلیکیشن رفت).

10. فولدری تحت عنوان raw که "خام" معنی می دهد به منظور ذخیره سازی فایل هایی از قبیل MP3 . نکته ای که در مورد این فولدر می بایست مد نظر قرار دهیم این است که عناصر داخل این فولدر توسط اندروید Compressed یا فشرده نمی شوند.

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

از اینرو برای ذخیره سازی داده هایی از جنس اعداد و کلمات در کنار یکدیگر می بایست فایلی تحت عنوان arrays.xml ایجاد کرده و آن را داخل فولدر values قرار دهیم.

چنانچه بخواهیم لیستی از رنگ ها داشت باشیم، می توانیم فایلی تحت عنوان colors.xml ایجاد کرده و مقادیر رنگ های مد نظر خود را در آن وارد کنیم.

چنانچه بخواهیم لیستی از ابعداد و اندازه ها داشته باشیم، می توانیم فایلی تحت عنوان dimens.xml ایجاد کنیم. کلمه dimens مخفف کلمه dimensions به معنی "ابعاد" است. کاربرد این فایل به این شکل است که می توانیم در آن یکسری ابعاد تعریف کرده سپس آنها را در برنامه خود مثلاً برای اندازه یک متن استفاده کنیم.

چنانچه بخواهیم یکسری کلمه یا عبارت یا نوشته ایجاد کنیم و آنها را در برنامه خود استفاده کنیم می توانیم از فایلی تحت عنوان strings.xml استفاده کنیم. به طور مثال فرض کنیم که می خواهیم اپلیکیشن خود را با نام خدا آغاز کنیم، از اینرو یک string با مقدار In the name of God در فایل strings.xml ایجاد کرده سپس در هر کجای برنامه که بخواهیم می توانیم آن را فرا بخوانیم(لازم به ذکر است کلمه انگلیسی God با کلمه god دارای تفاوت معنایی است. در واقع این کلمه با حرف بزرگ به معنای "خدای یکتا" است در حالیکه کلمه god با حرف کوچک به معنی "الهه" است. مثلاً The god of water به معنی "الهه آب" است).

چنانچه با HTML آشنایی داشته باشیم می دانیم که برای شکل دادن به ظاهر عناصری که توسط کدهای HTML ایجاد می شوند می توانیم از CSS استفاده کنیم.

در توسعه اندروید هم چیزی شبیه به CSS تحت عنوان styles.xml وجود دارد. موارد استفاده این style ها ایجاد خصوصیاتی کلی است که با نسبت دادن آن خصوصیات به عنصری در اپلیکیشن دیگر نیاز به تعریف تک تک آن خصوصیات برای هر چیزی در اپلیکیشن نیست.

اپلیکیشنی که در برگیرندۀ کلیه فولدرها و فایلی های توضیح داده شده در این آموزش باشد به شکل زیر خواهد بود:


920409-a11IMAGE 1.jpg

شنبه 28 دی 1392  10:50 ق.ظ
تشکرات از این پست
amin_j nikonazar
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی اندروید - قسمت ۱۲:نحوه ساخت فولدرها و فایل های جدید در فولدر res

نحوه ایجاد یک فولدر جدید

برای ایجاد فولدرهایی که به صورت پیش فرض در یک اپلیکیشن قرار ندارند به صورتی زیر اقدام می کنیم:


همانطور که در تصویر اصلی مطلب مشاهده می شود، روی فولدر res کلیک راست نموده سپس روی اولین گزینه از بالا که New است کلیک کرده سپس در پنجره جدیدی که باز می شود گزینه Folder را انتخاب می کنیم. پس از کلیک کردن روی گزینه Folder پنجره زیر باز خواهد شد:


92-0409-a12-IMAGE 2.jpg

همانطور که در تصویر فوق مشاهده می شود جایی که زیر آن خط قرمز کشیده شده است نشانگر فولدر res داخل پروژه ای است که می خواهیم این فولدر جدید را داخل آن ایجاد کنیم. در بخشی که با بیضی قرمز رنگ مشخص شده است می بایست نام فولدر جدید را وارد کنیم. به طور مثال فرض کنیم که می خواهیم از انیمیشن در اپلیکیشن خود استفاده کنیم. برای این منظور می بایست انیمیشن های خود را در اپلیکیشن ذخیره سازیم که اینکار فقط با ایجاد یک فولدر تحت عنوان anim امکان پذیر است. بنابراین واژه anim را مقابل Folder name به معنی "نام فولدر" نوشته و دکمه Finish را می زنیم.


92-0409-a12-IMAGE 3.jpg

همانطور که در تصویر فوق مشاهده می شود می بینیم که فولدری تحت عنوان anim زیرشاخه فولدر res ساخته شده و در اولین جایگاه قرار گرفته است. به عبارت دیگر محل قرار گرفتن کلیه فولدرهای زیرشاخه بر اساس حروف الفبای انگلیسی است.


نحوه ایجاد یک فایل جدید در فولدر values

چنانچه بخواهیم یکی از فایل های زیرمجوعه فولدر values را ایجاد کنیم می بایست به صورت زیر عمل نماییم:


92-0409-a12-IMAGE 4.jpg

همانطور که در تصویر فوق مشاهده می شود، روی فولدر values کلیک راست کرده سپس روی اولین گزینه از بالا که گزینه New است کلیک کرده و در نهایت همانطور که در تصویر با فلش قرمز رنگ نشان داده شده است روی گزینه Android XML File کلیک می کنیم. اکنون پنجره ای به شکل زیر باز خواهد شد:


92-0409-a12-IMAGE 5.jpg

در تصویر فوق بیضی قرمز رنگ اول نشانگر فولدری است که می خواهیم این فایل جدید در آن ذخیره شود که در این مثال فولدر values مد نظر است. بیضی قرمز رنگ دوم نشانگر پروژه ای است که می خواهیم این فایل XML جدید در فولدر values آن پروژه ایجاد گردد که در اینجا همان پروژه ای که در آموزش هشتم تحت عنوان My First Android Project ایجاد کردیم را انتخاب خواهیم کرد. در جاییکه زیر آن خط قرمز کشیده شده است می بایست نام یکی از انواع فایل های از پیش تعیین شده XML که پیش از این معرفی شدند را بنویسیم. به طور مثال در این آموزش می خواهیم یک فایل arrays که برای ذخیره سازی کلمات و اعداد در کنار یکدیگر استفاده می شود را ایجاد کنیم. نکته ای که در ساخت این فایل ها می بایست مد نظر قرار دهیم این است که نیازی به نوشتن پسوند xml پس از نام فایل نیست چرا که اکلیپس اینکار را به صورت خودکار برای ما انجام خواهد داد. حال می توانیم دکمه Finish را بزنیم.

به همین ترتیب می توانیم مابقی فایل های XML را نیز در فولدر values ایجاد کنیم:


92-0409-a12-IMAGE 6.jpg

مقدمات بومی سازی یک اپلیکیشن

همانطور که در معرفی فولدر res در آموزش یازدهم مثالی در رابطه با نصب یک اپلیکیشن روی یک تلفن و تبلت زدیم و دیدیم که با تغییر زبان یک دستگاه می توانیم این دستور را به اندروید بدهیم که در حین نصب با توجه به زبان انتخابی از منابع مرتبط با آن زبان استفاده کند. برای روشن تر شدن این مسئله به مثال زیر توجه نمایید:

در این قسمت خواهیم دید که به چه سادگی می توان تنظیمات این کار را انجام داد. برای این منظور نیاز است تا با Language ISO Code ها یا به عبارتی با "کد بین المللی زبان های مختلف" آشنایی داشته باشیم. برای مثال کد زبان فارسی fa است و کد زبان آلمانی de است. در حقیقت برای آنکه این دستور را به اندروید بدهیم که به محض تغییر زبان تلفن همراه یا تبلت از منابع مرتبط با آن زبان در اجرای اپلیکیشن استفاده کند، می بایست منابعی متناظر با همان زبان در فولدر res ایجاد کنیم.


92-0409-a12-IMAGE 7.jpg

همانطور که پیش از این در همین قسمت از آموزش نحوه ساخت یک فولدر جدید آموزش داده شد، یک فولدر جدید برای ذخیره عکس های مرتبط به زبان فارسی تحت عنوان drawable-fa و یک فولدر دیگر تحت عنوان drawable-de برای ذخیره سازی عکس های مرتبط با زبان آلمانی ایجاد می کنیم. در تصویر فوق این دو فولدر با بیضی سبز زنگ مشخص شده اند. همانطور که قبلاً گفته شد فولدر values مسئول ذخیره سازی چیزی های زیادی است که یکی از آنها اسامی، متون و جملات است. حال برای آنکه به محض تغییر زبان تلفن همراه یا تبلت کلیه جملات هم به آن زبان تبدیل شوند می بایست فولدر های متناظر با این دو زبان فارسی و آلمانی نیز ساخته شود. همانطور که در تصویر فوق با یک بیضی قرمز رنگ مشخص شده است، یک فولدر تحت عنوان values-fa برای ذخیره سازی اسامی، عبارات و جملات فارسی و یک فولدر دیگر تحت عنوان values-de برای ذخیره سازی اسامی، عبارات و جملات آلمانی ایجاد شده است.

به عنوان نکته پایانی بایستی گفت که اگر منابع مرتبط با زبانی در اپلیکیشن ما موجود نباشد مثلا فولدرهای drawable-de و values-de در پروژه ما وجود نداشته باشند، در حین اجرا اپلیکیشن از فولدرهای پیش فرض که همان drawable و values می باشند برای زبان آلمانی استفاده خواهد کرد.

در حقیقت این توضیحات صرفاً مقدمه ای بر بومی سازی یک اپلیکیشن بوده و مسلماً پس از آنکه مهارت ما در توسعه اندروید کمی بیشتر شد، حتماً به توضیحات بیشتری پیرامون محتویات این فولدر ها و نحوه اعمال تغییرات بر اساس زبان انتخابی خواهیم پرداخت.

شنبه 28 دی 1392  10:52 ق.ظ
تشکرات از این پست
amin_j nikonazar
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی اندروید- قسمت ۱۳: بررسی دو فایل بسیار مهم در توسعه اپلیکیشن

معرفی فایل AndroidManifest.xml

هر اپلیکیشن می بایست دارای فایلی تحت عنوان AndroidManifest.xml در دایرکتوری اصلی خود که همان Root Directory است باشد(به حروف کوچک و بزرگ در نام این فایل توجه کنید). برای درک بهتر Root Directory به تصویر زیر توجه کنید:


920430-a13-IMAGE 1.jpg

در تصویر فوق این فایل با یک بیضی قرمز رنگ نشان داده شده است. جاییکه فلش قرمز رنگ قرار گرفته است نشانگر Root Directory یا همان "دایرکتوری اصلی" اپلیکیشن است. به عبارت دیگر تنها جاییکه این فایل می تواند قرار گیرد زیرشاخه همین دایرکتوری است که اگر جای این فایل تغییر یابند اپلیکیشن به هیچ وجه کار نخواهد کرد.

در واقع پس از کلیک کردن روی نام این فایل، پنجره مربوط به آن در محیط اکلیپس باز می شود:


920430-a13-IMAGE 2.jpg

همانطور که در تصویر فوق نشان داده شده است پس از باز کردن فایل Manifest در قسمت پایین پنجره مربوط به این فایل پنج Tab مجزا از یکدیگر دیده می شود. کلیه این Tab ها به جز Tab یی تحت عنوان AndroidManifest.xml که در تصویر فوق با یک فلش قرمز رنگ نشان داده شده است دارای یک محیط گرافیکی هستند و این در حالی است که این محیط گرافیکی تا حدودی اعمال تغییرات در فایل Manifest را برای توسعه دهندگان مبتدی آسان ساخته است. به طور مثال در تصویر فوق Tab مربوط به Manifest باز است و در قسمت فوقانی این Tab اطلاعت مربوط به پیکج و Version Code و غیره دیده می شود. به طول مثال با تغییر Version Code از عدد 1 به عدد 2 بدون نیاز به کد نویسی می توان Version Code را آپدیت کرد(در ادامه همین آموزش با Version Code بیشتر آشنا خواهیم شد).

اکثر برنامه نویسان حرفه ای با حالت نمایش XML یی این فایل کار می کنند. در واقع با کلیک کردن روی Tab مرتبط با AndroidManifest.xml محتویات این فایل برای پروژه ای که در آموزش هشتم تحت عنوان My First Android Project ساختیم به شکل زیر نمایش داده خواهد شد:


  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.behzadmoradi.mainpackage"
  4. android:versionCode="1"
  5. android:versionName="1.0" >
  6. <uses-sdk android:minSdkVersion="7" />
  7. <application
  8. android:icon="@drawable/ic_launcher"
  9. android:label="@string/app_name" >
  10. <activity
  11. android:name=".MainActivity"
  12. android:label="@string/app_name" >
  13. <intent-filter>
  14. <action android:name="android.intent.action.MAIN" />
  15. <category android:name="android.intent.category.LAUNCHER" />
  16. </intent-filter>
  17. </activity>
  18. </application>
  19. </manifest>

کاری که این فایل انجام می دهد این است که اطلاعاتی کلی پیرامون اپلیکیشن طراحی شده در سیستم اندروید می دهد. به عبارت دیگر، این فایل Component هایی را که ما در برنامه خود مورد استفاده قرار داده ایم را به سیستم عامل اندروید معرفی می کند. از سوی دیگر این فایل Permission ها یا "مجوزهایی" که کاربر برای نصب برنامه می بایست صادر کند را نیز در بر می گیرد. فرض کنیم که برنامه ای طراحی کرده ایم که نیاز به دسترسی به اینترنت دارد. حال اگر کسی بخواهد این برنامه طراحی شده توسط ما را مورد استفاده قرار دهد، مجبور است در حین نصب اجازه دسترسی به اینترنت را به این اپلیکیشن صادر کند. همانطور که در آموزش اول توضیح داده شد، سیستم عامل اندروید دارای نسخه های مختلفی است. چنانچه ما برنامه ای طراحی کنیم که برای مثلا نسخه Gingerbread یا نسخه 3.0 طراحی شده باشد، این حداقل نسخه مورد نیاز برای اجرای این اپلیکیشن یا همان Minimum SDK در فایل Manifest ذکر خواهد شد و چنانچه کاربری که سیستم عامل اندروید وی پایین تر از نسخه 3.0 باشد بخواهد برنامه طراحی شده ما را استفاده کند در حین نصب فایل Manifest این مسئله را خواهد فهمید و از نصب برنامه جلوگیری به عمل خواهد آورد. در واقع در کد فوق دستور android:minSdkVersion="7" حداقل SDK مورد نیاز اپلیکیشن را مشخص کرده است. مواردی دیگری علاوه بر موارد فوق نیز در این فایل مشاهد می شود که در ذیل به آنها اشاره می کنیم: نامی که برای پکیج اپلیکیشن مورد استفاده قرار دادیم در این فایل قرار گرفته است. علت قرار گرفته نام پکیج در فایل Manifest این است نام این پکیج به منزلۀ یک معرف منحصر به فرد از اپلیکیشن برای سیستم عامل اندروید می باشد. همانطور که در کد فوق مشاهده می شود package="com.test.mainpackage" نشانگر نام پکیجی است که کلیه کلاس های جاوای اپلیکیشن در آن قرار گرفته اند. کلیۀ Activity ها و Service های به کار گرفته شده در اپلیکیشن که تحت عنوان Component های اپلیکیشن شناخته می شوند نیز در این فایل معرفی می شوند. در کد فوق خطی که حاوی android:name=".MainActivity" می باشد تنها Activity یی که در حین ساخت پروژه تعریف کردیم را نشان می دهد. علاوه بر موارد فوق، فایل Manifest اطلاعاتی پیرامون نسخه اپلیکیشن ما به کاربران نیز ارائه می دهد. اگر در حین دانلود یا نصب اپلیکیشن های اندروید توجه کرده باشید، دیده اید که Version یا نسخه اپلیکیشن مد نظر به کاربران اطلاع داده می شود(مثلاً نسخه 4 اپلیکیشن). به طور کلی می توان گفت که هر اپلیکیشن اندروید دارای یک Version Code و یک Version Name است.

آشنایی با Version Code

منظور از Version Code یک عدد است و کاربرد این عدد برای کاربران اپلیکیشن نیست بلکه برای Google Play است تا از طریق این عدد از یک سو خود اپلیکیشن را شناسایی کند و از سوی دیگر آپدیت های اپلیکیشن را پیگیری کند. به عبارت دیگر کاربران به هیچ وجه این کد را مشاهده نخواهند کرد. نکته ای که برای تعیین شماره Version Code همواره می بایست مد نظر قرار داد این است که این شماره از هر عددی می تواند شروع شود اما همواره پس از آپدیت کردن اپلیکیشن این عدد می بایست نسبت به نسخه قبلی عدد بزرگ تری باشد. به طور مثال اگر نسخه اول اپلیکیشن دارای Version Code یی معادل با 1 بود نسخه بعدی پس از آپدیت توسط توسعه دهنده اپلیکیشن می بایست مثلا معادل با 2 باشد. به منظور درک بهتر این مسئله سناریوی زیر را در نظر می گیریم: فرض کنیم که ما یک اپلیکیشن طراحی کرده و Version Code آن را معادل با 1 قرار داده ایم و آن را از طریق Google Play در دنیا منتشر می کنیم. پس از مدتی مشخص می شود که اپلیکیشن ما پس از 20 دقیقه کار کردن Crash می کند. بنابراین سعی می کنیم نواقص اپلیکیشن را رفع کرده، مجدد آن را Compile می کنیم و آن را در Google Play مجدد منتشر می کنیم. نکته ای که فراموش کرده ایم پس از رفع نواقص اپلیکیشن آپدیت کنیم Version Code اپلیکیشن مان است. در واقع پس از آنکه نسخه اصلاح شده را در Google Play منتشر کردیم Google Play متوجه نخواهد شد که ویرایش جدید اپلیکیشن روی سرور اش قرار گرفته از اینرو به کاربرانش که این اپلیکیشن را دانلود کرده اند نمی تواند اطلاع رسانی کند که نسخه جدید و اصطاح شده اپلیکیشن را مجدد دانلود کنند. اما اگر Version Code را به عدد 2 تغییر دهیم این مسئله به اطلاع Google Play خواهد رسید و بالتبع کاربرانی که از این اپلیکیشن استفاده می کنند نیز از آپدیت اپلیکیشن مطلع خواهند شد. همانطور که در کد فوق ملاحظه می شود دستور android:versionCode="1" نشانگر نسخه یک اپلیکیشن ما است که در اختیار Google Play قرار می گیرد.

آشنایی با Version Name

به طور کلی Version Name نامی است برای رویت کابرانی است که اپلیکیشن را دانلود می کنند. نحوه نامگذاری Version Name می تواند بر اساس استراتژیی باشد که توسعه دهندۀ اپلیکیشن برای اپلیکیشن هایش در نظر می گیرد. به طور مثال می توان Version Name را بر اساس تاریخ انتشار اپلیکیشن در نظر گرفت. در کد فوق دستور android:versionName="1.0" نشانگر کد 1.0 است که به کاربران نشان داده می شود.

معرفی فایل project.properties

این فایل نیز همانند فایل Manifest از اهمیت زیادی در اجرای اپلیکیشن برخوردار است. یکی از دلایل اصلی وجود این فایل در یک اپلیکیشن ایجاد ارتباط مابین اپلیکیشن، اکلیپس و ADT می باشد(برای آشنایی بیشتر با ADT به آموزش هفتم راجعه نمایید). از جمله اطلاعات مهمی که در این فایل قرار می گیرد Target SDK است(نام دیگر Target SDK عبارت Build SDK است). همانطور که در آموزش های پیشین توضیح داده شد Target SDK مشخص می کند که ما اپلیکیشن خود را برای کدام نسخه از سیستم عامل اندروید می سازیم. در واقع زمانیکه در آموزش هشتم ما اولین پروژه خود را در اکلیپس تحت عنوان My First Android Project ساختیم، نسخه سیستم عامل مد نظر یا همان Target SDK یا نسخه 2.1 انتخاب کردیم. حال اطلاعات مربوط به Target SDK در این فایل ذخیره شده اند. نکته ای که در ارتباط با این فایل بسیار مهم است این است که این فایل به هیچ وجه نمی بایست بر خلاف فایل Manifest به صورت دستی ویرایش شود. برای ویرایش این فایل می بایست مطابق تصویر زیر عمل کرد:

920430-a13-IMAGE 3.jpg

همانطور که در تصویر فوق نشان داده شده است، روی نام پروژه ای که ساخته ایم کلیک راست نموده سپس همانطور که با فلش قرمز رنگ نشان داده شده است روی آخرین گزینه از پنجره ای باز می شود یا همان گزینه Properties کلیک می کنیم و پنجره ای به صورت زیر باز خواهد شد:

920430-a13-IMAGE 4.jpg

پروژه ای که در قسمت هشتم ساختیم و در آن نسخه 2.1 را به عنوان Target SDK مبنا قرار دادیم را مجدد مد نظر قرار می دهیم:

920430-a13-IMAGE 5.jpg

همانطور که در تصویر فوق مشخص شده است، فولدر مربوط به Library های همان نسخه ای از Target SDK که در حین ساخت پروژه انتخاب کردیم وارد اپلیکیشن شده است. حال فرض کنیم که نسخه اندروید 2.1 پاسخگوی نیازهای ما نیست و قابلیت هایی را که مد نظر ما است تا در اپلیکیشن استفاده کنیم را ساپورت نمی کند و می بایست از نسخه های جدیدتر سیستم عامل اندروید مثل نسخه 3 تحت عنوان Honeycomb به معنی "شانه عسل" استفاده کنیم. از آنجا که می دانیم اطلاعات مربوط به Target SDK در فایل project.properties ذخیره می شود، همانطور که در قسمت بالا توضیح داده شد این فایل را باز کرده و مطابق تصویر زیر نسخه Target SDK را ارتقاء می دهیم:

920430-a13-IMAGE 6.jpg

پس از کلیک روی گزینه Properties همانطور که در تصویر فوق با فلش قرمز رنگ نشان داده شده است روی گزینه Android کلیک کرده سپس از ستون سمت راست گزنیه مرتبط با اندروید نسخه 3.0 را انتخاب نموده و دکمه OK را می زنیم(لازم به ذکر است نسخه هایی از SDK اندروید در این لیست نمایش داده می شوند که در حین آماده سازی محیط برنامه نویسی اکلیپس دانلود کرده و به اکلیپس معرفی کرده ایم).

920430-a13-IMAGE 7.jpg

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

شنبه 28 دی 1392  10:53 ق.ظ
تشکرات از این پست
amin_j nikonazar
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی اندروید - قسمت ۱۴: طراحی Layout برای دستگاه هایی با اندازه صفحه متفاوت

معرفی Size و Density

صفحه دستگاه هایی که به سیستم عامل اندروید مجهز می باشند دارای دو خصوصیت کلی تحت عناوین Size به معنی "اندازه" و Density به معنی "تراکم" می باشند. در واقع یک اپلیکیشن موفق به اپلیکیشنی می توان گفت که روی دستگاه هایی با Size ها و Density های متفاوت نصب شده و کار کند. بنابراین ما به عنوان یک توسعه دهنده اندروید می بایست منابع متفاوتی را در اپلیکیشن خود استفاده کنیم تا بتوانیم اپلیکیشن خود را برای هر دستگاهی بهینه سازیم.

به طور کلی چهار Size کلی در رابطه با دستگاه های اندرویدی وجود دارد که عبارتند از: Small به معنی "کوچک"، Normal به معنی "معمولی"، Large به معنی "بزرگ" و Xlarge به معنی "خیلی بزرگ".

در حقیقت منظور از Size یک دستگاه، اندازه دستگاه از گوشۀ سمت چپ پایین تا گوشۀ سمت راست بالای صفحه نمایش بر حسب اینچ می باشد. برای روش تر شدن مطلب به تصویر اصلی مطلب دوباره توجه کنید.


در حقیقت در تصویر فوق از نقطۀ شماره یک تا نقطۀ شماره دو 4.2 اینچ فاصله است.

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

به عنوان مثال برای ذخیره سازی تصاویری برای دستگاه هایی با صفحه نمایشی با Density بسیار زیاد می توانیم فولدری تحت عنوان drawable-xhdpi در پروژه خود ایجاد کنیم.

علاوه بر این به خاطر داشته باشیم که Screen Orientation به معنی "جهت قرارگیری صفحه" که می تواند Landscape یا"افقی" یا Portrait یا "عمودی" نیز می تواند به نوعی اندازه صفحه محسوب شوند. به عبارت دیگر می توانیم اپلیکیشن خود را طوری طراحی کنیم که شکل ظاهری اپلیکیشن ما در حالت های Landscape و Portrait بهینه باشد(لازم به ذکر است که واژه Landscape در فارسی به معنی "چشم انداز" می باشد و واژه Portrait به معنی "تصویر صورت" است اما از آنجا که این واژگان در صنعت عکاسی دیجیتال به حالت های به ترتیب افقی وعمودی عکس گفته می شود این معانی را در طول دوره لحاظ خواهیم کرد).


معرفی کلیۀ فولدرهای پیش فرض layout

به منظور بهینه سازی اپلیکیشن خود برای اندازه های صفحه متفاوت نیاز است تا برای هر اندازه صفحه که می خواهیم اپلیکیشن ما برای آن اندازه بهینه شود یک فایل XML ایجاد کنیم(همانطور که قبلاً توضیح داده شده است UI یا همان رابط گرافیکی کاربر توسط XML ایجاد می شود). به عبارت دیگر هر Layout که با XML ایجاد می شود می بایست داخل یک فولدر مرتبط با اندازه مد نظر که اسامی آنها از پیش در سیستم عامل اندروید تعریف شده است قرار گیرد.

برای روشن شدن مطلب، در پروژه ای که در قسمت هشتم تحت عنوان My First Android Project ایجاد کردیم اقدام می کنیم به ایجاد کلیۀ فولدر های لازم برای ساپورت کردن اندازه های صفحه متفاوت در دستگاه های مختلف به طوریکه پس از تکمیل اینکار پروژه ما به شکل زیر خواهد بود:


920431-a14-IMAGE 2.jpg

همانطور که در تصویر فوق مشاهده می شود، فولدرهایی که برای اندازه های متفاوت صفحه نمایش ایجاد شده اند از شماره یک تا هشت شماره گذاری شده اند. به طول کلی فولدر شماره یک یا همان فولدر layout به طور پیش فرض برای حالت Portrait توسط اندروید مورد استفاده قرار می گیرد. فولدر شماره دو یا layout-land برای حالت Landscape مورد استفاده قرار می گیرد. فولدر شماره سه یا layout-large برای دستگاه هایی با صفحه بزرگ در حالت Portrait استفاده می شود. فولدر شماره چهار یا layout-large-land برای دستگاه هایی با صفحه بزرگ در حالت Landscape استفاده می شود. فولدر شماره پنج یا layout-normal برای دستگاه هایی با اندازه صفحه نرمال مورد استفاده قرار می گیرد. فولدر شماره شش یا layout-small برای دستگاه هایی با اندازه صفحه کوچک مورد استفاده قرار می گیرد. فولدر شماره هفت یا layout-xlarge برای دستگاه هایی با صفحه بزرگ در حالت Portrait مورد استفاده قرار گرفته و در نهایت فولدر شماره هشت یا layout-xlarge-land برای دستگاه هایی با صفحه نمایش بسیار بزرگ در حالت Landscape مورد استفاده قرار خواهد گرفت.

به طور خلاصه، با قرار دادن فایل های مختلف XML مرتبط با UI در هر یک از این فولدرها، در حین اجرای اپلیکیشن بسته به اندازه صفحه نمایش دستگاه، سیستم عامل اندروید از منبع متناظر با آن دستگاه برای اجرای اپلیکیشن استفاده خواهد کرد. اما نکته ای که در اینجا حائز اهمیت است این است که نام فایل XML که در کلیۀ این فولدر ها قرار می گیرد برای یک Activity خاص می بایست یکی باشد. برای روشن شدن این مسئله به پروژه ای که در جلسه هشتم ساختیم رجوع می کنیم:


920431-a14-IMAGE 3.jpg

زمانیکه پروژه ای در محیط برنامه نویسی اکلیپس می سازیم، اکلیپس به طور خودکار یک فایل XML در فولدر layout می سازد و این فایل مرتبط با همان Activity یی است که در حین ساخت یک پروژه جدید ایجاد می کنیم. به عبارت دیگر در پروسه ساخت My First Android Project در جلسه هشتم یک Activity تحت عنوان MainActivity ساختیم. محیط برنامه نویسی اکلیپس به طور خودکار فایلی در داخل فولدر layout تحت عنوان main.xml ساخته و آن را به MainActivity مرتبط ساخته است. در واقع پس از اجرای این اپلیکیشن خواهیم دید که تنها Activity اپلیکیشن ما که MainActivity است پس از اجرای برنامه فایل main.xml را فراخواهد خواند.

پس از توضیح پیرامون این موضوع حال روشن است که اگر بخواهیم این اپلیکیشن را که فقط و فقط دارای یک Activity است را روی دستگاه هایی با اندازه های صفحه متفاوت اجرا کنیم و از سیستم عامل اندروید بخواهیم که با توجه به اندازه صفحه نمایش دستگاهی که اپلیکیشن روی آن اجرا می شود به فولدر مرتبط با اندازه آن صفحه نمایش رجوع کند، می بایست نام فایل XML قرار گرفته در هر یک از این فولدرها برای MainActivity یکسان باشد. علت این مسئله هم آن است که در حقیقت MainActivity یک کلاس جاوا است و در این کلاس ما به یک فایل XML لینک داده ایم که نامش main.xml است. حال اگر نام این فایل XML در فولدرهای مختلف یکسان نباشد، در حین اجرای برنامه سیستم عامل اندروید فایل هایی با نام های دیگر را پیدا نکرده و مجبور است که از فولدر پیش فرض که همان فولدر layout است استفاده کند.

شنبه 28 دی 1392  10:54 ق.ظ
تشکرات از این پست
amin_j nikonazar
دسترسی سریع به انجمن ها