Документация: встроенные ассеты в APK — замер и инструкция

This commit is contained in:
Niko Marmeladkov 2026-10-23 17:04:55 +03:00
parent d42b581180
commit 075fed97d5
2 changed files with 39 additions and 0 deletions

View file

@ -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

View file

@ -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** (его слова): «быстрее дойти до того, как смогу