مباحث اولیه برای آشنایی با برنامه نویسی اندروید

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
نصب نسخه های مختلف API از اندروید، در برنامه نویسی اندروید

نصب نسخه های مختلف API از اندروید، در برنامه نویسی اندروید

در مبحثی دیگر، تفاوت بین نسخه اندروید (Android version) و نسخه API (یا API level) را بیان کردیم و گفتیم که نسخه اندروید (Android version) معمولا دارای تغییرات قابل دیدن برای کاربران (users) گوشی های اندروید است، در صورتیکه که نسخه های API ، بیشتر به تغییرات داخلی و غیر قابل دیدن توسط کاربران مربوط می گردد (در واقع مربوط به توسعه دهندگان است). اگر شما به عنوان یک برنامه نویس اندروید (توسعه دهنده) فعالیت می کنید، ممکن است در مواردی، احتیاج پیدا کنید که بخواهید یک نسخه API از اندروید را نصب کنید. در این مبحث می خواهیم شرح بدهیم که چگونه می توان یک نسخه API دلخواه از اندروید را نصب کرد. اینکه تفاوت بین نسخه اندروید (Android version) و نسخه API (یا API level) را بیان کردیم برای این است که بدانید چرا توسعه دهندگان اندروید، اکثرا از نسخه API صحبت می کنند و حتی در برنامه eclipse نیز، هشدارها و خطاها و در کل، عملکرد برنامه eclipse ، بر اساس نسخه API است.

برای نصب یک نسخه API دلخواه از اندروید، می توان از دو روش اقدام کرد. یکی استفاده مستقیم از خود برنامه Android SDK Manager می باشد که در آن می توانیم آن نسخه دلخواه را در خود برنامه انتخاب کرده و دانلود کنیم (زیرا این برنامه، در پنجره اصلی خود، تمامی بسته های نرم افزاری مربوط به اندروید را در لیستی نمایش می دهد تا آنها را انتخاب کرده و دانلود کنیم) و روش دوم این است که فایل های مروبط به آن نسخه API را از یک سایت اینترنتی یا هر منبع دیگری تهیه کرده و در پوشه بندی برنامه Android SDK Manager کپی کنیم (بدون اجرا کردن برنامه Android SDK Manager).

روش اول : نصب یک نسخه API دلخواه از اندروید، با استفاده از برنامه Android SDK Manager

بهترین روش برای نصب یک نسخه API ، استفاده از خود برنامه Android SDK Manager می باشد که با استفاده از آن، می توانیم بسته های نرم افزاری مختلف را دانلود و نصب کنیم که تنها با چند کلیک، این کار امکان پذیر است، اما چون گوگل ایرانیان را تحریم کرده است، این کار برای ایرانیان کمی طولانی تر خواهد بود. من قبلا در مباحثی دیگر شرح دادم که با وجود تحریم های گوگل، چگونه می توان از برنامه Android SDK Manager برای دانلود و نصب بسته های نرم افزاری استفاده کرد، اما باز هم آن مطالب را در این مبحث تکرار می کنم.

راه حل، استفاده از برنامه ای است که در شکل زیر نمایش داده ایم (می توانید آن را از اینترنت دانلود کنید) :
android-283.jpg


در پنجره این برنامه، بر روی گزینه Add کلیک می کنیم. پنجره ای به شکل زیر باز می شود :




android-284.png

در قسمت Bookmark ، یک نام دلخواه را می نویسیم (مثلا SDK) و سپس بر روی گزینه File Path کلیک می کنیم و سپس فایل اجرایی مربوط به برنامه Android SDK Manager را انتخاب می کنیم. با انتخاب آن، یک گزینه برای برنامه Android SDK Manager افزوده می شود :


android-285.jpg

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


android-286.jpg

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


android-287.jpg

همان طور که مشاهده می کنید، نسخه های مختلف API نمایش داده شده اند و شماره اندروید (Android version) معادل آنها نیز در کنارشان نوشته شده است. بنابراین هر نسخه API را که نیاز داریم، می توانیم در کنار آن، علامت تیک زده (آن را انتخاب کنیم) و سپس بر روی گزینه پایین پنجره که برای دانلود و نصب بسته های نرم افزاری انتخاب شده می باشد (عنوان آن با کلمه Install شروع می شود)، کلیک کنیم.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
روش دوم : دانلود فایل های یک نسخه API دلخواه از اندروید و سپس کپی کردن آن در پوشه بندی برنامه Android SDK Manager

چنانچه ما فایل های مربوط به یک نسخه API از اندروید را از هر منبع دلخواه، تهیه کرده باشیم، آنگاه تنها کافی است که آن را در پوشه بندی برنامه Android SDK Manager کپی کنیم. شما ابتدا باید محل برنامه Android SDK Manager در پوشه بندی کامپیوتر خود را پیدا کنید. ساختار پوشه های برنامه Android SDK Manager به صورت زیر می باشد :

android-288.png

در پوشه بندی برنامه، یک پوشه با نام platforms وجود دارد، اگر وارد آن شوید، ساختاری مشابه ساختار زیر خواهد داشت :


android-289.png



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

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تمام نکاتی که قبل از انتشار برنامه اندروید خود در فروشگاه های اندروید، باید به آنها توجه کنیم

تمام نکاتی که قبل از انتشار برنامه اندروید خود در فروشگاه های اندروید، باید به آنها توجه کنیم

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

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

