Как пишутся apk файлы

Афоризм

Быть честным хочется … Но меньше, чем богатым.

Наталья Резник

Поддержка проекта

Если Вам сайт понравился и помог, то будем признательны за Ваш «посильный» вклад в его поддержку и развитие

 • Yandex.Деньги
  410013796724260

 • Webmoney
  R335386147728
  Z369087728698

Конечной целью любой java-разработки является создание завершенного приложения : это может быть как
библиотека/исполняемый jar-файл, либо web приложение. Имеются различные типы приложений и библиотек. При всем
многообразии возможных разношёрстных типов готовых библиотек и приложений android-устройства выбиваются из общей колеи.
Для android-устройств конечным программным продуктом являются apk-файлы, которые можно свободно распространять между
пользователями.

На заре развития программного обеспечения вся разработка для android-устройств осуществлялась, как правило, в IDE
Eclipse со специализированными плагинами типа ADT (Android Development Tools). Данная среда разработки позволяет
создавать для android apk-файлы. Но времена быстро меняются, и сегодня гораздо эффективнее и быстрее создавать
apk-файлы в представленной ещё в 2013 году Android Studio, основанную на старом конкуренте Eclipse — системе IntelliJ
IDEA.

Аббревиатура apk (Android Package Kit) символизирует формат файлов, которые используются для распространения
и установки приложений на устройства android. Файл apk содержит все необходимые элементы для правильной установки
приложения на устройстве, и, по своему назначению, чем-то похож на исполняемые exe-файлы в Windows. Когда Вы «заходите
в магазин» Google Play, чтобы выбрать и загрузить какое-либо приложение, Ваше устройство android скачивает и
устанавливает файл apk с нужным приложением.

Создание apk-файла

Рассмотрим процесс создания apk-файла на примере p13osgi, в котором использовался OSGi-фреймворк. Этот пример
подробно рассмотрен на странице Android и OSGI-фреймворк Felix. В данной статье
используем готовый модуль из проекта.

Заметка. Почему в качестве примера создания apk-файла выбираем данный модуль/проект, а не какой-либо другой? Дело
в том, что в данном примере используется расположенная в поддиректории lib внешняя библиотека. И для нас интерес будет
представлять структура apk-файла с внешней jar-библиотекой : какое место в данном пакете будет занимать внешний файл
org.apache.felix.framework-6.0.3.jar. Здесь следует понимать, что OSGi-фреймворк (Felix) позволяет создавать
модульную структуру приложения. Причем, в режиме run-time можно динамически подключать новые модули (bunlde),
останавливать запущенные модули, одновременно подключать разноверсионные модули. Данный функционал OSGi-фреймворка на
примере Вы можете реально проверить на своем компьютере; для этого необходимо познакомиться с
Уроком 8.

Создание APK-файлов всех модулей проекта

Чтобы использовать самый простой способ создания apk-файла, выберите в Android Studio пункт меню
«Build → Build Bundle(s)/APK(s) → APK(s)», как это представлено на следующем скриншоте.

В данном случае для всех модулей проекта будут созданы apk-файлы. Здесь необходимо отметить, что apk-файлы будут без
цифровой подписи и распространению не подлежат. Но на них можно «посмотреть», что мы и сделаем в
последнем разделе статьи, а также можно проверить работоспособность на android-устройстве. Загрузку apk-файла на
android-устройство мы рассмотрим в ближайшее время отдельной статьей. Также отдельной статьей я представлю процесс
создания apk-файла с цифровой подписью при выборе пункта меню «Build → Generate Signed Bundle/APK».

А сейчас Вы должны увидеть, что для всех модулей проекта создаются apk-файлы, которые располагаются в поддиректориях
проекта [project_name]/[module_name]/build/outputs/apk/debug/. Т.е. в поддиректории модуля
build/outputs/apk/debug/ будет размещаться созданный apk-файл, наименование которого включает наименование модуля
с постфиксом «-debug». В нашем примере будет создан файл p13osgi-debug.apk.

Определение типа apk : debug-release

Постфикс «-debug», добавляемый к наименованию пакета, определен по умолчанию. Вы можете самостоятельно переименовать файл,
и он останется работоспособным. Но можно и изменить настройки. Для этого необходимо указателем мыши нажать на расположенную
в левом нижнем углу маленькую кнопочку, как это представлено на нижнем левом скриншоте. Данная кнопка открывает окно со
специальными ярлыками различных вспомогательных окон. При простом наведении указателя мыши на эту кнопку, появляется список
всех этих окон для быстрого выбора нужного.

