Building android on ubuntu

Ubuntu Documentation

This is a general overview of what the Android SDK is, what it does, and how it can benefit you. This guide also contains instructions on how to set up the Android SDK on Ubuntu 10.04 onwards.

The Android Software Development Kit (AKA SDK) is a software suite for the Android mobile operating system that allows you to write applications for Android in the Java programming language. Most people who use the Android SDK either develop applications for the Android operating system OR they use it for other purposes, such as obtaining elevated privileges on an Android device with the help of third-party software or use it for diagnostic purposes in case of malfunctioning.

The vast majority of Android users probably won’t have to make use of the Android SDK, however, it is useful if you wish to learn more about the Android operating system and even then it’s still a handy tool to have in case something goes wrong.

This tutorial covers Ubuntu 10.04 Lucid Lynx onwards. For anything prior to Lucid, you will have to find it yourself.

Preparation and Installation

Before we set up the SDK, we have some preparation to do. Due to some major changes in the Android SDK made in the last couple of months, setting up the Android SDK is not as easy as it was two years ago, when Android was starting to take off. Setting up the SDK itself is relatively easy once the preparation has been done.

Downloading the SDK Starter Package

First things first, we have to obtain the starter package. The SDK starter package can be obtained at http://developer.android.com/sdk/index.html.

Download the one for Linux (.tgz file) and once it’s finished downloading, extract it to somewhere safe and easy to reach. For example, the home folder. To do so, open up a terminal, navigate to the directory where the SDK was downloaded and enter the following command:

$ tar -xvzf android-sdk_rXX-linux.tgz && mv android-sdk-linux

As of 12 May 2012, the Android SDK is currently up to r18, however that is set to change in the near future, and as such, replace XX with the version of your SDK.

Setting up Java

Prior to SDK r08, everything you’ll need to develop applications was included on a 100-200MB .tgz archive. However, with the release of SDK r08, the tools necessary for creating and building applications was removed and can be obtained by using the Android SDK and AVD Manager which is located in the / /tools folder.

However, you should not execute the Android SDK and AVD manager just yet, as you’ll most likely get a Parse: XML error notice. The reason for this is that after SDK r08, it’s now required to have Java installed before you set up the SDK. To do this, we’ll download the OpenJDK and the Icedtea browser plugin. In a terminal window, enter the following command:

$ sudo apt-get install openjdk-6-jre openjdk-6-jdk icedtea6-plugin

This will download and install the OpenJDK implementation of Java, which will be sufficient enough for us to download the SDK platform tools.

Downloading the SDK platform tools

This is pretty much the actual «installation» of the SDK’s platform tools. One key reason why this step is important is that it contains an important protocol called the Android Debug Bridge (ADB).

ADB comes bundled with the SDK platform tools. It is a command-line tool used to communicate with and control the device over a USB link from a computer. The tool comes bundled with the Android SDK and is commonly used for diagnosing problems with the device. Once you have ADB installed, you can use ADB to copy files to and from the device’s internal memory, install apps, run commands, see logs and more. This makes it an invaluable tool if your device is running into some trouble that might warrant a new device.

Now, in order to obtain the SDK platform tools, we’ll need to initialize the Android SDK and AVD Manager that I mentioned earlier. To do so, enter the following commands in a terminal. The first command will direct you to where the Android SDK and AVD Manager is located, and the second will execute said program.

Читайте также:  Андроид pay сбербанк что это

/android-sdk-linux/tools

Once you do that, a new window will pop up, which is the actual Android SDK and AVD Manager. Click on «Available Packages» and you will be presented with two boxes. One is the Android Repository and the other is the Third-party Add-ons. Click on «Android Repository» then click on Install Selected. A confirmation window will pop up. Click on «Accept All» and then click on the Install button to install the SDK platform tools. It’s quite a bit to download so make sure you have at least 512MB to 2GB of hard drive space available. Once the download has finished, you’ll get a notice saying that the ADB daemon needs to be restarted. Click on «Yes» and everything will finish downloading.

Post-Installation Configuration

Now once the download has finished, or while you’re waiting for the download to finish, we have to configure Ubuntu a little to meet our needs. First, we have to set up the PATH variable to include ADB and other SDK tools, and we have to make sure our hardware will be detected once we initialize ADB.

Modifying the PATH Environment Variable

In the days before Android 2.2, a good number of people used to place their various projects and applications in the directories where the necessary tools they used existed. This was in itself a very flawed method because it cluttered up the directories, and while cleaning up the SDK, one might accidentally delete a crucial file, which will cause the SDK to fail and having to completely reinstall everything.

Modifying the PATH Environment Variable will help out immensely when it comes down to making use of SDK tools like ADB. Doing this will also allow you to execute certain protocols like ADB from ANY location. So if you’re operating from the Desktop, you don’t have to redirect to the SDK’s platform-tools folder to make use of ADB if you need to make use of it.

Enough chatter, let’s get busy. To modify the PATH variable of your system, you need to edit your .bashrc file. To do so, in a terminal, execute the following command:

You will now have the Nano text editor enabled on the terminal. Now, at the very top of the file, enter the following:

/android-sdk-linux/tools

/android-sdk-linux/platform-tools

Once you’re finished, press CTRL + X, Y, and then hit Enter to save your changes and exit the Nano text editor.

Preparing Hardware

Now that we have our PATH variable set up, we need to make sure our hardware will be detected once we initialize ADB. However, up until Natty, udev in Ubuntu wouldn’t allow ADB access to the Android phone via USB. This was fixed in udev version 165-0ubuntu1 — if you are running an earlier version ( apt-cache policy udev will tell you whether you are), you’ll need need to create a new udev rule file as root.

In a terminal, execute the following command that will create the rule file. This will utilize the graphical sudo command, so that we can still have control over the file if we’re not a root user.

$ gksudo gedit /etc/udev/rules.d/51-android.rules

Copy and paste the following udev rules in the text editor that opened up which contains the new rule file we created. The rules included should work with most if not all Android devices across multiple manufacturers, such as HTC, Motorola, LGE, and so forth.

SUBSYSTEM==»usb», ATTRS==»0bb4″, MODE=»0666″

SUBSYSTEM==»usb», ATTRS==»0502″, MODE=»0666″

SUBSYSTEM==»usb», ATTRS==»12d1″, MODE=»0666″

SUBSYSTEM==»usb», ATTRS==»1004″, MODE=»0666″

SUBSYSTEM==»usb», ATTRS==»22b8″, MODE=»0666″

SUBSYSTEM==»usb», ATTRS==»04e8″, MODE=»0666″

SUBSYSTEM==»usb», ATTRS==»0fce», MODE=»0666″

SUBSYSTEM==»usb», ATTRS==»0489″, MODE=»0666″

SUBSYSTEM==»usb», ATTRS==»18d1″, SYMLINK+=»android_adb», MODE=»0666″

SUBSYSTEM==»usb», ATTRS==»04e8″, MODE=»0666″, GROUP=»plugdev»

Once you’ve copied and pasted the udev rules in the text editor which contains your newly created rule file, save your changes and quit. Now that you’ve set your udev rules you have to reboot so that ADB will be in your path.

To test your changes, open up a terminal and execute the following:

$ adb devices

Note: You may need to enable USB debugging mode on your phone first in order for it to be recognised.

This will give you two messages:

1) It will tell you it’s initializing the ADB daemon. 2) It should show you a list of connected devices.

Читайте также:  More tv mod для андроид

If all went well you should see your device’s serial number under the list of connected devices. If you see a message like:

List of connected devices

. No permissions

This means your hardware was detected, however you made a mistake in configuring Ubuntu or the udev rule for your phone’s manufacturer was not listed.

AndroidSDK (последним исправлял пользователь uusijani 2012-07-28 15:47:15)

The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details

Источник

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

Эта заметка является косвенным продолжением моей первой публикации Сборка Android под Mac OS X и имеет аналогичную цель — решение проблем сборки относительно старых версий Android 4.0.x.

Читайте также:  Давай поженимся для андроид

Коротко вводная. В одном из проектов я занимаюсь доработками оригинального кода Android для создания прошивки под специфичную железку. Версия для сборки была выбрана уже относительно старая — AOSP 4.0.4, но на ней базируется стабильная ветка кода от производителя железки. Первоначально я работал на MacOS, но для этого проекта решил переключиться на Linux для удобства разработки. Итак волею судеб я перешел с MacOS на более менее свежий Ubuntu Linux 12.04.3, рекомендованную на данный момент версию Linux для сборки Android.

Основной сложностью в новом окружении осталась старая проблема — старые версии AOSP не отслеживаются и новые правки в сборочную систему не вносятся. Поэтому если сборка master’а особой сложности не представляет, то сборка предыдущих версий Android под более свежие версии Ubuntu требует исправления ряда проблем.

В моем случае рабочее окружение выглядит так:

  • AOSP 4.0.4 r1.1
  • Ubuntu Linux 12.04.3 x64
  • GNU Make 3.81 и другие рекомендованные утилиты

Все основные моменты и сложности сборки AOSP хорошо описаны в официальной документации. Как и для MacOS, в случае с Ubuntu, для сборки AOSP 4.0.x версий предлагается использовать более старые версии базовой ОС. В частности в разделе «Known Issues» для решения проблемы «Build error with 4.0.x and earlier on Ubuntu 11.10» предлагается использовать старый релиз Ubuntu 10.04, что не очень хочется делать, если предполагается заниматься в ОС и другими задачами, кроме сборки AOSP.

Решение

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

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

Ошибка 0

Или вовсе и не ошибка, а необходимость установить для сборки проприетарные пакеты Oracle Java, которые с некоторых пор не входят в поставку Ubuntu.

Исправление

Для сборки Android нам необходим JDK 6ой версии, соответственно для этого прописываемыем репозиторий Oracle с нужными пакетами и устанавливаем требуемый:

Аналогично можно установить последний JDK 7ой версии, если это требуется для других целей:

Ошибка 1

При установке необходимых пакетов не устанавливается пакет libgl1-mesa-glx:i386 в котором паходится нужная нам библиоткеа libGL x86. Не устанавливается со следующей причиной:

Вместе с ним для установки указан пакет libgl1-mesa-dev в котором содержится libGL, но x64 версия, что нам не подходит для сборки AOSP.

Если попробовать сборку с libgl1-mesa-dev для x64 архитектуры, то при линковке получим ошибку:

Исправление

Вместо пакетов libgl1-mesa-glx:i386 и libgl1-mesa-dev установить пакет libgl1-mesa-dev:i386:

Более подробное описание содержимого пакета можно найти в описании Ubuntu, видно что он содержит и нужный libgl1-mesa-glx.

Также при установке пакета будет создан и симлинк в директории /usr/lib/i386-linux-gnu/, поэтому дополнительно его создавать не нужно, как указано в руководстве командой:

Ошибка 2

Используемая в системе версия компилятора gcc (4.6.x) имеет проблему с переопределением символа _FORTIFY_SOURCE, о чем так же написано в официальных «Known Issues». Как решение предлагается откатиться на Ubuntu 10.04, что очевидно не самый лучший вариант. Текст предупреждения и ошибки будет такой:

Исправление

Эту проблему можно решить установив gcc-4.4 и необходимые библиотеки:

Подробнее про настройку 2х версий gcc и использование gcc-4.4 как приоритетной версии можно прочитать в этом блоге. Для наших же целей достаточно установить нужные пакеты и запускать сборку командой с указанием версии компилятора:

После приведенных выше операций Android соберется как мы и хотели, но постфактум можно столкнуться еще с парой неприятностей.

Ошибка 3

При запуске эмулятора с указанным параметром «-gpu on» для включения аппаратного ускорения отрисовки вы получите слежующее сообщение и черный экран в эмуляторе:

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

Исправление

Путем проверки пакетов выяснилось что при установке одного из них был удален проприетарный графический драйвер от NVidia и как следствие система забыла как регулировать скорость вращения вентилятора, а также где искать нужную библиотеку. Вредоносным пакетом оказался libncurses5-dev:i386, обратите внимание что при его установке будет следующий запрос:

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

Ошибка 4

Возникает при запуске эмулятора без указания файла ядра системы. В предыдущей статье я забыл указать этот момент, в этой исправляюсь чтобы описание было до конца полным. Итак при запуске эмулятора AOSP 4.0.4 мы получим сообщение:

Проблема возникла из-за того что в более свежих версиях AOSP prebuilts перенесли в другую директорию и это исправление попало в сборочные скрипты для старых версий, а вот местоположение не изменили.

Исправление

Указать при запуске эмулятора расположение ядра, путь относительно корня сборки:

Источник

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