درس 2 - معماری اندروید
جمعه, ۱۵ بهمن ۱۳۹۵، ۰۶:۳۹ ب.ظ
گفتم که اندروید بر پایه نسخه اصلاح شده لینوکس هستش بنابراین از قواعد لینوکس پیروی میکنه. یعنی هر اپ اندروید که میزنیم میاد در ساختار لینوکس میشینه.
توی حوزه اندروید باید با معماری اندروید ، یعنی لایه های مختلف سیستم عامل آشنا باشیم. این به ما یه نگاه کلان میده . خیلی به درد برنامه نویسی نمیخوره. فقط باعث میشه تسلط داشته باشیم که کجای کار هستیم :)
لایه اول که لایه application هست ، همون اپلیکیشن هایی هست که ماها می نویسیم و توسط end user ها استفاده میشه.
لایه دوم شامل یه سری کامپوننت ها و امکانات اپلیکیشن هست که رابط بین اپلیکیشن و سخت افزاره. با c و c++ زده شده و از تیکه تیکه اش برای کنترل سخت افزار استفاده میشه .
لایه سوم کتابخونه های اندروید هست
یه قسمتی که خیلی مهمه برنامه نویسای اندروید بدونن اون قسمت زرد رنگه . داخل اون میبینیم که نوشته dalvik virtual machine. این ماشین مجازی اندرویده. میدونیم که خیلی از مزایای جاوا که خیلی بهش پز میده همین قضیه ماشین مجازیه. اینکه اگه این ماشین مجازی روی هر سیستم عاملی سوار بشه میتونه کدهای جاوا رو ران کنه. دالویک همون jvm هست که بهینه شده تا روی موبایل و ... سوار بشه و کار کنه.
فایل اجرایی این میشه یه فایل اجرایی با پسوند .dex که وقتی هم apk رو مهندسی معکوس میکنیم و میخوایم کدهاش رو ببینیم ، همین فایل رو تبدیل میکنیم. این فایل یه فایل بسیار فشرده و بهینه ای هست و میاد روی ماشین مجازی اجرا میشه و به بایت کد تبدیل میشه و سیستم اینا رو اجرا میکنه.
پایین ترین سطح هم کرنل لینوکس هست.
یه نکته دیگه ای که هست اینه که ساختار لینوکس اینجوریه که هر اپلیکیشنی که روی اون قرار میگیره ، دارای یه user ای هست که ادمین اون اپلیکیشن هست. هیچ ادمین دیگه ای دسترسی به ادمین اپ دیگه رو نداره. بخاطر همینه که لینوکس و به تبع اون اندروید امنیت خیلی بالایی داره
ادمینی که به همه user ها دسترسی داره ادمین root هست. وقتی میگیم یکی رفته گوشیش رو روت کرده یعنی رفته همه ادمین ها رو کرده ادمین root . یعنی همه به همه دسترسی دارن.
توی درس بعدی راجع به مهمترین کامپوننت های لایه دوم صحبت میکنیم
۹۵/۱۱/۱۵