Откроем окно Build Variants и в дополнительно открытом окне (скриншот справа) найдем модуль p13osgi (наш пример).

Если в выпадающем списке переключить режим сборки с debug на release, то будет создаваться пакет
p13osgi-release-unsigned.apk в поддиректории «build/outputs/apk/release/».

Создание APK-файла одного модуля проекта

Для того, чтобы создать apk-файл одного модуля, необходимо открыть панель Gradle (см.ярлык на скриншоте сверху
слева). В открывшемся окне, как это представлено на следующем скриншоте, необходимо выбрать пункт меню
«module_name → Tasks → build → build». В результате данных действий будет создан apk-файл только
одного модуля.

Структура файла APK

В заключении посмотрим на внутренности нашего apk-файла. Сразу же отмечу, что apk-файл можно открыть zip-архиватором,
например 7-Zip. Но многое останется недоступным. Лучше использовать анализатор apk-файлов от Android Studio. Далеко
ходить не надо : необходимо выбрать пункт меню «Build → Analyze APK …» (см. самый верхний скриншот). В
открывшемся диалоговом окне найти нужный пакет в файловой структуре, после чего в IDE будет открыта панель, как это
представлено на следующем скриншоте.

Интерфейс панели анализатора разделен на 2 части. В верхней части Вы видите корневую структуру apk-файла. В нижней
части можно просматривать структуру выделенного элемента верхней части.

Что сразу же бросается в глаза? Вспоминаем : в нашем примере/модуле была использована внешняя библиотека с
OSGi-фреймворком Felix org.apache.felix.framework-6.0.3.jar, расположенная в поддиректории lib
В структуре созданного пакета поддиректория lib. Все файлы внешней jar-библиотеки размещаются в корне по пакетам. Можно
предположить, что и дополнительное использование бандлов/модулей (а для чего использовать фреймворк, если не
использовать бандлы) приведет к тому, что и их содержимое также будет интегрировано в общий пакет. Таким образом, мы
лишаемся преимуществ использования OSGi-технологии при разработке приложений для android-устройств, поскольку любая
доработка отдельного модуля/бандла будет связана с обновлением всей сборки (apk-пакета). Кроме этого, отсутствует
возможность одновременного использования разноверсионных бандлов, а межмодульное взаимодействие посредством сервисов
становится «слишком дорогим» (можно и напрямую постучаться к классам бандла, зачем нам посредник-активатор). На данном
простом примере я не вижу преимуществ использования OSGi для создания многомодульного приложения.

Буду признателен всем, кто опровергнет данное предположение и предложит значимое использование OSGi-технологии в
android-устройстве.

Что касается *.class’ов, то их также не будет в apk-файле. Им на смену пришли файлы *.dex .

Файл .dex

«Рабочей лошадкой» в системе Android является Dalvik Virtual Machine, не использующая байт-код Java. Виртуальная
машина Dalvik является службой приложения, которая интерпретирует скомпилированный код в dex-файле. Инструкции байт-кода
формата DEX не совпадают с инструкциями байт-кода Java. Таким образом, в apk-файле Java-классы представлены в формате
.dex. Но необходимо отметить, что структура пакетов сохраняется.

Android приложения прочно вошли в нашу жизнь. Мы каждый день ими пользуемся: картами, социальными сетями, мессенджерами, браузерами. Но каждый опытный пользователь смартфона на Android хоть раз задумывался о создании своего приложения. Сложился стереотип, что это очень сложно и нужно долго учить программирование, чтобы что-то качественное написать. Однако Google постоянно совершенствует свои инструменты разработки, делая их проще и удобнее. Сегодня мы создадим самое простое приложение для Android и запустим его на смартфоне.

Приложения для Android создаются на языке программирования Java. Сейчас как альтернатива Java продвигается еще и относительно новый более простой язык Kotlin (язык назван в честь острова? на котором расположен город Кронштадт). Наш пример будет на Java.

Сперва мы проверим, установлен ли на вашем компьютере (под управлением Windows) JDK. Java Development Kit – это комплект разработчика приложений от компании Oracle. Без него среда разработки не сможет правильно функционировать.

Для этого нажмите на клавиатуре Win + R. Введите cmd и нажмите Enter. Откроется командная строка. Далее в консоли необходимо набрать:

java -version

Скорее всего, вы увидите версию Java:

Это значит, что у вас уже установлен JDK. В противном случае его необходимо скачать (150 Мб).

После установки JDK переходим к основному инструменту разработки для ОС Android – Android Studio. Загрузить его можно здесь (944 Мб).

