- Build android app with cmd
- How to make Android apps without IDE from command line
- How to do Android development faster without Gradle
- IntelliJ IDE, but not Gradle
- 1. Install Java
- 2. Install all SDK tools
- Download Android Studio and SDK Tools | Android Studio
- Download the official Android IDE and developer tools to build apps for Android phones, tablets, wearables, TVs, and…
- 3. Code the application
- How to use JavaMail on Android (without Gradle)
- Hello guys!
- 4. Build the code
- 5. Sign the package
- 6. Align the package
- 7. Test the application
- 8. Make a script
- Notes
Build android app with cmd
Инструмент android (на платформе Windows это командный файл android.bat, расположенный в каталоге tools установленного пакета Android SDK) предоставляет Вам команды для создания проектов всех трех типов. Проект приложения Android содержит все файлы и ресурсы, которые нужны для их сборки в конечный инсталляционный пакет (файл *.apk). Здесь представлен перевод материала «Managing Projects from the Command Line» [1].
Вы можете создать проекты следующих типов:
• Обычное приложение Android. Вы должны создать проект Android для любого приложения, которое Вы хотите в конечном счете установить на устройстве.
• Библиотека. Вы можете также назначить проект Android как проект библиотеки, которая может быть общей с другими проектами приложений, которые зависят от нее. После того, как проект Android был определен как проект библиотеки, он не может быть установлен на устройство.
• Тест. Тестовые проекты расширяют возможности тестирования JUnit для добавления функций, специфичных для Android. Для дополнительной информации по созданию тест-проекта см. документацию «Testing from other IDEs» (тестирование из других IDE).
[Создание проекта Android]
Чтобы создать проект Android, Вы должны использовать инструмент android (android.bat). Когда Вы создаете новый проект с android.bat, то он сгенерирует директорию проекта с некоторыми файлами приложения по умолчанию, файлами заглушек (stub files), конфигурационными файлами и файлом сборки (build file).
Чтобы создать новый проект Android, запустите окно командной строки (cmd.exe), перейдите в каталог tools установленного Android SDK (полный путь на платформе Windows может быть наподобие c:\Program Files\Android\android-studio\sdk\tools\), и выполните следующую команду:
Слеши в конце строк команды означают продолжение команды со следующей строки. Назначение отдельных опций:
• target это цель сборки (build target) для Вашего приложения. Соответствует библиотеке платформы Android (включая все дополнения, такие как Google API) на основе которого будет собран Ваш проект. Короче говоря, это API Level, цифровой идентификатор соответствующей версии Android, под управлением которой будет работать Ваша программа. Чтобы посмотреть список возможных целей и их соответствующие идентификаторы, выполните команду android list targets.
• name это имя Вашего проекта. Указывать его необязательно. Если имя указано, то оно будет использоваться для генерации имени файла Вашего .apk, когда собирается приложение.
• path место размещения директории (каталог, папка на диске) Вашего проекта. Если директория не найдена, то она будет создана для Вас.
• activity это имя класса активности по умолчанию (default Activity class). Этот файл класса будет создан для Вас внутри директории /src/ /. Это имя также используется для генерации имени файла .apk, за исключением того случая, когда Вы предоставили имя пакета инсталляции.
• package это пространство имен пакета для Вашего проекта, удовлетворяющее тем же правилам, как и у пакетов на языке программирования Java.
Как только Вы создали Ваш проект, то Вы готовы начат его разработку. Вы можете переместить папку проекта в любое место для разработки, но имейте в виду, что вы должны использовать Android Debug Bridge [2] (adb), размещенный в директории SDK platform-tools/ — чтобы отправить Ваше приложение в эмулятор (это будет обсуждено позже). Так что Вам необходим доступ между папками Вашего проекта и папкой platform-tools.
Совет: добавьте путь к папке platform-tools/, как и путь к папке tools/ в переменную окружения %PATH%.
Предостережение: нужно остерегаться от перемещения директории SDK, потому что это разрушит свойство SDK location, размещенное в local.properties. Если Вам нужно обновить место размещения SDK, то используйте команду android update project, подробнее см. следующую секцию.
[Обновление проекта]
Если Вы обновляете проект от старой версии Android SDK, или хотите создать новый проект их существующего кода, то используйте команду android update project. Это обновит проект под новое окружение разработки. Вы можете также использовать эту команду, чтобы пересмотреть цель сборки существующего проекта (которая задана опцией —target) и имя проекта (заданное через опцию —name). Скрипт android.bat сгенерирует все файлы и папки (перечисленные в предыдущей секции), которые либо отсутствуют, или должны быть обновлены, как это требуется для проекта Android.
Чтобы обновить имеющийся проект Android, откройте окно командной строки, перейдите в каталог tools/ Вашей инсталляции SDK и выполните команду:
• target это цель сборки (build target) для Вашего приложения. Соответствует библиотеке платформы Android (включая все дополнения, такие как Google API) на основе которого будет собран Ваш проект. Короче говоря, это API Level, цифровой идентификатор соответствующей версии Android, под управлением которой будет работать Ваша программа. Чтобы посмотреть список возможных целей и их соответствующие идентификаторы, выполните команду android list targets.
• path место размещения директории (каталог, папка на диске) Вашего проекта.
• name это имя Вашего проекта. Указывать его необязательно, если Вы не хотите изменить имя проекта.
[Создание проекта библиотеки]
Library Project (проект библиотеки) — это стандартный проект Android, так что Вы можете создать его точно таким же способом, как и новый проект приложения. Для этого точно также можно использовать скрипт android.bat.
Чтобы создать новый проект библиотеки, перейдите в каталог /tools/ и выполните команду:
Команда create lib-project command создаст стандартную структуру проекта, которая включает предустановленное свойство, показывающее системе сборки, что проект является библиотекой. Это происходит путем добавления такой строки к файлу project.properties проекта:
Как только команда завершится, будет создан проект библиотеки, и Вы можете перенести в него исходный код и ресурсы, как это описано в секциях ниже.
Если Вы хотите преобразовать существующий проект приложения в проект библиотеки, чтобы другие приложения могли его использовать, то Вы должны добавить строку свойства android.library=true в файл приложения project.properties.
Создание файла манифеста
Файл манифеста проекта библиотеки должен декларировать все общие компоненты (shared components), которые содержит библиотека, точно так же, как это происходит в стандартном приложении Android. Для дополнительной информации см. документацию по файлу AndroidManifest.xml [3].
Пример проекта библиотеки TicTacToeLib декларирует Activity GameActivity:
Обновление проекта библиотеки
Если Вы хотите обновить свойства сборки (build target, location) проекта библиотеки, используйте команду:
[Использование (по ссылке) проекта библиотеки]
Если разрабатываете приложение, и хотите включить в него общий код (shared code) или общие ресурсы из проекта библиотеки, то Вы можете сделать это простым добавлением ссылки (reference) на проект библиотеки в свойствах сборки проекта приложения.
Чтобы добавить ссылку на проект библиотеки, перейдите в каталог /tools/ и выполните команду:
Эта команда обновит свойства сборки проекта приложения, чтобы включить ссылку на проект библиотеки. В частности, это добавляет свойство android.library.reference.n в файл проекта project.properties file. Например:
Если добавляете ссылки на несколько библиотек, то имейте в виду, что Вы можете установить их относительный приоритет (и порядок присоединения), редактируя вручную файл project.properties, и подстраивая каждое значение индекса ссылки .n, как это необходимо. Предположим, имеются ссылки:
Вы можете поменять порядок ссылок, и дать самый высокий приоритет библиотеке library_projectC:
Имейте в виду, что индекс .n в ссылке должен начинаться с «1» и увеличиваться на единицу без пропусков. Ссылки, которые появились после дырки в индексе, будут игнорироваться.
Во время сборки все библиотеки будут присоединены к приложению по одной за раз, начиная от библиотеки с самым низким приоритетом (самой большой цифрой индекса), заканчиваю библиотекой с самым высоким приоритетом. Имейте в виду, что библиотека не может самостоятельно сослаться на другую библиотеку, и что во время сборки библиотеки не объединяются друг с другом, прежде чем будут объединены в приложении.
Декларирование компонентов библиотеки в файле манифеста
В файле манифеста проекта приложения Вы должны добавить декларации всех компонентов, которые приложение будет использовать импортированными из проекта библиотеки. Например, Вы должны декларировать все , , , и так далее, так же как и , , и тому подобные элементы.
Объявления должны сослаться на компоненты библиотеки своими полностью определенными именами пакета, где это необходимо.
Пример приложения TicTacToeMain декларирует библиотечное Activity GameActivity примерно так:
Дополнительную информацию по файлу манифеста можно получить из документации по AndroidManifest.xml [3].
Сборка зависимого от библиотеки приложения
Чтобы собрать проект приложения, которое зависит от одной или большего количества проектов библиотек, Вы можете использовать стандартные команды Ant режимов сборки и компиляции, как это описано в разделе Building and Running [4]. Инструментарий скомпилирует и объединит все библиотеки, на которые есть ссылка из приложения, как часть зависимого от библиотек приложения. Дополнительные команды или шаги не требуются.
Источник
How to make Android apps without IDE from command line
Nov 26, 2017 · 5 min read
A HelloWorld without Android Studio
Update: I’ve made a new course that explain how you can avoid Android Studio and Gradle, but still use IntelliJ iDE:
How to do Android development faster without Gradle
IntelliJ IDE, but not Gradle
In this tutorial, I will show you how you can build/compile an APK (an A n droid app) from your java code using terminal (on Linux) without IDE or in other words without Android Studio. At the end, I will also show you a script to automate the process. In this example, I will use Android API 19 (4.4 Kitkat) to make a simple HelloWorld. I want to say that I will do this tutorial without android command which is deprecated.
1. Install Java
First, you need to install java, in my case, I install the headless version because I don’t use graphics (only command line):
2. Install all SDK tools
Then download the last SDK tools of Android which you can find here:
Download Android Studio and SDK Tools | Android Studio
Download the official Android IDE and developer tools to build apps for Android phones, tablets, wearables, TVs, and…
I recommend to unzip it in the /opt directory inside another directory that we will call “android-sdk”:
Now, we have to install platform tools (which contain ADB), an Android API and build tools.
In fact, if you are on Debian, you can avoid installing platform-tools package and only install ADB like that:
3. Code the application
In this example, I want to compile a simple HelloWorld. So, first, we need to make a project directory:
Then we have to make the files tree:
If you use exernal libraries (.jar files), also make a folder for them:
You have an example here:
How to use JavaMail on Android (without Gradle)
Hello guys!
Make the file src/com/example/helloandroid/MainActivity.java and put that inside:
Make the strings.xml file in the res/values folder. It contains all the text that your application uses:
The activity_main.xml is a layout file which have to be in res/layout:
You also have to add the file AndroidManifest.xml at the root:
4. Build the code
Now, I recommend to store the project path in a variable:
First, we need generate the R.java file which is necessary for our code:
- -m instructs aapt to create directories under the location specified by -J
- -J specifies where the output goes. Saying -J src will create a file like src/com/example/helloandroid/R.java
- -S specifies where is the res directory with the drawables, layouts, etc.
- -I tells aapt where the android.jar is. You can find yours in a location like android-sdk/platforms/android-/android.jar
Now, we have to compile the .java files:
If you have use an external, add it the classpath:
The compiled .class files are in obj folder, but Android can’t read them. We have to translate them in a file called “classes.dex” which will be read by the dalvik Android runtime:
But if you use external libraries, do rather:
If you have the error UNEXPECTED TOP-LEVEL EXCEPTION , it can be because you use old build tools and DX try to translate java 1.7 rather than 1.8. To solve the problem, you have to specify 1.7 java version in the previous javac command:
The -source option specify the java version of your source files. Note that we can use previous versions of Java even we use OpenJDK 8 (or 1.8).
We can now put everything in an APK:
Be aware: until now, we used three AAPT commands, the first and the second one are similar but they don’t do the same. You have to copy the classes.dex file at the root of project like above! Otherwise, AAPT won’t put this file at right place in the APK archive (because an APK is like a .zip file).
The generated package can’t be installed by Android because it’s unaligned and unsigned.
If you want, you can check the content of the package like this:
5. Sign the package
To do so, we firstly create a new keystore with the command keytool given by Java:
Just answer the questions and put a password.
You can sign an APK like this:
Note that apksigner only exist since Build Tools 24.0.3.
6. Align the package
It’s as simple as that:
Alignment increase the performance of the application and may reduce memory use.
7. Test the application
To test the application, connect your smartphone with a USB cable and use ADB:
But before run this command, I recommend to run this one:
If there is an error during installation or running, you see it with that command.
Voila! Here’s the result:
8. Make a script
If you don’t want to run all these steps every time you would like to compile your app, make a script! Here’s mine:
Notes
- You can remove “test” if you just want to compile without testing.
- This script only compile and run the app on the phone. But I can also make a script to automatically generate a new project like this one. I think I have a good idea to do so, but I need to know if you are interested. If it’s the case, please leave a comment or send me an e-mail.
- I can also complete the script for external libraries. Likewise, let me know if you want this.
If you have any questions, don’t hesitate to ask them below or by e-mail ;-)! EDIT: Well I’m very busy actually…
Источник