آموزش قدم به قدم برنامه نویسی آندروید
زمان کنونی: 1395/10/27, 05:13 ب.ظ
کاربرانِ درحال بازدید از این موضوع: 1 مهمان
نویسنده: mohamadmobail
آخرین ارسال: mohamadmobail
پاسخ: 1
بازدید: 271
محبوب کنید:

ارسال پاسخ  ارسال موضوع 
 
امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
 

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

نویسنده پیام
کاربر سایت
کاربر سایت
وضعیت : Three Small Silver Stars آفلاین
مدال های : mohamadmobail
ارسال‌ها: 224
تاریخ عضویت: آذر 1392
اعتبار: 3
سپاس کرده: 290
سپاس شده: 162 بار در 88 موضوع
ارسال: #1
آموزش قدم به قدم برنامه نویسی آندروید
آموزش قدم به قدم برنامه نویسی آندروید
آموزش برنامه نویسی اندروید: قسمت اول مقدمهاهداف آموزشی این قسمت عبارتند از:
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 به معنی پیکیج توسعه نرم افزار می باشد). از سوی دیگر سایت دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
توسط برنامه نویسان این شرکت گوگل همواره برای ارائه آخرین نسخه های 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 باشد، از توضیح پیرامون نحوه کار با این نرم افزار خودداری می کنیم اما علاقمندان به تست کردن این برنامه می توانند با مراجعه به آدرس دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
این نرم افزار را به صورت رایگان دانلود نمایند).

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

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


پس از مطالعه این آموزش انتظار می رود بتوانیم به سؤالات زیر پاسخ بدهیم:
1.طراح اصلی سیستم عامل اندروید چه کسی بود؟
2. کنسرسیوم حامی سیستم عامل اندروید از چه شرکت هایی تشکیل می شود؟
3.در نسخه های مختلف سیستم عامل اندروید از چه روش نامگذاری استفاده شده است؟
4. نام نسخه های مختلف اندروید چیست؟
5. از چه IDE هایی می توان برای توسعه اندروید استفاده کرد؟

قسمت ۲: آشنایی با اجزای تشکیل دهنده اندرویداهداف آموزشی این قسمت عبارتند از:
1. آشنایی با ماشین مجازی، موتور جستجو، پردازنده عکس و بانک اطلاعاتی در اندروید
2. معرفی Activity ها در اندروید
3. معرفی Service ها در اندروید
4. معرفی Content Provider ها در اندروید
5. معرفی Broadcast Receiver ها در اندروید
6. آشنایی با فایل Manifest مهم ترین فایل در توسعه اپلیکیشن اندروید

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

پس از مطالعه این آموزش انتظار می رود بتوانیم به سؤالات زیر پاسخ بدهیم:
1. سیستم عامل اندروید از کدام Component های اصلی تشکیل شده است آنها را نام برده و وظیفه هر کدام را توضیح دهید؟
2. مهم ترین فایل یک اپلیکیشن اندرویدی چه نام دارد و این فایل چه وظیفه ای بر عهده دارد؟


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

اهداف آموزشی این قسمت عبارتند از:
1. آشنایی با تفاوت مابین Platform Level و API Level
2. معرفی جدول تطبیقی Platform Level و API Level
3. آشنایی با دیگر API های به کار گرفته شده در دستگاه های اندرویدی
4. معرفی امنیت در سیستم عامل اندروید
5. آشنایی با Sandbox اندروید
6. معرفی Permission ها یا صدور مجوز ها در اپلیکیشن های اندرویدی
7. آشنایی با رویکرد آموزشی به کار گرفته شده در سری آموزش های اندروید


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

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

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

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

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

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

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

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

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

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

یکی از این API هایی گنجانده شده در خود تلفن همراه یا تبلت اندرویدی Location Services است:
دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.

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

[تصویر:  8tn5y7xjturkic9zhc3.jpg]



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

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

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

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


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

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

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

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

رویکرد آموزشی

در بحث آموزش از یک دید کلی می توان دو رویکرد متفاوت را اتخاذ نمود که یک رویکرد Deductive و دیگری رویکرد Inductive است که به ترتیب رویکرد "از کل به جزء" و رویکرد "از جزء به کل" ترجمه می شوند.

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

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

تجربه نشان داده است که افراد بزرگسال نسبت به افرادی کم سن و سال از Tolerance of Ambiguity به مراتب کم تری برخوردارند. واژه Tolerance به معنی "تحمل" است و واژه Ambiguity به معنی "ابهام" می باشد. به طور کلی می توان گفت که افراد بزرگسال چنانچه در شرایطی قرار بگیرند که مسئله ای برای ایشان مبهم باشد خیلی سریع تر از خردسالان انگیزه خود را از دست می دهند و این بی انگیزگی ممکن است به ترک کردن کاری در ایشان منتهی شود. اما کودکان بر خلاف بزرگسالان خود دارای Tolerance of Ambiguity بیشتری بوده و در صورتیکه در شرایطی قرار گیرند که مطلبی برای ایشان مبهم باشد و یا بر سر دوراهی قرار گیرند، به آن مطلب به شکل یک معما یا بازی نگاه کرده و سعی خواهند کرد آن را کشف کنند.