Android Studio – это свободно распространяемая среда разработки от Google. Это такой огромный комбайн для разработки приложений, в который вошли различные инструменты для тестирования, сборки приложений, а также шаблоны, удобный редактор макетов и многое другое. Android Studio постоянно обновляется, как и его многочисленные компоненты.

Версии Android Studio есть не только под Windows, но и для Mac OS и Linux. Системные требования для Android Studio: Windows 7/8/10, 3 Гб оперативной памяти минимум, 8 Гб RAM рекомендовано, 4 Гб на жестком диске.

Итак, вы скачали инсталлятор Android Studio.

Запускаем его.

Жмем Next, выбираем путь для установки. Настройки желательно не менять.

 

Затем запустится мастер настройки Android Studio. Здесь можно выбрать цветовую тему среды разработки, скачать дополнительные файлы. Тип установки выбираем стандартный.

После скачивания необходимых компонентов будет предложено выбрать тип вашего проекта. Выбираем Empty Activity и кликаем Next.

На следующем экране даем название проекту и выбираем, начиная с какой версии Android будет работать ваше приложение. Лучше всего выбрать – c Android 4.0.3 – так наше приложение будет работать на максимальном количестве устройств. Стоит отметить, что Android Studio настолько универсальна, что позволяет создавать приложения не только для смартфонов, но и для смарт-часов и телевизоров!

Далее у нас открывается основное окно Android Studio. Слева мы видим несколько разделов. Это структура нашего проекта. В папке manifests находится файл AndroidManifest.xml, который отвечает за информацию о приложении, импортируемые библиотеки, компоненты и другие параметры. В папке java находится непосредственно код (файл MainActivity в папке com.example.myapplication). В папке res находятся ресурсы приложения – кнопки, файлы, которые определяют дизайн интерфейса (например, activity_main.xml).

Acitivity – это отдельный экран, с которым взаимодействует пользователь. Примеры: экран с фото, набор номера, ввод текста. У нас будет один Acitivity (экран). Поэтому сразу идем по пути appsrcmainreslayout и открываем файл activity_main.xml. Переключаемся в режим Design.

Выбираем раздел Button и перетягиваем его на экран приложения. У нас появилась кнопка. Вводим текст на ней (kv.by).

Чтобы увеличить размер шрифта – переключаемся в режим Text и в коде в разделе Button добавляем такую строчку:

android:textSize=»25sp»

В режиме Design жмем правой кнопкой мыши и выбираем Constrain, далее выбираем все пункты по очереди. Это «привяжет» вашу кнопку, чтобы она не могла сместиться.

Далее редактируем надпись Hello, World – меняем на свою собственную («Мое первое приложение на Android»).

Следующий этап – добавляем картинку. Сначала мы должны ее добавить в проект. Картинка будет к примеру, эта:

Скачайте ее и перетяните прямо в проект в папку res – drawable. Она добавится в проект. Теперь открываем activity_main.xml и переключаемся в режим Design. Выбираем Common – ImageView. Перетягиваем на наш экран. Откроется окно выбора картинки. Переходим в раздел Project. Там видим логотип kv.by. Выбираем его и помещаем в середине окна нашего приложения. На картинке также применяем Constrain.

В итоге у вас должен получится такой код activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="145dp"
        android:layout_height="53dp"
        android:layout_marginTop="262dp"
        android:layout_marginBottom="416dp"
        android:gravity="center"
        android:text="Мое первое приложение на Android"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.552"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="199dp"
        android:layout_height="113dp"
        android:text="kv.by"
        android:textSize="25sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        tools:layout_editor_absoluteY="114dp" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="216dp"
        android:layout_height="172dp"
        android:layout_marginStart="55dp"
        android:layout_marginLeft="55dp"
        android:layout_marginTop="380dp"
        android:layout_marginEnd="28dp"
        android:layout_marginRight="28dp"
        android:layout_marginBottom="51dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.495"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/logo" />
    </android.support.constraint.ConstraintLayout

И, соответственно, такой код MainActivity (в папке com.example.myapplication):

package com.example.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="App kv.by"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

А теперь пора проверить, все ли работает. Проверим на виртуальном смартфоне прямо у вас на компьютере.

Жмем вверху Tools – AVD Manager – Create Virtual Device.

Мы создаем виртуальное устройство (смартфон) под управлением Android. Выбираем Nexus 5X. Скачиваем сам эмулятор Android. Жмем Next. После всех манипуляций у вас в списке виртуальных устройств должен появиться «смартфон» Nexus 5X.

Теперь запустим приложение на виртуальном смартфоне – RunRun app.

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

 

На смартфоне открываем список приложений и ищем там App kv.by

Вот что получилось:

