Создание приложения Android из командной строки

Илья Дергунов

Илья Дергунов

Автор статьи. ИТ-специалист с 20 летним стажем, автор большого количества публикаций на профильную тематику (разработка ПО, администрирование, новостные заметки). Подробнее.

Создаем первое приложение для Android на примереПроблема

Как создать новый проект Android без использования каких-либо интегрированных сред разработки или дополнительных модулей. 

Решение

Используйте инструмент android из комплекта разработчика Android Software Development Kit (SDK) с аргументом create project и некоторыми дополнительными аргументами для настройки вашего проекта. Создадим простейшее приложение "Hello, World!"

В этом обсуждении предполагается, что вы установили комплект разработчика Android SDK. Один из самых простых способов сделать это — следовать этой статье и установить хотя бы одну версию платформы.

Помимо имени платформы, слово android также является именем инструмента командной строки для создания, обновления и управления проектами. Чтобы использовать его, либо перейдите в каталог android-sdk-nnn, либо задайте переменную PATH, чтобы подключить подкаталог tools.

У вас есть выбор между созданием проекта в старом формате, который является стандартным, или в новом формате на основе системы Gradle. Сначала мы покажем старый способ, а потом новый. Чтобы создать новый проект, передайте команде android create project несколько аргументов. В примере 1 показано выполнение команды в окне терминала в среде Microsoft.

Пример 1. Создание нового проекта Android в старом формате

C:> PATH=%PATH%;"C:\Documents and Settings\Ian\My Documents\android-sdk-windows\tools"; \
    C:\Documents and Settings\Ian\My Documents\android-sdk-windows\platform-tools"
C:> android create project --target android-21 --package com.example.foo
    --name Foo --activity HelloWorldActivity --path .\MyAndroid
Created project directory: C:\Documents and Settings\Ian\My Documents\MyAndroid
Created directory C:\Documents and Settings\Ian\My Documents\MyAndroid\src\com\example\foo
Added file C:\Documents and Settings\Ian\My
Documents\MyAndroid\src\com\example\foo\HelloWorldActivity.java
Created directory C:\Documents and Settings\Ian\My Documents\MyAndroid\res
Created directory C:\Documents and Settings\Ian\My Documents\MyAndroid\bin
Created directory C:\Documents and Settings\Ian\My Documents\MyAndroid\libs
Created directory C:\Documents and Settings\Ian\My Documents\MyAndroid\res\values
Added file C:\Documents and Settings\Ian\My Documents\MyAndroid\res\values\strings.xml
Created directory C:\Documents and Settings\Ian\My Documents\MyAndroid\res\layout
Added file C:\Documents and Settings\Ian\My Documents\MyAndroid\res\layout\main.xml
Added file C:\Documents and Settings\Ian\My Documents\MyAndroid\AndroidManifest.xml
Added file C:\Documents and Settings\Ian\My Documents\MyAndroid\build.xml
C:>

В системах Unix или macOS можно выполнить следующие команды:

/Users/ian/android-sdk-macosx/tools/android create project --target android-21 \
    --package com.example.foo \
    --name Foo --activity HelloWorldActivity --path MyAndroid

Таблица 1. Список аргументов для команды android create project

Имя

Назначение

Пример

—activity

Имя главного класса и имя по умолчанию для создаваемого файла с расширением .арк

—activity HelloWorldActivity

—name

Имя проекта и создаваемого файла с расширением .арк

—name Му Project

—package

Имя пакета Java для ваших классов

—package com.example.hello

—path

Путь к создаваемому проекту (команда не создает подкаталоги, поэтому используйте не /home/you/workspace, а /home/you/workspace/NewProjectName)

—path /home/ian/ workspace/MyProject

(см. пример 1 для Windows)

—target

Уровень API целевой платформы Android. Чтобы увидеть целевые платформы, используйте команду android list targets; номер означает ID, а не уровень API. Используйте команду android-, указав желательный уровень API

—target android-10

—gradle

Использование формата Gradle (требует команды -gradle-version)

—gradle

—gradle-version

Версия используемого подключаемого модуля Gradle

—gradle-version 3.3

 Если выполнить запрошенную операцию невозможно, команда android выводит на экран сообщение об использовании команды, в котором перечислены все операции, которые она может выполнить, и аргументы для них. В случае успеха команда android create project android создает файлы и каталоги, перечисленные в табл. 2.

Таблица 2. Артефакты, создаваемые командой android create project 

Имя Описание
AndroidManifest.xml Файл конфигурации, сообщающий платформе Android  информацию о проекте 
bin Создаваемые бинарные файлы (скомпилированные файлы классов)
build.properties

Редактируемый файл свойств 

build.xml Ant-файл для управления сборкой

default.properties или project.properties (в зависимости от версии инструмента)

Содержит версию используемого комплекта SDK и библиотек; поддерживается подключаемым модулем

gen Генерирует код
libs Библиотеки
res

Важные ресурсные файлы (strings.xml, компоновки и тщ.)

src

Исходный код приложения

src/packagename/ActivityName.java

Исходный код главного класса, запускающего активность

test

Копии большинства перечисленных выше артефактов

Если бы мы использовали два аргумента, связанных с форматом Gradle, то получили бы немного другую структуру проекта, показанную в примере 2.

Пример 2. Создание нового проекта в формате Gradle

$ /Users/ian/android-sdk-macosx/tools/android create project \
    --target android-23 --package com.example.foo \
    --gradle --gradle-version 2.0.0  \
    --name Foo --activity HelloWorldActivity --path HelloGradle
