زبانی که شما میتوانید برای اندروید برنامه بنویسید JAVAاست، با نصب SDK کتابخانههای Android با توجه نسخهای که میخواهید با آن برنامه بنویسید در اختیار شما قرار میگیرد تا بتوانید براحتی از آنها استفاده کنید.
اما Java تنها زبان در اندروید نیست، گوگل یک NDK یا Native Developer Kit ارائه کردهاست که با استفاده از آن میتوانید در سطح پایین برای این سیستم عامل برنامه بنویسید، اما منظور از سطح پایین چیست؟ برای اینکه با مفهوم سطح پایین آشنا شوید، بهتر است ابتدا ساختار سیستم عامل را کمی بررسی کنیم.
همانطور که در عکس یک مشاهده میکنید، سیستم عامل اندروید از ۵ لایه اصلی تشکیل شدهاست، لایه سطح پایین آن که یک Linux Kernel است، در واقع پیادهسازی شده نسخه 6/2 هسته لینوکس توسط گوگل است و کارهای سطح پایین و ارتباط با سخت افزار را به عهده دارد.
لایهای بالاتر از 2 بخش تشکیل شدهاست، اولی Libraries و Android Runtime است، Libraries کتابخانه سطح پایین اندروید برای دستگاه است، این کتابخانهها با استفاده از C/C++ نوشته شدهاند و شما میتوانید برنامه خود را با استفاده از NDK در این لایه بنویسید.
بخش دیگر Android Runtime متشکل از 2 بخش است. بخش پایینی آن یک ماشین مجازی به اسم Dalvik است، که وظیفه آن اجرا کردن برنامههای جاوا برای اندروید است. پسوندی که این ماشین مجازی اجرا میکند (dex (Dalvik Executable بوده و بخش دیگر Core Library است، که کتابخانه سطح پایین برای کار با ماشین مجازی است. این کتابخانه یک هسته جاوا را براساس هسته جاوا برای شما فراهم میکند، اگر بخواهیم ساختار آن را با net. ماکریوسافت مقایسه کنیم، Dalvik همان CLR و Core همان BCL است.
لایه بالاتری Application Framework است، این لایه یک چارچوب کاری برای دسترسی به تمامی امکانات اندروید در اختیار شما قرار میدهد و با استفاده از این چارچوب کاری میتوانید برنامههای خود را برای این سیستم عامل اندروید بنویسید (بیشتر بحث ما روی همین چارچوب کاری است).
لایه بالاتر Applicationها هستند، برای مثال Contacts در واقع برنامهای است که شما میتوانید با استفاده از دادههای آن که در یک پایگاه داده SQLite ذخیره شده در دستگاه است، به Contactهای خود دسترسی پیدا کنید یا با استفاده از Conent Provider که جزئی از Application Framewok است، به دادههای موجود در Contact خود دسترسی پیدا کنید.
همانطور که گفتیم بیشتر بحث ما در لایه Application Framework است، که در این چارچوب یک کتابخانه برای کارهای مختلف در اختیار ما قرار میدهد.
به طور کلی اندروید از ۴ بخش اصلی تشکیل شده است.
1ـ Activity : در واقع همان صفحهای است که شما در برنامه اندروید خود مشاهده میکنید. Activity با Process یا Thread تفاوت دارد. یک برنامه همانطور که میتواند شامل چند Process یا Thread باشد، میتواند با یک یا چند Activity در ارتباط باشد، هر Activity یک چرخه دارد (که در ادامه در مورد آن بیشتر توضیح خواهیم داد). هر Activity شامل یک یا چند View است که در واقع همان المانهای UI است که با آنها سرو کار دارید، مثلا Button,TextBox,TextView,ImageView ,….
2ـ Content Provider: برای دسترسی به دادههای برنامههای دیگر استفاده میشود، برای دسترسی به دادههای Contacts روشهایی وجود دارد؛ روش اول استفاده از پایگاه داده است. روش بعدی استفاده از Content Provider است. برنامهنویسانی که برنامه Contacts را برای سیستم عامل اندروید پیادهسازی کردهاند، یک Content Provider برای آن فراهم کردهاند که میتوانید با فراخوانی یک URI به دادههای خود دسترسی پیدا کنید، به طور مثال
// Use the ContentUris method to produce the base URI for the contact with _ID == 23.
Uri myPerson = ContentUris.withAppendedId(People.CONTENT_URI, 23);
// Alternatively, use the Uri method to produce the base URI.
// It takes a string rather than an integer.
Uri my erson = Uri.withAppendedPath(People.CONTENT_URI, P”23”);
// Then query for this specific record:
Cursor cur = managedQuery(myPerson, null, null, null, null);
در هر کد بالا شما یک Uri میسازید سپس با ساختن یک Query به آنها دسترسی پیدا میکنید، People.CONTENT_URI در واقع نشانی Uri مربوط به Contacts است، ساختار Content Provider شبیه به یک REST API عمل میکند.
3ـ Broadcast and Intent Receivers : مانند سرویس ویندوز عمل میکند، مثال پرکاربرد آن SMS است. بخش SMS یک سرویس است که همیشه در سیستم عامل اجرا میشود و به محض دریافت پیام به شما اطلاع میدهد. شما میتوانید برای برنامه خود یکBroadcast and Intent Receivers ایجاد کنید که آن سرویس همیشه در حال اجرا باشد و به محض دریافت پیام به شما اطلاع دهد.
4ـ Service: یک برنامه پشت پرده است، مثلا MP3 Player شما وقتی آن را اجرا کنید میتوانید کارهای دیگر خود را نیز انجام دهد. این سرویس همیشه در حال اجراست بدون اینکه کارهای شما در آن وقفهای ایجاد کند.
http://upload.wikimedia.org/wikipedia/commons/a/a5/Diagram_android.png
نویسنده : امیربهاءالدین سبطالشیخ
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم