Проблема
Как создать новый проект 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 HelloWorldActivity |
| Имя проекта и создаваемого файла с расширением |
|
| Имя пакета Java для ваших классов |
|
| Путь к создаваемому проекту (команда не создает подкаталоги, поэтому используйте не /home/you/workspace, а /home/you/workspace/NewProjectName) |
(см. пример 1 для Windows) |
| Уровень API целевой платформы Android. Чтобы увидеть целевые платформы, используйте команду |
|
| Использование формата Gradle (требует команды |
|
| Версия используемого подключаемого модуля Gradle |
|
Если выполнить запрошенную операцию невозможно, команда android выводит на экран сообщение об использовании команды, в котором перечислены все операции, которые она может выполнить, и аргументы для них. В случае успеха команда android create project android создает файлы и каталоги, перечисленные в табл. 2.
Таблица 2. Артефакты, создаваемые командой android create project
Имя | Описание |
AndroidManifest.xml | Файл конфигурации, сообщающий платформе Android информацию о проекте |
bin | Создаваемые бинарные файлы (скомпилированные файлы классов) |
build.properties | Редактируемый файл свойств |
build.xml | Ant-файл для управления сборкой |
| Содержит версию используемого комплекта 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
, если вы не удалите их, поэтому это самый простой способ проверить работу приложения.