نکات را در دو دسته ((نکات ضروری)) و ((نکات اختیاری)) شرح خواهیم دادیم و مواردی که در دسته ((نکات اختیاری)) قرار می گیرند، بستگی به خود شما دارد که دوست داشته باشید آنها را در برنامه اندروید خود به کار ببرید یا خیر.


نکات ضروری :


داشتن نام package منحصر بفرد :

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

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


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


استفاده از همان keystore قبلی برای ساخت فایل apk نسخه های جدید برنامه اندروید :
اگر بر روی یک گوشی، برنامه اندرویدی (با یک package خاص) با یک keystore اولیه (یک سری certificates) نصب شده باشد، آنگاه اگر نسخه جدیدی از آن برنامه (با همان package) بسازیم که در آن، از keystore جدیدی (یعنی certificates جدید) استفاده شده باشد، آنگاه گوشی اجازه نصب نسخه جدید را نمی دهد (در واقع برای این است که کسی نتواند برای برنامه های اندروید دیگران، نسخه جدید ارائه کند، پس keystore شبیه امضا می ماند). بنابراین شما برای تمام نسخه های یک برنامه اندروید، تنها باید از یک فایل keystore استفاده کنید.


تغییر شماره نسخه برنامه اندروید (تغییر versionCode و versionName) :
چنانچه قبلا برنامه اندروید را در فروشگاه های اندروید منتشر کرده اید و اکنون می خواهید که نسخه جدید آن را به فروشگاه های اندروید بدهید، باید versionCode و versionName آن نسبت به قبل تغییر کرده باشد. برای تغییر versionCode و versionName برنامه اندروید، اموزش های قبل را ببینید. versionCode تنها باید یک واحد افزایش یابد و برای versionName هم عبارتی دلخواه را انتخاب کنید (معمولا مواردی مثل 1.0.12 و 2.3.7 و ... انتخاب می شود).


تعیین minSdkVersion و targetSdkVersion برای برنامه اندروید :
در فایل Androidmanifest.xml از پروژه اندروید، دو مورد minSdkVersion و targetSdkVersion را به صورت مناسب برای برنامه اندروید خود تعیین کنید.


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


نکات مربوط به چرخش گوشی :
شاید توسعه دهنده همیشه برنامه خود را در حالت افقی (landscape) یا عمودی (portrait) آزمایش کند و فراموش کند که اگر کاربر گوشی خود را بچرخاند، برنامه اندروید نیز تغییر وضعیت می دهد و به طور پیش فرض، دوباره Activity از ابتدا اجرا می شود. نکات زیادی در مورد چرخش گوشی وجود دارد که آنها را به ترتیب بیان می کنیم و شما باید همه آنها را بخوانید و ببینید که کدامیک مد نظرتان است :1- شاید شما اصلا بخواهید که کل برنامه اندروید و یا یک یا چند Activity از برنامه اندروید، همیشه در حالت افقی (landscape) یا عمودی (portrait) نمایش داده شوند.

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

3- شاید اصلا بخواهیم که برای دو حالت افقی (landscape) و عمودی (portrait)، ظاهر گرافیکی Activity فرق داشته باشد و چیدمان عناصر گرافیکی در فایل xml متفاوت باشد. برای این منظور، باید یک فایل xml نیز برای حالت افقی (landscape) طراحی کنیم.


متناسب بودن توضیحات نوشته شده برای برنامه اندروید با نحوه عملکرد برنامه اندروید :

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


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


آیا action bar را به همه Activity های مورد نظرتان افزوده اید ؟
قبلا در مورد چگونگی طراحی action bar توضیحاتی دادیم، در همانجا توضیح دادیم که کدهای مربوط به action bar را باید به کدهای Activity هایی که می خواهیم action bar در آنها نمایش داده شود، اضافه کنیم. بنابراین ممکن است که فراموش کنیم که این کدها را به یک یا چند Activity اضافه نماییم. بنابراین بهتر است که از این نظر، تمام Activity ها را بررسی نمایید.


غیر فعال سازی مشخصه debuggable :
همان طور که می دانید، در مراحل ساخت برنامه اندروید، برای آنکه بتوانیم به خطایابی (debug) برنامه اندروید بپردازیم، مشخصه android:debuggable در فایل AndroidManifest.xml از پروژه اندروید را برابر true قرار می دادیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]debuggable[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"true"[/COLOR][/FONT]
[/FONT][/COLOR]
اما قبل از انتشار برنامه اندروید در فروشگاه های اندروید، باید این مشخصه را برابر false قرار بدهیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]debuggable[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"false"[/COLOR][/FONT]
[/FONT][/COLOR]

غیر فعال سازی مشخصه allowBackup :
چنانچه می خواهید که امکان پشتیبان گیری (backup) از برنامه اندروید شما وجود نداشته باشد، باید مشخصه android:allowBackup در فایل AndroidManifest.xml از پروژه اندروید را برابر false قرار بدهید :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]allowBackup[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"false"[/COLOR][/FONT]
[/FONT][/COLOR]
یا در صورتی که می خواهید امکان پشتیبان گیری (backup) وجود داشته باشد، این مشخصه را برابر true قرار بدهید :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]allowBackup[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"true"[/COLOR][/FONT]
[/FONT][/COLOR]

استفاده از ProGuard برای سخت تر شدن مهندسی معکوس (reverse engineering) و استخراج کدهای فایل apk برنامه اندروید :
مهندسی معکوس کدهای فایل apk امکان پذیر می باشد، اما ProGuard این امکان را فراهم می کند که عملیات به دست آوردن کدها را سخت تر کنیم.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار

baghery7222

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