Работает! Приложение готово. Теперь можно и на ваш реальный смартфон его загрузить.

Чтобы установить на смартфон наше первое приложение – нужно создать apk-файл. APK – Android Package Kit, это такой незашифрованный zip-архив, в котором содержатся скомпилированный код приложения, файлы ресурсов, файлы манифеста и другая информация. Именно в формате apk хранятся файлы в Google Play, из которого мы скачиваем приложения.

Поскольку они не зашифрованы, картинки и некоторую другую информацию можно легко извлечь из любых приложений. Для этого есть ресурс APKMirror.com. На нем можно скачать apk-файл нужного приложения из Google Play. Затем переименовать его в *.zip и открыть любым архиватором. Там можно увидеть структуру приложения, иконки, графику. Например, вот как выглядит приложение WhatsApp изнутри:

Apk-файлы можно скачивать себе на смартфон или обмениваться ими. Либо установить в качестве приложения. Это удобно и дает некоторую свободу.

Для того, чтобы установить apk на вашем смартфоне, нужно сначала это разрешить. Идем в Настройки – Приложения – Особые права доступа – Установка неизв. приложений и там выбираем «Разрешено» для вашего файлового менеджера (например, Total Commander).

Итак, наша задача сделать apk-файл из кода, который мы написали. Для этого в Android Studio выбираем Build – Build Bundle / APK – Build APK. Запустится скрипт для создания apk. В конце вам предложат открыть папку в которой будет apk-файл. Далее необходимо подключить смартфон к компьютеру и скопировать полученный apk-файл в память телефона. Затем уже на смартфоне открыть файловым менеджером папку с файлом и установить его. Теперь у вас собственное приложение в смартфоне!

Если вас заинтересовала эта тема – вы можете ознакомиться с исходным кодом некоторых простейших приложений на GitHub. Например, там есть галерея и файловый менеджер. Вы можете редактировать их код под собственные нужды. Много информации о разработке под Android вы также можете найти здесь.

Работа с проектами в eclipse, создание первого android-приложения, структура apk-файлов

А статья уже довольно сильно устарела, часть скриншотов точно не соответствует реальности, часть текста тоже. Такие дела.

В этой статье мы наконец создадим в Eclipse ADT первое работающее андроидное приложение. И не просто создадим, но и проверим его работу в виртуальном девайсе.

Как и в любой интегрированной среде разработки, в Eclipse ADT создание работающего приложения сводится к трём шагам:

  1. создание андроид-проекта в Eclipse (минимальный шаблонный проект);
  2. написание программного кода, рисование дизайна и т.п.;
  3. «компиляция» проекта в окончательный apk-файл.

Создание первого проекта

Для начала запускаем eclipse (например, командой eclipse-adt, которую мы делали в прошлой статье), открываем Android SDK Manager (WindowAndroid SDK Manager) и устанавливаем версию платформы Android 2.3.3 (модуль Android 2.3.3 (API 10)/SDK Platform). Если он уже установлен, идём дальше.

Проект содержит все необходимые вещи для приложения: программный код, инструкции по сборке, ресурсы (например, картинки), описания интерфейсов, документацию и т.д. Создаём первый проект, через меню: FileNewAndroid Project, после чего открывается вот такой диалог:

Первый шаг создания андроид-проекта

Внешний вид этого диалога практически одинаков для всех типов проектов: вам нужно выбрать название проекта (в нашем случае это «first project»), каталог, в котором проект создавать (нас вполне устраивают значения по умолчанию). Жмём Next > и видим следующий шаг:

Второй шаг создания андроид-проекта

Здесь нам предлагается выбрать, под какую версию андроид-платформы мы хотим создать проект, в списке доступны установленные в SDK модули для разных версий платформы, а выбрать вы можете только одну. На скриншоте вы видите, что доступны три версии: Android 2.2, Android 2.3.3 и Android 4.0.3. Выбираем версию 2.3.3., жмём Next > и попадаем на следующий экран:

Третий шаг создания андроид-проекта

На этом экране мы задаём информацию о нашем приложении, заполните так, как показано на скриншоте. Совсем коротко об этих полях. Application Name — это название проекта, обычная строка текста. Package Name — это название пакета, по сути индентификатор приложения, его пространство имён (namespace в терминологии Java), способ его формирования стандартен для Java-приложений (подробнее об этом можно почитать в официальной документации по Java). Оставляем крыжик в поле Create Activity, значение этого поля также оставляем по умолчанию, я позднее расскажу, что такое Activity. В поле Minmum SDK мы можем выбрать минимальную версию андроида, на которую можно будет поставить приложение, по сути это поле дублирует предыдущий экран. Поле и крыжик Crate a Test Project пока отключаем. Всё нужное заполнили, жмём Finish. Пару секунд Eclipse будет создавать шаблонный проект с выбранными параметрами, после чего он появится во вьюшке Package Explorer. Если вы эту вьюшку потеряли, вспонимаем, как открыть её через меню WindowShow ViewPackage Explorer).

