Программирование андроид командная строка

Программирование андроид командная строка

Инструмент 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]. Инструментарий скомпилирует и объединит все библиотеки, на которые есть ссылка из приложения, как часть зависимого от библиотек приложения. Дополнительные команды или шаги не требуются.

Читайте также:  Fast comment android studio

Источник

Пишем и собираем приложения для Android в linux консоли

В данной статье я покажу как можно собрать apk файл в Ubuntu используя лишь
утилиты командной строки.

Обычно для создания приложений для Adroid используется Android Studio. Но для сборки небольших программ можно обойтись командной строкой. Например, когда ресурсы компьютера ограничены и ваше приложение очень простое.

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

Введение

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

Раньше я использовал QPython, но он достаточно тяжел и неудобен в работе. Поэтому я перешел к разработке нативных программ. Даже при поверхностном знании Java
это не составляет больших трудностей.

Данное руководство в большой степени базируется на этом документе: Building an Android App
from the Command Line. Кому интересны подробности, обращайтесь к первоисточнику.

Похожая статья: Пишем, собираем и запускаем HelloWorld для Android в блокноте уже встречалась на этом ресурсе, но в ней было рассмотрена разработка в Windows.

Здесь же я рассмотрю, как можно собрать приложение в linux.

Железо

Тестирование проводилось на стареньком нетбуке с процессором Атом, 1Гб ОЗУ
и 8Гб SSD диска.

Операционная система

Я тестировал приложение на Ubuntu 17.04. Начиная с Ubunu 16.04 android-sdk можно установить через пакетный менеджер.

В принципе, тот же SDK можно
скачать с сайта.
Качать файл из раздела ‘Get just the command line tools’
По сути это не сильно меняет процесс, но через пакетный менеджер все гораздо проще.
Разница будет лишь в путях и установке дополнительных пакетов «android-platform».

Установка пакетов

Итак, приступим к установке.

Будет установлено большое количество пакетов, включая Java.

Далее, в зависимости от требуемой версии Android, необходимо установить нужную
версию пакетов. Для lolipop 5.1 необходимо ставить:

Так же необходимо установить дополнительный пакет.

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

Настройка adb

С помощью lsusb найти подключенное устройство

И создать файл с правилом:

В файл добавить одну строку:

Здесь «1782» взято из вывода lsusb.

После подключения через adb, на устройстве необходимо подтвердить соединение.

Теперь все готово к работе.

Постановка задачи

Приложение, которое будем собирать немного сложнее, чем ‘Hello world’.

  • Требуется по нажатию кнопки взять строку из буфера обмена.
  • Вырезать подстроку
  • Записать подстроку обратно в буфер.
  • С помощь Toast вывести подстроку или сообщение об ошибке.

В общем-то все просто.

Я подготовил пример который возьмем за основу.

Создание подписи

Сначала создадим ключ для подписи файла:

Это нам пригодится позже.

Манифест

Здесь указываем имя приложения в атрибуте «android:label». Так же приложение будет использоваться свою иконку, она указана в атрибуте «android:icon». Сама иконка лежит в каталоге «res/drawable-mdpi» файл «icon.png». В качестве иконки можно взять любой небольшой png файл.

Layout

Файл с расположением элементов находится в каталоге «/res/layout/».

В него можно добавлять виджеты, если вы захотите расширить функционал.

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

Исходный код приложения находится здесь «java/ru/kx13/extractvidid»

Код весьма прост и примитивен, но этот шаблон можно использовать в других приложениях.

Скрипт для сборки

Я не стал использовать утилит сборки типа make или ant, т.к. весь код находится в одном файле и особых преимуществ это не даст. Поэтому это обычный shell скрипт:

Некоторые замечания по поводу путей.

  • По умолчанию, переменная BASE указывает на путь, в который пакетный менеджер сохраняет файлы. Если вы ставите SDK вручную, то путь надо будет изменить.
  • Если вы используете версию API отличную от 22, то вам надо подправить переменные BUILD_TOOLS и PLATFORM

Сборка и установка

Для сборки просто запустите

Если все настроено правильно никаких сообщений не будет выведено, а в каталоге «build» появится файл «Extractor.apk»

Теперь надо установить наше приложение

Если все прошло нормально, на устройстве появится новое приложение. Можно запускать и пользоваться.

В общем случае можно перекинуть файл apk на устройство любым удобным способом.

Заключение

Как видно из статьи начать разработку в консоли совсем несложно.

Консольные утилиты позволяют разрабатывать программы при весьма небольших ресурсах.

