فایل با پسوند AAB چیست؟ فایل های AAB برای چه مواردی استفاده می شوند؟ فایل AAB در اندروید چه کاربردی دارد؟ فرق فایل APK و AAB چیست؟ برای دریافت جواب این سوالها و یکسری سوالات دیگر در این زمینه تا آخر این مطلب از وبلاگ سایت برنامه نویسی الکامکو با ما همراه باشید.
همه ما می دانیم که موبایل های هوشمند و در پی آن اپلیکیشن هایی که برای آنها ساخته می شود تاثیر بسزایی بر زندگی روزمره ما دارند تا جایی که بدون آنها زندگی امکان پذیر نیست.
دنیای اپلیکیشن های موبایل در سال ۲۰۰۸ با عرضه اولین آیفون رشد کرد. وقتی به گذشته نگاه کنید از پیشرفت قابل توجهی که دنیای اپلیکیشن ها در بیش از یک دهه داشته اند تعجب خواهید کرد! با این حال، تغییرات غیر قابل مشاهده مختلفی در دنیای برنامه های تلفن همراه وجود دارد که بدون هیچ حد و مرزی در حال پیشرفت است.
فایل AAB چیست؟
همانطور که می دانید فایل های apk برای نصب اپلیکیشن های اندرویدی مورد نیاز است و اگر برنامه نویس اندروید هستید حتما می دانید که نسخه نهایی هر اپلیکیشنی که در مارکت پلیس هایی مانند گوگل پلی یا کافه بازار و … بارگزاری می شود فایل APK است. بیشتر بدانید: فایل APK چیست؟
معایب فایل های APK چه مواردی بود؟
- فایل های APK به طور گسترده در اینترنت از منابع مختلف در دسترس هستند.
- گزارشهایی مبنی بر تغییر فایلهای APK توسط هکرها و اضافه کردن مجوزهای اضافی برای برنامه وجود دارد.
- بزرگ بودن فایل (.apk) یک مشکل محسوب می شود.
فرمت aab چیست؟ گوگل همیشه در حال ایجاد تغییرات اساسی در تحویل و توزیع برنامه ها در دستگاههای اندرویدی است. از اینرو گوگل در سال ۲۰۱۸ فرمت جدیدی را به عنوان جایگزین فایل های APK بنام AAB معرفی کرد. از آگوست ۲۰۲۱، همه برنامههای جدید در فروشگاه Play بهجای قالب APK موجود، در قالب Android App Bundles (.aab) منتشر شدند.
فرمت AAB در اندروید استودیو ۳.۲ و نسخههای جدیدتر، Unity 2018.3 و ۲۰۱۷.۴.۱۷ و نسخه ۲.۰.۹ Cocos Cretor و نسخههای بالاتر پشتیبانی شد.
مزایا و معایب فایل AAB اندروید
مزایای فایل AAB اندروید
جایگزینی فایل apk با aab دارای مزایایی است که در ادامه به آن می پردازیم:
- سفارشی سازی منابع اپ برای کاربر که کاهش حجم نهایی اپ بین ۳۵ تا ۵۰ درصد را به دنبال دارد. کاربران فقط کدهای استفاده شده در یک اپ و منابع موردنیاز را دانلود خواهند کرد. در این صورت، برنامهها سریع تر دانلود شده و تجربه کاربری بهتری را به همراه دارد.
- signing توسط استور به جای برنامه نویس انجام می شود.
- امنیت اپها بهعلت سختتر شدن امکان تغییر اپها در آینده، افزایش خواهد یافت.
- بروزرسانی و توسعه اپ بهبود مییابد زیرا بروزرسانی صرفا برای یک نوع سخت افزار یا دستگاه خاص امکان پذیر است.
- با استفاده از ویژگی Play Asset Delivery مدت زمان انتقال قابلیت ها و هزینه ها کاهش پیدا می کند. بازی ها متناسب یا دستگاه کاربران بهینه سازی می شوند.
معایب فرمت AAB اندروید
جایگزینی فایل apk با aab دارای معایبی است که در ادامه به آن می پردازیم:
- به علت ساین شدن برنامه توسط استورها، کاربران صرفا اپ را از همان استوری می توانند به روزرسانی کنند که اپ را از آنجا دانلود کردهاند.
- بعلت ساین شدن برنامه توسط استورها، آنها نفوذ بیشتری بر روی اپها دارند. این موضوع نگران کننده وجود دارد که اگر سرورهای استور از جمله گوگل هک شود کل اپها در معرض خطر خواهند بود.
- ثانیا این بحث شکل گرفته است که امکان ایجاد backdoor جهت نفوذ بر روی اپهای پر مخاطب (همچون پیام رسانها) برای استورها فراهم شده است که با فشار دولتها غیر ممکن نیست.
- بررسی و رفع خطا برای برنامه نویسان بسیار سخت تر شده است، چرا که قبلا امکانش بود برای یک کاربر دارای خطا خروجی تولید کنیم و منتظر تست او باشیم اما در فایل aab چون اپ فقط توسط استور ساین می شود، امکان چنین چیزی وجود ندارد.
- این فایل ها برای کاربران حرفهای اندروید بسیار پرکاربرد و ضروری است. از آنجایی که گوگل همواره تاکید می کند که در انتخاب منبع دانلود فایل های خود دقت کنید و فایل های APK را تنها از Google Play دریافت و نصب کنید، این دغدغه به وجود آمده که در آینده گوگل هم همچون اپل به سمت انحصار گرایی رود و جلوی استورهای غیر گوگلی را بگیرد.
همچنین بخوانید » دوره اموزش asp.net core مهارت محور با ساخت پروژه های حرفه ای، از پایه تا فوق پیشرفته
فرق فایل 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 ارسال کنید.
در مقایسه با 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 نموده است و کافه بازار هم به تازگی این فرمت جدید را پشتیبانی میکند
دوره های یادگیری برنامهنویسی اندروید: از مبتدی تا حرفهای
دوره های مرتبط با برنامه نویسی اندروید الکامکو را به شما پیشنهاد می کنیم، به دلایل زیر ↓
- دسترسی همیشگی به فایل های دوره به علاوه پشتیبانی رایگان
- از آنجایی که اندروید استودیو پلتفرم اصلی گوگل برای طراحی اپلیکیشن اندروید است، آموزش ها در راستای آموزش برنامه نویسی در اندروید استودیو پیاده سازی شده است.
- این پکیج ها همواره در حال آپدیت هستند و جدیدترین نسخه از فیلم های آموزش برنامه نویسی مرتبط با دوره ها در پنل شما در سایت الکامکو قرار می گیرد.
- آموزش ها به صورت پروژه محور هستند و از هر گونه گزافه گویی خودداری شده است و نیاز به پیش نیاز برنامه نویسی اندروید هم نیست.
- محتوای این پکیج ها از کیفیت بالای تصاویر و صدا برخوردارند.
- از طریق راه های ارتباطی و پشتیبانی ۲۴ ساعته می توانید با ما در ارتباط باشید.
- چند جلسه از فیلم های آموزشی هر دوره به صورت رایگان برای دانلود در دسترس شما قرار دارد که ابتدا از کیفیت کار مطمئن شوید سپس پکیج ها را خریداری نمایید.
- سر فصل های دوره بر اساس سیلابس درسی گوگل طبقه بندی شده اند.
- خیلی از مواردی که سایر آموزشگاه ها به صورت جداگانه می فروشند ما همه را در همین دوره ها به صورت پکیجی برای شما جمع آوری کردیم.
- انجام انواع تمرین ها و پروژه ها در طول دوره ها، ورود آسان شما به بازار کار برنامه نویسی اندروید را فراهم می کنند.
- سورس کد تمامی پروژه های انجام شده در اختیاز شما قرار می گیرد.
- بعد از خرید هر دوره برای یادگیری برنامه نویسی می توانید فورا به دوره ها دسترسی داشته باشید.
بخش های دوره آموزش ساخت برنامه اندروید با جاوا در اندروید استودیو
- بخش اول : مقدمه . آموزش جاوا
- بخش دوم : مفاهیم مقدماتی
- بخش سوم : آموزش کامل ریسایکر ویو (RecyclerView)
- بخش چهارم : مفاهیم کاربردی (قسمت اول)
- بخش پنجم : کار با دیتابیس و انواع فایل و ذخیره سازی در اندروید
- بخش ششم : مفاهیم کاربردی (قسمت دوم)
- بخش هفتم : آموزش کامل PHP
- بخش هشتم : آموزش HTML – CSS – Bootstrap
- بخش نهم : آموزش کامل کار با سرور در اندروید استودیو
- بخش دهم: مفاهیم تکمیلی
- بخش یازدهم : آموزش کامل کار با نقشه
- بخش دوازدهم : پروژه نهایی
- سرفصل های اندروید بصوت کامل
همچنین ببینید» همه دوره های برنامه نویسی اندروید مطابق با آموزش جاوا با اندروید استودیو در راستای ساخت اپ های اندرویدی
مقدمه و معرفی دوره اموزش کاتلین
- آشنایی با زبان کاتلین
- قوانین و مفاهیم پایه برای یادگیری زبان کاتلین
- مقایسه جاوا و کاتلین
- آموزش نصب وراه اندازی اندروید استودیو
- شروع کار با اندروید استودیو
- آشنایی اولیه با سیستم عامل Android
- بررسی ایمولیتور (شبیه ساز) و انواع آن
- ساخت ایمولیتور در اندروید استودیو
- شناخت ابزارهای برنامه نویسی Android
- انتخاب ابزار مناسب برنامه نویسی اندروید
- آشنایی با معماری سیستم عامل Android
- آموزش نصب نرم افزار های مورد نیاز جهت برنامه نویسی Android
- شروع طراحی در اندروید استودیو
- اجرای برنامه در شبیه ساز
- آموزش مفاهیم شی گرایی در برنامه نویسی (Object Oriented Programming)
- آموزش کامل برنامه نویسی با زبان کاتلین (kotlin)
- برای مشاهده ادامه سرفصلها روی دوره کلیک کنید
همچنین بخوانید » سایر ثبت نام دوره های کاتلین | لیست کتاب های آموزش کاتلین | کاتلین بهتر است یا فلاتر | کاتلین بهتر است یا جاوا
دوره آموزش برنامه نویسی اندروید شامل دوره های جاوا و کاتلین می باشد. همچنین دارای ۷ دوره حرفه ای دیگر برای تبدیل شدن به یک متخصص اندروید کامل می باشد.
بخش های مختلف دوره جامع برنامه نویسی اندروید
- بخش اول : آموزش برنامه نویسی اندروید با جاوا
- بخش دوم : آموزش حرفه ای طراحی UI/UX در اندروید
- بخش سوم : آموزش زبان برنامه نویسی کاتلین از صفر تا صد و پروژه محور
- بخش چهارم : اندروید پلاس (آموزش مفاهیم ضروری در اندروید)
- بخش پنجم : آموزش جامع معماری MVP در اندروید با ساخت پروژه اپلیکیشن خبری فول امکانات
- بخش ششم : آموزش جامع معماری MVVM در اندروید با چندین پروژه حرفه ای
- بخش هفتم : آموزش ساخت بازی در اندروید استودیو
- بخش هشتم : آموزش پرداخت درون برنامه کافه بازار
- بخش نهم : آموزش ساخت اپلیکیشن فروشگاهی فول امکانات
بخش های دوره اموزش فلاتر
- بخش اول : آموزش برنامه نویسی به زبان برنامه نویسی دارت
- بخش دوم : آموزش UI/UX – رابط کاربری و تجربه کاربری در فلاتر
- بخش سوم : مفاهیم کاربردی
- بخش چهارم : پیش نیاز بخش سرور
- بخش پنجم : آموزش کامل کار با سرور
- بخش ششم : مفاهیم پیشرفته
- بخش هفتم : مفاهیم تکمیلی
- بخش هشتم : طراحی و ساخت وبسایت فروشگاهی با فلاتر
- بخش نهم : آموزش ساخت اپلیکیشن فروشگاهی
همچنین بخوانید » همه دوره های فلاتر | تفاوت ری اکت و نیتیو | آینده و بازار کار فلاتر چگونه است؟ | لیست کتاب های اموزش فریمورک فلاتر | فیلم های آموزش رایگان فلاتر | نصب فلاتر | اموزش زبان برنامه نویسی دارت
خوبه باز بازار این این فایل ها پشتیبانی می کنه!