- Разработка под андроид, с чего начать новичку
- Пишем и собираем приложения для Android в linux консоли
- Введение
- Железо
- Операционная система
- Установка пакетов
- Настройка adb
- Постановка задачи
- Создание подписи
- Манифест
- Layout
- Исходный код приложения
- Скрипт для сборки
- Сборка и установка
- Заключение
- Программирование под Android для начинающих. Часть 1
Разработка под андроид, с чего начать новичку
короче история такова.
Я 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+ лет назад.
Так гугл уже сама от 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 с которым тебе надо будет слинковаться во время компиляции, впрочем это зависит от твоего набора софта, вполне возможно обойтись и без него, ничего кроме сигнатур оттуда не берется.
Привет всем тупоголовым, кто сам понятия не имеет как происходит разработка под ведром и кто только и умеет жать кнопочки.
Источник
Пишем и собираем приложения для 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 для начинающих. Часть 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.
Источник