Раскрываем папку с проектом в Package Explorer и начинаем изучать, при этом окно Eclipse у вас должно выглядеть примерно так:

Только что созданный первый андроид-проект

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

src — здесь лежит ваш программный код на языке Java.

gen — в этой папке лежат автоматически сгенерированные файлы, например, файлы локализации приложения.

Android 2.3.3 — это контейнер с классами выбранной платформы.

res — здесь лежат ресурсы вашего приложения (картинки, строки локализации, макеты интерфейса).

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

proguard.cfg — это файл конфигурации для системы ProGuard, инструмента из SDK для оптимизации и защиты приложения. Про этот файл и вообще систему ProGuard я расскажу как-нибудь потом, пока этот файл не трогайте, пусть лежит.

project.properties — это файл для сборочной системы Ant, он автоматически пересоздаётся при модификации свойств проекта, так что не стоит в него писать.

На остальные файлы и контейнеры пока не обращайте внимания.

Сборка и запуск проекта

Несмотря на то что мы не написали ни строчки кода, мы вполне можем уже запустить только что созданный проект! Для запуска нужен девайс, либо виртуальный, либо реальный. Реального у нас пока нет, поэтому запустим виртуальный. Нам необходимо создать новый виртуальный девайс на основе версии платформы Android 2.3.3. Делается это через
AVD Manager
(меню WindowAVD Manager). Вспоминаем из прошлой главы, как создавать виртуальные устройства и создаём (запускать пока не надо).

Для запуска приложения есть несколько эквивалентных способов:

  1. Через меню выбрать RunRun.
  2. Нажать кнопку Run на панели инструментов.
  3. Нажать хоткей Ctrl+F11 (если вы его ни на что не переопределили).

Делаем что-нибудь одно, на экране должен появиться диалог выбора, как именно мы хотим запустить проект, выбираем пункт Android application. Eclipse автоматически находит подходящий девай — наш недавно созданный виртуальный девайс, — запускает его, копирует туда скомпилированное приложение из проекта и запускает внутри виртуального девайса. Если виртуальный девайс уже запущен, приложение будет отправлено туда. Вот как это выглядит на экране (клик по ссылке откроет скриншот в полном размере):

Результат запуска в эмуляторе

Что же было сделано средой разработки только что? Во-первых, проект был скомпилирован в apk-файл пакета, если бы где-то в коде содержались синтаксические ошибки, Eclipse показал бы соответствующее сообщение. Во-вторых, полученный apk-файл был скопирован на устройство, установлен там и запущен. Если мы на виртуальном девайсе пройдём в список установленных приложений, то увидим там наш проект:

Наш пакет в списке приложений

Структура APK-файла, манифест

Скомпилированный APK-файл создаётся в каталоге bin нашего проекта, вот он:

% cd ~/android/eclipse-workspace/first project/bin/
% ls -l first project.apk 
-rw-r--r-- 1 cancel cancel 13282 Фев 13 20:37 first project.apk

Этот файл на самом деле является ZIP-архивом с расширением .apk:

% unzip -l first project.apk 
Archive:  first project.apk
  Length      Date    Time    Name
---------  ---------- -----   ----
  520  2012-02-13 20:37   res/layout/main.xml
1508  2012-02-13 20:37   AndroidManifest.xml
1176  2012-02-13 20:37   resources.arsc
3966  2012-02-13 20:37   res/drawable-hdpi/ic_launcher.png
1537  2012-02-13 20:37   res/drawable-ldpi/ic_launcher.png
2200  2012-02-13 20:37   res/drawable-mdpi/ic_launcher.png
1980  2012-02-13 20:37   classes.dex
  585  2012-02-13 20:37   META-INF/MANIFEST.MF
  638  2012-02-13 20:37   META-INF/CERT.SF
  776  2012-02-13 20:37   META-INF/CERT.RSA
---------                     -------
14886                     10 files

В архиве лежит файл со скомпилированным исходным кодом из java-файлов — classes.dex, также там лежит манифест AndroidManifest.xml, файлы ресурсов (картинки) и прочая служебная информация о пакете, используемая андроидным девайсом для работы приложения.

