Android App Bundle (AAB) که در سال 2018 راهاندازی شد، یک فرمت انتشار برای اندروید است که توسط Google Play و سایر فروشگاههای برنامه، و با ابزارهای ساخت مانند Android Studio، Bazel، Buck، Cocos Creator، Gradle، Unity، و Unreal پشتیبانی میشود. .
بستههای برنامه فقط برای انتشار هستند و روی دستگاههای Android نصب نمیشوند. بسته اندروید (APK) فرمت قابل نصب و اجرایی اندروید برای برنامه ها است. بستههای برنامه باید توسط یک توزیعکننده در فایلهای APK پردازش شوند تا بتوانند روی دستگاهها نصب شوند.
خیر، AAB اختصاصی نیست. بسته برنامه منبع باز است، بنابراین هر فروشگاه برنامه می تواند آن را پشتیبانی کند. بستهها توسط Google Play و برخی فروشگاههای برنامه دیگر پشتیبانی میشوند.
نه، شما از انتشار در فروشگاه های برنامه دیگر جلوگیری نمی کنید. وقتی برنامه خود را میسازید، بسته به فرمت انتشار مورد نیاز برای هر فروشگاه برنامه، میتوانید همزمان AAB و APK بسازید.
برای اکثر برنامه ها، ساختن AAB معادل تلاش برای ساختن APK است، زیرا صرفاً شامل انتخاب AAB به جای APK در زمان ساخت است. برای برخی از برنامه ها، ممکن است تغییراتی لازم باشد تا از مزایای کامل AAB ها بهره مند شوید.
بله. بیش از ۱ میلیون برنامه و بازی از بستههای برنامه برای انتشار نسخههای تولیدی خود در Google Play از جمله اکثر برنامههای محبوب که نشان دهنده میلیاردها نصب فعال هستند، استفاده میکنند. اگر از Google Play برای نصب برنامهها استفاده میکنید، بسیاری از برنامههای موجود در دستگاه شما بهصورت بستههای برنامه منتشر شدهاند.
خیر، AAB ها از نصب APK از هر منبعی توسط کاربران جلوگیری نمی کنند. از آنجایی که AAB فقط یک قالب انتشار است، نحوه عملکرد پلتفرم اندروید را تغییر نمیدهند.
همیشه موارد نادری در Android وجود داشته است که APK ها نمی توانند مستقیماً از یک دستگاه به دستگاه دیگر منتقل شوند، صرف نظر از اینکه برنامه از طریق APK یا AAB منتشر شده است. به طور خاص، زمانی که فایلهای APK برای دستگاهی بهینهسازی شدهاند (مثلاً برای یک معماری تراشه خاص)، در صورتی که دستگاه مورد نظر با ویژگیهای دستگاه اصلی مطابقت نداشته باشد، انتقال آنها مستقیماً به دستگاه دیگری ممکن است با مشکلاتی مواجه شود. در این شرایط، یک APK یا مجموعه ای از APK های مناسب برای دستگاه مورد نظر باید نصب شود.
بله، میتوانید در چند فروشگاه برنامه منتشر کنید، چه از AAB استفاده کنید یا نه. میتوانید همزمان با انتشار فایلهای APK در فروشگاههای برنامه دیگر یا وبسایتهایی که از AAB پشتیبانی نمیکنند، AABها را در Google Play و سایر فروشگاههای برنامه که از AAB پشتیبانی میکنند منتشر کنید.
خیر، برنامههای خصوصی منتشر شده در Google Play مدیریت شده میتوانند با APK یا AAB منتشر کنند. هنگام ایجاد یک برنامه خصوصی جدید، میتوانید تغییر کلید امضای برنامه را انتخاب کنید و اگر میخواهید یک APK خصوصی و با امضای خود منتشر کنید، از امضای برنامه Play انصراف دهید.
هر APK در Android باید به صورت رمزنگاری با کلید امضای برنامه امضا شود تا قابل نصب باشد. پلتفرم اندروید از کلید استفاده می کند تا اطمینان حاصل کند که هر به روز رسانی برنامه با برنامه نصب شده روی دستگاه مطابقت دارد، به طوری که پس از نصب اولیه، هر به روز رسانی برنامه از همان نگهدارنده کلید می آید. این امر خطر به روز رسانی برنامه های مخرب را کاهش می دهد. Play App Signing که در سال 2017 راهاندازی شد، سرویس مدیریت کلید Google Play است که از کلیدهای امضای برنامه توسعهدهندگان Play برای برنامههای توزیعشده در Play محافظت و مدیریت میکند. علاوه بر این، Play App Signing عملیات امضا را روی فایلهای APK که Play از AABهای آپلود شده تولید میکند، انجام میدهد. Play App Signing برای برنامههای جدید لازم است تا بتوانند از AAB استفاده کنند.
برای سالها، کلیدهای امضای برنامه برای توسعهدهندگان Play یک چالش بود. از دست دادن کلید به این معنی است که دیگر نمیتوانید بهروزرسانیهای برنامه را به کاربران ارائه دهید و یک کلید در معرض خطر قرار میگیرد، کاربران را در معرض خطر بهروزرسانیهای مخرب قرار میدهد. در توزیع نرمافزار برای کانالهای توزیع، ذخیره و مدیریت کلیدهای نرمافزاری که توزیع میکنند، رایج است، زیرا این خطرات را کاهش میدهد. Play App Signing در سال 2017 راهاندازی شد تا خطر از دست دادن کلیدهای توزیع Play را از بین ببرد، تا امکان محافظت از کاربران Play را پس از مصالحه کلیدی فراهم کند و توسعهدهندگان از سرمایهگذاری امنیتی مداوم Google بهرهمند شوند.
Google از کلیدهای توسعه دهندگان در همان زیرساخت پیشرو و ایمن در صنعت محافظت می کند که برای محافظت از کلیدهای خود Google استفاده می شود. کلیدها به صورت رمزگذاری شده در سرورهای مدیریت کلید اختصاصی قفل شده با ACLهای سختگیرانه و مسیرهای حسابرسی آشکار که همه عملیات را پوشش می دهند، ذخیره می شوند. عملیات امنیتی ابری Google و بهترین شیوه ها به صورت آنلاین به تفصیل ارائه شده است.
بله، وقتی یک برنامه جدید ایجاد میکنید، میتوانید انتخاب کنید که Google یک کلید امضای برنامه را از طرف شما ایجاد و ذخیره کند یا میتوانید کلید امضای برنامه خود را انتخاب کنید و یک کپی از آن را آپلود کنید.
اگر پس از بررسی نحوه عملکرد بهروزرسانیهای برنامه ، تصمیم گرفتهاید از کلید امضای یکسانی در فروشگاههای برنامههای متعدد استفاده کنید، هنوز هم میتوانید این کار را انجام دهید. به یاد داشته باشید، این به هر فروشگاه برنامه اجازه میدهد تا بهروزرسانیهای برنامههای بین فروشگاهی را برای برنامه شما انجام دهد. شما دو گزینه دارید:
- می توانید یک کلید به صورت محلی ایجاد کنید و یک کپی از آن را در Play آپلود کنید. به این ترتیب، میتوانید از همان کلیدی که Google Play هنگام ساخت برنامه خود برای فروشگاههای برنامه دیگر استفاده میکند، استفاده کنید.
- میتوانید از یک کلید تولید شده توسط Google برای امضای برنامه Play استفاده کنید، سپس فایلهای APK توزیع را از کنسول Play دانلود کنید که با کلید تولید شده توسط Google امضا شدهاند و از آن APK برای توزیع در فروشگاههای برنامه یا وبسایتهای دیگر استفاده کنید.
بله، Play App Signing از گزینه «ارتقای کلید» برای برنامههایی که قبل از اوت 2021 ایجاد شدهاند، پشتیبانی میکند. این به برنامه اجازه میدهد با کلید امضای برنامه جدید شروع به استفاده از Play App Signing کند. با این حال، برای استفاده از این گزینه، پس از انجام ارتقا، باید دو مورد را در هر نسخه آپلود کنید: یک بسته برنامه و یک APK قدیمی که با کلید امضای برنامه قدیمی شما امضا شده است. Play از AABهای شما برای تولید فایلهای APK امضا شده با کلید ارتقا یافته برای نصبهای جدید و بهروزرسانیهای آنها استفاده میکند. همزمان Play از فایلهای APK قدیمی شما برای بهروزرسانی برنامه برای کاربرانی که قبلاً برنامه شما را نصب کردهاند، استفاده میکند. با گذشت زمان، نصبهای قدیمی به کلید ارتقا یافته منتقل میشوند (مثلاً وقتی کاربران به یک دستگاه تلفن همراه جدید منتقل میشوند).
به طور کلی استفاده از یک کلید امضای برنامه برای چندین برنامه توصیه نمی شود، استفاده از یک کلید منحصر به فرد برای هر برنامه ایمن تر است. با این حال، اگر نیاز به استفاده از یک کلید امضای برنامه برای چندین برنامه دارید، این امکان وجود دارد. در هر صورت، میتوانید هنگام پیکربندی Play App Signing، یک کپی از کلید امضای برنامه موجود آپلود کنید. یا، اگر نمیخواهید کلید امضای برنامه موجود را به اشتراک بگذارید، میتوانید برای شروع استفاده از Play App Signing از گزینه «ارتقای کلید» برای برنامه قبل از آگوست 2021 خود استفاده کنید. به این ترتیب هم برنامه قبل از آگوست 2021 و هم برنامه بعد از آگوست 2021 شما می توانند از یک کلید جدید استفاده کنند.
بله، برنامهها میتوانند کلید خود را با درخواست ارتقای کلید در کنسول Play تغییر دهند.
در هر زمان، میتوانید مصنوعات را از Google Play و از App Bundle Explorer در Play Console دانلود و بررسی کنید. علاوه بر این، Play Developer API به زودی امکان تأیید APKها را قبل از اینکه آنها را به یک آهنگ انتشار متعهد کنید، ارائه میکند. همچنین میتوانید از یک ویژگی اختیاری به نام شفافیت کد برای بستههای برنامه استفاده کنید. با شفافیت کد، شما و کاربران نهاییتان میتوانید یک فروشگاه برنامه مانند Google Play را برای حساب کدی که ارائه میکند نگه دارید.
شفافیت کد یک ویژگی اختیاری است که به شما امکان میدهد تا فروشگاه برنامهای را که برنامه شما را توزیع میکند، نگه دارید تا کدی را که ارائه میکند حساب کند. برای استفاده از شفافیت کد، در زمان ساخت، یک فایل شفافیت کد را در برنامه خود ایجاد می کنید که نشان دهنده کد شماست (مخصوصاً این فایل حاوی هش های کد برنامه شما است). شما آن را با کلید شفافیت کد خصوصی خود امضا می کنید که فقط شما نگه دارید. هرگز لازم نیست کلید شفافیت کد خود را در اختیار Google قرار دهید. سپس، در یک دستگاه، میتوانید یک APK نصب شده را بررسی کنید و بررسی کنید که فایل شفافیت کدی که امضا کردهاید همچنان با کد APK مطابقت دارد. این به شما اطمینان می دهد که حتی اگر خود APK در حین توزیع مجدداً امضا شده باشد، کد تأیید شده توسط شفافیت کد تغییر نکرده است. اگر عدم تطابق وجود داشته باشد، شواهدی مبنی بر تغییر کد در حین توزیع است. شفافیت کد جایگزین امضاهای APK نمی شود و بخشی از پلتفرم اندروید نیست.
حداکثر حجم دانلود فشرده برای یک ماژول پایه تولید شده از یک AAB 200 مگابایت است. یعنی Google Play ابتدا ماژول پایه و سپس هر ماژول ویژگی یا بسته دارایی اضافی را از AAB شما تولید می کند. در مرحله بعد، Google Play بررسی میکند که حداکثر مجموع حجم دانلود فشرده که هر دستگاه جداگانه دریافت میکند بیش از 4 گیگابایت نباشد.
نه، Google Play از فایل های توسعه برای AAB ها پشتیبانی نمی کند. فایلهای توسعه (OBB) یک راهحل قدیمی مخصوص Google Play برای انتشار برنامهها و بازیهای بزرگ با استفاده از APK هستند. Google و جایگزین های شخص ثالث برای AAB های بزرگتر از 200 مگابایت وجود دارد.
برنامهها و بازیهای بزرگی که از AAB استفاده میکنند، میتوانند از خدمات تحویل Play مانند Play Asset Delivery یا Play Feature Delivery برای فراتر از حد مجاز 200 مگابایت استفاده کنند یا میتوانند از شبکههای تحویل محتوای شخص ثالث استفاده کنند.
در Google Play، فایلهای APK به فایلهای توسعه جداگانه (OBB) برای ارائه منابع اضافی به کاربران نیاز داشتند. با این حال، چون OBB ها امضا نشده اند و در حافظه خارجی برنامه ذخیره می شوند، چندان امن نیستند. با Play Asset Delivery (PAD)، بازیهای بزرگتر از 200 مگابایت میتوانند با انتشار کل بازی بهعنوان یک بسته برنامه واحد در فروشگاه Play، جایگزین OBBها شوند. علاوه بر ارائه فرآیند انتشار روانتر و حالتهای تحویل انعطافپذیر، PAD به این معنی است که بهروزرسانیها به فضای ذخیرهسازی دستگاه کمتری نیاز دارند. در نتیجه، می تواند نرخ نصب بالاتری داشته باشد. در نهایت، با پشتیبانی از ASTC در حدود 80 درصد دستگاهها، ویژگی هدفیابی فرمت فشردهسازی بافت PAD به شما امکان میدهد ASTC را به دستگاههایی که از آن پشتیبانی میکنند، ارائه دهید. میتوانید در عین استفاده مؤثر از سختافزار و فضای ذخیرهسازی دستگاه، وسیعترین طیف دستگاهها را هدف قرار دهید.
فروشگاه های برنامه مانند Google Play AAB ها را به APK قابل نصب پردازش می کنند. مسئولیت پذیری در قبال APK ها این امکان را فراهم می کند که ویژگی ها و خدمات جدیدی ارائه شود که مزایایی را برای توسعه دهندگان و کاربران به ارمغان می آورد. Play قبلاً چنین خدماتی را ارائه می دهد که قبلاً به طور گسترده توسط توسعه دهندگان استفاده و ارزش گذاری شده است، دو نمونه عبارتند از Play Feature Delivery و Play Asset Delivery .
یکی از ویژگی های اپ باندل ها این است که امکان تفکیک یک برنامه را به چندین ماژول به نام «ماژول های ویژگی» می دهند. این ماژولها سپس میتوانند به صورت پویا در زمانهای مختلف به کاربران و دستگاهها تحویل داده شوند (برخلاف گذشته که همه چیز باید به صورت یک فایل در زمان نصب تحویل داده میشد). Play Feature Delivery به شما این امکان را میدهد که با حالتهای تحویل زمان نصب، مشروط و درخواستی، ماژولهای ویژگی را که به کدام دستگاه و در زمان تحویل داده میشوند، سفارشی کنید. این به شما امکان می دهد اندازه برنامه خود را کاهش دهید، منجر به نصب بیشتر شود، و تجربه برنامه خود را تنظیم کنید. به عنوان مثال، میتوانید ویژگیای که به ندرت استفاده میشود، مانند پشتیبانی مشتری بر حسب تقاضا، به کاربرانی که به آن نیاز دارند، بهجای زمان نصب، ارائه دهید و اندازه نصب اولیهتان را برای همه کاربران کاهش دهید. یا میتوانید تجربه کامل برنامه خود را به دستگاههای پیشرفته ارائه دهید در حالی که یک تجربه برنامه کوچکتر با ویژگیهای اختیاری و درخواستی را به دستگاههای سطح ابتدایی که دارای محدودیتهای ذخیرهسازی داده و دستگاه هستند، ارائه دهید.
Play Asset Delivery به توسعه دهندگان بازی اجازه می دهد تا با ارائه پویا دارایی های بزرگ در زمان بهینه، تجربه کاربری را بهبود بخشند و زمان انتظار کاربر را کاهش دهند. بازیهایی که از Play Asset Delivery استفاده میکنند همچنین میتوانند از هدفیابی قالب فشردهسازی بافت استفاده کنند، بنابراین کاربران شما فقط داراییهای مناسب برای دستگاه خود را بدون فضا یا پهنای باند هدر میدهند.
خیر، Play Feature Delivery و Play Asset Delivery شامل برنامهها و بازیهایی است که مستقیماً با فروشگاه Google Play ارتباط برقرار میکنند. این سرویسهای اختیاری نمونههایی از متمایز شدن Play به عنوان یک فروشگاه برنامه هستند و ارزش و سودمندی بیشتری را برای توسعهدهندگان و کاربران Play به ارمغان میآورند. سایر فروشگاههای برنامه که از بستههای برنامه و فایلهای APK استفاده میکنند، خدمات فروشگاه اپلیکیشن خود را به توسعهدهندگان ارائه میکنند.