فایل AAB (Android App Bundles) چیست و چه تفاوتی با APK دارد؟

فایل با پسوند AAB چیست؟ فایل های AAB برای چه مواردی استفاده می شوند؟ فایل AAB در اندروید چه کاربردی دارد؟ فرق فایل APK و AAB چیست؟  برای دریافت جواب این سوالها یکسری سوالات دیگر در این زمینه تا آخر با ما همراه باشید. 

همه ما می دانیم که موبایل های هوشمند و در پی آن اپلیکیشن هایی که برای آنها ساخته می شود تاثیر بسزایی بر زندگی روزمره ما دارند تا جایی که بدون آنها زندگی امکان پذیر نیست.

دنیای اپلیکیشن های موبایل در سال ۲۰۰۸ با عرضه اولین آیفون رشد کرد. وقتی به گذشته نگاه کنید از پیشرفت قابل توجهی که دنیای اپلیکیشن ها در بیش از یک دهه داشته اند تعجب خواهید کرد! با این حال، تغییرات غیر قابل مشاهده مختلفی در دنیای برنامه های تلفن همراه وجود دارد که بدون هیچ حد و مرزی در حال پیشرفت است.

فایل AAB چیست؟

همانطور که می دانید فایل های apk برای نصب اپلیکیشن های اندرویدی مورد نیاز است و اگر برنامه نویس اندروید هستید حتما می دانید که نسخه نهایی هر اپلیکیشنی که در مارکت پلیس هایی مانند گوگل پلی یا کافه بازار و … بارگزاری می شود فایل APK است. بیشتر بدانید: فایل APK چیست؟

معایب فایل های APK چه مواردی بود؟

  1. فایل های APK به طور گسترده در اینترنت از منابع مختلف در دسترس هستند.
  2. گزارش‌هایی مبنی بر تغییر فایل‌های APK توسط هکرها و اضافه کردن مجوزهای اضافی برای برنامه وجود دارد.
  3. بزرگ بودن فایل (.apk) یک مشکل محسوب می شود.

فرمت aab چیست؟ گوگل همیشه در حال ایجاد تغییرات اساسی در تحویل و توزیع برنامه ها در دستگاه‌های اندرویدی است. از اینرو گوگل در سال ۲۰۱۸ فرمت جدیدی را به عنوان جایگزین فایل های APK بنام AAB معرفی کرد. از آگوست ۲۰۲۱، همه برنامه‌های جدید در فروشگاه Play به‌جای قالب APK موجود، در قالب Android App Bundles (.aab) منتشر شدند.

فرمت AAB در اندروید استودیو ۳.۲ و نسخه‌های جدیدتر، Unity 2018.3 و ۲۰۱۷.۴.۱۷ و نسخه ۲.۰.۹ Cocos Cretor و نسخه‌های بالاتر پشتیبانی شد.

مزایا و معایب فایل AAB اندروید

مزایای فایل AAB اندروید

جایگزینی فایل apk با aab دارای مزایایی است که در ادامه به آن می پردازیم:

  1. سفارشی سازی منابع اپ برای کاربر که کاهش حجم نهایی اپ بین ۳۵ تا ۵۰ درصد را به دنبال دارد. کاربران فقط کدهای استفاده شده در یک اپ و منابع موردنیاز را دانلود خواهند کرد. در این صورت، برنامه‌ها سریع تر دانلود شده و تجربه کاربری بهتری را به همراه دارد.
  2. signing توسط استور به جای برنامه نویس انجام می شود.
  3. امنیت اپ‌ها به‌علت سخت‌تر شدن امکان تغییر اپ‌ها در آینده، افزایش خواهد یافت.
  4. بروزرسانی و توسعه اپ بهبود می‌یابد زیرا بروزرسانی صرفا برای یک نوع سخت افزار یا دستگاه خاص امکان پذیر است.
  5. با استفاده از ویژگی Play Asset Delivery مدت زمان انتقال قابلیت ها و هزینه ها کاهش پیدا می کند. بازی ها متناسب یا دستگاه کاربران بهینه سازی می شوند.

