⚠️ Підтримка 16 KB Page Sizes в Android апках — що для цього потрібно?

💡 Усі статті, обговорення, новини про Mobile — в одному місці. Приєднуйтесь до Mobile спільноти!

Не встигли ми оновити наші застосунки до Target SDK 35, як потрібно тепер робити ще й підтримку 16 KB Page Sizes. Це потрібно зробити до 1 листопада 2025, інакше не можна буде публікувати нові апки і оновлювати існуючі в Google Play.

💡 Якщо коротко, то девайси з розміром сторінки 16 КБ забезпечують покращення продуктивності, включаючи швидший запуск додатків, зменшене споживання енергії, швидший запуск камери та швидший час завантаження системи.
Але таких девайсів ще не існує. 😁

🤔 То як же зробити цю підтримку?

Якщо у вас застосунок, який має в собі тільки Kotlin та Java код, скоріше за все вам нічого не потрібно робити.
Єдине, варто перевірити чи у вас немає системних викликів по типу Os.sysconf(OsConstants._SC_PAGESIZE) або mmap().

Якщо у вас застосунок має в собі нативний C/C++, тоді тут вже веселіше.
1. Спочатку вам потрібно оновити ваш Android Gradle Plugin до 8.5.1 версії та вище.
2. Потім вам потрібно дізнатися яка версія вашого NDK:
— Якщо вона r28 і вище, то вважайте що ваш NDK підтримує 16 KB.
— Якщо r27 або нижче, то треба внести зміни в деякі файли.
Лінки для конкретних версій NDK:
r27
r26 and lower
r22 and lower
3. Після того, як ви правильно зробили конфігурацію NDK, треба впевнитись що ваші пошерені бібліотеки не зжаті (uncompressed shared libraries).
Більше можна почитати ось тут.
4. Ще рекомендують перевірити в кодовій базі, чи немає захардкоджених констант для розміру сторінки. Як я писав раніше, це щось типу викликів Os.sysconf(OsConstants._SC_PAGESIZE) або mmap().
5. Після цього потрібно спробувати зібрати додаток і добре перевірити на емуляторі який підтримує 16 KB, або на фізичному девайсі, який має увімкнутий в Developer options тогл — Boot with 16KB page size.
Цей тогл доступний тільки на нових Пікселях.

🍻 Тепер можна вважати що ваш застосунок підтримує 16 KB page sizes!

🔗 Посилання на повну документацію та відео — в Телеграм каналі IT & Android

👍ПодобаєтьсяСподобалось11
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

А як бути у випадку з Flutter додатками? Тут (android-developers.googleblog.com/...​-with-16kb-page-size.html) гугли пишуть, що Flutter додатки вже мають цю підримку. APK Analyzer в Android Studio це доказує. Але камнем притикою стає Google Play Console, який у властивостях aab-релізу, пише, що “Memory page size Does not support 16 KB”

Я, технічно, у RN тільки сдк і ліби оновив, плюс усі пов’язані з цим зміни.
Перевірте, чи усі степи виконано, як варіант dev.to/...​age-size-requirement-1g0j

Дякую, корисна стаття

Підписатись на коментарі