Читайте также:  Яндекс погода ошибка андроид

Источник

Использование терминала при разработке под Андроид

Будучи поклонником терминала, я давно хотел написать об этой теме. Кроме того, знание того, как использовать терминал, значительно ускоряет работу.

Моя цель в этой статье — поделиться с вами тем, как я использую терминал при разработке под Android.

iTerm2

Поскольку мы собираемся проводить много времени в командной строке, давайте установим терминал получше, нежели стандартный. Предлагаю вашему вниманию iTerm2.

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

oh-my-zsh

Когда вы запускаете терминал, он запускает оболочку под названием Bash. Bash на сегодняшний день является самой популярной оболочкой и поставляется с почти каждой операционной системой на базе UNIX. Однако есть альтернативы Bash, которые делают использование терминала более быстрым и удобным для разработчиков.

По умолчанию oh-my-zsh поставляется с плагином, который предоставляет множество полезных функций.

Автозаполнение

Zsh-autosuggestions — это быстрые/ненавязчивые предложения для вставки в zsh. Он предлагает команды по мере ввода на основе истории команд:

Обратный умный поиск

Вы можете нажать Control + R, чтобы выполнить обратный умный поиск в истории команд. Начните вводить команду, и оболочка будет автозаполнена с ранее введенными командами.

Затем вы можете либо нажать Enter, чтобы выполнить предложенную команду, либо используйте стрелки влево/вправо, чтобы отредактировать команду, или продолжайте нажимать Control + R для переключения между другими возможными командами.

DryRun

Вы наткнулись на классную библиотеку github, но что вам нужно сделать, чтобы протестить ее на вашем телефоне?

  • Нажать кнопку Скачать zip
  • Извлечь zip-файл
  • Открыть Android Studio
  • Импортировать скачанный проект
  • Sync gradle
  • Запустить проект
  • Выбрать устройство
  • Опробовать
  • Удалить папку проекта и zip-файл, когда вам это более не требуется.

Вы можете использовать dryrun:

Билдим проект быстрее/без сети

Флаг —offline говорит gradle всегда использовать модули зависимостей из кеша, независимо от того, должны ли они быть проверены. При работе в автономном режиме, gradle никогда не попытается получить доступ к сети для выполнения разрешения зависимостей. Если требуемые модули отсутствуют в кэше зависимостей, выполнение сборки завершится с ошибкой.

Сборка на полной скорости:

Выполнение ваших модульных тестов на полной скорости:

В качестве альтернативы, в Android Studio вы можете сделать gradle build полностью офлайн, активировав эту опцию:

Settings -> Build, Execution, Deployment -> Build tools -> Gradle

Как Android-разработчик, вы, вероятно, используете Android Studio с Gradle. Одним из замечательных преимуществ является управление зависимостями, которое автоматически загружает артефакты из репозитория и делает их доступными для вашего приложения. В принципе, вы просто добавляете одну строку в файл build.gradle, и ваша библиотека включена. Довольно легко, правда?

Но вы точно знаете эту строку?

Для этого существует ALFI:

  1. Введите: alfi NAME_OF_THE_LIBRARY
  2. Скопируйте нужную библиотеку
  3. Вставьте в build.gradle

Не требуется взаимодействие с пользовательским интерфейсом и до 20 результатов сразу!

Понимание gradle задач

Если вы запустите ./gradlew tasks, вы получите список доступных функций gradle. То, что не указано в списке, это короткие версии команд, так что вот небольшой список допущений, которые вы можете сделать,

  • iDD == installDevelopmentDebug
  • aDD == assembleDevelopmentDebug
  • cC == connectedCheck
  • etc.

Вы можете начать делать следующим образом:

Так гораздо компактнее.

Android Rocket Launcher

Это gradle плагин, который добавляет задачи к вашим модулям Android для установки и запуска всех вариантов, поэтому нет необходимости запускать ./gradlew installDebug и переходить на телефон, находить приложение среди 50 приложений, которые вы установили, и запускать нужное.

Все, что вам нужно сделать, это добавить 2 строки в build.gradle

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

Вывод юнит-тестов на консоль

Небольшой трюк, который позволяет увидеть результаты тестирования устройств Android.

Теперь, когда вы запускаете свои тесты, они выводят что-то вроде этого:

Удобные logcats

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

Этот небольшой инструмент решает эту проблему путем фильтрации по пакету приложения. Поставьте нужный пакет в качестве единственного аргумента и получите желаемый результат.

Источник

Оцените статью