هر آنچه باید در رابطه با AAB یا Android App Bundles بدانید
در آستانه ارائه اندروید ۱۲ ، گوگل تغییرات اساسی را در تحویل و توزیع برنامه ها در دستگاه های Android در گوگل play store ( فروشگاه پلی ) ایجاد می کند.
از آگوست ۲۰۲۱ ، همه برنامه های جدید در فروشگاه Play به جای قالب APK موجود ، در قالب Android App Bundles (.aab) منتشر می شوند.
تفاوتهای عمده بین APK و Android App Bundles (AAB) چیست؟ آیا می توانیم AAB ها را مانند APK ها استفاده کنیم ؟
برای پاسخ به این سوال ها ، ما این مقاله را در مورد APK در مقابل AAB ارائه کرده ایم.
در اینجا ، ما هر دو قالب AAB و APK را به زبان عادی قابل درک برای همگان توضیح داده ایم .
همچنین نحوه نصب فایل های AAB ، استخراج فایل های APK از AAB و موارد دیگر را شرح داده ایم.
APK در مقابل Android App Bundles : مفاهیم اولیه
اول از همه ما باید برخی از اصول اولیه را درک کنیم تا بفهمیم تفاوت APK و Android App Bundle چیست.
APK از ابتدای راه اندازی بسته توزیع برنامه در Android بوده است.
یک APK عمدتا شامل کدهای برنامه ، منابع سنگین مانند تصویر ، صدا و غیره است.
و کلید امضای برنامه ایجاد شده توسط توسعه دهنده.
توجه داشته باشید که دستگاه های Android دارای عوامل و مشخصات مختلفی هستند.
به عنوان مثال ، دستگاه ها می توانند درجه متفاوتی از تراکم صفحه (۳۲۰dpi ، ۴۸۰dpi و غیره) ، نوع پردازنده (ARM ، ARM64 ، x86) و موارد دیگر را داشته باشند.
همچنین ، بر اساس منطقه کاربر ، برنامه باید دارای بسته زبان (en ، fr ، ger و غیره) باشد.
در شرایط ایده آل ، توسعه دهنده باید چندین APK را بر اساس منطقه کاربر ، نوع پردازنده و تراکم صفحه نمایش در گوگل Play Store ایجاد و بارگذاری کند.
وقتی کاربر روی دکمه “نصب” در Play Store ضربه می زند ، APK صحیح و مناسب ترین نسخه برای دستگاه درخواست کننده بر روی دستگاه او نصب می شود.
با این حال ، همه اینها وظیفه بزرگی را بر عهده توسعه دهنده می گذارد.
آنها نه تنها باید برنامه ها را توسعه دهند بلکه چندین APK را نیز برای پشتیبانی از تعداد زیادی دستگاه در گوگل play store مدیریت می کنند.
برای جلوگیری از این کار پیچیده و زمان بر ، اکثر توسعه دهندگان یک APK جهانی ایجاد می کنند که همه منابع (بسته های زبان ، کدها و موارد دیگر) را ارائه می دهد.
این منجر به ایجاد یک APK حجیم با اندازه برنامه بزرگتر می شود که به زمان نصب طولانی تری نیاز دارد و پهنای باند بیشتری مصرف می کند.
گوگل می خواهد این مشکل را با استفاده از Android App Bundles (AAB) برای توسعه دهندگان حل کند.
این به نوبه خود به کاهش اندازه برنامه ، زمان نصب و مصرف پهنای باند کمک می کند.
این شرکت AAB را در Google I/O 2018 معرفی کرد و اکنون ، تقریباً دو سال بعد ، گوگل توسعه دهندگان را موظف کرده است برنامه های جدید خود را با فرمت AAB در Play Store ارسال کنند.
در مقایسه با APK ، قالب AAB یک بسته توزیع کاملاً جدید نیست.
در حقیقت ، AAB یک ظرف است که میزبان یک APK پایه و چند APK تقسیم شده است.
اساساً ، AAB یک قالب انتشار است که توسعه دهنده آن را به فروشگاه Play ارسال می کند در حالی که APK قالب بسته بندی برنامه های Android است که بر روی دستگاه خود نصب می کنید.
واقعاً چه چیزی در اینجا تغییر می کند؟
از آگوست ۲۰۲۱ ، توسعه دهندگان مجبور نیستند دسته وسیعی از APK ها را برای مجموعه وسیعی از دستگاه ها تولید و مدیریت کنند.
با AAB ، توسعه دهندگان همه چیز را به گوگل Google واگذار می کنند – کد برنامه ، دارایی ها ، منابع سنگین ، همه بسته های زبان و مهمتر از همه ، کلید امضای برنامه خصوصی.
اکنون ، Google می تواند APK های بهینه شده را بر اساس پیکربندی دستگاه خود تولید و به کاربران ارائه دهد.
این می تواند یک بسته AAB بسیار کوچکتر ایجاد کند.
اندازه ای جمع و جور تر از برنامه نصب شده و داده های کمتری برای دستگاه های رده پایین مصرف می کند.
این مزیت اصلی AAB در مقابل APK است ، اما موارد بیشتری برای توضیح دادن وجود دارد.
به اشتراک گذاری کلید امضای خصوصی با Google
با نگاهی به آنچه AAB روی میز می آورد ، به نظر می رسد یک جایگزین عالی برای APK است.
قالب AAB حجم برنامه را کاهش می دهد و توسعه دهندگان مجبور نیستند چندین APK بسازند.
با این حال ، بسیاری از توسعه دهندگان در مورد به اشتراک گذاشتن کلید امضای خصوصی با Google ابراز نگرانی کرده اند.
همانطور که در بالا اشاره کردم ، کلید امضا مهمترین اطلاعات برای تأیید صحت APK است.
حتی اگر یک فایل APK را از منبع شخص ثالث دانلود کنید ،
فروشگاه Google Play کلید امضا را بررسی می کند تا مطمئن شود که چیزی دستکاری نشده است.
با AAB گوگل دستور می دهد که توسعه دهندگان باید کلید امضای خصوصی را به اشتراک بگذارند تا Google بتواند بسته برنامه را ایجاد کرده و AAB را با همان کلید خصوصی امضا کند.
هنگامی که کاربران برنامه را نصب می کنند یا نسخه جدیدی را به روز می کنند ،
خدمات Play با کلید امضا مطابقت دارد و نصب بدون هیچ گونه مغایرت کلیدی یا مشکلات خرابی امضا انجام می شود.
با این اوصاف ، توسعه دهندگان می گویند که به طور بالقوه امکان نفوذ کد های مخرب وجود دارد.
گوگل می گوید “همه کلیدهای امضا در همان زیرساختی ذخیره می شوند که Google برای ذخیره کلیدهای خود استفاده می کند.” بنابراین مطمئن باشید ، همه کلیدهای امضای خصوصی شما با امنیت بالا محافظت می شوند.
علاوه بر این ، برای حل نگرانی توسعه دهندگان ، گوگل کد Transparency را اعلام کرد که به توسعه دهندگان اجازه می دهد یک کلید خصوصی جداگانه تولید کنند که فقط توسط آنها قابل دسترسی باشد.
از طریق کلید خصوصی جداگانه ، توسعه دهندگان می توانند یک امضای اضافی ایجاد کنند که می تواند برای تأیید صحت برنامه مورد استفاده قرار گیرد.
با این حال ، محدودیتی برای این روش وجود دارد.
این یک ویژگی اختیاری است که ممکن است بسیاری از توسعه دهندگان را از حلقه خارج کند.
آیا Android App Bundles کارها را برای فروشگاه های برنامه شخص ثالث سخت تر می کند؟
مسئله دیگری که از به اشتراک گذاشتن کلید خصوصی با Google ناشی می شود این است که ممکن است کار را برای فروشگاه های برنامه شخص ثالث دشوارتر کند.
به عنوان مثال ، اگر برنامه ای را از Play Store نصب کرده اید اما می خواهید از آخرین نسخه جایگزین Play Store به آخرین نسخه (به عنوان مثال فروشگاه App Amazon یا Aptoide Store) به روزرسانی کنید ، ممکن است نصب به دلیل عدم تطابق امضا انجام نشود .
به این دلیل است که Google در حال مدیریت کلید امضای خصوصی است ، بنابراین هنگام بارگذاری برنامه خود در فروشگاه برنامه شخص ثالث Android ، نمی توانید از همان کلید استفاده کنید. شما باید از کلید خصوصی دیگری استفاده کنید و این باعث خطای عدم تطابق کلید خصوصی می شود.
آیا این مشکلی برای پشتیبانی برنامه های Android در ویندوز ۱۱ ایجاد می کند؟ باید منتظر بمانیم و بفهمیم.
به غیر از این ، این فرض که AAB مانع از بارگذاری APK در برنامه های شخص ثالث توسط توسعه دهندگان می شود ، نادرست به نظر می رسد.
گوگل قبلاً یک ابزار منبع باز به نام bundletool ساخته است که به توسعه دهندگان اجازه می دهد فایل های APK را از بسته های AAB ایجاد کنند.
در حال حاضر تنها مسئله این است که اشتراک کلید امضای خصوصی بر کاربران قدرتمند اندروید تأثیر می گذارد.
آیا می توانیم AAB ها را مانند APK ها کنار بگذاریم؟
با توجه به آنچه می دانیم ، به نظر می رسد آپلود جانبی AAB در دستگاه های Android امکان پذیر است ، اما به اندازه دانلود APK ها راحت نخواهد بود.
نصب کننده بسته اندروید در حال حاضر از قالب بسته بندی AAB پشتیبانی نمی کند ، به این معنی که نصب AAB روی دستگاه به صورت بومی امکان پذیر نخواهد بود.
با این حال ، می توانید از برنامه های نصب شخص ثالث برای نصب بسته AAB روی دستگاه استفاده کنید.
به عنوان مثال ، در حال حاضر ، APKMirror Installer (رایگان ، دارای خرید درون برنامه ای) به شما این امکان را می دهد که بسته های APK (Base APK + Split APK) را با برنامه نصب کننده آن نصب کنید.
برای دریافت APK صحیح سازگار با دستگاه خود ، باید از نرم افزار بسته نرم افزاری منبع باز استفاده کنید.
با رواج بیشتر Android App Bundles ها ، ممکن است روشهای جدید و مناسبی برای دانلود جانبی ارائه شود.
به خاطر داشته باشید ، فقط دانلود جانبی APK Base در دستگاه شما خراب می شود.
مزایا و معایب
پس از بررسی تمام نکات ، می توانید بگویید که AAB ها از نظر تجربه کاربری برای اکثر کاربران تفاوت چندانی ایجاد نمی کنند.
اندازه برنامه را کاهش می دهد ، که برای اکثر کاربران مفید خواهد بود.
به عنوان مثال – Airbnb پس از تغییر از APK به AAB ، حجم برنامه خود را ۲۲ درصد کاهش داد ، در حالی که Netflix اندازه برنامه خود را ۵۷ درصد کاهش داد.
این تفاوت قابل توجهی در اندازه برنامه است.
با این حال ، برای کاربران قدرتمند که می خواهند AAB ها را کنار بگذارند ، همه چیز کمی پیچیده و ناخوشایند خواهد شد.
ممکن است مجبور شوید از bundletool برای استخراج فایل های APK برای دستگاه خود یا استفاده از نصب کننده شخص ثالث استفاده کنید.
نکته ای که باید به آن توجه داشت این است که AAB برای دانلود منابع بزرگ از OBB استفاده نمی کند .
در عوض ، از Play Asset Delivery یا Play Feature Delivery برای دانلود منابع سنگین با حجم دانلود ۱۵۰ مگابایت یا بالاتر استفاده می کند.
باید ببینیم که چگونه بازی های جانبی مانند Battlegrounds Mobile India ، PUBG Mobile ، FAU-G و موارد دیگر را تحت تأثیر قرار می دهد.
در مورد توسعه دهندگان که بیشتر تحت تأثیر این تغییر قرار گرفته اند ، آنها نیازی به تغییر کد خود ندارند ، که بسیار عالی است.
Android App Bundles ها نیز مدولار بودن را به ارمغان می آورند ، به این معنی که می توانند قطعه کد را تغییر داده و بدون مواجهه با بسیاری از درگیری های ادغام شده ، آن را با پایگاه اصلی ادغام کنند.
یک مزیت بزرگ AAB این است که گزینه های سفارشی سازی را برای توسعه دهندگان به ارمغان می آورد.
آنها می توانند سطح API مورد نظر یا نوع دستگاه مورد نظر را انتخاب کنند.
توسعه دهندگان همچنین می توانند تصمیم بگیرند که چه ویژگی هایی را برای یک نوع دستگاه خاص یا تلفن های هوشمند دارای حداقل نسخه SDK ارائه دهند.
در مورد معایب ، موضوع اصلی به اشتراک گذاشتن کلید خصوصی است که اکنون توسط گوگل Google مدیریت می شود.
ناسازگاری با فروشگاه های برنامه های شخص ثالث ممکن است یکی دیگر از مسائل مهم باشد و توسعه دهندگان مجبور خواهند بود مسافت بیشتری را برای انتشار و مدیریت فایل های APK (درست مانند فروشگاه Play در حال حاضر) در فروشگاه های برنامه دیگر طی کنند.
برای مطالعه مطالب بیشتر به ویلاگ سیلو فایل سر بزنید