From 075fed97d56187af3322d06c97baef5f4404011e Mon Sep 17 00:00:00 2001 From: Niko Marmeladkov Date: Fri, 23 Oct 2026 17:04:55 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=86=D0=B8=D1=8F:=20=D0=B2=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=BE=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=B0=D1=81=D1=81=D0=B5?= =?UTF-8?q?=D1=82=D1=8B=20=D0=B2=20APK=20=E2=80=94=20=D0=B7=D0=B0=D0=BC?= =?UTF-8?q?=D0=B5=D1=80=20=D0=B8=20=D0=B8=D0=BD=D1=81=D1=82=D1=80=D1=83?= =?UTF-8?q?=D0=BA=D1=86=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ANDROID.md | 30 ++++++++++++++++++++++++++++++ docs/DIARY.md | 9 +++++++++ 2 files changed, 39 insertions(+) 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** (его слова): «быстрее дойти до того, как смогу