معرفی اندروید
اندروید یک سیستم عامل متن باز است که قابل اجرا بر روی وسایل مختلف از جمله تلفن همراه، تبلت، کامپیوتر های دسکتاپ، ساعت های هوشمند و ... است.
سیستم عامل اندروید مبتنی بر لینوکس است و کرنل این سیستم عامل دستکاری شده و شخصی سازی شده است.
برای توسعه ی اپ در اندروید، سیستم عامل اندروید به صورت رسمی از سه زبان جاوا، کاتلین و C/C++ پشتیبانی می کنه و علاوه بر سه زبان گفته شده توسعه دهندگان با زبان های غیررسمی دیگه ای از جمله React Native (JavaScript)، Flutter و ... هم به توسعه اپ های اندروید پرداختن.
تاریخچه اندروید
در سال 2003 شرکت اندروید توسط اندی روبین و کریس وایت در شهر کالیفرنیا تاسیس شد و بعدا ریچ ماینر و ریک سییرس هم اضافه شدن؛ در سال 2004 تصمیم گرفتن یک سیستم عامل درست کنن که هوشمند باشه و وسایل از موقعیت و تنظیمات خودشون بیشتر باخبر باشن (انعطافپذیر تر باشه).
در سال 2005 اندی روبین سعی کرد یک معامله با سامسونگ و اچ تی سی انجام بده که نشد و آخر گوگل تصمیم به خرید اندروید به قیمت 50 میلیون دلار گرفت و یکی از موفق ترین خرید های گوگل شد.
در 23 سپتامبر 2008 اولین گوشی لمسی اندروید توسط HTC به نام HTC Dreams (T-Mobile G1) روانه ی بازار شد؛ زمانی که اولین تلفن هوشمند اندرویدی وارد بازار میشه، ویندوز (ماکروسافت)، سیمبین (نوکیا) و آی او اس (اپل) رقبای اندروید بودن و بیشتر بازار دست سیمبین بود؛ به مرور اندروید بازار رو دست میگیره و نوکیا هم ورشکست میشه (اون دوتای دیگه ام حالا هستن ولی مثل اندروید همه گیر نشدن).
روند اجرای برنامه ها در اندروید
اندروید یک سیستم عامل متن باز و مبتنی بر لینوکس است و تمام ماژول ها و فریمورک های اندروید به صورت مستقیم یا غیر مستقیم با این کرنل تعامل دارن.
در زیر روند اجرای برنامه ها در اندروید نشون داده شده است.
System Apps
در سیستم عامل اندروید یک سری برنامه های از پیش نصب شده وجود داره که بهشون برنامه های سیستمی میگیم، به عنوان مثال برای پیامرسان یک برنامه ی سیستمی از پیش نصب شده وجود داره، زمانی که توسعه دهنده بخواد یک پیامی رو ارسال کنه بجای اینکه قابلیت های ارسال sms رو از ابتدا پیاده سازی کنه در برنامه ی خودش از قابلیت برنامه ی سیستمی استفاده میکنه.
Java API Framework
زمانی که توسعه دهنده با جاوا یا کاتلین یک برنامه ی اندرویدی مینویسه، برنامه از فریمورک جاوا در اندروید استفاده میکنه که خود فریمورک به چند قسمت تقسیم میشه:
View
بخش View ها شامل button, listview, box, grid, text و به طور کلی هرچیزی که در برنامه به صورت UI دیده میشه شامل این بخش از فریمورک میشه..
Resource Manager
دسترسی به منابع مورد نیاز از جمله گرافیک ها، عکس های برنامه، استرینگ های لوکالیزه شده و ... رو تامین میکنه.
Notification Manager
با Notification Manager میتونیم نوتیفیکیشن های برنامه رو ایجاد یا شخصی سازی کنیم.
Activity Manager
با Activity Manager میتونیم اکتیویتی های برنامه رو ایجاد و مدیریت کنیم.
Content Providers
با Content Providers میتونیم در برنامه ای که داریم توسعه میدیم به داده ی برنامه های دیگه دسترسی داشته باشیم.
Android Runtime (ART)
مانند ماشین مجازی جاوا عمل میکنه و بایت کد های برنامه رو اجرا میکنه، قبل از اندروید 5 بجای ART از ماشین مجازی Dalvik استفاده میشد، از اندروید 5 به بعد ART جایگزین میشه که به لحاظ عملکرد بهبود های قابل چشمگیری نسبت به Dalvik داره.
در ماشین مجازی ART هر برنامه به صورت یک پروسه ی جدا اجرا میشه و با این قابلیت سیستم عامل میتونه برنامه ها رو روی حافظه های پایین هم اجرا کنه.
کتابخونه های نیتیو (C/C++)
بسیاری از کتابخونه های اندروید به صورت نیتیو با C یا C++ نوشته شدن، زمانی که بخوایم با فریمورک جاوا OpenGL رو اجرا کنیم در واقع کتابخونه ی OpenGL ES نیتیو اجرا میشه؛ همینطور این کتابخونه ها با NDK در اندروید استادیو مستقیم برای توسعه دهندگان اندروید به زبان C/C++ در دسترس هستن.
Hardware Abstraction Layer (HAL)
لایه انتزاعی سخت افزار (HAL) در واقع به صورت پل ارتباطی بین کد های برنامه ی اندرویدی و سخت افزار عمل میکنه، زمانی که کد های اندروید نوشته میشن در نهایت ماژول های این لایه رو برای دسترسی به سخت افزار وسیله صدا میزنن از جمله ماژول های این لایه میتونیم به ماژول دوربین، سنسور ها و... اشاره کنیم.
Kernel
وظیفه ی کرنل شناسایی سخت افزار، ایجاد ارتباط با HAL و تامین امنیت سیستم عامل است که در اندروید از کرنل لینوکس استفاده شده است.
خلاصه
- اندروید یک سیستم عامل متن باز و مبتنی بر لینوکس است.
- برای توسعه ی اپ های اندرویدی میتونیم از سه زبان رسمی جاوا، کاتلین و C/C++ استفاده کنیم.
- زمانی که یک برنامه برای اندروید با جاوا یا کاتلین نوشته میشه، این برنامه میتونه از فریمورک های رسمی جاوا در سیستم عامل استفاده کنه.
- کد های جاوا یا کاتلین بعد از تبدیل شدن به بایت کد های قابل اجرا با ماشین مجازی Dalvik یا ART اجرا میشن.
- برای توسعه ی اپ های اندروید با زبان C/C++ از NDK استفاده میکنیم.
بازخورد و دیدگاه ها
اولین نفری باشید که در این صفحه نظر میدهید