معایب فرمت AAB اندروید

جایگزینی فایل apk با aab دارای معایبی است که در ادامه به آن می پردازیم:

  1. به علت ساین شدن برنامه توسط استورها، کاربران صرفا اپ را از همان استوری می توانند به روزرسانی کنند که اپ را از آنجا دانلود کرده‌اند.
  2. بعلت ساین شدن برنامه توسط استورها، آن‌ها نفوذ بیشتری بر روی اپ‌ها دارند. این موضوع نگران کننده وجود دارد که اگر سرورهای استور از جمله گوگل هک شود کل اپ‌ها در معرض خطر خواهند بود.
  3. ثانیا این بحث شکل گرفته است که امکان ایجاد backdoor جهت نفوذ بر روی اپ‌های پر مخاطب (همچون پیام رسان‌ها) برای استورها فراهم شده است که با فشار دولت‌ها غیر ممکن نیست.
  4. بررسی و رفع خطا برای برنامه نویسان بسیار سخت تر شده است، چرا که قبلا امکانش بود برای یک کاربر دارای خطا خروجی تولید کنیم و منتظر تست او باشیم اما در فایل aab چون اپ فقط توسط استور ساین می شود، امکان چنین چیزی وجود ندارد.
  5.  این فایل‌ ها برای کاربران حرفه‌ای اندروید بسیار پرکاربرد و ضروری است. از آنجایی که گوگل همواره تاکید می کند که در انتخاب منبع دانلود فایل های خود دقت کنید و فایل های APK را تنها از Google Play دریافت و نصب کنید، این دغدغه به وجود آمده که در آینده گوگل هم همچون اپل به سمت انحصار گرایی رود و جلوی استورهای غیر گوگلی را بگیرد.

فرق فایل apk و aab 

تفاوت فایل apk و aab از نظر اصول اولیه

بهتر است ابتدا یکسری اصول اولیه را درک کنید تا به درستی تفاوت هایی بین APK و Android App Bundle را متوجه شوید.

APK از زمان آغاز به کار بسته برنامه توزیع پیشرو در اندروید بوده است. یک APK عمدتاً از کدهای برنامه، منابع سنگین مانند تصویر، صدا و غیره و کلید امضای برنامه تولید شده توسط توسعه دهنده تشکیل شده است. توجه داشته باشید که دستگاه‌های اندرویدی دارای فرم‌ها و مشخصات مختلفی هستند. به عنوان مثال، دستگاه ها می توانند دارای درجه متفاوتی از تراکم صفحه نمایش (۳۲۰dpi، ۴۸۰dpi، و غیره)، نوع پردازنده (ARM، ARM64، x86) و غیره باشند. همچنین، بر اساس منطقه کاربر، برنامه باید یک پک زبان (en، fr، ger و غیره) داشته باشد.

در یک موقعیت ایده‌آل، یک برنامه نویس اندروید باید بر اساس منطقه کاربر، نوع پردازنده و تراکم صفحه نمایش، چندین APK بسازد و در Play Store آپلود کند. وقتی کاربر روی دکمه «نصب» در فروشگاه Play ضربه می‌زند، APK صحیح و مناسب‌تر روی دستگاه او نصب می‌شود. با این حال، همه اینها وظیفه بزرگی را در دستان توسعه دهنده قرار می دهد. آنها نه تنها باید برنامه ها را توسعه دهند، بلکه چندین APK را نیز برای پشتیبانی از تعداد زیادی دستگاه مدیریت می کنند.

برای جلوگیری از این کار پیچیده و زمان‌بر، اکثر توسعه‌دهندگان یک APK جهانی می‌سازند که با تمام منابع (بسته‌های زبان، کدها و موارد دیگر) ارائه می‌شود، حتی اگر بیشتر آن را در آن دستگاه خاص نیاز نداشته باشید. این کار منجر به یک APK حجیم با اندازه برنامه بزرگتر می شود که به زمان نصب طولانی تری نیاز دارد و پهنای باند بیشتری را مصرف می کند.

