Windows или linux для разработки android

Пишем и собираем приложения для 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 файл.

Читайте также:  Папка средств отладки microsoft для windows

Layout

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

Источник

Какой дистрибутив линукса подойдет android программисту?

Как вы думаете стоит ли переходить с винды на линукс если ты начинающий android программист?

Ubuntu (xubuntu, kubuntu).

Mohn Честно — очень сложно сходу весь функционал описать. То, что сразу вспоминается: поиск (по уровню навороченности именно как в TC), подсветка файлов по шаблону, быстрый просмотр (в т.ч. по Ctrl+q, максимальное количество форматов), групповое переименование, табы, кастомизация панелей, ну пачка хоткеев для работы с деревом. Плюс достаточно важен визуальный стиль, а у тех ФМ, что я пробовал на линуксе, стиль был не совсем похож на ТС.

Я наверняка что то забыл 🙂

>>Какой дистрибутив
Любой, какой понравится и сможете освоить. По большому счёту, дистрибутивы отличаются только набором предустановленного софта и софта, доступного в репозиториях. В вашем случае нужна Java, IDE, плагины для работы с Android — всё это можно поставить и отдельно (и может даже будет лучше, потому что в репах скорее всего будет старая версия), средства разработчика как правило работают на любом дистре без проблем (более того, немалое количество опенсорсных программ разрабатывается в первую очередь на Линуксе, а затем портируются (кросс-компилируются) на винду с помощью MinGW или Cygwin).

>>стоит ли переходить
Если основная цель — разработка под Андроид, то смысла мало. IDE, инструменты на Яве, а ей всё равно где запускаться.
С другой стороны, если интересен Linux сам по себе, то почему бы просто не взять и не попробовать самому? Никто не сможет предугадать, понравится ли он вам, будет ли работать без проблем на вашем ПК, сможет ли удовлетворить всем вашим запросам и т. д. Если не можете определиться с дистром — скачайте пару LiveCD, загрузитесь с них, попробуйте освоиться. Сразу предупреждаю, что для освоения этой ОС весьма желательно уметь пользоваться поисковиком и обладать терпением для вдумчивого чтения документации (впрочем, раз вы программист, то эти навыки уже должны быть развиты).
Есть ещё вариант — поставить Cygwin. Получите мощь Linux’a и привычность винды в одном флаконе.

Читайте также:  Windows 10 версии 2004 или 20h2

Источник

Разработка под андроид, с чего начать новичку

короче история такова.

Я 10+ лет программирую, но в разработке под девайсы я полный нуб. Хочу влезть в тему и решил начать с андроида. Писать хочу на kawa (это схема на jvm).

И вот тут я очень удивлен, что не нашел вменяемого мана, объясняющего вообще что такое android sdk, как устроено андроид-проложение и т.д. Все что я видел — это в духе «Запускаем eclipse, выбираем „android-проект“ и создаем класс».

А что без эклиспа совсем никак? Просто взять написать в емаксе код и собрать его из консоли?

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

зы. у меня убунту

Лучшее, что я нашел, когда начинал:
http://developer.alexanderklimov.ru/android
http://guides.codepath.com]
Ну и конечно потом чтение документации. Отмечу, что под Android 99% разработки ведется именно на Java и все документация тоже про Java. Не думаю, что вы что-то скомпилируете на Scheme под JVM.

берешь эклипс (точнее — android studio, эклипс уже не торт), создаешь класс и так далее. Предлагаю понять хотя бы как писать хэлловорды, прежде чем рыпаться ходить по костылям со всякими маргинальными платформами

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

спасибо за ссылку, как раз для чайников

Новичку будет проще использовать Geany.

не хочется превращаться в виндоюзера.

По-моему, тебе уже ответили. Сначала делаешь как на картинках, потом разбираешься как это устроено внутри, а потом пытаешься запихнуть туда свой привычный инструмент. Будут для начала картинки с кнопочками или черный экран с буквами — дело десятое (для профи, по-крайней мере). Насколько я понимаю, «Быстрого старта разработки под Android» для человека с опытом в Kawa не существует. Так что из двух путей (быстрого прямого и того, который есть) придется выбирать последний, потому что быстрого для тебя нет.