Манифест (файл AndroidManifest.xml) является очень важным элементом проекта, он представляет собой XML-файл, в котором описаны свойства приложения (название, описание), зависимости и требования к платформе на девайсе, фичи, которые предоставляет пакет и другие подобные вещи. Для редактирования манифеста можно пользоватся встроенным в ADT редактором, для его запуска просто откройте файл AndroidManifest.xml для редактирования, вот как это может выглядеть (клик откроет картинку в полном размере):

Редактор манифеста проекта в Eclipse ADT

В центральной области Eclipse открыт редактор манифеста, внизу вы должны заметить кнопки-табы для переключения между секциями манифеста: Manifest, Application, Permissions, Instrumentation; а последняя кнопка — AndroidManifest.xml — позволит редактировать XML-код манифеста вручную. Сейчас я не буду подробно описывать значения всех полей, так как для этого придётся очень сильно погружаться во внутреннюю структуру андроидного приложения, поэтому быстро пробежимся по табам манифеста.

Manifest

Здесь у нас главная системная информация о приложении.

Поле Package
имя главного неймспейса.
Поле Version code
номер версии приложения в виде целого числа, каждая следующая версия приложения должна иметь бо́льший, чем предыдущие; именно это значение используется системой для сравнения версий, например.
Поле Version name
версия приложения в виде произвольной строки, здесь допускается практически что угодно, система это поле использует только в качестве описания.
Поля Shared user id и Shared user label
используются для группировки разных приложений от одного производителя, приложения, у которых совпадают Shared user id и которые подписаны одинаковым сертификатом, могут получать доступ к ресурсам друг друга. (О сертификатах и подписанных пакетах речь пойдёт в следующих главах)
Поле Install location
здесь определяется, можно ли будет приложение ставить на SD-карточку.

В блоке Manifest extras можно добавить дополнительные опциональные элементы в манифест, например, какие размеры экранов поддерживает приложение.

Дальше в этом окне идут ссылки на операции с пакетом (экспорт APK-файла, например), документацию или другие табы редактора манифеста.

Application

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

Permissions

На этой странице задаются требуемые приложением пермиссии/разрешения. О пермиссиях чуть подробнее.

Пермиссии определяют, какие именно ресурсы девайса требуются для работы данного приложения. К примеру, приложение может требовать использования камеры, это задаётся пермиссией android.permission.CAMERA, а требование отсылки СМС — пермиссией android.permission.SEND_SMS. Если приложение не затребовало пермиссию android.permission.CAMERA, то оно не сможет пользоваться камерой девайса для получения фотографий.

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

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

Ссылки

  • Структура файла манифеста на официальном сайте для андроид-разработчиков
  • Про версионность андроид-приложений, также на официальном сайте

Читайте в следующей части: java-классы проекта, макеты интерфейсов, ресурсы, доступ к ресурсам из кода

← предыдущая часть | следующая часть →

Постройте сами вместо того, чтобы загружать

AndroidAPS is not available as download due to regulation for medical devices. It is legal to build the app for your own use, but you must not give a copy to others! См. раздел FAQ .

Важные Примечания

  • Please use Android Studio Version 2020.3.1 or newer to build the apk.

  • Windows 10 32-bit systems are not supported by Android Studio 2020.3.1

Рекомендуемые спецификации компьютеров для сборки файла apk

OS (Only 64 bit) Windows 8 или выше Mac OS 10.14 или выше Любой Linux поддерживающий Gnome, KDE, или Unity DE;  GNU C Library 2.31 или более поздние версии

CPU (Only 64 bit)

x86_64 архитектура CPU; ядро Intel или новее, или процессор AMD с поддержкой
Windows Hypervisor
Чипы на базе ARM или Intel Core 2 поколения или новее с поддержкой
среды Hypervisor
архитектура процессора x86_64, процессор Intel Core или новее, или процессор AMD с поддержкой AMD-виртуализации (AMD-V) и SSSE3

Оперативная память

8ГБ или более

Диск

Не менее 30ГБ свободного места. Рекомендуется использовать SSD.

Разрешение

минимум 1280 x 800

Интернет

Широкополосный

Please be in mind that both 64 bit CPU and 64 bit OS are mandatory condition. If your system DOES NOT meet this condition, you have to change affected hardware or software or the whole system. It is strongly recommended to use SSD (Solid State Disk) instead of HDD (Hard Disk Drive) because it will take less time when you are building the APS installation apk file. Recommended is just recommended and it is not a mandatory. However, you may still use a HDD when you are building apk file but note that the building process can take a long time to complete, although once started, you can leave it running unattended.


