Этап 0 п.2: универсальный APK 99→53 МБ (abiFilters ARM + resConfigs ru,en)

- defaultConfig.ndk.abiFilters 'arm64-v8a','armeabi-v7a' — без эмуляторных x86/x86_64
- resourceConfigurations += ['ru','en'] — срез ~48 локалей vendor до нужных
- проверено сборкой: assembleRelease 53 МБ, ABI только ARM, подпись v2+v3 OK
- renderscriptSupportModeEnabled в vendor НЕ трогал (риск blur, отдельный пункт)
This commit is contained in:
b-dev-mobile
2026-07-07 17:55:14 +00:00
parent 67cc851b15
commit c259936e82
3 changed files with 22 additions and 2 deletions
+1
View File
@@ -2,6 +2,7 @@
Формат: `ГГГГ-ММ-ДД | версия | изменение | контракты | риск` Формат: `ГГГГ-ММ-ДД | версия | изменение | контракты | риск`
- 2026-07-07 | v0.5.114 (122) | Этап 0 п.2 (размер APK): универсальный APK — abiFilters 'arm64-v8a','armeabi-v7a' (без эмуляторных x86/x86_64) + resourceConfigurations ['ru','en'] (у vendor было ~48 локалей). Проверено сборкой: assembleRelease → 53 МБ (было 99 с 4 ABI; ~130 debug), ABI внутри только ARM, подпись v2+v3 OK. RenderScript в vendor НЕ трогал (риск blur-эффектов, отдельный пункт) | контракты не менялись | низкий: только упаковка; функционал не тронут
- 2026-07-07 | v0.5.114 (122) | Аудит + Этап 0 п.1 (release собираем и подписан): добавлен signingConfig (ключ из env F7_KEYSTORE_*/-P, фолбэк на debug); написаны R8-правила — app/proguard-rules.pro (kotlinx.serialization/Firebase/JS-мосты) + vendor consumer-rules.pro через consumerProguardFiles (WebRTC/LoganSquare/Dagger/RxJava/Parceler/EventBus + dontwarn geogson/joda); подпись v2+v3. Проверено локально (JDK 21 + Android SDK 36 поставлены на инфру B): assembleRelease → BUILD SUCCESSFUL, подписанный APK 99 МБ (было ~130 debug). Полный аудит — docs/AUDIT-2026-07-07.md; подпись — docs/RELEASE-SIGNING.md | контракты не менялись; сборочный контур зафиксирован | низкий: код приложения не тронут, изменения только в сборке; APK всё ещё 4 ABI (ABI-split — п.2) - 2026-07-07 | v0.5.114 (122) | Аудит + Этап 0 п.1 (release собираем и подписан): добавлен signingConfig (ключ из env F7_KEYSTORE_*/-P, фолбэк на debug); написаны R8-правила — app/proguard-rules.pro (kotlinx.serialization/Firebase/JS-мосты) + vendor consumer-rules.pro через consumerProguardFiles (WebRTC/LoganSquare/Dagger/RxJava/Parceler/EventBus + dontwarn geogson/joda); подпись v2+v3. Проверено локально (JDK 21 + Android SDK 36 поставлены на инфру B): assembleRelease → BUILD SUCCESSFUL, подписанный APK 99 МБ (было ~130 debug). Полный аудит — docs/AUDIT-2026-07-07.md; подпись — docs/RELEASE-SIGNING.md | контракты не менялись; сборочный контур зафиксирован | низкий: код приложения не тронут, изменения только в сборке; APK всё ещё 4 ABI (ABI-split — п.2)
- 2026-07-07 | v0.5.114 (122) | Санитария по mail/035: дефолт-URL входа → BuildConfig.DEFAULT_SERVER_URL (свойство f7DefaultServerUrl, по умолчанию пусто); убран preconnect к боевому hpb-prod.f7cloud.ru (TalkHelper); нейтральный пример URL в тексте ошибки | INTEGRATION.md: зашитых касаний хостов A больше нет | низкий: preconnect — только оптимизация; сборка на билд-сервере ещё не прогонялась - 2026-07-07 | v0.5.114 (122) | Санитария по mail/035: дефолт-URL входа → BuildConfig.DEFAULT_SERVER_URL (свойство f7DefaultServerUrl, по умолчанию пусто); убран preconnect к боевому hpb-prod.f7cloud.ru (TalkHelper); нейтральный пример URL в тексте ошибки | INTEGRATION.md: зашитых касаний хостов A больше нет | низкий: preconnect — только оптимизация; сборка на билд-сервере ещё не прогонялась
- 2026-07-07 | v0.5.113 (121) | Онбординг в федерацию F7: заведены INTEGRATION.md и CHANGELOG.md, роль `b-dev-mobile` (ячейка B). Код без изменений | INTEGRATION.md создан: задекларированы потребляемые контракты тенанта (OCS/WebDAV/CalDAV/CardDAV/Mail/spreed v4/Dashboard/Richdocuments/f7push) | нет - 2026-07-07 | v0.5.113 (121) | Онбординг в федерацию F7: заведены INTEGRATION.md и CHANGELOG.md, роль `b-dev-mobile` (ячейка B). Код без изменений | INTEGRATION.md создан: задекларированы потребляемые контракты тенанта (OCS/WebDAV/CalDAV/CardDAV/Mail/spreed v4/Dashboard/Richdocuments/f7push) | нет
+10
View File
@@ -43,6 +43,16 @@ android {
versionName '0.5.114' versionName '0.5.114'
missingDimensionStrategy 'default', 'f7' missingDimensionStrategy 'default', 'f7'
multiDexEnabled true multiDexEnabled true
// Универсальный APK для реальных устройств: только ARM (arm64 + armeabi-v7a),
// без эмуляторных x86/x86_64 — режет ~половину native-веса (WebRTC .so).
ndk {
abiFilters 'arm64-v8a', 'armeabi-v7a'
}
// Оставляем только нужные локали (у vendor-форка ~48 языков) — минус несколько МБ.
// resourceConfigurations — не-deprecated бэкинг resConfigs.
resourceConfigurations += ['ru', 'en']
// Дефолтный адрес сервера на экране входа. Прод-URL в сборку не вшивать // Дефолтный адрес сервера на экране входа. Прод-URL в сборку не вшивать
// (решение integrator-b, f7_platform mail/035): для дев-сборки под свой // (решение integrator-b, f7_platform mail/035): для дев-сборки под свой
// стенд задать -Pf7DefaultServerUrl=https://... или f7DefaultServerUrl в // стенд задать -Pf7DefaultServerUrl=https://... или f7DefaultServerUrl в
+11 -2
View File
@@ -59,5 +59,14 @@ Release: `minifyEnabled true` + `shrinkResources true`. Keep-правила:
## Размер APK ## Размер APK
R8 + shrinkResources: **~130 МБ (debug) → 99 МБ (release, все 4 ABI)**. Дальнейшее сокращение Прогресс сокращения (универсальный APK):
до ~3045 МБ — ABI-split/`resConfigs` (пункт 2 этапа 0 плана аудита), пока не сделано. - **~130 МБ**debug (все 4 ABI, без R8).
- **99 МБ** — release: R8 + shrinkResources (все 4 ABI).
- **53 МБ** — + `abiFilters 'arm64-v8a','armeabi-v7a'` (без эмуляторных x86/x86_64) +
`resourceConfigurations += ['ru','en']`. Это ТЕКУЩИЙ универсальный APK (пункт 2 этапа 0).
Состав .so в 53-МБ APK: arm64-v8a ~19 МБ + armeabi-v7a ~11 МБ (в основном WebRTC). Настройки — в
`app/build.gradle` (`defaultConfig.ndk.abiFilters`, `resourceConfigurations`).
Ещё возможно (НЕ сделано, требует проверки на устройстве): только arm64 (−~11 МБ, теряет 32-битные
устройства); отключить `renderscriptSupportModeEnabled` в vendor (риск для blur-эффектов).