Я правильно понимаю как создаётся Android приложение?
Я правильно понимаю, что Android приложение собирается следующим образом?
1. Программист пишет манифест приложения, в т.ч. указывая точку входа в приложение.
2. Программист пишет код приложения на языке Java, использует в коде какие-то библиотеки. В итоге получается набор .java файлов с различными классами и программами.
3. Написанный программистом код компилируется из .java в .class файлы с помощью компилятора Java.
4. Скомпилированные .class файлы и используемые библиотеки компилируются с помощью Dex-компилятора d8 или dx в .dex файл, содержащий код программы.
5. Полученные файлы .dex, файл манифеста и связанные с ним файлы архивируются в apk с помощью zip.
6. Получившийся apk снабжается электронной подписью при необходимости.
Что не так в моём алгоритме, что я мог забыть или не учесть?
rPman, а откуда они берутся? Ну, например если отнести к ним иконки какие-нибудь, то это ясно в общем-то, их кто-то создаёт, рисует. А что касается подключаемых библиотек, они собираются как jar файлы? Каков их путь и в каком виде они предстают перед добавлением в apk с помощью zip?
картинки, звуки, прочие медиафайлы а также любые другие необходимые проге файлы также упаковываются в пакет инсталяции.
в апк вообще много чего может быть.
в п.6 ошибка. подписывается не апк. а делается файл со списком хешей всех файлов внутри зип-архива и уже только этот индекс подписывается подписью автора.
ixon, в среде разработки есть соответствующие возможности, обычно это просто добавление файлов в соответствующую папку или прямо в интерфейсе.
откуда берутся - это уже дело разработчика и собственно задачи, подготовить необходимые файлы к виду в котором они будут использоваться.
библиотеки либо самостоятельно подбираются либо они появляются в проекте так как используемые инструменты сами отслеживают зависимости (тот же gradle), т.е. вы подключаете одну библиотеку прямо в настройках, а программа сама во время сборки находит и загружает необходимые зависимости и добавляет в нужную папку
pfg21, понял, но это ведь опционально, верно? rPman, мне бы хотелось понять процесс как бы за рамками систем разработок, как всё работает вообще, в деталях. Как зависимые библиотеки подключаются без gradle?