حال با این توضیحات می توان گفت که رویکرد از کل به جزء برای کودکان مناسب تر بوده چرا که با روحیات ایشان سازگارتر است و این در حالی است که بزرگسالان با اتخاذ رویکردی از جزء به کل به مراتب بیشتر پیشرفت خواهند کرد(البته این یک قانون کلی نیست).

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

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

در مجموع از آنجا که احتمال می رود اکثر مخاطبین این دوره در سایت را نیز بزرگسالان تشکیل می دهند، در آموزش ها رویکردی از جزء به کل اتخاذ شده است.

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

پس از مطالعه این آموزش انتظار می رود بتوانیم به سؤالات زیر پاسخ بدهیم:
1. تفاوت مابین API Level و Platform Level چیست؟
2. کدام API Level ها هستند که نام نسخه سیستم عامل اندروید آنها یکی است؟
3. منظور از Sandbox چیست؟
4. صدور اجازه برای انجام هر کاری در کدام فایل اپلیکیشن صورت می گیرد؟
5. تفاوت مابین روش از کل به جزء با روش از جزء به کل چیست؟
6. کدام روش برای آموزش بزرگسالان مناسب تر است و چرا؟



قسمت ۴: نحوه نامگذاری صحیح پکیج ها

اهداف آموزشی این قسمت عبارتند از:
1. آشنایی با علت به کارگیری پکیج ها در توسعه اندروید
2. آشنایی با نحوه نامگذاری صحیح پکیج ها با ذکر مثال

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

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

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

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

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

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

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

حال ببینیم که چرا در نامگذاری پکیج ها از نام دومین استفاده می کنیم. علت آن است که با این کار از تشابه اسمی به طور صد در صد جلوگیری به عمل خواهد آمد چرا که در کل دنیا فقط یک وب سایت به آدرس pars-hamrah.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 یی را مورد استفاده قرار دهیم که از یک شرکت بوده و به عبارت دیگر با یکدیگر مرتبط می باشند.
                                                                                                                                     موفق باشید
                                                                                                                   تایپ محمد دانه زن استان خوزستان BMK
 
امضای mohamadmobail
(فقط خدا)
 
1393/02/03 10:05 ب.ظ
مشاهده‌ی وب‌سایت کاربر یافتن تمامی ارسال‌های این کاربر سپاس نقل قول این ارسال در یک پاسخ
[-] 6 کاربر به دلیل این ارسال از mohamadmobail سپاسگزاری کرده اند.
MobileRoya (1393-02-05 02:11), jefreng (1393-02-18 21:41), Darya-Gsm (1393-02-03 22:57), AZIMA13 (1393-02-08 16:31), Aram0630 (1393-02-05 12:17), amir765 (1393-02-06 12:58)

 
ارسال پاسخ  ارسال موضوع 


موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  نصب مجموعه فونت های زیبا در آندروید (بدون روت کردن) Darya-Gsm 12 5,833 1394/02/25 01:58 ب.ظ
آخرین ارسال: yazdanparast
  رام آندروید 2.3.5 با منوی فارسی+آموزش s.adhami 8 6,432 1393/08/14 07:06 ق.ظ
آخرین ارسال: vistak
  نرم افزاری کاربردی برای آندروید Android Tool V1.1 Darya-Gsm 0 250 1393/05/14 12:16 ق.ظ
آخرین ارسال: Darya-Gsm
  برنامه فوق العاده دکتر برو خونه برای اندروید mohamadmobail 0 652 1393/03/04 09:39 ق.ظ
آخرین ارسال: mohamadmobail
  جدیدترین برنامه BeeTalk v1.4.0 mohamadmobail 0 257 1393/02/27 05:40 ب.ظ
آخرین ارسال: mohamadmobail
  جدیدترین برنامه نماز شب برای اندروید mohamadmobail 0 306 1393/02/19 06:50 ب.ظ
آخرین ارسال: mohamadmobail
  جدیدترین برنامه پارسی سازی MoreLocale 2 v2.3.0بدون نیاز به روت mohamadmobail 1 371 1393/02/14 09:39 ق.ظ
آخرین ارسال: Darya-Gsm
  برنامه جدیدخدمات الکترونیکی همراه اندوید mohamadmobail 2 300 1393/02/13 05:39 ب.ظ
آخرین ارسال: mohamadmobail
new_2 مشکل در اجرای برنامه google playe service hose 2 334 1393/01/15 08:22 ب.ظ
آخرین ارسال: hose
  دیکشنری قدرتمند فارسی به انگلیسی و بالعکس مخصوص آندروید mohamadmobail 0 241 1392/12/21 03:18 ب.ظ
آخرین ارسال: mohamadmobail

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان