- Get Started with Android application development using Linux and Android SDK
- Install Snap package manager
- How to install and use Android Studio
- Пишем и собираем приложения для Android в linux консоли
- Введение
- Железо
- Операционная система
- Установка пакетов
- Настройка adb
- Постановка задачи
- Создание подписи
- Манифест
- Layout
- Исходный код приложения
- Скрипт для сборки
- Сборка и установка
- Заключение
Get Started with Android application development using Linux and Android SDK
Developers interested in the Android mobile operating system are able to use the Android SDK and various IDE software to code applications. These apps can then be made available and marketed to Android users around the world.
There are a lot of choices when it comes to programming Android applications. Your coding environment can involve a Linux system and a variety of different IDE programs to facilitate all of the software development. The trouble here is that each Linux distribution will often have a different set of requirements to run the sofware, and a separate list of steps that need to be followed.
In this guide, we’ll go through the step by step instructions to install Android Studio – which is one of the most popular Android IDEs – on a Linux system. This will work on any distribution because we’ll be using Snap package manager to manage the installation. Love it or hate it, the Snap package manager gets your system ready for Android development very quickly, by handling all the dependencies and working identically on any distribution you’re running, whether it be Ubuntu, Debian, Red Hat, CentOS, AlmaLinux, openSUSE, or any other type of Linux system.
Follow along with us below as we setup Snap package manager, install Android Studio, and then program a Hello World Android application to verify that everything is working properly.
In this tutorial you will learn:
- How to setup Snap package manager
- How to install Android Studio and SDK packages
- How to create a Hello World test application
- How to run an Android application on an emulated device
Category | Requirements, Conventions or Software Version Used |
---|---|
System | Any Linux distro |
Software | Snap, Android Studio |
Other | Privileged access to your Linux system as root or via the sudo command. |
Conventions | # – requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command $ – requires given linux commands to be executed as a regular non-privileged user |
Install Snap package manager
It’s perfectly possible to install the Android SDK, Android Studio (or a different IDE), and the necessary prerequisites by using your system’s package manager or downloading the software on the web. However, the process for this can vary widely, and we want to make sure that you get up and running with a working Android development environment. Therefore, we recommend using Snap for the installation process, which will handle dependencies for us and run the software in a sandbox.
Newer versions of Ubuntu should already have Snap enabled, as Canonical developed the feature and first introduced it on their own distribution. It’s also available for most other Linux distributions, but must be installed first. If you’re not running Ubuntu, please see our guide on How to setup Snap package manager on any Linux distro to install Snap, then rejoin us here for installing Android Studio.
How to install and use Android Studio
Follow the steps below to install Android Studio, then use it to create your first Android application, a Hello World program that will verify we have a working coding environment.
- Once you have Snap enabled, open a terminal and use the following command to install the Android Studio snap.
$ sudo snap install android-studio --classic
Пишем и собираем приложения для 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».
Установка пакетов
Итак, приступим к установке.
sudo apt install android-sdk
Будет установлено большое количество пакетов, включая Java.
Далее, в зависимости от требуемой версии Android, необходимо установить нужную
версию пакетов. Для lolipop 5.1 необходимо ставить:
sudo apt install google-android-platform-22-installer sudo apt install google-android-build-tools-22-installer
Так же необходимо установить дополнительный пакет.
sudo apt install apksigner
Если вы планируете устанавливать apk-пакет через adb, то необходимо немного дополнительных настроек.
Настройка adb
С помощью lsusb найти подключенное устройство
# lsusb . Bus 001 Device 004: ID 1782:75b0 MyDevice .
И создать файл с правилом:
sudo vi /etc/udev/rules.d/51-android.rules
В файл добавить одну строку:
SUBSYSTEM=="usb", ATTR=="1782", MODE="0666", GROUP="plugdev"
Здесь «1782» взято из вывода lsusb.
sudo systemctl restart udev
После подключения через adb, на устройстве необходимо подтвердить соединение.
Теперь все готово к работе.
Постановка задачи
Приложение, которое будем собирать немного сложнее, чем ‘Hello world’.
- Требуется по нажатию кнопки взять строку из буфера обмена.
- Вырезать подстроку
- Записать подстроку обратно в буфер.
- С помощь Toast вывести подстроку или сообщение об ошибке.
Я подготовил пример который возьмем за основу.
Создание подписи
Сначала создадим ключ для подписи файла:
keytool -genkeypair -keystore keystore.jks -alias androidkey \ -validity 10000 -keyalg RSA -keysize 2048 \ -storepass android -keypass android
Манифест
Здесь указываем имя приложения в атрибуте «android:label». Так же приложение будет использоваться свою иконку, она указана в атрибуте «android:icon». Сама иконка лежит в каталоге «res/drawable-mdpi» файл «icon.png». В качестве иконки можно взять любой небольшой png файл.
Layout
Файл с расположением элементов находится в каталоге «/res/layout/».
В него можно добавлять виджеты, если вы захотите расширить функционал.
Исходный код приложения
Исходный код приложения находится здесь «java/ru/kx13/extractvidid»
package ru.kx13.extractvidid; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; import android.widget.Button; import android.widget.Toast; import android.view.View; import android.content.ClipboardManager; import android.content.ClipData; public class MainActivity extends Activity < private static String extract(String s) < int start = s.indexOf("%3D"); int end = s.indexOf("%26"); if(start == -1 || end == -1) < return "error"; >return s.substring(start + 3, end); > @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView text = (TextView)findViewById(R.id.my_text); text.setText("Извлечь youtube video id"); Button button = (Button) findViewById(R.id.button_id); button.setOnClickListener(new View.OnClickListener() < public void onClick(View v) < ClipboardManager myClipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); ClipData abc = myClipboard.getPrimaryClip(); ClipData.Item item = abc.getItemAt(0); String text = item.getText().toString(); String video_id = MainActivity.extract(text); ClipData myClip = ClipData.newPlainText("text", video_id); myClipboard.setPrimaryClip(myClip); Toast toast = Toast.makeText(getApplicationContext(), video_id, Toast.LENGTH_SHORT); toast.show(); >>); > >
Код весьма прост и примитивен, но этот шаблон можно использовать в других приложениях.
Скрипт для сборки
Я не стал использовать утилит сборки типа make или ant, т.к. весь код находится в одном файле и особых преимуществ это не даст. Поэтому это обычный shell скрипт:
#!/bin/sh SOURCE=ru/kx13/extractvidid BASE=/usr/lib SDK="$/android-sdk" BUILD_TOOLS="$/build-tools/22.0.1" PLATFORM="$/platforms/android-22" mkdir -p build/gen build/obj build/apk "$/aapt" package -f -m -J build/gen/ -S res -M AndroidManifest.xml -I "$/android.jar" javac -source 1.7 -target 1.7 -bootclasspath "$/jre/lib/rt.jar" \ -classpath "$/android.jar" -d build/obj \ build/gen/$/R.java java/$/MainActivity.java "$/dx" --dex --output=build/apk/classes.dex build/obj/ "$/aapt" package -f -M AndroidManifest.xml -S res/ -I "$/android.jar" \ -F build/Extractor.unsigned.apk build/apk/ "$/zipalign" -f 4 build/Extractor.unsigned.apk build/Extractor.aligned.apk apksigner sign --ks keystore.jks \ --ks-key-alias androidkey --ks-pass pass:android \ --key-pass pass:android --out build/Extractor.apk \ build/Extractor.aligned.apk
Некоторые замечания по поводу путей.
- По умолчанию, переменная BASE указывает на путь, в который пакетный менеджер сохраняет файлы. Если вы ставите SDK вручную, то путь надо будет изменить.
- Если вы используете версию API отличную от 22, то вам надо подправить переменные BUILD_TOOLS и PLATFORM
Сборка и установка
Для сборки просто запустите
Если все настроено правильно никаких сообщений не будет выведено, а в каталоге «build» появится файл «Extractor.apk»
Теперь надо установить наше приложение
adb install -r build/Extractor.apk
Если все прошло нормально, на устройстве появится новое приложение. Можно запускать и пользоваться.
В общем случае можно перекинуть файл apk на устройство любым удобным способом.
Заключение
Как видно из статьи начать разработку в консоли совсем несложно.
Консольные утилиты позволяют разрабатывать программы при весьма небольших ресурсах.