Created project directory: HelloGradle
Created directory /home/ian/HelloGradle/src/main/java
Created directory /home/ian/HelloGradle/src/main/java/com/example/foo
Added file HelloGradle/src/main/java/com/example/foo/HelloWorldActivity.java
Created directory /home/ian/HelloGradle/src/androidTest/java
Created directory /home/ian/HelloGradle/src/androidTest/java/com/example/foo
Added file...
    HelloGradle/src/androidTest/java/com/example/foo/HelloWorldActivityTest.java
Created directory /home/ian/HelloGradle/src/main/res
Created directory /home/ian/HelloGradle/src/main/res/values
Added file HelloGradle/src/main/res/values/strings.xml
Created directory /home/ian/HelloGradle/src/main/res/layout
Added file HelloGradle/src/main/res/layout/main.xml
Created directory /home/ian/HelloGradle/src/main/res/drawable-xhdpi
Created directory /home/ian/HelloGradle/src/main/res/drawable-hdpi
Created directory /home/ian/HelloGradle/src/main/res/drawable-mdpi
Created directory /home/ian/HelloGradle/src/main/res/drawable-ldpi
Added file HelloGradle/src/main/AndroidManifest.xml
Added file HelloGradle/build.gradle
Created directory /home/ian/HelloGradle/gradle/wrapper
$

 Обычной и рекомендуемой практикой разработки приложений для платформы Android является создание собственного пользовательского интерфейса в формате XML с помощью файла компоновки в каталоге res/layout, но, безусловно, можно написать весь код на языке Java. Чтобы этот пример был самодостаточны,м, мы сделаем это “неправильным” способом. Используйте свой любимый текстовый редактор, чтобы заменить содержимое файла Hello-World.java содержимым примера 3.

Пример 3. Файл HelloWorld.java

import android.app.Activity;
import android.widget.*;

public class HelloWorld extends Activity {

        /**
         * This method gets invoked when the Activity is instantiated in
         * response to, e.g., clicking on the app's icon in the Home screen.
         * Reminder: this is NOT a best-practices way of creating the UI!
         */
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                // Create a TextView for the current Activity
                TextView view = new TextView(this);
                // Make it say something
                view.setText("Hello World");
                // Put this newly created view into the Activity,
                // sort of like JFrame.getContentPane().add(view)
                setContentView(view);
        }
}

Хотя компания Google перешла с интегрированной среды разработки Eclipse на Android Studio, в которой используется инструмент сборки Gradle, версия сгенерированных проектов в командной строке по-прежнему по умолчанию использует инструмент сборки Ant (если вы опустите два аргумента, связанные с Gradle, показанные в примере 2). Если у вас установлена утилита Ant, разработанная фондом Apache Software Foundation (и включенная в последние версии Android SDK), вы можете (в окне командной строки) изменить каталог проекта (... MyDocuraents\MyAndroid в примере 1) и выполнить команду:

$ ant debug

Она создаст файл архива с именем, например, MyAndroid.apk (с суффиксом арк для платформы Android Package) в каталоге bin.

Если вы используете версию Gradle, введите вместо этого команду:

gradlew build

При первом запуске это может занять много времени, но должно сработать. В противном случае используйте проект HelloGradle из репозитория на Github.

Если вы впервые входите в репозиторий, вам, возможно, придется создать виртуальное устройство Android Virtual Device (AVD), которое представляет собой всего лишь именованную конфигурацию для эмулятора платформы Android, определяющую целевое разрешение, уровень API и т.д. Вы можете создать эмулятор, используя команду:

android create avd -n my_droid -t 21

Аргумент -t задает целевой уровень API.

Затем можете запустить сервер Android Debug Bridge (ADB) для связи, а также эмулятор:

 

adb start-server
emulator -avd my_droid -t 19

Предполагая, что у вас есть либо работающий эмулятор, либо ваше устройство подключено и распознано через USB, выполните команду, подобную одной из следующих, в зависимости от того, что вы создали ранее. Если у вас есть эмулятор и реальное устройство, добавьте аргумент для эмулятора или -d для устройства между командой adb и операцией install:

 

$ adb install -г bin/HelloAndroid.apk # Сборка Ant

$ adb install -r target/HelloAndroid-1.O-SNAPSHOT-debug.apk # Сборка Maven

$ adb install -r build/outputs/apk/HelloAndroid-dabug.apk # Сборка Gradle

Если вам удобно использовать сценарии оболочки или пакетные файлы, вам достаточно сделать одну загрузку, чтобы избежать необходимости вводить вызов adb в каждом цикле сборки.

Наконец, вы можете запустить свое приложение! Вы можете использовать список приложений: коснитесь маленькой пиктограммы, которая выглядит как матрица из точек 5x5, прокрутите список до имени приложения и нажмите пиктограмму.

Вам, вероятно, будет удобно создать пиктограмму для вашего приложения на главном экране устройства или эмулятора; эта пиктограмма выдержит несколько циклов install -r, если вы не удалите их, поэтому это самый простой способ проверить работу приложения.

Вас заинтересует / Intresting for you:

Обобщенные типы и классы Java,...
Обобщенные типы и классы Java,... 1694 просмотров Денис Sun, 14 Oct 2018, 05:30:23
Преобразование проекта Eclipse...
Преобразование проекта Eclipse... 1288 просмотров Андрей Волков Wed, 07 Nov 2018, 10:53:54
Использование потоков в Java
Использование потоков в Java 83 просмотров Antoni Wed, 12 May 2021, 09:51:36
Аплеты Java и Интернет
Аплеты Java и Интернет 1619 просмотров Ирина Светлова Sat, 09 Jun 2018, 10:17:34
Войдите чтобы комментировать