گوگل می خواهد این مشکل را حل کند و بیشتر این بار را با برنامه Android App Bundles (AAB) بر دوش توسعه دهندگان بگذارد. این به نوبه خود به کاهش اندازه برنامه، کاهش زمان نصب و کاهش مصرف پهنای باند کمک می کند. این شرکت AAB را در Google I/O 2018 معرفی کرد و اکنون، نزدیک به چند سال بعد، گوگل شما را ملزم می‌کند که برنامه‌های جدید را با فرمت AAB در فروشگاه Play ارسال کنید.

android app bundle - how it works

در مقایسه با APK، فرمت AAB یک بسته توزیع کاملاً جدید نیست. در واقع، AAB ظرفی است که میزبان یک APK پایه و چندین APK تقسیم‌بندی است. اساسا، AAB یک فرمت انتشار است که یک توسعه دهنده آن را به فروشگاه Play ارسال می کند در حالی که APK قالب بسته بندی برنامه های Android است که در دستگاه خود نصب می کنید.

پس واقعاً چه چیزی در اینجا تغییر می کند؟ از آگوست ۲۰۲۱، توسعه‌دهندگان مجبور نیستند مجموعه کاملی از APKها را برای طیف گسترده‌ای از دستگاه‌ها مدیریت کنند. با AAB، توسعه دهندگان همه چیز را به Google واگذار می کنند. کد برنامه، دارایی ها، منابع سنگین، همه بسته های زبان و مهمتر از همه، کلید امضای برنامه خصوصی. اکنون، Google می‌تواند فایل‌های APK بهینه‌سازی شده را بر اساس پیکربندی دستگاهشان برای کاربران تولید و ارائه کند. می‌تواند بسته AAB بسیار کوچک‌تری ایجاد کند، بسته‌ای که اندازه آن جمع‌وجور است، به سرعت نصب می‌شود و داده‌های کمتری را برای دستگاه‌های ارزان‌قیمت مصرف می‌کند. این پیشنهاد اصلی AAB در مقابل APK است، اما چیزهای بیشتری برای باز کردن وجود دارد.

تفاوت فایل apk و aab از نظر اشتراک گذاری کلید امضای خصوصی با گوگل

با نگاهی به آنچه AAB روی میز آورده است، به نظر می رسد جایگزینی عالی برای APK باشد. فرمت AAB اندازه برنامه را کاهش می دهد و توسعه دهندگان مجبور نیستند چندین APK بسازند. با این حال، بسیاری از توسعه دهندگان در مورد به اشتراک گذاری کلید امضای خصوصی با گوگل ابراز نگرانی کرده اند.

همانطور که در بالا ذکر کردیم، کلید امضا مهمترین اطلاعات برای تأیید یکپارچگی APK است. حتی اگر یک APK را از یک منبع شخص ثالث بارگذاری کنید، فروشگاه Google Play کلید امضا را بررسی می‌کند تا مطمئن شود چیزی دستکاری نشده است.

با AAB، Google دستور می دهد که توسعه دهندگان باید کلید امضای خصوصی را به اشتراک بگذارند تا Google بتواند بسته نرم افزاری را تولید کند و AAB را با همان کلید خصوصی امضا کند. هنگامی که کاربران برنامه را نصب می‌کنند یا به نسخه جدیدی به‌روزرسانی می‌کنند، Play Services با کلید امضا مطابقت می‌کند و نصب بدون عدم تطابق کلید یا مشکل خرابی امضا انجام می‌شود. با این گفته، توسعه دهندگان می گویند که به طور بالقوه در را برای تزریق کد باز می کند. گوگل می گوید که همه «کلیدهای امضا در همان زیرساختی ذخیره می شوند که گوگل از آن برای ذخیره کلیدهای خود استفاده می کند». بنابراین مطمئن باشید، تمام کلیدهای امضای خصوصی شما با امنیت آهنین محافظت می شوند.

