ENIGMA AI
ENIGMA AI
Android Средний

Что находится внутри APK-файла?

Структура APK-файла

APK (Android Package) — это ZIP-архив с определённой структурой.

Основные компоненты:

myapp.apk
├── AndroidManifest.xml    # Манифест (бинарный XML)
├── classes.dex            # Скомпилированный код
├── classes2.dex           # MultiDex (если нужно)
├── resources.arsc         # Скомпилированные ресурсы
├── res/                   # Ресурсы
│   ├── drawable/
│   ├── layout/
│   ├── values/
│   └── ...
├── assets/                # Raw файлы
├── lib/                   # Native библиотеки
│   ├── armeabi-v7a/
│   ├── arm64-v8a/
│   ├── x86/
│   └── x86_64/
├── META-INF/              # Подписи и сертификаты
│   ├── MANIFEST.MF
│   ├── CERT.SF
│   └── CERT.RSA
└── kotlin/                # Kotlin metadata

Детали компонентов:

1. AndroidManifest.xml

  • Бинарный XML (не читаемый)
  • Декларация компонентов, permissions
  • Минимальная/целевая версия SDK

2. classes.dex

  • Dalvik Executable
  • Байткод для ART/Dalvik VM
  • Лимит: 65536 методов → MultiDex

3. resources.arsc

  • Таблица ресурсов
  • Маппинг R.id → значения
  • Строки, цвета, размеры

4. res/

  • Layouts (бинарный XML)
  • Drawables
  • Неиспользуемые удаляются shrinking

5. lib/

  • .so файлы (C/C++ код)
  • По архитектурам процессора

6. META-INF/

  • MANIFEST.MF — хеши всех файлов
  • CERT.SF — подписанный манифест
  • CERT.RSA — сертификат разработчика

Анализ APK:

# Распаковка
unzip app.apk -d extracted/

# Через Android Studio
Build → Analyze APK

# apktool (декомпиляция)
apktool d app.apk

Оптимизация размера:

  • ProGuard/R8 — минификация кода
  • Resource shrinking — удаление неиспользуемых
  • ABI splits — отдельные APK по архитектурам
  • App Bundle — динамическая доставка

Готовитесь к собеседованию?

ENIGMA AI — невидимый ИИ-помощник для технических интервью

Попробовать бесплатно
Все вопросы