Ответ
APK (Android Package Kit) — это ZIP-архив, содержащий скомпилированный код и ресурсы приложения. Основные компоненты:
- DEX-файлы — скомпилированный байт-код в формате Dalvik (classes.dex, classes2.dex и т.д.)
- Манифест (AndroidManifest.xml) — в бинарном XML-формате
- Ресурсы (res/) — скомпилированные в resources.arsc
- Нативные библиотеки (lib/) — .so файлы для разных архитектур
- Ассеты (assets/) — неизменяемые файлы
Пример структуры:
APK
├── AndroidManifest.xml
├── classes.dex
├── resources.arsc
├── res/
├── lib/
├── assets/
└── META-INF/
Код Java/Kotlin компилируется в .class файлы, которые затем преобразуются в .dex-файлы инструментом dx/d8. Для уменьшения размера APK используется ProGuard/R8 для обфускации и удаления неиспользуемого кода.