بسته نرمافزاری اندروید (Android App Bundle ) یک قالب انتشار است که شامل تمام کدها و منابع کامپایل شده برنامه شما میشود و تولید APK و امضا در گوگل پلی را به تعویق میاندازد.
گوگل پلی از بستهی اپلیکیشن شما برای تولید و ارائهی APKهای بهینهشده برای هر پیکربندی دستگاه استفاده میکند، بنابراین فقط کد و منابعی که برای یک دستگاه خاص مورد نیاز هستند برای اجرای اپلیکیشن شما دانلود میشوند. دیگر نیازی به ساخت، امضا و مدیریت چندین APK برای بهینهسازی پشتیبانی از دستگاههای مختلف ندارید و کاربران دانلودهای کوچکتر و بهینهتری دریافت میکنند.
اکثر پروژههای اپلیکیشن برای ساخت بستههای اپلیکیشنی که از ارائه APKهای بهینهشده پشتیبانی میکنند، به تلاش زیادی نیاز ندارند. اگر از قبل کد و منابع اپلیکیشن خود را طبق قراردادهای تعیینشده سازماندهی کردهاید ، بستههای اپلیکیشن اندروید امضاشده را با استفاده از اندروید استودیو یا با استفاده از خط فرمان بسازید و آنها را در گوگل پلی آپلود کنید ، آنگاه ارائه APK بهینهشده به یک مزیت خودکار تبدیل میشود.
وقتی از فرمت بستهی برنامه برای انتشار برنامهی خود استفاده میکنید، میتوانید به صورت اختیاری از Play Feature Delivery نیز بهره ببرید که به شما امکان میدهد ماژولهای ویژگی را به پروژهی برنامهی خود اضافه کنید. این ماژولها حاوی ویژگیها و منابعی هستند که فقط بر اساس شرایطی که شما مشخص میکنید، در برنامهی شما گنجانده میشوند یا بعداً در زمان اجرا برای دانلود با استفاده از Play Core Library در دسترس هستند.
توسعهدهندگان بازی که برنامههای خود را با بستههای برنامه منتشر میکنند، میتوانند از Play Asset Delivery استفاده کنند: راهکار گوگل پلی برای ارائه مقادیر زیادی از داراییهای بازی که روشهای تحویل انعطافپذیر و عملکرد بالایی را در اختیار توسعهدهندگان قرار میدهد.
برای مرور کلی در مورد اینکه چرا باید برنامه خود را با استفاده از Android App Bundles منتشر کنید، ویدیوی زیر را تماشا کنید.
محدودیت حجم دانلود فشرده
انتشار با Android App Bundles به کاربران شما کمک میکند تا برنامه شما را با کمترین حجم دانلود ممکن نصب کنند و حجم فشردهسازی شده دانلود را افزایش میدهد. یعنی وقتی کاربری برنامه شما را دانلود میکند، حجم کل APKهای فشرده شده مورد نیاز برای نصب برنامه شما (به عنوان مثال، APK پایه + APKهای پیکربندی) نباید بیش از ۴ گیگابایت باشد. هرگونه دانلود بعدی، مانند دانلود یک ماژول ویژگی (و APKهای پیکربندی آن) بنا به تقاضا، نیز باید این محدودیت حجم فشردهسازی شده دانلود را رعایت کند. بستههای دارایی در این محدودیت حجم نقشی ندارند، اما محدودیتهای حجمی دیگری دارند.
اگر کنسول Play تشخیص دهد که حجم هر یک از دانلودهای ممکن برنامه شما یا ویژگیهای درخواستی آن بیشتر از حداکثر حجم مجاز است، با خطا مواجه خواهید شد.
به خاطر داشته باشید که بستههای نرمافزاری اندروید از فایلهای APK expansion ( *.obb ) پشتیبانی نمیکنند . بنابراین، اگر هنگام انتشار بسته نرمافزاری خود با این خطا مواجه شدید، از یکی از منابع زیر برای کاهش حجم دانلود فایلهای APK فشرده استفاده کنید:
- با تنظیم
enableSplit = trueبرای هر نوع APK پیکربندی، مطمئن شوید که همه APKهای پیکربندی را فعال کردهاید . این کار تضمین میکند که کاربران فقط کد و منابعی را که برای اجرای برنامه شما روی دستگاه خود نیاز دارند، دانلود میکنند. - مطمئن شوید که با حذف کدها و منابع بلااستفاده ، حجم برنامه خود را کاهش میدهید .
- برای کاهش بیشتر حجم برنامه، از بهترین شیوهها پیروی کنید.
- در نظر داشته باشید که ویژگیهایی را که فقط توسط برخی از کاربران شما استفاده میشوند، به ماژولهای ویژگی تبدیل کنید که برنامه شما بتواند بعداً و در صورت تقاضا دانلود کند. به خاطر داشته باشید، این ممکن است نیاز به مقداری بازسازی برنامه شما داشته باشد، بنابراین حتماً ابتدا سایر پیشنهادات شرح داده شده را امتحان کنید.
ملاحظات دیگر
موارد زیر مشکلات شناختهشدهای هستند که هنگام ساخت یا ارائه برنامه خود با Android App Bundles با آنها مواجه میشوید. اگر با مشکلاتی مواجه شدید که قبلاً در اینجا توضیح داده نشدهاند، یک اشکال را گزارش دهید .
- نصبهای ناقص برنامههای جانبی - یعنی برنامههایی که با استفاده از فروشگاه گوگل پلی نصب نمیشوند و یک یا چند APK تقسیمشدهی مورد نیاز را ندارند - در تمام دستگاههای دارای گواهی گوگل و دستگاههایی که اندروید ۱۰ (سطح API ۲۹) یا بالاتر را اجرا میکنند، با شکست مواجه میشوند. هنگام دانلود برنامه از طریق فروشگاه گوگل پلی، گوگل اطمینان حاصل میکند که تمام اجزای مورد نیاز برنامه نصب شدهاند.
اگر از ابزارهایی استفاده میکنید که جداول منابع را به صورت پویا تغییر میدهند، فایلهای APK تولید شده از بستههای برنامه ممکن است رفتار غیرمنتظرهای داشته باشند. بنابراین، هنگام ساخت یک بسته برنامه، توصیه میشود چنین ابزارهایی را غیرفعال کنید.
میتوان ویژگیهایی را در پیکربندی ساخت یک ماژول ویژگی پیکربندی کرد که با ویژگیهای ماژولهای پایه (یا سایر) تداخل داشته باشد. برای مثال، میتوانید
buildTypes.release.debuggable = trueدر ماژول پایه تنظیم کنید و آن را در یک ماژول ویژگی رویfalseتنظیم کنید. چنین تداخلهایی ممکن است باعث ایجاد مشکلات ساخت و زمان اجرا شود. به خاطر داشته باشید که به طور پیشفرض، ماژولهای ویژگی برخی از پیکربندیهای ساخت را از ماژول پایه به ارث میبرند. بنابراین، مطمئن شوید که در پیکربندی ساخت ماژول ویژگی خود میدانید کدام پیکربندیها را باید نگه دارید و کدامها را باید حذف کنید.
منابع اضافی
برای کسب اطلاعات بیشتر در مورد بستههای نرمافزاری اندروید، به منابع زیر مراجعه کنید.
پستهای وبلاگ
- ساخت اولین بسته نرمافزاری شما
- معنای فرمت جدید انتشار برای آینده اندروید
- ویژگیهای جدید برای کمک به توسعه، انتشار و رشد کسبوکارتان در گوگل پلی
- آخرین بهروزرسانیهای بسته نرمافزاری اندروید شامل API زبانهای اضافی
- شطرنجی چهل تکه - داستان مدولارسازی
- ردیاب بابانوئل گوگل - انتقال به یک بسته نرمافزاری اندروید
- ابزارهای توسعهدهندگان در کنسول پلی
ویدیوها
- هر آنچه که باید در مورد امضای برنامه Play بدانید
- ساخت اولین بسته نرمافزاری شما
- بستههای برنامه: تست با Bundletool و کنسول Play
- تحویل قابل تنظیم با بسته نرمافزاری و اشتراکگذاری آسان نسخههای آزمایشی
- ابزارهای جدید برای بهینهسازی حجم برنامه و افزایش نصب در گوگل پلی