علاوه بر این، برای کاهش نگرانی‌های توسعه‌دهندگان، گوگل کد شفاف‌سازی را اعلام کرد که به توسعه‌دهندگان اجازه می‌دهد کلید خصوصی جداگانه‌ای تولید کنند که فقط توسط آن‌ها قابل دسترسی باشد. از کلید خصوصی جداگانه، توسعه‌دهندگان می‌توانند یک امضای اضافی ایجاد کنند که می‌تواند برای تأیید یکپارچگی برنامه استفاده شود. با این حال، محدودیتی برای این روش وجود دارد. شفافیت کد فقط با کد سروکار دارد و نه با دارایی ها، منابع یا مانیفست. همچنین، این یک ویژگی اختیاری است که ممکن است بسیاری از توسعه دهندگان را از حلقه خارج کند.

آیا AAB می‌خواهد کار را برای فروشگاه‌های برنامه شخص ثالث سخت‌تر کند؟

مشکل دیگری که از اشتراک‌گذاری کلید خصوصی با Google ایجاد می‌شود این است که ممکن است کار را برای فروشگاه‌های برنامه شخص ثالث سخت‌تر کند. به عنوان مثال، اگر برنامه‌ای را از Play Store نصب می‌کنید اما می‌خواهید از فروشگاه Play جایگزین دیگری (مثلاً فروشگاه App Amazon یا Aptoide Store) به آخرین نسخه به‌روزرسانی کنید، ممکن است به دلیل عدم تطابق امضا، نصب با شکست مواجه شود.

به این دلیل است که Google اکنون کلید امضای خصوصی را مدیریت می کند، بنابراین نمی توانید از همان کلید هنگام آپلود برنامه خود در فروشگاه برنامه اندروید شخص ثالث استفاده کنید. شما باید از کلید خصوصی دیگری استفاده کنید و این باعث خطای عدم تطابق کلید خصوصی می شود.

برنامه های اندروید به فروشگاه مایکروسافت می آیند

به غیر از آن، این فرض که AAB مانع از آپلود فایل‌های APK در فروشگاه‌های برنامه شخص ثالث می‌شود، نادرست به نظر می‌رسد. گوگل قبلا یک ابزار منبع باز به نام bundletool ساخته است که به توسعه دهندگان اجازه می دهد فایل های APK را از بسته های AAB ایجاد کنند. تنها مشکل در حال حاضر این است که به اشتراک گذاری کلید امضای خصوصی بر کاربران قدرتمند اندروید تأثیر می گذارد.

آیا می‌توانیم AAB‌ها را مانند APK‌ها Sideload کنیم؟

با توجه به آنچه می دانیم، به نظر می رسد بارگذاری جانبی AAB ها در دستگاه های اندرویدی امکان پذیر است، اما به اندازه بارگذاری جانبی APK ها راحت نخواهد بود. نصب کننده بسته اندروید در حال حاضر از فرمت بسته بندی AAB پشتیبانی نمی کند، به این معنی که نصب AAB روی دستگاه به صورت بومی امکان پذیر نخواهد بود. با این حال، می توانید از برنامه های نصب کننده شخص ثالث برای نصب بسته AAB روی دستگاه استفاده کنید.

به عنوان مثال، در حال حاضر، APKMirror Installer (رایگان، خرید درون برنامه ای را ارائه می دهد) به شما امکان می دهد بسته های APKM (Base APK + Split APK) را با برنامه نصب کننده خود نصب کنید. ما قبلاً راهنمای دقیقی در مورد نحوه نصب Android App Bundles بر روی تلفن خود داریم، بنابراین مقاله مرتبط را بررسی کنید.

