APK در مقابل اپ باندل (App Bundle)؛ چرا گوگل فرمت اپلیکیشنهای اندروید را تغییر خواهد داد؟
اپلیکیشنهای اندروید در طول تاریخ بهعنوان APK (بستههای Anroid) توزیع شدهاند. یک APK حاوی یک نسخهی کامپایلشده از یک برنامه بههمراه منابع رسانهی مهم مانند نمادها و صداها است. این فایلها همچنین شامل یک سند مانیفست است که اطلاعات برنامه را به سیستمعامل اندروید ارائه میدهد. علاوهبراین، APK شامل مجموعهای از گواهیها و کلیدهای امضاء است که هویت ناشر را مشخص میکند.
به گزارش Cloudsavvyit، گوگل در ماه مه ۲۰۱۸ بستهی برنامهی جدیدی راهاندازی کرد که هدف آن رفع برخی از کاستیهای APK بود. اپباندل اندروید (AAB) همان نقش APK را ایفا میکند، اما تفاوتهایی در اجرا دارد.
گوگل در رویداد Google I/O 2021 اعلام کرد که AAB به فرمت پیشفرض اپلیکیشنهای اندرویدی تبدیل خواهد شد. از پایان ماه اوت، انتشار اپلیکیشنهای جدید در فروشگاه پلیاستور باید با فرمت AAB باشد. کاربرانی که برای نصب اپلیکیشنهای مورد نیاز خود فقط از فروشگاه پلیاستور بهره میبرند، نیاز به انجام هیچکاری نخواهند داشت. اما این موضوع برای توسعهدهندگان کمی پیچیدهتر است.
مزایای اپباندل (App Bundle)
AAB در ابتدا بهعنوان روشی برای حل برخی از چالشهای رایج در بستههای APK اکوسیستم اندروید معرفی شد. اندروید روی هزاران دستگاه اجرا میشود که طیف وسیعی از اندازههای صفحهنمایش، خطوط پایهی عملکرد و معماریهای پردازشی را پوشش میدهد. فرمت APK برای پاسخگویی به این تنوع، مقیاسپذیری لازم را ندارد، زیرا این بسته حاوی تمام منابع برنامه است.
اگر یک اپلیکیشن را روی گوشی هوشمند خود نصب میکنید، واقعا نیازی به دانلود انواع گرافیکهای تبلت با وضوح بالا نخواهید داشت. بااینحال، معمولا هر تغییری در فایلهای APK ارائه میشود که این امر باعث بزرگتر شدن حجم فایل نصبی و افزایش میزان استفاده از فضای ذخیرهسازی خواهد شد. اگر توسعهدهنده بخواهد نسخههای سادهتری ارائه دهد، باید APK مخصوص هر نوع دستگاه را بهطور دستی کامپایل کند.
اپباندلها رویکرد متفاوتی را در پیش گرفتهاند. طراحی این بستهها بهنحوی انجام شده است که چند نسخهی مختلف از یک اپلیکیشن را در یک مجموعهی منطقی و در قالب «بسته» ارائه میکند. سپس فروشگاه پلیاستور فقط بیتهای مربوط به هر دستگاهی که قرار است اپلیکیشن روی آن نصب شود را به آن دستگاه ارسال خواهد کرد. این بسته، با توجه به تقاضای هر کاربر، نرمافزار مخصوص دستگاه وی را تولید میکند؛ بنابراین کاربری که یک دستگاه با نمایشگر ۱۰ اینچی با پردازندهی اینتل دارد، نسبت به کاربری که یک گوشی مبتنی بر معماری آرم در اختیار دارد، نسخهی متفاوتی از اپلیکیشن مورد نظر را دریافت خواهند کرد. مهمتر از همه اینکه، دستگاههای اندروید همچنان نسخهی APK را دریافت خواهند کرد و هرگز بهطور مستقیم با اپباندل ارتباط نخواهند داشت. تفاوت این است که APK بهصورت پویا و در فضای ابری تولید شده است.
بارگیری ماژولهای افزودنی در اپباندل سادهتر بوده و از داراییهای بزرگ مثل محتوای بازی با روشی بهتر پشتیبانی میکند. به اعلام گوگل، استفاده از این روش در مقایسه با انتشار مستقیم فایلهای APK، باعث میشود حجم دانلودهای کاربران حدود ۱۵ درصد کاهش یابد.
چه تغییراتی در APK اعمال خواهد شد؟
گوگل از اوت ۲۰۲۱ بهتدریج پشتیبانی از APK را متوقف میکند. اپلیکیشنهای جدید ارسالشده به فروشگاه پلیاستور باید بهصورت اپباندل ارائه شود. اپلیکیشنهای مبتنی بر APK موجود همچنان پشتیبانی میشوند و توسعهدهندگان میتوانند بهروزرسانیهای جدید را برای این اپلیکیشنها ارائه دهند. این برنامهها بهعنوان «فعلا معاف» توصیف شدهاند که این موضوع نشان میدهد احتمالا در آینده، بهروزرسانیهای این دسته از اپلیکیشنها نیز بهعنوان AAB منتشر خواهد شد.
به گفتهی گوگل، با اعمال این تغییرات، کاربران میتوانند از مزایای اپباندل بهره ببرند. از دیدگاه یک کاربر نهایی معمولی، مقاومت دربرابر وعدههای اپباندل دشوار است؛ دانلودهای کوچکتر و فضای ذخیرهسازی مورد نیاز کمتر، مورد استقبال بسیاری از افراد قرار خواهد گرفت، بهخصوص افرادی که از دستگاههای ارزانقیمت استفاده میکنند و سرعت اتصال آنها به اینترنت کم است.
البته کاربران نسخههای قدیمیتر اندروید از این مزایا بیبهره خواهند بود، زیرا دستگاه آنها امکان استفاده از بستههای توزیع شده را روی یک اپلیکیشن کاربری ندارد. نسخههای قدیمی سیستمعامل مورد اشاره همچنان میتوانند اپلیکیشنهای اپباندل را از پلیاستور نصب کنند؛ در این شرایط سیستمِ اپباندل، میداند که با یک دستگاه قدیمی سروکارر دارد و بهجای آن از یک فایل APK همهکاره بهره خواهد برد.
معایب اپباندل چیست
درحالیکه مزایای اشارهشده در بستههای اپلیکیشن جذاب بهنظر میرسد، اما این بستهها یک مشکل مهم برای توسعهدهندگان و کاربران حرفهای دارد. از آنجا که سیستم اپباندل بر تولید پویا و درون ابری فایلهای APK امضاء شده متمرکز است، توسعهدهندگان باید کلیدهای امضای اپلیکیشن خود را به گوگل تحویل دهند. بدین ترتیب بهجای اینکه توسعهدهندگان، برای ارائه بهروزرسانیهای جدید از زیرساخت خود بهره ببرند، گوگل اپباندل را دریافت کرده و آن را به فایلهای APK امضاءشده تبدیل میکند.
فرایند امضاء به دستگاههای اندروید اجازه میدهد این مورد را تأیید کنند که بهروزرسانیها از ناشر اصلی برنامهی نصبشدهی فعلی ارائه میشود. این بخش مهمی از اکوسیستم است که از تولید برنامههای مخرب توسط توسعهدهندگان بدنام جلوگیری کرده و بارگیریهای واقعی را بازنویسی میکند. گوگل وعده داده است که توسعهدهندگان قادر خواهند بود کلیدهای مخصوص خود را تهیه کنند، اما این امضاها نیز همچنان باید در فروشگاه نگهداری شود.
علاوهبراین، گوگل اکنون میتواند بهروزرسانیهای برنامهها را خودش منتشر کند؛ بهعنوان مثال اگر مقامات دولتی به این شرکت فشار بیاورند، احتمال دارد غول دنیای جستجوی اینترنت، خود یک بهروزرسانی برای برخی اپلیکیشنها ارائه دهد. این شرکت اکنون کلیدهای مهم توسعهدهندگان را در اختیار دارد و میتواند با درخواستهای نصب پنهانی بهروزرسانیهای تأیید نشده، برنامههای موجود را مطابقت دهد.
آیا یک سازمان دولتی میتواند گوگل را وادار کند که یک اپلیکیشن پیامرسانی رمزنگاری شده را اصلاح و آن را روی دستگا کاربر هدف نصب کند؟ چنین درخواستی میتواند به آژانس مورد اشاره اجازه دهد پیامها را رهگیری کند و هدف هیچ اطلاعی از این مورد نخواهد داشت. اپباندل و امضای میزبانی شده، این سناریو را از نظر تئوری امکانپذیر ساخته است.
ظاهرا این خطر توسط سیستم «شفافیت کد» کاهش مییابد. هدف از این کار، این است که توسعهدهندگان و کاربران نهایی، روشی برای تأیید فایلهای APK دانلود شده با بستهی ارسالشده به فروشگاه پلیاستور در دسترس داشته باشند که از طریق مطابقت، امکان نفوذ را از بین میبرد.
بااینحال، اندروید در واقع امضاهای شفافیت کد را بررسی نمیکند؛ بنابراین این مورد به جامعه بستگی دارد که ابزارهایی در این زمینه توسعه دهد. افزونبراین، شفافیت کد کاملا اختیاری است و فقط زمانی فعال خواهد شد که APK حاوی یک فایل شفاف باشد. از آنجا که گوگل از قبل کلیدهای مورد نیاز برای تولید APK جدید را در اختیار دارد، این شرکت میتواند فایل شفافیت کد را هر زمان که تمایل داشته باشد حذف کند.
بستههای برنامه و فروشگاههای اپلیکیشن شخصثالث
اپباندلها همچنین برای طبیعت باز اکوسیستم اندروید یک تهدید محسوب میشوند. گوگل در سالهای اخیر نقش نظارتی قویتری ایفا کرده است. اپباندلها ضربهی دیگری به فروشگاههای اپلیکیشن شخصثالث است که امکان دانلود مستقیم APK را ارائه میدهند.
از آنجا که با روش جدید، توسعهدهندگان باید اپباندلها را کامپایل کنند، ساخت فایلهای APK کنار گذاشته خواهد شد. اینکه گوگل نصب مستقیم APK را بهطور کامل غیرفعال یا قابلیتهای سخت APK را از نسخههای رسمی اندروید استودیو حذف کند، فقط به زمان نیاز دارد.
درحالحاضر، توسعهدهندگان میتوانند فایلهای APK مستقل امضاءشده را پس از ارسال اپباندل از فروشگاه پلیاستور دانلود کنند. این APK برای آپلود در فروشگاههای اپلیکیشن شخصثالث آماده خواهند بود، بنابراین هیچ خطر فوری برای این مدل استقرار وجود ندارد. بااینحال، این مورد همچنان برای توسعهدهندگان خوشایند نیست؛ زیرا یا باید فایلهای APK امضاءشدهی خود را بهصورت دستی دانلود کنید یا آنها را بهطور جداگانه در دستگاه محلی بسازید.
تنها چند روز پس از اینکه مایکروسافت، ویندوز ۱۱ را با پشتیبانی از اپلیکیشنهای اندروید از طریق فروشگاه اپلیکیشن آمازون رونمایی کرد، گوگل تغییر اجباری به اپباندل را منتشر کرد. اگرچه تغییر به اپباندل از چند سال قبل درحال انجام است، اما تصمیم گوگل برای انجام این اقدام، اکنون میتواند برای محدود کردن تأثیر مشارکت مایکروسافت و آمازون باشد که فقط از APK معمولی پشتیبانی میکنند.
نتیجه
اپباندلهای اندروید یک فرمت کامپایل جدید برای برنامهها است که کارایی بسیار بیشتری نسبت به APK معمولی ارائه میدهد. اگرچه دستگاههای اندروید همچنان در نهایت یک فایل APK دریافت میکنند، اما هر کدام بهطور خاص برای نسخهی سیستمعامل و نوع و فرم دستگاه فعال میشوند.
اگرچه اپباندلها نهایتا مورد استقبال اکثر کاربران قرار خواهد گرفت، اما برای توسعهدهندگان و اکوسیستم گسترده، راهکار مناسبی نیست. مدل اپباندل به گوگل کنترل بیشتری بر توزیع اپلیکیشنها میدهد. این فرایند به افشای کلیدهای امضاء توسعهدهندگان نیاز دارد که میتواند باعث ایجاد بهروزرسانیهای اجباری برای برنامهها شده و علاوهبر این، فروشگاههای شخصثالث اپلیکیشن را تهدید کند.
نظر شما در مورد اپبادل گوگل چیست؟