Инструмент 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\), и выполните следующую команду:
android create project \
--target < target_ID > \
--name < your_project_name > \
--path path/to/your/project \
--activity < your_activity_name > \
--package < your_package_namespace >
Слеши в конце строк команды означают продолжение команды со следующей строки. Назначение отдельных опций:
• target это цель сборки (build target) для Вашего приложения. Соответствует библиотеке платформы Android (включая все дополнения, такие как Google API) на основе которого будет собран Ваш проект. Короче говоря, это API Level, цифровой идентификатор соответствующей версии Android, под управлением которой будет работать Ваша программа. Чтобы посмотреть список возможных целей и их соответствующие идентификаторы, выполните команду android list targets. • name это имя Вашего проекта. Указывать его необязательно. Если имя указано, то оно будет использоваться для генерации имени файла Вашего .apk, когда собирается приложение. • path место размещения директории (каталог, папка на диске) Вашего проекта. Если директория не найдена, то она будет создана для Вас. • activity это имя класса активности по умолчанию (default Activity class). Этот файл класса будет создан для Вас внутри директории < path_to_your_project >/src/< your_package_namespace_path >/. Это имя также используется для генерации имени файла .apk, за исключением того случая, когда Вы предоставили имя пакета инсталляции. • package это пространство имен пакета для Вашего проекта, удовлетворяющее тем же правилам, как и у пакетов на языке программирования Java.
Пример:
android create project \
--target 1 \
--name MyAndroidApp \
--path ./MyAndroidAppProject \
--activity MyAndroidAppActivity \
--package com.example.myandroid
Как только Вы создали Ваш проект, то Вы готовы начат его разработку. Вы можете переместить папку проекта в любое место для разработки, но имейте в виду, что вы должны использовать 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 и выполните команду:
android update project --name < project_name > --target < target_ID >
--path < path_to_your_project >
• target это цель сборки (build target) для Вашего приложения. Соответствует библиотеке платформы Android (включая все дополнения, такие как Google API) на основе которого будет собран Ваш проект. Короче говоря, это API Level, цифровой идентификатор соответствующей версии Android, под управлением которой будет работать Ваша программа. Чтобы посмотреть список возможных целей и их соответствующие идентификаторы, выполните команду android list targets. • path место размещения директории (каталог, папка на диске) Вашего проекта. • name это имя Вашего проекта. Указывать его необязательно, если Вы не хотите изменить имя проекта.
Пример:
android update project --name MyApp --target 2 --path ./MyAppProject
[Создание проекта библиотеки]
Library Project (проект библиотеки) - это стандартный проект Android, так что Вы можете создать его точно таким же способом, как и новый проект приложения. Для этого точно также можно использовать скрипт android.bat.
Чтобы создать новый проект библиотеки, перейдите в каталог < sdk >/tools/ и выполните команду:
android create lib-project --name < your_project_name > \
--target < target_ID > \
--path path/to/your/project \
--package < your_library_package_namespace >
Команда create lib-project command создаст стандартную структуру проекта, которая включает предустановленное свойство, показывающее системе сборки, что проект является библиотекой. Это происходит путем добавления такой строки к файлу project.properties проекта:
Как только команда завершится, будет создан проект библиотеки, и Вы можете перенести в него исходный код и ресурсы, как это описано в секциях ниже.
Если Вы хотите преобразовать существующий проект приложения в проект библиотеки, чтобы другие приложения могли его использовать, то Вы должны добавить строку свойства android.library=true в файл приложения project.properties.
Создание файла манифеста
Файл манифеста проекта библиотеки должен декларировать все общие компоненты (shared components), которые содержит библиотека, точно так же, как это происходит в стандартном приложении Android. Для дополнительной информации см. документацию по файлу AndroidManifest.xml [3].
Пример проекта библиотеки TicTacToeLib декларирует Activity GameActivity:
< manifest >
...
< application >
...
< activity android:name="GameActivity" />
...
< /application >
< /manifest >
Обновление проекта библиотеки
Если Вы хотите обновить свойства сборки (build target, location) проекта библиотеки, используйте команду:
android update lib-project \
--target < target_ID > \
--path path/to/your/project
[Использование (по ссылке) проекта библиотеки]
Если разрабатываете приложение, и хотите включить в него общий код (shared code) или общие ресурсы из проекта библиотеки, то Вы можете сделать это простым добавлением ссылки (reference) на проект библиотеки в свойствах сборки проекта приложения.
Чтобы добавить ссылку на проект библиотеки, перейдите в каталог < sdk >/tools/ и выполните команду:
android update project \
--target < target_ID > \
--path path/to/your/project
--library path/to/library_projectA
Эта команда обновит свойства сборки проекта приложения, чтобы включить ссылку на проект библиотеки. В частности, это добавляет свойство android.library.reference.n в файл проекта project.properties file. Например:
android.library.reference.1=path/to/library_projectA
Если добавляете ссылки на несколько библиотек, то имейте в виду, что Вы можете установить их относительный приоритет (и порядок присоединения), редактируя вручную файл project.properties, и подстраивая каждое значение индекса ссылки .n, как это необходимо. Предположим, имеются ссылки:
android.library.reference.1=path/to/library_projectA
android.library.reference.2=path/to/library_projectB
android.library.reference.3=path/to/library_projectC
Вы можете поменять порядок ссылок, и дать самый высокий приоритет библиотеке library_projectC:
android.library.reference.2=path/to/library_projectA
android.library.reference.3=path/to/library_projectB
android.library.reference.1=path/to/library_projectC
Имейте в виду, что индекс .n в ссылке должен начинаться с "1" и увеличиваться на единицу без пропусков. Ссылки, которые появились после дырки в индексе, будут игнорироваться.
Во время сборки все библиотеки будут присоединены к приложению по одной за раз, начиная от библиотеки с самым низким приоритетом (самой большой цифрой индекса), заканчиваю библиотекой с самым высоким приоритетом. Имейте в виду, что библиотека не может самостоятельно сослаться на другую библиотеку, и что во время сборки библиотеки не объединяются друг с другом, прежде чем будут объединены в приложении.
Декларирование компонентов библиотеки в файле манифеста
В файле манифеста проекта приложения Вы должны добавить декларации всех компонентов, которые приложение будет использовать импортированными из проекта библиотеки. Например, Вы должны декларировать все < activity >, < service >, < receiver >, < provider > и так далее, так же как и < permission >, < uses-library >, и тому подобные элементы.
Объявления должны сослаться на компоненты библиотеки своими полностью определенными именами пакета, где это необходимо.
Пример приложения TicTacToeMain декларирует библиотечное Activity GameActivity примерно так:
< manifest >
...
< application >
...
< activity android:name="com.example.android.tictactoe.library.GameActivity" / >
...
< /application >
< /manifest >
Дополнительную информацию по файлу манифеста можно получить из документации по AndroidManifest.xml [3].
Сборка зависимого от библиотеки приложения
Чтобы собрать проект приложения, которое зависит от одной или большего количества проектов библиотек, Вы можете использовать стандартные команды Ant режимов сборки и компиляции, как это описано в разделе Building and Running [4]. Инструментарий скомпилирует и объединит все библиотеки, на которые есть ссылка из приложения, как часть зависимого от библиотек приложения. Дополнительные команды или шаги не требуются.
[Ссылки]
1. Managing Projects from the Command Line site:developer.android.com. 2. Android Debug Bridge - что это такое? 3. App Manifest site:developer.android.com. 4. Building and Running site:developer.android.com. |