اندروید Q مرکز توجه اخبار گوگل در کنفرانس Google I/O بود و مانند همیشه توجه کاربران و کارشناسان را به عضو بعدی خانوادهی اندروید جلب کرد. آرستکنیکا به رسم رویدادهای قبلی گوگل مصاحبهای با مهندسان داخلی اندروید داشت تا اطلاعاتی دقیقتر از نسخهی بعدی این سیستمعامل کسب کند. مصاحبه علاوه بر پرداختن به اندروید Q، پروژهی مهندسی بزرگتر گوگل موسوم به Project Mainline را هم پوشش میدهد. هدف اصلی مینلاین، ایجاد امکان بهرورزسانی بخشهای اصلی سیستمعامل بدون بهروزرسانی کلی برای گوگل و حتی تولیدکنندههای دیگر گوشی هوشمند است. با نگاهی اولیه به توضیح پروژهی مذکور، متوجه اهمیت فنی و خبری آن میشویم.
دیو برک (Dave Burke) بهعنوان معاون ارشد بخش مهندسی اندروید شناخته میشود. از نگاه رسانهها او دانشنامهای کامل از اندروید است که همیشه پاسخهایی کاربردی به سؤالهای پیرامون سیستمعامل موبایلی گوگل دارد. ایلیان مالکو (Iliyan Malchev) کارشناس دیگر این مصاحبه است که بهعنوان مهندس ارشد در اندروید، مدیر Project Treble و همهی بخشهای مرتبط با هماهنگسازی لینوکس فعالیت میکند.
در مصاحبهی امسال آرستکنیکا پیرامون سیستمعامل اندروید، انوار گولوم (Anwar Ghuloum) هم حضور داشت که مدیر ارشد مهندسی اندروید و همچنین مدیر پروژهی مینلاین است. مینلاین در کنفرانس امسال بهعنوان «پروژهی بزرگ بعدی در بهروزرسانی اندروید» مطرح شد و بهنوعی مهمترین خبر رویداد بود.
تغییر مسیری اساسی در توسعهی اندروید
گوگل از سالها پیش قصد داشت تا اندروید را به سیستمعاملی تبدیل کند که قابلیت بهروزرسانی بخشبهبخش داشته باشد. در سالهای ابتدایی عمر اندروید، اپلیکیشنهای اختصاصی گوگل و اپلیکیشنهای سیستمی در اپاستور اندروید منتشر میشدند. درنتیجه گوگل میتوانست قابلیتهای متعدد را هر زمان که تمایل داشت، ارائه دهد. سپس Google Play Services از راه رسید که بسیاری از APIهای توسعهای را به اپ استور اندروید فرستاد. از آن زمان، بهروزرسانیهای مرتبط با توسعهدهندهها در API توسط گوگل ارائه میشدند. در اندروید ۸، شاهد معرفی Project Treble بودیم که سیستمعامل را از پشتیبانی سختافزاری جدا کرد. درنتیجه گوگل یک قدم به توسعهی آسانتر بهروزرسانیها نزدیکتر شد.
بزرگترین راهکار گوگل برای ماژولار کردن اندروید در اندروید Q و بهنام مینلاین مطرح شد. در پروژهی جدید رویکردی مشابه روزهای ابتدایی اندروید پیش گرفته میشود و این بار، قطعات هستهای سیستمعامل به پلیاستور میروند. درواقع مینلاین از لایههای سطحی اپلیکیشن عمیقتر میرود و قطعاتی مرتبطتر با کارایی سیستم همچون فریمورکهای رسانهای و ART بهصورت جداگانه بهروزرسانی میشوند.
پروژهی مینلاین در ادامهی ماژولارسازی سیستمعامل اندروید
پلی استور همیشه اپلیکیشنها را بهصورت پکیجهای APK ارائه داده است. دراینمیان برای بسیاری از قطعاتی که در پروژهی مینلاین ماژولار میشوند، چنین رویکردی ممکن نخواهد بود و نمیتوان آنها را بهصورت APK منتشر کرد. سیستم APK برای کاربردهای مبتنی بر سیستم یا سمت کاربر طراحی شد و محدودیتهایی در بخشهای مرتبط با مجوزهای کاربری یا اجرا در مرحلهی بوت سیستم دارد.
گوگل برای ماژولار کردن قطعات سیستمی اندروید، به راهکاری کاربردیتر از APK بهنام APEX رسید. فایلهای APEX قابلیت کسب دسترسیهای روت را دارند و در همان مراحل راهاندازی اولیه شروع به کار میکنند. درنتیجه امکان بهروزرسانیهای قطعات بیشتر سیستم را به گوگل یا تولیدکنندههای دیگر میدهند. درنهایت نتیجه میگیریم که APK برای سطوح دسترسی کاربر و سیستم طراحی شد و APEX قطعات هستهایتر سیستم را پوشش میدهد. در جدول زیر نمونهای از پکیجهای مربوطه را مشاهده میکنید.
ماژولهای پروژهی مینلاین در آینده بخشهای بیشتری از سیستم اندروید را اشغال خواهند کرد. گوگل اکنون و در نسخههای ابتدایی اندروید Q، روی سه بخش متمرکز شده است: پایداری، امنیت و حریم خصوصی. بههرحال با نگاهی به جدول بالا متوجه برنامههای گوگل در اولویتبندی ماژولسازی از بخشهای متعدد اندروید میشویم. همین جدول اولین سؤالها را پیرامون برنامهی توسعهی پروژهی مینلاین ایجاد میکند.
اسم APEX
در بخشی از مصاحبه، برک مسئلهی نامگذاری فایلهای جدید یعنی APEX را مطرح میکند که طبق ادعای نویسندهی آرس و سند رسمی مینلاین، مخفّفی برای Android Pony Express است. در ادامه مهندسان گوگل داستان انتخاب این اسم را شرح میدهند.
مالکو: من به شما اطمینان میدهم که در انتخاب این اسم زیبا نقش مهمی داشتم. ما ابتدا میخواستیم اصطلاح NPK را بهعنوان مخففی برای Native PacKage استفاده کنیم. همکاران دیگر ما همچون جارز و دیان هکبورن نیز در نامگذاری نقش داشتند. هکبورن از معماران قدیمی اندروید است و در مخالفت با NPK گفت که شباهت زیادی با APK دارد. سپس نامهای دیگری ارائه شدند و من در نهایت APEX یا Android Pony Express را پیشنهاد دادم.
درواقع Android Pony Express عبارتی تقریبا طنز برای توضیح دادن APEX محسوب میشود. ما میتوانستیم از Android Portable Exchange استفاده کنیم، اما بار جذابیت عبارت کنونی بیشتر بود.
حالت بوت دوگانه سیستم عامل
پس از بررسی مینلاین و جزئیات آن، به بخش دیگری از رونماییهای رویداد Google I/O میرسیم که نمایشی اولیه از قابلیت جدیدی در اندروید Q داشت. این قابلیت بهنام Dynamic System Update شناخته میشود که در نمونههای آزمایشی اندروید دیده شد. در تعریف ساده قابلیت جدید حالت بوت دوگانه را به سیستمعامل میدهد. کاربر با استفاده از آن میتواند پس از ریبوت کردن دستگاه از یک نسخهی اندروید، وارد نسخهی دیگر شود. چنین قابلیتی برای توسعهدهندهها، تولیدکنندهها، متخصصان و دیگر افرادی که تمایل به تغییر سریع نسخهی اندروید دارند، مفید خواهد بود.
مقاله مرتبط:قابلیتهای جدید اندروید Q
قابلیت جدید اندروید Q شباهت زیادی به دستاوردهای قبلی Project Treble دارد. دستگاه آزمایشی گوگل در رویداد I/O بین یک نسخهی نهایی اندروید و یک Generic System Image از سیستمعامل یا GSI تغییر حالت میداد. اندروید قبلا بهعنوان یک سیستمعامل امبدد شناخته میشد که سیستمعامل و پشتیبانی از سختافزار آن داخل یک ایمیج تکی قرار داشتند. در پروژهی Treble، سیستمعامل از پشتیبانی سختافزاری جدا شد و عبارت GSI بهوجود آمد. با استفاده از GSI، پشتیبانی سختافزاری اندروید شباهت کمتری به یک سیستمعامل امبدد خواهد داشت و بیشتر به ویندوز یا لینوکس شبیه میشود. درنهایت نسخهای از سیستمعامل داریم که روی دستگاههای متعددی کار میکند.
از زمان انتشار اندروید ۸ یا Oreo، پشتیبانی از Treble و بوت کردن حالت GSI یکی از پیشنیازهای پشتیبانی اندروید محسوب میشود. گوگل حتی نسخهای GSI از اندروید Q بتا را عرضه کرد. بههرحال با پیشرفت این موارد، احتمالا سال آینده و در زمان عرضهی اندروید R شاهد قابلیت بوت دوگانه به آن بدون نیاز به پاک کردن نسخههای قبلی خواهیم بود.