- Программирование для андроид linux
- Про андроид
- Про версии андроида
- Техническая подготовка
- Программный инструментарий
- Ссылки
- Программирование под Android для начинающих. Часть 1
- Пишем и собираем приложения для Android в linux консоли
- Введение
- Железо
- Операционная система
- Установка пакетов
- Настройка adb
- Постановка задачи
- Создание подписи
- Манифест
- Layout
- Исходный код приложения
- Скрипт для сборки
- Сборка и установка
- Заключение
Программирование для андроид linux
«Этим полукреслом мастер Гамбс начинает новую партию мебели.» Пошлый эпиграф.
Да-да, перед вами очередной цикл статей про разработку приложений для андроида. Однако от других этот цикл отличается двумя вещами: неформальным языком (местами очень неформальным) и полным ламерством автора в собственно разработке под андроид. Думаю, в итоге получится этакий акынский цикл: что вижу, то и пою, так что не ждите особой изощрённости и утончённости, покровы тут не срывают.
Статьи будут регулярно появляться в этом блоге, все они пронумерованы и доступны через тег android tutorial. Структура каждой статьи одинаковая: один абзац с описанием и ключевыми словами, чтобы читатель мог сразу определиться, интересует ли его дальнейшее; затем идёт собственно текст с иллюстрациями; а в конце — краткая аннотация следующей статьи, список ссылок и примечания. Поскольку я буду осваивать андроидное программирование параллельно с написанием текста, текст может показаться слегка бессистемным, но тут ничего не поделаешь. Ещё одна цель проекта — обустройство программного окружения андроид-разработчика в линуксе, надеюсь, что к какому-то моменту это получится сделать.
Информация Что такое программное окружение? В моей терминологии — это среда разработки, документация, набор скриптов и вспомогательных программ, причём не по отдельности, а тщательно подогнанные друг к другу. Также в окружение входят способы собственно написания/изменения кода программы, изменение каких-либо параметров проекта, добавление файлов, короче — действия. Программы и действия, тщательно подогнанные друг к другу, чтобы было удобно и легко двигаться.
Естественно, я буду в этом цикле навязывать моё собственное окружение, ибо за неимением никакого сгодится любое (а гугл как раз никакого и не предлагает). Но вы вольны его изменять под свои требования и желания, естественно.
Да, вы только что прочитали информационный блок, это набор абзацев, отделённых от остального текста и снабжённый отдельным заголовком. Информационные блоки играют роль сносок, очень тесно связанных с основным текстом.
Итак, часть нулевая.
Что такое андроид, про его версии, программный инструментарий, моральная и техническая подготовка.
Про андроид
Что такое андроид, вы и без меня знаете (я на протяжении всего цикла буду иногда писать слово android по-русски — андроид, так мне удобнее). Ну так вот, про андроид вы наверняка сами знаете всё необходимое раз заинтересовались этой статьёй. Думаю, у вас есть андроидный телефон или планшет, и вы себе представляете его графический интерфейс, как включать-выключать, ставить приложения, удалять приложения и так далее.
С программной точки зрения андроидный девайс представляет собой обычный компьютер (как правило на ARM-процессоре), на котором крутится линуксовое ядро, поверх которого крутится виртуальная машина Dalvik, на которой собственно и выполняется код андроид-приложений.
Андроидные приложения распространяются в виде так называемых пакетов — файлов с расширением apk, внутри этого файла лежат как в архиве все необходимые для работы программы файлы. Для создания приложений используется Android Software Development Kit (SDK), который можно свободно скачать с официального сайта платформы android (мы этим займёмся в следующей статье). Также Google предоставляет возможность разработчикам публиковать их приложения в официальном андроидном магазине приложений, он обычно установлен практически на все андроидные девайсы, за исключением разве что какой-нибудь адской китайщины.
Для написания кода Google предлагает использовать Eclipse, для которого поставляется официальный плагин (Android Development Tools, ADT). Я в этом вопросе с гуглом согласен полностью и тоже буду использовать Eclipse и ADT.
Язык программирования — Java. Не знаете такого? Не беда, научитесь.
Ну, и последнее предупреждение: я не собираюсь заниматься переводом документации или официальных туториалов с английского на русский, так что без хотя бы минимального знания технического английского вы не сможете вообще ничего делать, так как придётся очень плотно работать с документацией по API, справочником по языку и прочими материалами, написанными практически всегда на английском языке.
Про версии андроида
С момента первого выхода андроида google выпустил уже порядочное количество версий платформы. Изначально андроид был ориентирован на телефоны, но версия 3.0 уже была заточена специально для планшетов. Подробно рассказывать об отличиях версий особо смысла нет, достаточно знать стандартные вещи: в новых версиях новые фичи, обратной совместимости нет (то есть приложение, написанное для версии платформы 10 не будет работать на платформе с версией 3). Каждая версия помимо обычного номера имеет также кодовое имя — по названию какого-нибудь сладкого десерта.
Наверняка вы углядели выше слово «платформа», оно неспроста используется. Андроид платформа — это зафиксированный набор фич и способов их использования, а говоря программерским языком — API. Не все версии андроида сопровождались новой версией платформы; система нумерации версий андроида скорее маркетоидная, однако нумерация версий платформы/API сквозная, состоящая из одного числа. По мере выхода новых версий платформы часть API объявлась устаревшей, появлялись новые методы, в общем, всё как обычно.
Версии до 2.4 включительно поддерживали исключительно телефоны-смартфоны. Версия 3 Honeycomb была выпущена специально для планшетов, в ней был полностью изменён внешний вид интерфейса, убрана «телефонность». По сути версия третья версия андроида стала тестовой площадкой для обкатки планшетных фич.
С версии 4 Ice Cream Sandwich была опять добавлена поддержка телефонов, по сути произошло слияние веток 2.4 и 3.
Полный список базовых (официальных) версий с описаниями вы найдёте в википедии. Также учтите, что почти каждый производитель телефонов выпускал собственную версию андроида на основе базовой, добавляя туда свои фичи, либо портируя оные из более старших версий.
Техническая подготовка
Все статьи цикла написаны в «последовательном», «инкрементальном» режиме, то есть вы можете параллельно с чтением делать описываемые действия параллельно с автором. Естественно, для этого вам понадобится компьютер, желательно помощнее. А на компьютере должен стоять какой-нибудь линукс (технические подробности построения и использования программного окружения рассчитаны именно на него). Хорошо также иметь под рукой (но не обязательно) телефон/планшет с андроидом на борту и дата-кабель для подключения девайса к компьютеру.
Программный инструментарий
Какой-нибудь эмулятор терминала для выполнения команд (мы используем линукс, не забываем), а команд в течение всего цикла будет предостаточно.
Одна из целей написания этого цикла статей — детально описать программное окружение для программирования под андроид на линуксе. В это окружение входят редактор кода (eclipse), Android SDK, разнообразные вспомогательные самописные скрипты и так далее (я писал об этом в самом начале). В идеале у разумного читателя не должно возникать вообще никаких технических вопросов в процессе непрерывного и последовательного чтения и выполнения всех рекомендаций.
Ссылки
- android.com — официальный сайт платформы
- developer.android.com — официальный сайт android-разработчика
- Dalvik на википедии (англ)
- Список версий андроида на википедии (англ)
Читайте в следующей части: установка SDK, изучение SDK, использование инструментов SDK.
Источник
Программирование под Android для начинающих. Часть 1
Здравствуйте. Сегодня на глаза попался пост о курсе программирования под Android на сайте Linux Foundation, а вместе с ним — и немало комментариев о том, что хотелось бы видеть и перевод этих уроков. Поскольку я сейчас, после четырех лет разработки под микроконтроллеры, начал изучать и программирование для мобильных устройств, то параллельно решил сделать перевод первой части урока.
Программирование под Android для начинающих. Часть 1
Смартфоны и планшеты на Android все чаше встречаются в наших сумках и карманах, и программирование под Android также становится все популярнее. Это отличная платформа для разработки — API прекрасно документирован и прост в использовании, да и просто интересно создать что-то, что вы cможете запустить на своем смартфоне. Изначально вы можете обойтись и без него, создав и протестировав код с помощью эмулятора на вашем Linux ПК. В первой из двух частей этого введения объясняется как создать простое приложение с таймером, а также даются начальные сведения о Android API. Курс подразумевает наличие начальных представлений о Java, XML и технологиях программирования, но тем не менее не стесняйтесь попробовать даже если вы имеете об этом очень смутное представление.
Начало работы и среда разработки
Немного о версиях: последней версией Android является 4.2 (Jelly Bean), но, как можно выдеть по этой диаграмме, она еще недостаточно распространена. Лучше всего начинать разработку под одну из версий: 4.0 (Ice Cream Sandwich) или 2.3 (Gingerbeard), особенно с учетом того, что версии Android поддерживают обратную совместимость (т.е. ваш код для версии 2.3 будет работать и на 4.2), а приложения, разработанные для более поздней версии, не всегда будут работать и на старой. Приведенный здесь код должен работать на версиях 4.0 и 2.3.
Простейший способ получить среду разработки — установить Android Bundle, который можно скачать здесь. Также вам понадобится JDK 6 (не только JRE). Не забудьте что Android не совместим с gcj. Если вы уже используете Eclipse или другую IDE, то вы можете попробовать настроить ее под Android. Как это сделать — описано здесь. Теперь создайте проект под именем Countdown с помощью Eclipse, или из командной строки. Я установил в настройках BuildSDK 4.0.3 и minimum SDK 2.2, и (в Eclipse) использовал шаблон BlankActivity.
Мой первый проект под Android: интерфейс
Первой нашей программой под Android будет таймер, показывающий обратный отсчет от 10 секунд после нажатия кнопки. Прежде чем писать код, нужно создать интерфейс — то, что пользователь увидит, запустив наше приложение. Нужно открыть res/layout/activity_countdown.xml и создать XML шаблон — с помощью редактора Eclipse или текстового/XML редактора ввести следующее:
Обратите внимание на string/start и string/__00_30. Их значения будут расположены в res/values/strings.xml:
Это общепринятый способ обращения к ресурсам в Android: лучше использовать ссылки на строковые переменные, чем жестко заданные строки.
Мой первый проект под Android: код
Теперь откроем в редакторе файл CountdownActivity.java — и мы готовы писать код нашего приложения. Вы должны увидеть автоматически сгенерированную «заглушку» метода onCreate(). Он всегда вызывается как только создается объект Activity, и в него вы можете поместить какие-либо функции, которые должны выполняться при запуске приложения. (Eclipse также может создать пустой метод onCreateOptionsMenu(), но мы пока не будем обращать на него внимания). Введите следующий код:
Вы видите как просто оказалось создать наш первый проект: Android API включает в себя CountDownTimer, который мы можем использовать. Мы объявили его и поле отображения обратного отсчета как закрытые (private) свойства класса Activity. В методе onCreate() мы использовали метод setContentView, чтобы подключить наш XML-шаблон. Такой R.foo.bar синтаксис — это стандартный способ обращения к XML-ресурсам в Android, и мы встретимся с ним еще много раз.
findViewById — это еще один метод, который вы будете часто использовать. Здесь он возвращает ссылки на поле вывода таймера и кнопку Start, описанные в XML-шаблоне. Для кнопки, чтобы мы могли обработать ее нажатие, должен быть задан «перехватчик» OnClickListener, и его метод onClick(). Здесь он просто вызывает метод showTimer() c заданным числом миллисекунд (сейчас жестко заданным в коде).
Итак, что делает showTimer():
Класс CountDownTimer делает за нас почти всю работу, что очень приятно. В начале мы проверяем, существует ли уже таймер, и, если он есть, то сбрасываем его. Далее мы создаем новый таймер с заданным числом миллисекунд для обратного отсчета (из параметра метода showTimer()) и с заданным числом миллисекунд между интервалами отсчета. По истечении времени между интервалами вызывается метод onTick().
CountDownTimer — абстрактный класс, и методы __onTick() и __onFinish() должны быть реализованы в его подклассе. Мы переопределяем метод onTick(), уменьшающий выводимое число на единицу по истечении каждого интервала, и метод onFinish(), выводящий на дисплей сообщение о окончании обратного отсчета. Потом start() запускает таймер.
С помощью команды «Run» в Eclipse вы можете запустить созданное приложение, при этом будет автоматически запущен эмулятор Android. Посмотрите документацию по Android если вы хотите узнать больше о настройке эмулятора, или о запуске приложений из командной строки.
Поздравляем, вы только что создали свое первое приложение под Android. Во второй части этого введения мы более подробно рассмотрим структуру Android-приложения, и сделаем некоторые улучшения нашей программы: ввод времени обратного отсчета, кнопку Stop и меню. Также мы запустим его на реальном устройстве, а не на эмуляторе.
Более подробную информацию вы можете найти в разделе Android Development Training сайта The Linux Foundation’s Linux training website.
Источник
Пишем и собираем приложения для 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 на устройство любым удобным способом.
Заключение
Как видно из статьи начать разработку в консоли совсем несложно.
Консольные утилиты позволяют разрабатывать программы при весьма небольших ресурсах.
Источник