Как скомпилировать APK из командной строки?
Я заинтересован в том, чтобы делать приложения для Android по требованию. В зависимости от запроса клиентов мой веб-сайт отправит мне файл JSON прямо в приложение Windows, которое я создал в Delphi. Этот файл сохранит файл в исходной папке приложения Android, а затем выполнит командную строку, сообщающую компилятору Android, чтобы сгенерировать файл APK и отправить его моему клиенту, и все это без моего присутствия.
Проект Android был сделан с MotoDev. И он использует Android SDK, который находится в моем корне.
Как мне настроить командную строку для этого изнутри моей программы Delphi?
Мне также нужно будет изменить манифест, чтобы поместить новый номер версии, чтобы он не противоречил другим версиям клиентов.
Ответы
Ответ 1
Android использует систему сборки Ant, поэтому вы можете создать файл build.xml
и build.properties
для своего проекта.
Сначала вам нужно создать файл build.xml
, если:
android update project -p .
Это приведет к созданию файла build.xml
. Вероятно, вы должны настроить параметры сборки и цели для своего проекта. Хорошей идеей в вашем случае будет создание файла build.properties
, созданного вашим сайтом для конкретной сборки... Затем включите его через файл build.xml
. В частности, вам нужно указать в файле build.properties
, где находятся ключи подписи, и каков пароль:
Build.Properties:
key.store=keystore.dat
key.alias=signing_key
key.store.password=password123
key.alias.password=password123
Процесс сборки с использованием ant
также позволяет выполнять замену переменных в файлах Java, что может быть другой идеей. Это позволит вам дополнительно настроить процесс сборки на клиентском компьютере.
По умолчанию сборка запускается с помощью:
ant clean
ant release
Еще одна опрятная идея: Ant скопируйте полученный файл APK в общий доступ к сети, доступный на веб-сайте, разместив строку < copy ... />
в разделе < target name="release" >
.
Ответ 2
Создать build.xml во время создания проекта
Если вы запустите новый проект, выполните следующие действия:
android create project \
--target 1 \
--name MyName \
--path . \
--activity MyActivity \
--package com.yourdomain.yourproject
будет создан файл build.xml
, используемый ant
.
Инструмент android
присутствует в каталоге tools/
загруженного вами SDK.
Создание отладочных выпусков
Кроме того:
ant release
для окончательных выпусков вы также можете создавать выпуски отладки с помощью:
ant debug
Местоположение сгенерированного apk
Сгенерированные apk помещаются под bin/
.
Наиболее важные выходы:
MyName-debug.apk
MyName-release.apk
но также генерируются некоторые промежуточные apks, в частности невыровненные и неподписанные версии.
Но большую часть времени вы можете забыть, где они были созданы и просто запустить:
ant debug install
ant release install
чтобы установить их. Но сначала убедитесь, что он работает с adb: команда adb devices не работает
Протестировано на Ubuntu 15.10, Android 23.
Ответ 3
Android напрямую не использует системы сборки ANT. Он использует Gradle, который основан на Groovy. Вы можете узнать больше о системах сборки здесь.
Вы можете увидеть список доступных задач, которые вы можете запустить с помощью этой команды
gradlew tasks
Чтобы инициировать отладочную сборку, вызовите задачу assemblyDebug
gradlew assembleDebug
Вы можете установить свое приложение, используя инструмент adb, с помощью этой команды
adb install path/to/your_app.apk
Чтобы узнать больше о сборке из командной строки, следуйте этой всеобъемлющей статье.
Также вы можете прочитать эту статью на тему "Зачем создавать свои проекты Java с Gradle, а не с Ant или Maven?"