1. ставишь Eclipse 2. ставишь Eclim 3. . 4. PROFIT.

Качаешь android-ndk и используешь gcc и библиотеку оттуда. Для телефона на x86 с просто с дебиана собираю с -pie -fPIE

А что без эклиспа совсем никак? Просто взять написать в емаксе код и собрать его из консоли?

можно, склонируй себе какой-нибудь проект, в котором есть файл gradlew в корне и запусти:

Лучше начать с тыканья в IDE, а потом уже спуститься в инструменты командной строки. Так проще и быстрее и понятнее.

эклипс все еще торт — почему нет? есть что-то лучше? Удивлен.

Концепт программы для андроеда в эклипсе можно было сделать еще 5+ лет назад.

Читайте также:  Mac os ошибка прошивки

Так гугл уже сама от java открещивается. Они уходят в сторону компиляции. По-моему, сейчас самое время писать на всяких Go под arm девайсы, и, возможно, если для игр — юзать Lua во всяких Marmalade SDK ну или Xamarin на крайняк. Java не для мобилок, имхо. На C++ писать — это хардкор, поэтому ждём swift sdk, либо уже когда допилят Go до вменяемого использования в Android UI Application.

Так гугл уже сама от java открещивается. Они уходят в сторону компиляции.

Как эти два предложения связаны то?) Никуда они от жавы, как языка, не уходят, о чем сами и говорят на своих выступлениях и не уйдут пока не появится сдк не на жабе.

А что без эклиспа совсем никак? Просто взять написать в емаксе код и собрать его из консоли?

в документации есть раздел, объясняющий как сгенерировать шаблон проекта и собрать из командной строки.

там же рядом лежит и все остальное, про что ты спросил.

лучше никак. только девайс через USB.

это какой-то полный звиздец.

Плюсую. Не хватало еще рекламы джава-хакир.вася.сру на лоре.

Поэтому я пользуюсь второй ссылкой. Но для тех, кто не понимает ни слова по-английски и видит Java код в первый раз, пойдет.

Не думал, что лор так сильно обыдлел и будет заставлять повторять непонятные действия. Тупые и никчемные людишки дают советы, смысла в которых нет. Вот тебе правильный мануал:

1. Эмулятор юзаешь или штатный из SDK, или поднимаешь свои виртуалки и ставишь андроид туда. Но лучше просто подцепи реальный девайс по USB и не знай проблем.

2. Запуск приложения начинается с манифеста, это публичное апи, где описано какие ЖАБОКЛАССЫ надо дергать. И пофиг, если ты на жабе писать не будешь, как минимум враппер будет ВСЕГДА.

3. Разобравшись как сгенерировать жабокласс (например, унаследовавшись от Активити), ты генеришь готовые классы, компилятором там или еще чем, не важно, а потом это все конвертишь в байткод дальвика (утилька DX), о других генераторах байткода мне неизвестно.

4. Опционально можно поюзать JNI и писать на чем-то еще, но на выходе все равно должен быть жабокласс, который тоже надо скомпилять в байткод жабки, а потом сконвертить в дальвик

5. Все классы, что ты набыдлокодил, в конечном виде склеиваются в единый файл classes.dex, который потом пакуется в APK, который на самом деле обычный JAR с подписью и выравниванием данных, для чего высрано сразу 2 утильки — aapt+zipalign, первое представляет из себя жуткий комбайн по компиляции XML и кортинок, второе просто раздвигает структурки в готовом жаре. Полученный APK инсталлишь и пробуешь как оно будет.

Писать можно на чем угодно, IDE не нужны, родной SDK тоже нахер не нужен, кроме android.jar с которым тебе надо будет слинковаться во время компиляции, впрочем это зависит от твоего набора софта, вполне возможно обойтись и без него, ничего кроме сигнатур оттуда не берется.

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

Источник

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