Я не знаю, есть ли официальная спецификация, но, просматривая файловую структуру моего приложения, я вывел следующее:
- .apk - это просто zip-файл, который можно открыть как таковой в любом подходящем приложении (7zip, WinZip, WinRAR, инструмент по умолчанию для любой ОС .zip).
-Он должен содержать файл AndroidManifest.xml в корневом каталоге (хотя это скомпилированный файл .xml и не предназначен для чтения человеком).
-Он должен содержать файл classes.dex, содержащий фактический двоичный код, скомпилированный как байт-код Dalvik.
-Он должен содержать файл resources.arsc. Я считаю, что это индекс всего в папке / res, но я не уверен.
-Он должен содержать папку META-INF в корневом каталоге, содержащую CERT.RSA, CERT.SF и MANIFEST.MF. Это файлы цифровой подписи приложения.
-Приложение может содержать папки / assets, / res и / raw, которые содержат файлы ресурсов, такие как изображения и базы данных.
-Приложение может содержать папку / lib, содержащую папки для всех целей собственного кода (например, armeabi), которые содержат файлы .so (собственный код).
Я, вероятно, пропустил кучу вещей, но это должно дать вам хорошее начало.