Эта статья разделена на две части.

  • In the overview part there is an explanation on what steps are necessary to build the APK file.

  • In the step by step walkthrough part you will find the screenshots of a concrete installation. Because the versions of Android Studio — the software development environment which we will use to build the APK — will change very quickly this will be not identical to your installation but it should give you a good starting point. Android Studio also runs on Windows, Mac OS X and Linux and there might be small differences in some aspects between each platform. If you find that something important is wrong or missing, please inform the facebook group «AndroidAPS users» or in the Discord chat Android APS so that we can have a look at this.

Общие замечания

In general, the steps necessary to build the APK file:

  1. Установите Git

  2. Установите Android Studio

  3. Задайте путь к git в параметрах Android Studio

  4. Скачайте код AndroidAPS

  5. Загрузите Android SDK

  6. Build the app (generate signed apk)

  7. Перенесите файл apk на телефон

  8. Идентифицируйте ресивер при использовании xDrip+

Пошаговое руководство

Detailed description of the steps necessary to build the APK file.

Установите git (если у вас его нет)

Follow the manual on the git installation page.

Установите Android Studio

The following screenshots have been taken from Android Studio Version Arctic Fox | 2020.3.1. Screens can change in future versions of Android Studio. But you should be able to find your way through. Help from the community is provided.

One of the most important things when installing Android Studio: Be patient! During installation and setup Android Studio is downloading a lot of stuff which will take its time.

Download Android Studio from here and install it on your computer.

On first start you will find the setup wizard:

Select «Do not import settings» as you have not used it before.

Do not import settings

Decide whether you want to share data with Google or not.

Share data with Google

On the following screen click «Next».

Welcome screen

Select «Standard» installation and click «Next».

Standard installation

Select the theme for the user interface you like. (In this manual we used «Light».) Then click «Next».

Note: This is just the color scheme. You can select whatever you like (i.e. «Darcula» for dark mode). This selection has no influence on building the APK but the following screenshots might look different.

UI color scheme

Click «Finish» on the «Verify Settings» dialog.

Verify settings

Wait while Android Studio downloads additional components and be patient. Once everything is downloaded button «Finish» turns blue. Click the button now.

Downloading components

Задайте путь к git в параметрах

Make sure git is installed on your computer and you have restarted your computer after installing.

On the Android Studio welcome screen click «Customize» (1) on the left and then select the link «All settings…» (2):

Android Studio settings from welcome screen

Windows

  • As windows user, make sure you have restarted your computer after installing Git.

  • Double-click «Version Control» (1) to open the sub-menu.

  • Click Git (2).

  • Make sure update method «Merge» (3) is selected.

  • Check if Android Studio can locate path to git.exe automatically by clicking the button «Test» (4).

    Android Studio settings

  • If automatic setting is successful git version will be displayed next to the path.

    Git version displayed

  • Eventually git.exe cannot be found automatically or the Test will result in an error (1):

    Git not found

    In this case click on the folder icon (2).

  • Use search function in windows explorer to find «git.exe» if you are unsure where git has been installed. You are looking for a file named «git.exe», located in bin folder.

  • Select path to git.exe and make sure you selected the one in ** bin ** folder (3) and click «OK» (4).

    Select git manually

  • Check your selected git path again with the «Test» button as described above.

  • When the git version is displayed next to the path (see screenshot above), close settings window by clicking «OK» button (5).

Mac

  • Any git version should work. For example https://git-scm.com/download/mac.

  • Use homebrew to install git: $ brew install git.

  • For details on installing git see the official git documentation.

  • If you install git via homebrew there is no need to change any preferences. На всякий случай: Их можно найти здесь: Android Studio — Настройки.

Скачайте код AndroidAPS

  • On the Android Studio welcome screen select «Projects» (1) on the left and then «Get from VCS» (2).

    Android Studio wizard

    • If you already opened Android Studio and do not see the welcome screen anymore select File (1) > New (2) > Project from Version Control… (3)

      Check out project from version control within Android Studio

    • We will now tell Android Studio were to get the code from:

    • Make sure you have selected «Repository URL» on the left (1).

    • Check if «Git» is selected as version control (2).

    • Copy and paste the URL https://github.com/nightscout/AndroidAPS to the main AndroidAPS repository into the URL textbox (3).

    • Choose the directory where you want to save the cloned code (4).

      Clone Git

  • Click button «Clone» (5).

    Clone repository

  • Do not click «Background» while repository is cloned!

  • After the repository is cloned successfully, Android Studio will open the cloned project.

  • You will be asked whether you want to trust the project. Click on «Trust project»!

    Trust project

  • In the status bar at the bottom you will see the information that Android Studio is running background tasks.

    Background tasks

  • Grant access if your firewall is asking for permission.

    Firewall permission java

  • Once the background tasks are finished you will probably see an error saying that errors occurred (1) or (2) or (3).

    SDK licence

    Don’t worry, this will be solved soon!

