نمای کلی از توسعه اندروید
تماشای برخط (لینک مستقیم) فیلم «نمای کلی از توسعه اندروید»
اول بریم سراغ معماری اندروید :
- اندروید روی لینوکس ۲.۶ سوار شده.
- با یه ماشین مجازی به اسم دالویک (Dalvik) که مخصوص موبایل طراحی و بهینه سازی شده، کار می کنه.
- مرورگر متحدی بر پایه موتور وب کیت (Webkit) داره.
- گرافیکش با اپنجیال ایاس (OpenGL ES) بهینه سازی شده.
- از پایگاه دادهی سیکوآل لایت (SQLite) به عنوان ساختار ذخیره سازی داده ها استفاده میکنه.
حالا خیلی سریع به نسخه های مختلف اندروید می پردازیم
- اندروید ۲.۰ \ ۲.۱ ایکلر (Eclair)
- اندروید ۲.۲ فرویو (Froyo)
- اندروید ۲.۳ جینجربرد (Gingerbread) - مخصوص موبایل
- اندروید ۳.۰ هانی کوم (HoneyComb) - مخصوص تبلت ها
- اندروید ۴.۰ آیس کریم سندویچ (IceCream Sandwich) - هم برای موبایل هم تبلت
حالا نگاهی می اندازیم به بنیاد برنامههای اندروید :
- برنامههای اندروید به زبان برنامه نویسی جاوا نوشته میشه.
- برنامههای کامپایل شده در فایلهایی با پسوند apk ذخیره میشن (apk = android package file)
- هر برنامهای در سندباکس (SandBox) جداگانهای اجرا میشه که از بقیهی برنامهها ایزولهاش میکنه و هر برنامه در پروسهی لینوکسی خودش اجرا میشه
- هر برنامهای شامل فایلهای جزئی (component)، فایلهای ظاهری (manifest) و منابع (resources) میشه.
- فایلهای جزئی شامل :
- فعالیت (Activities)
- خدمات (Services)
- ارائه دهندهی محتوا (content provider)
- گیرندهی پخش (broadcast receiver)
بیاید یه خورده در مورد همین موارد آخر بیشتر یاد بگیریم.
-
فعالیت (Activities)
- یه فعالیت کارش اینه که که یه صفحه نمایش رو با رابط کاربری (UI) نشون بده. (مثلا کاربر می خواد ایمیل هاش رو چک کنه، همون صفحه ای که لیست ایمیل هاش رو نشون می ده یه فعالیته، وقتی رو ایمیل کلیک میکنه یه فعالیت دیگه شروع میشه که باعث میشه کاربر یه صفحهی دیگه رو ببینه، وقتی می خواد ایمیل بفرسته یه صفحهی دیگه براش باز میشه که یه فعالیت دیگه است)
- اگثر برنامه ها از بیش از یک فعالیت استفاده می کنن.
- وقتی یک فعالیت شروع میشه، به پشتهی بازگشت (back stack) هل داده میشه. (push میشه) - خوب مثلا وقتی کاربر اولین صفحهی یه برنامه رو باز می کنه، بعد جایی کلیک میکنه و فعالیت دیگه ای باز میشه، فعالیت قبلی متوقف میشه (داخل پشته هل داده میشه) و فعالیت جدید روی قبلی شروع به کار میکنه، وقتی کاربر دکمه بازگشت () رو میزنه، فعالیت فعلی رو متوقف می کنه (میبنده) و فعالیت قبلی رو از همون جایی که متوقف کرده بود، اجرا میکنه. (در واقع از تو پشته پاپ میکنه) -
- رابط کاربری با XML یا مستقیما از خود جاوا ساخته میشه.
-
میتونید طول عمر یه فعالیت رو با توابع مختلفی زیرنظر داشته باشید، توابعی مثه ()onStart یا ()onPause. تا روند اجرای هر فعالیتی رو کنترل کنید.
-
خدمات (Services)
- خدمات نقش کارهایی رو ایفا می کنن که در پشت صحنه باید انجام بشه.
- خدمات شامل هیچ رابط کاربریای نیستند.
- برای کارهایی مثه عملیات اینترنتی (شبکه ای) یا پخش موسیقی مناسبند.
- خدمات کاملا مستقل از جزئی که اونا رو ساخته، اجرا میشن. (مثلا اگه یه فعالیتی داشته باشیم که یه خدماتی رو اجرا کنه، اگه اون فعالیت رو ببندیم، اون خدمات هنوز در حال اجرا شدن هستن و مستقل از بقیه اجزا کار می کنن)
- خدمات می تونن با استفاده از برنامههای دیگه محدود بشن، البته باید اون برنامهها اجازه محدود کردن خدمات رو داشته باشن. (وقتی خدمات رو میسازین می تونین تعیین کنید که مثلا با هر برنامه ای میتونه این خدمت رو محدود کنه)
-
ارائه دهندهی محتوا (content provider)
- کارشون ذخیره و بازیابی داده هاست و اینکه داده ها رو برای همه برنامه ها قابل دسترسی کنن.
- تنها راه برای اشتراک گزاری داده ها بین برنامه های مختلفه (چون به طور پیش فرض، برنامه ها راهی برای اشتراک گزاری دادهشون به برنامههای دیگه رو ندارن)
- یک URI عمومی منتشر میکنه که به طور منحصر به فرد مجموعهی دادههاش رو شامل میشه. (مثلا اگه بخوایم یه سری از اطلاعاتمون رو به صورت عمومی در اختیار بقیهی برنامهها قرار بدیم، اونها رو در یک «ارائه دهنده محتوا» میذاریم.)
- این داده ها به سادگی از طریق جدول هایی به مدل پایگاه داده منتشر میشن.
- خود اندروید شامل یه عالمه «ارائه دهنده» است، مثه رسانهها، دفترتلفن و...
-
گیرندهی پخش (broadcast receiver)
- گیرندهی پخش ساخته شده تا به اعلامیههای درون سیستمی پاسخگو باشه.
- مثلا وقتی صفحه خاموش میشه، اندروید یه گیرنده میفرسته تا برنامه هایی که در حال اجرا هستن بفهمند که صفحه خاموش شده و برنامه رو در حالت تعلیق نگه دارن یا ببندن یا هر کار دیگه ای که باید بکنن، یا مثلا وقتی باتری داره تموم میشه و .... - پس وقتی برنامهای رو میسازیم باید حواسمون باشه یه گوش دهنده (listener) بزاریم که اگه همچین اتفاقاتی افتاد، برنامه، یه کار خاصی رو انجام بده-
- برنامهی خود شما هم میتونه فرستادنده هایی رو بفرسته تا برنامه های دیگه بهش جواب بدن.
- گیرنده های پخش شامل هیچ رابط کاربری ای نیستند.
- گیرنده ها می تونن به نوار وضعیت (status bar)، اخطار (notification) بفرستن تا به کاربر هشدار بدن.
فایل های ظاهری اندروید
- هر برنامه ای باید یک فایل AndroidManifest.XML در ریشه دایرکتوریش داشته باشه.
- کار این فایل اینه که به سیستم اندروید درباره برنامه توضیحاتی رو ارائه بده.
- این فایل، اجزائی رو که در برنامه به کار میبرید رو توصیف می کنه. (اجزا مثه فعالیت ها، خدمات، گیرنده ها و ارائه دهنده ها)
- اجازه هایی (permission) که برای اجرای برنامه باید از کاربر گرفته بشه رو اعلام می کنه. (احتمالا تا حالا برنامه هایی رو دیدید که قبل از نصب از شما یه سری اجازه میگیرن برای دسترسی به قسمت های مختلف گوشی).
- این فایل، پایین ترین نسخهی اندرویدی (API) که برنامه می تونه روش اجرا بشه رو اعلام می کنه.
مواردی که تا اینجا بررسی کردیم یک چکیده از توسعه اندروید بود و اگه جایی رو خوب متوجه نشدید نگران نباشید، وقتی وارد کار بشیم و تمرین کنیم حتما خوب متوجه خواهید شد.