جدای از آن، نمی‌توانید adb راه خود را برای نصب AABs اضافه کنید. برای دریافت APK مناسب که با دستگاه شما سازگار است، باید از ابزار بسته منبع باز استفاده کنید. همانطور که AAB ها به جریان اصلی تبدیل می شوند، روش های جدید و راحت برای بارگذاری جانبی ممکن است به وجود بیاید. به خاطر داشته باشید، فقط بارگذاری جانبی APK پایه در دستگاه شما خراب می شود.

دوره پیشنهادی برای یادگیری برنامه نویسی اندروید:

این دوره نیاز به پیش نیاز ندارد. تمامی مفاهیم از صفر تا صد یعنی از سطح مبتدی تا پیشرفته به شما آموزش داده می شود.

در جدول زیر برخی تفاوت‌ها بین APK و AAB اشاره شده است.

فاکتور

AABs

APKs

نام کامل

Android application bundle

Android application package or Android package kit

ارسال

AAB ها به فایل های APK کوچکتر تقسیم می شوند. هر APK تقسیم شده مربوط به یک پیکربندی دستگاه خاص است.

فایل APK ارسال شده و بعداً به همان شکلی که ایجاد شده دانلود می شود.

نصب

AAB ها خودشان نمی توانند نصب را راه اندازی کنند. آنها تولید APK را به Google Play موکول می کنند.

APK ها را می توان برای نصب مستقیم یک برنامه در دستگاه Android استفاده کرد.

اندازه

فایل‌های AAB اندازه برنامه کوچک‌تر را تضمین می‌کنند زیرا هر APK تقسیم‌شده حاوی منابع خاص دستگاه است.

فایل‌های APK اندازه برنامه بزرگ‌تر را تضمین می‌کنند زیرا همه منابع بدون توجه به نیاز آنها در دستگاه دانلود می‌شوند.

ویژگی های پویا

منابع ویژگی های پویا در Google Play ذخیره می شوند و در صورت نیاز فراخوانی می شوند.

همه منابع مبتنی بر ویژگی در فایل APK ذخیره می شوند

فایل Asset

تمام Asset هایی که برای نصب برنامه مورد نیاز نیستند در Google Play ذخیره می شوند.

همه Asset ها در فایل اصلی APK ذخیره می شوند.

App churn

اندازه برنامه کوچکتر باعث کاهش حجم برنامه می شود

اندازه برنامه بزرگتر باعث ریزش بیشتر برنامه می شود

کارایی ذخیره سازی

از نظر فضا کارایی بیشتری دارند

منابع غیر ضروری حجم زیادی از دستگاه را اشغال کرده و کارایی را کاهش می دهد

نتیجه گیری: 

با توجه به اینکه از ابتدای ماه جاری (August 2021) گوگل برنامه نویسان را ملزم به آپلود فرمت aab به جای apk نموده است و کافه بازار هم به تازگی این فرمت جدید را پشتیبانی می‌کند

دوره پیشنهادی برای یادگیری برنامه نویسی اندروید:

این دوره هم نیاز به پیش نیاز ندارد. تمامی مفاهیم از صفر تا صد یعنی از سطح مبتدی تا پیشرفته به شما آموزش داده می شود.

commentشما بگید!

شما چه سوالی درباره این موضوع دارید که اینجا مطرح نشده است؟ لطفا تجربیات خودتان را در این زمینه حتما توی کامنت برای ما بنویسید. منتظر نظرات، پیشنهادات و سوالات شما در همین صفحه از سایت آموزش برنامه نویسی الکامکو هستیم…

shareاشتراک گذاری این مطلب

shareآخرین مقالات

آخرین مقالات

آخرین آموزش ها

توجه

مقاله هایی که در سایت به صورت رایگان قرار گرفته است فقط برای مطالعه بیشتر شما کاربران عزیز می باشد. از هرگونه تماس تلفنی با پشتیبانی سایت و سوال در مورد محتوای مقاله ها خودداری شود.

1 دیدگاه
بازخورد درون خطی
مشاهده همه نظرات
سهیل
6 ماه گذشته

خوبه باز بازار این این فایل ها پشتیبانی می کنه!

فهرست