Загрузите Android SDK

  • In the menu, go to File (1) > Settings (2).

    Open settings

  • Double-click on Appearance & Behaviour to open its submenu (1).

  • Double-click on System Settings (2) and select Android SDK (3).

  • Tick the box left of «Android 9.0 (Pie)» (4) (API Level 28).

    SDK settings

  • Confirm changes by clicking OK.

    Confirm SDK changes

  • Accept licence agreement (1) and click «Next» (2).

    Accept SDK licence

  • Wait until the SDK download and installation is finished.

    Wait during SDK installation

  • When SDK installation is completed the «Finish» button will turn blue. Click this button.

    Finish SDK installation

  • Android Studio might recommend to update the gradle system. Never update gradle! This will lead to difficulties!

  • If you see an information on the lower right side of your Android Studio window that Android Gradle Plugin is ready to update click on the text «update» (1).

    No gradle update

  • In the dialog box the select «Don’t remind me again for this project» (2).

    No gradle update

  • Restart Android Studio before you continue.

Создание подписанного APK

Signing means that you indicate your app to be your own creation but in a digital way as a kind of digital fingerprint within the app itself. That is necessary because Android has a rule that it only accepts signed code to run for security reasons. For more information on this topic, follow this link.

  • After Android Studio is started, wait until all background tasks are finished.

    Wait for background tasks

    • Warning: If errors occur, do not continue with the following steps. Consult the troubleshooting section for known problems!

    Gradle Sync Error

  • Click «Build» (1) in the menu bar and select «Generate Signed Bundle / APK…» (2).

    Построение apk

  • Select «APK» (1) instead of «Android App Bundle» and click «Next» (2).

    Apk вместо пакета

  • Make sure that module is set to «AndroidAPS.app» (1).

  • Click «Create new…» (2) to start creating your key store.

    Note: A key store in this case is nothing more than a file in which the information for signing is stored. It is encrypted and the information is secured with passwords.

    Create key store

  • Click the folder symbol to select a path on your computer for your key store.

    Create key store

  • Select the path where your key store shall be saved (1).

    Create key store

    Warning: Do not save in same folder as project. You must use a different directory! A good location would be your home folder.

  • Type a file name for your key store (2) and confirm with «OK» (3).

  • Enter (2) and confirm (3) the password for your key store. Select key store path

    Note: Passwords for key store and key do not have to be very sophisticated. Make sure to remember those or make a note in a safe place. In case you will not remember your passwords in the future, see troubleshooting for lost key store.

  • Enter an alias (4) for your key. Choose whatever you like.

  • Enter (5) and confirm (6) the password for your key

  • Validity (7) is 25 years by default. You do not have to change the default value.

  • First and last name must be entered (8). All other information is optional.

  • Click «OK» (9) when you are done.

  • Make sure the box to remember passwords is checked (1). So you don’t have to enter them again next time you build the apk (i.e. when updating to a new AndroidAPS version).

  • Click «Next» (2).

    Remember passwords

  • Select build variant «fullRelease» (1) and press «Finish».

    Select build variant

  • Android Studio will show «Gradle Build running» at the bottom. This takes some time, depending on your computer and internet connection. Be patient!

    Gradle Running

  • Android Studio will display the information «Generate Signed APK» after build is finished.

    Build finished

  • In case build was not successful refer to the troubleshooting section.

  • Click on the notification to expand it.

  • Click on the link «locate».

    Locate build

    • If the notification is gone, you can always open the «Event log» and select the same link there. Построено успешно - журнал событий

  • Your file manager/explorer will open. Navigate to the directory «full» (1) > «release» (2).

    Расположение файла apk

  • «app-full-release.apk» (3) is the file you are looking for!

Перенос приложения на смартфон

Easiest way to transfer app-full-release.apk to your phone is via USB cable or Google Drive. Please note that transfer by mail might cause difficulties and is not the preferred way.

On your phone you have to allow installation from unknown sources. Manuals how to do this can be found on the internet (i.e. here or here).

Troubleshooting

See separate page troubleshooting Android Studio.

Понравилась статья? Поделить с друзьями:
  • Как пишут японцы сверху вниз или слева направо
  • Как пишут японцы сверху вниз или вдоль
  • Как пишут японцы на бумаге
  • Как пишут эссе пример
  • Как пишут эмо