یک اکوسیستم برنامه خوب یکی از مهمترین ستون های موفقیت یک سیستم عامل است. هم گوگل و هم اپل ارزش داشتن برنامه های خوب در سیستم عامل های خود را تشخیص می دهند ، بنابراین هر دو شرکت سعی می کنند نیازهای کاربران و توسعه دهندگان برنامه های خود را متعادل سازند. کاربران به دنبال تغییر در سیستم عاملها هستند و در حالی که اکثر مردم از ویژگیهای جدید قدردانی می کنند ، این تغییرات همیشه برای توسعه دهندگان برنامه سرگرم کننده نیستند زیرا می توانند بسیاری از عملکردهای اصلی و عملکرد را تغییر دهند. برای توسعه دهندگان که دائماً در تلاشند برنامه های خود را حفظ کنند ، مقابله با این تغییرات به لیست کار در حال رشد آنها می افزاید. حتی اگر این تغییرات به طور مستقیم روی برنامه های آنها تأثیر نگذارد ، توسعه دهندگان هنوز هم باید اطمینان حاصل کنند که برنامه های آنها بر روی به روز رسانی جدید سیستم عامل کار خواهند کرد. گوگل طی سالهای متمادی تغییرات بسیاری را انجام داده است تا این روند برای توسعه دهندگان اپلیکیشن های اندرویدی آسان تر شود و اکنون یک ویژگی جدید در اندروید 11 با نام DSU Loader باعث می شود که برنامه نویسان برنامه تست های خود را بر روی نسخه های جدید اندرویدی آسان تر کنند. [19659002] Project Treble ، معرفی شده در Android 8.0 ، یک معماری مجدد مهم سیستم عامل آندروید است. هدف Project Treble تقسیم سیستم عامل آندروید به دو بخش بزرگ بود: چارچوب و پیاده سازی فروشنده ("فروشنده" در اینجا به سازنده هر مؤلفه سخت افزاری اختصاصی موجود در یک دستگاه ، معمولاً به سیلیکون اشاره دارد). چارچوب سیستم عامل آندروید خود سیستم عامل است ، از جمله تمام برنامه های سیستم ، UI و اجزای آن و API هایی که در دستگاه های Android به اشتراک گذاشته می شوند. اجرای فروشنده حاوی HALs فروشنده (لایه های سخت افزاری سخت افزاری) و ماژول های هسته لینوکس و هسته لینوکس است.
از آنجا که OEMs تلفن های هوشمند را با اجزای سخت افزاری مختلفی از بسیاری از فروشندگان مختلف ارسال می کند ، آنها فقط برای بدست آوردن سخت افزار را با یک نسخه سیستم عامل Android تنها اجرا و اجرا کنید. سپس با هر بروزرسانی جدید سیستم عامل آندروید ، آنها باید کارهای بیشتری انجام دهند تا مطمئن شوند که سخت افزار آنها با نسخه جدید کار می کند. اما با Standard Treble با استانداردسازی ABI (رابط باینری برنامه) بین چارچوب سیستم عامل اندروید و HAL برای نسخه خاص Android ، OEM های اندرویدی می توانند آزمایش به روزرسانی در دستگاه های خود را بدون نیاز به انتظار برای تولید کنندگان سیلیکون و سایر سازندگان قطعات شروع کنند تا طرف دیگر خود را به روز کنند. کد. این تغییر به طرز چشمگیری باعث شده است تا نحوه به روزرسانی های اندرویدی به کار گرفته شود.
این مهمترین کاری است که Project Treble برای به روزرسانی های اندرویدی انجام داده است ، اما آنچه که در اینجا برای توسعه دهندگان برنامه مهمتر است این است که Treble استفاده از تصاویر عمومی سیستم (GSI) را فعال کرده است. برای آزمایش سازگاری.
ظهور GSIs
به منظور نصب OEM ها در صورت اجرای صحیح پروژه Treble ، گوگل این دستور را صادر می کند که OEM باید از AOSP روی دستگاه تمیز Android را بسازد. این سازنده تمیز اندرویدی Generic System Image یا GSI نام دارد. اگر GSI بوت شود و اساسی ترین سخت افزار به طور صحیح عملکرد داشته باشد ، آنگاه OEM می داند که دستگاه آنها مطابق با شرایط Project Treble است. هدف اولیه GSI به این ترتیب آزمایش سازگاری Treble بود ، اما همانطور که با جامعه توسعه اینجا در XDA-Developers مشاهده کردیم ، می توان آنها را برای مقاصد دیگر استفاده کرد. ما دیدیم که چگونه GSI ها اساساً می توانند به دستگاههایی با UX های سنگین آندروید اجازه دهند از نسخه جدید Android با ویژگی های کاری در روزهای انتشار جدید لذت ببرند. اما Google هدف دیگری را در پشت GSI پیش بینی کرده است: دادن به برنامه نویسان برنامه این امکان را دارد که برنامه های خود را بر روی نسخه جدید اندرویدی روی یک دستگاه فیزیکی که از قبل در اختیار دارند آزمایش کند.
با Android 10 ، گوگل GSI ساخت خود را برای توسعه دهندگان منتشر کرد. Google این عقیده را تأیید کرد که توسعه دهندگان برنامه باید از GSI استفاده کنند تا بتواند Android را از سخت افزار خود پاک کند و باعث شود راحت تر بتوانید رفتار برنامه آنها را در برابر Android نسخه آزمایشی آزمایش کنید. بدین ترتیب این روش به گزینه های موجود تست سازگاری برنامه در اندروید بدون تغییر رفتار OEM اضافه شده است ، بقیه اینکه از یک گوشی هوشمند Pixel استفاده می کنند ، از سیستم عامل رسمی Android در استودیوی Android استفاده می کنند یا برنامه نصب را به عنوان نمونه دستگاهی روی ابر قرار می دهند.
علیرغم همه راحتی هایی که GSI ها به همراه آوردند ، نصب آنها هنوز یک روند دشوار بود. توسعه دهندگان برنامه ممکن است با چشمک زن کردن یک تصویر سیستم روی یک دستگاه Android راحت نباشند زیرا این چیزی است که معمولاً فقط علاقمندان یا توسعه دهندگان سیستم عامل Android با آن آشنا هستند. نصب یک GSI نیاز به چشمک زدن یک تصویر از سیستم در fastboot دارد ، که به غیرفعال کردن Boot Verified Android و باز کردن قفل bootloader نیاز دارد. باز کردن قفل بوت لودر ، به نوبه خود ، نیاز به پاک کردن کامل داده های کاربر دارد. و همانطور که همه ما می دانیم ، دقیقاً یک فرآیند یا راهنما برای باز کردن قفل بوت لودر دستگاه های Android موجود در آن وجود ندارد ، بنابراین ثبات وجود ندارد. به عنوان مثال ، دستگاه های سامسونگ فاقد سرعت بالا هستند در حالی که دستگاه های شیائومی باعث می شوند تا چند قفل را برای قفل بوت لودر پرش کنید.
اینجاست که به روزرسانی های سیستم پویا وارد می شوند.
به روزرسانی های سیستم پویا به سادگی با نصب GSIs
Google متوجه شد که روش فعلی نصب GSIs نیست. یک راه حل عالی ، بنابراین آنها شروع به کار بر روی یک راه حل بهتر کردند. در Android 10 ، گوگل آزمایش به روزرسانی های سیستم پویا یا DSU را آزمایش کرد. DSU روشی جدید برای نصب موقتی GSI بدون نیاز به استفاده از دستورات fastboot برای فلش کردن تصویر سیستم است و نصب اصلی را ضبط می کند. با استفاده از DSU ، می توانید به یک GSI بوت شوید ، برنامه خود را آزمایش کنید و سپس به راحتی در نصب اصلی خود که دست نخورده مانده است دوباره راه اندازی مجدد کنید.
دلیل اینکه DSU می تواند GSI را بدون لمس کردن نصب اصلی نصب کند این است که سیستم جدیدی ایجاد می کند و تصاویر تقسیم داده ها که به طور موقت در / data / gsi ذخیره می شوند . این تصاویر به جای پارتیشن های اصلی سیستم و داده ها در طول بوت نصب می شوند. از آنجا که تلفن برای این تصاویر جدید و موقتی به فضای ذخیره سازی اضافی احتیاج دارد ، تلفن شما باید روی صفحه "پارتیشن های منطقی" داشته باشد ، که پارتیشن های قابل تنظیم از نظر پویا هستند. پارتیشن های منطقی یک سیستم جداسازی فضای کاربر جدید برای اندروید است ، که برای راه اندازی دستگاهها با Android 10 الزامی است. اگر دستگاه شما با Android 10 راه اندازی شده است ، باید از نصب GSI از طریق DSU پشتیبانی کند.
در Android 10 ، تمام کاری که باید انجام دهید نصب GSI از طریق DSU برای تغییر ویژگی سیستم و سپس راه اندازی DynamicSystemUpdatesInstallationService با ارسال یک هدف با مسیر GSI به عنوان یک برنامه اضافی است.
آندروید 11 را به طور موقت بر روی پیکسل 3 نصب کرد. XL بدون از بین بردن نصب اندروید 10 به لطف به روزرسانی های سیستم پویا (DSU). متأسفانه ، برای بوت شدن به یک bootloader قفل نیاز دارد. pic.twitter.com/6TfUFD3ut9
– میشاال رحمان (MishaalRahman) 22 فوریه 2020
گرچه ممکن است این روند ناآشنا به نظر برسد ، اما مقایسه می شود به مراتب آسان تر و کمتر مزاحم است. استفاده از دستورات fastboot و مقابله با دردسر همه چیز ، از جمله نصب اصلی ، در حال پاک شدن است. شما برای استفاده از DSU به دانش ADB و اهداف دیگری نیاز دارید ، اما این نباید برای اکثر برنامه نویسان برنامه در آنجا مشکلی ایجاد کند. با این وجود ، هیچ دلیلی وجود ندارد که روند ساده تر نتواند انجام شود. بعلاوه ، این واقعیت وجود دارد که نصب یک GSI از طریق DSU هنوز هم به شما نیاز دارد تا قفل بوت لودر را باز کنید و همه داده های کاربر را در این فرآیند پاک کنید. برای این منظور ، Google اصلاحاتی را برای بهبود هر دو جنبه نصب GSI انجام داده است. در Android 11 ، آنها نیاز به استفاده از خط فرمان را برای نصب GSI را حذف کرده اند. به طور جداگانه ، آنها همچنین امکان نصب GSI را بدون باز کردن قفل bootloader فراهم کرده اند.
DSU Loader in Android 11
DSU Loader ابزاری جدید است که در گزینه های توسعه دهنده اندروید 11 موجود است و به شما امکان می دهد را بارگیری کنید و جدیدترین GSI را از Google نصب کنید بدون نیاز به وارد کردن دستورات fastboot یا ADB. به سادگی بر روی گزینه DSU Loader در تنظیمات ضربه بزنید و کادر محاوره ای با لیستی از GSI های پشتیبانی شده مستقیم از Google ظاهر می شود. این GSI های پشتیبانی شده مبتنی بر سیستم عامل و معماری فعلی شما خواهند بود ، بنابراین می توانید فقط GSI هایی را نصب کنید که جدیدتر از نسخه سیستم عامل شما هستند و با معماری SoC شما مطابقت دارند. کافی است GSI را که می خواهید نصب کنید انتخاب کنید و از سرورهای Google بارگیری می شود و به صورت خودکار در پس زمینه نصب می شود.
DSU Loader در Android 11
با DSU Loader ، توسعه دهندگان هرگز برای نصب یک خط فرمان را لمس نمی کنند. GSI حداقل ، این رویای است ، زیرا هنوز یک مسئله برای حل آن باقی مانده است.
راه پیش رو
در حال حاضر ، برای نصب یک GSI از طریق DSU لودر ، به یک بوت لودر قفل شده نیاز دارید. اگرچه این ممکن است هدف کل مصیبت را شکست دهد ، تصور نمی شود اینگونه باشد و به ما گفته می شود که رفع می شود. Google برای کاربران برنامه ریزی کرده است که بدون نیاز به باز کردن قفل بوت لودر ، بتوانند از طریق DSU GSI امضا شده توسط Google را بوت کنند. در حقیقت ، Google دستور می دهد كه كلیك دستگاههای پرتاب Android 10 شامل کلیدهای عمومی Android Verified Boot از Android 10 ، Android 11 و Android 12 GSI با امضای Google باشد. گنجاندن کلیدهای عمومی AVB در پرتردد دستگاه اطمینان حاصل می کند که AVB GSI را که می خواهید بوت کنید رد نمی کند. به همین دلیل روش فعلی شامل باز کردن قفل bootloader است – با چشمک زدن به تصویر خالی vbmeta به پارتیشن vbmeta ، AVB را غیرفعال می کنید تا GSI مورد نظر برای فلش آن رد نشود. غیرفعال کردن AVB یک خطر مهم امنیتی است ، به این معنی که هر پارتیشن اصلاح شده سیستم / boot / product / فروشنده را می توانید روی دستگاه بارگذاری کنید ، به همین دلیل گوگل می خواهد آن شرط را برطرف کند.
Android 10 GSI راهاندازی شود. مورد نیاز
بنابراین ، چه زمانی می توانید بدون نیاز به باز کردن قفل بوت لودر یا استفاده از ابزارهای خط فرمان ، انتظار داشته باشید که یک GSI را از طریق DSU بوت کنید؟ امیدوارم به زودی ، همانطور که گوگل به ما گفت که آنها قبل از اینكه بتوانند همه اینها را به درستی انجام دهند ، چند كلمه را برای تركیب با برنامه اولیه Android 11 Developer Previews دارند. با حرکت به جلو ، می توان انتظار داشت که GSI های پیش نمایش برنامه نویس را از طریق DSU بدون نیاز به باز کردن بوت لودر نصب کنید. شاید وقتی پیش نمایش های برنامه نویس Android 12 در دسترس قرار گرفتید ، حتی می توانید با استفاده از DSU Loader در گزینه های توسعه دهنده Android 11 ، آن را بطور کامل بوت کنید. برای توسعه دهندگان برنامه ، این بدان معنی است که یک روش دیگر برای تست برنامه های خود در سخت افزار فیزیکی با اجرای نسخه جدید Android وجود دارد.
آیا می خواهید پست های بیشتری مانند این به صندوق پستی خود تحویل داده شود؟ ایمیل خود را وارد کنید تا در خبرنامه ما مشترک شوید.
