diff --git a/docs/ANDROID.md b/docs/ANDROID.md index aa39f5c..c0e39fd 100644 --- a/docs/ANDROID.md +++ b/docs/ANDROID.md @@ -4,6 +4,36 @@ 12+ (API 31+). Отдельного «мобильного движка» нет: карта, физика, Lua и рендер общие с десктопом. +## Ассеты: полный набор или встроенный минимум + +Ассеты в APK не обязательны: клиент читает их из каталога +`files/gmod_server/server` (см. `MainActivity`). Есть два пути. + +**Полный набор (универсально, но долго копировать).** `adb push` всей +установки — 6,7 ГБ; после `adb uninstall` каталог `Android/data/<пакет>/files` +стирается, ассеты нужно заливать заново. + +**Встроенный минимум (самодостаточный APK).** Команда + +```bash +cargo run -q -p client -- fs pack gm_construct --assets ~/gmod_server/server --out /tmp/pack +``` + +записывает все файлы, которые клиент реально читает (мир, модели игрока и +оружия, автозагрузка Lua), и кладёт их в `/tmp/pack/garrysmod/...` вместе с +картой. Замер для `gm_construct`: **335 файлов, 27,0 МБ + карта 35,0 МБ = +62,1 МБ** (в tar.gz — 31 МБ) против 6,7 ГБ установки. + +```bash +cp -a /tmp/pack android/assets/gmod +./android/build.sh # APK соберётся с assets/gmod внутри +``` + +`MainActivity` при первом запуске распаковывает `assets/gmod` в +`files/gmod_server/server`, если карты там ещё нет. Итоговый APK — +**38 МБ** вместо 6,3 МБ без ассетов. Каталог `android/assets/` в `.gitignore`: +ассеты GMod не коммитим. + ## Сборка ```bash diff --git a/docs/DIARY.md b/docs/DIARY.md index 027c731..4b46371 100644 --- a/docs/DIARY.md +++ b/docs/DIARY.md @@ -74,6 +74,15 @@ HL2: туда залит только `garrysmod/`, без `sourceengine/`. Пр Важно: `adb uninstall` чистит `/sdcard/Android/data/<пакет>/files` — после переустановки ассеты надо заливать заново. +## 0.3. Размер APK и встроенные ассеты + +Замер `fs pack` для gm_construct: 335 файлов из VPK (27,0 МБ: 277 материалов, +23 модели, 35 Lua) + карта 35,0 МБ = **62,1 МБ** сырых, 31 МБ в tar.gz. +Собранный APK со встроенным набором — **38 МБ** (83409194 байта в распаковке, +344 файла) против 6,3 МБ без ассетов. `MainActivity` распаковывает +`assets/gmod` при первом запуске; `adb push` не нужен. Каталог `android/assets/` +не коммитится. + ## 1. Что просит пользователь (приоритеты) **Ускоренный путь до Sandbox-UX** (его слова): «быстрее дойти до того, как смогу