آکادمی آموزش آنلاین طوسی

آشنایی با 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 آمده است:

اصطلاحی در توسعه اپلیکیشن های اندروید وجود دارد تحت عنوان 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 اشاره کرد:

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

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

 

 

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

 

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

در حقیقت این 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کدام روش برای آموزش بزرگسالان مناسب تر است و چرا؟

برای مشاهده نظرات وارد سایت شوید یا ثبت‌نام کنید.

3rd_Session,_Android_APIs.pdf

لینک دانلود فایل درس آشنایی با API های اندروید

سرفصل های آموزشی دوره رایگان برنامه نویسی اندروید Android

منبع این درس در سایت سکان (www.sokanacademy.com)