AndroidНачало работы с Android

замечания

Если вы хотите узнать больше о настройке Android Gradle Plugin, просмотрите документацию по android-gradle .

Если вас интересуют альтернативные эмуляторы, вы можете посмотреть на Genymotion . Он обеспечивает свободный план и требует меньшего объема оперативной памяти.

Версии

Версия Уровень API Код версии Дата выхода
1,0 1 BASE 2008-09-23
1,1 2 BASE_1_1 2009-02-09
1,5 3 CUPCAKE 2009-04-27
1,6 4 DONUT 2009-09-15
2,0 5 ECLAIR 2009-10-26
2.0.1 6 ECLAIR_0_1 2009-12-03
2.1.x 7 ECLAIR_MR1 2010-01-12
2.2.x 8 FROYO 2010-05-20
2,3 9 GINGERBREAD 2010-12-06
2.3.3 10 GINGERBREAD_MR1 2011-02-09
3.0.x 11 HONEYCOMB 2011-02-22
3.1.x 12 HONEYCOMB_MR1 2011-05-10
3.2.x 13 HONEYCOMB_MR2 2011-07-15
4,0 14 ICE_CREAM_SANDWICH 2011-10-18
4.0.3 15 ICE_CREAM_SANDWICH_MR1 2011-12-16
4,1 16 JELLY_BEAN 2012-07-09
4,2 17 JELLY_BEAN_MR1 2012-11-13
4,3 18 JELLY_BEAN_MR2 2013-07-24
4,4 19 KITKAT 2013-10-31
4.4W 20 KITKAT_WATCH 2014-06-25
5.0 21 LOLLIPOP 2014-11-12
5,1 22 LOLLIPOP_MR1 2015-03-09
6,0 23 M (Зефир) 2015-10-05
7,0 24 N (Нуга) 2016-08-22
7,1 25 N_MR1 (Nougat MR1) 2016-10-04
8,0 26 O (Предварительный просмотр разработчика 4) 2017-07-24

Android-программирование без IDE

Это минималистский пример Hello World, который использует только самые базовые инструменты для Android.

Требования и допущения

Этот пример предполагает Linux. Возможно, вам придется настроить синтаксис для своей собственной платформы.

Настройка Android SDK

После распаковки версии SDK:

  1. Установите дополнительные пакеты с помощью диспетчера SDK. Не используйте android update sdk --no-ui как указано в комплекте Readme.txt; он загружает около 30 ГБ ненужных файлов. Вместо этого используйте интерактивный SDK-менеджер android sdk чтобы получить рекомендуемый минимум пакетов.

  2. Приложите следующие каталоги JDK и SDK к вашему исполнению PATH. Это необязательно, но приведенные ниже инструкции предполагают это.

    • JDK / бен
    • SDK / платформенные инструменты
    • SDK / инструменты
    • SDK / build-tools / LATEST (как установлено на шаге 1)
  3. Создайте виртуальное устройство Android. Используйте интерактивный AVD Manager ( android avd ). Возможно, вам придется немного поиграть и найти совет; инструкции на месте не всегда полезны.

    (Вы также можете использовать свое устройство)

  4. Запустите устройство:

    emulator -avd DEVICE
     
  5. Если экран устройства заблокирован, проведите по экрану, чтобы разблокировать его.

    Оставьте его работать, пока вы программируете приложение.

Кодирование приложения

  1. Перейдите в пустой рабочий каталог.

  2. Сделайте исходный файл:

    mkdir --parents src/dom/domain
    touch src/dom/domain/SayingHello.java
     

    Содержание:

    package dom.domain;
    import android.widget.TextView;
    
    public final class SayingHello extends android.app.Activity
    {
        protected @Override void onCreate( final android.os.Bundle activityState )
        {
            super.onCreate( activityState );
            final TextView textV = new TextView( SayingHello.this );
            textV.setText( "Hello world" );
            setContentView( textV );
        }
    }
     
  3. Добавьте манифест:

    touch AndroidManifest.xml
     

    Содержание:

    <?xml version='1.0'?>
    <manifest xmlns:a='http://schemas.android.com/apk/res/android'
     package='dom.domain' a:versionCode='0' a:versionName='0'>
        <application a:label='Saying hello'>
            <activity a:name='dom.domain.SayingHello'>
                 <intent-filter>
                    <category a:name='android.intent.category.LAUNCHER'/>
                    <action a:name='android.intent.action.MAIN'/>
                    </intent-filter>
                </activity>
            </application>
        </manifest>
     
  4. Создайте подкаталог для объявленных ресурсов:

    mkdir res
     

    Оставьте его пустым.

Построение кода

  1. Создайте источник для объявлений ресурсов. Замените здесь правильный путь к вашему SDK и установленному API для создания против (например, «android-23»):

    aapt package -f \
      -I SDK/platforms/android-API/android.jar \
      -J src -m \
      -M AndroidManifest.xml -S res -v
     

    Объявления ресурсов (описанные ниже) фактически являются необязательными. Между тем вышеупомянутый вызов ничего не делает, если res / все еще пуст.

  2. Скомпилируйте исходный код в байт-код Java (.java → .class):

    javac \
      -bootclasspath SDK/platforms/android-API/android.jar \
      -classpath src -source 1.7 -target 1.7 \
      src/dom/domain/*.java
     
  3. Переведите байт-код с Java на Android (.class → .dex):

    Сначала используйте Jill (.class → .jayce):

    java -jar SDK/build-tools/LATEST/jill.jar \
      --output classes.jayce src
     

    Затем Jack (.jayce → .dex):

    java -jar SDK/build-tools/LATEST/jack.jar \
      --import classes.jayce --output-dex .
     

    Байт-код Android раньше назывался «исполняемым кодом Dalvik», и поэтому «dex».

    Вы можете заменить шаги 11 и 12 одним звонком на Джек, если хотите; он может компилироваться непосредственно из источника Java (.java → .dex). Но есть преимущества для компиляции с javac . Это более известный, хорошо документированный и более широко используемый инструмент.

  4. Пакет файлов ресурсов, включая манифест:

    aapt package -f \
      -F app.apkPart \
      -I SDK/platforms/android-API/android.jar \
      -M AndroidManifest.xml -S res -v
     

    Это приводит к частичному APK-файлу (пакет приложений для Android).

  5. Сделайте полный APK с ApkBuilder инструмента ApkBuilder :

    java -classpath SDK/tools/lib/sdklib.jar \
      com.android.sdklib.build.ApkBuilderMain \
      app.apkUnalign \
      -d -f classes.dex -v -z app.apkPart
     

    Он предупреждает: «ЭТО ИНСТРУМЕНТ УДАЛЕН. См.« Справка »для получения дополнительной информации». Если --help завершился с ошибкой ArrayIndexOutOfBoundsException , вместо этого не передайте аргументы:

    java -classpath SDK/tools/lib/sdklib.jar \
      com.android.sdklib.build.ApkBuilderMain
     

    В нем объясняется, что CLI ( ApkBuilderMain ) устарел в пользу прямого вызова Java API ( ApkBuilder ). (Если вы знаете, как это сделать из командной строки, обновите этот пример.)

  6. Оптимизируйте выравнивание данных APK ( рекомендуемая практика ):

    zipalign -f -v 4 app.apkUnalign app.apk
     

Установка и запуск

  1. Установите приложение на Android-устройство:

    adb install -r app.apk
     
  2. Запустите приложение:

    adb shell am start -n dom.domain/.SayingHello
     

    Он должен бежать и приветствовать.

Это все. Это то, что нужно, чтобы поздороваться с базовыми инструментами Android.

Объявление ресурса

Этот раздел не является обязательным. Заявки ресурсов не требуются для простого приложения «привет мир». Если они также не требуются для вашего приложения, вы можете упростить сборку, опуская шаг 10 и удалив ссылку на каталог res / с шага 13.

В противном случае, вот краткий пример того, как объявить ресурс и как ссылаться на него.

  1. Добавить файл ресурсов:

    mkdir res/values
    touch res/values/values.xml
     

    Содержание:

    <?xml version='1.0'?>
    <resources>
        <string name='appLabel'>Saying hello</string>
    </resources>
     
  2. Ссылка на ресурс из манифеста XML. Это декларативный стиль ссылки:

    <!-- <application a:label='Saying hello'> -->
         <application a:label='@string/appLabel'>
     
  3. Ссылка на тот же ресурс из источника Java. Это настоятельная рекомендация:

    // v.setText( "Hello world" );
       v.setText( "This app is called "
         + getResources().getString( R.string.appLabel ));
     
  4. Проверьте приведенные выше изменения, переустановив, переустановив и перезапустив приложение (шаги 10-17).

    Он должен перезапустить и сказать: «Это приложение называется Saying hello».

Удаление приложения

adb uninstall dom.domain
 

Смотрите также

Основы применения

Приложения для Android написаны на Java. Инструменты Android SDK скомпилируют файлы кода, данных и ресурсов в пакет APK (Android). Как правило, один файл APK содержит весь контент приложения.

Каждое приложение запускается на собственной виртуальной машине (VM), чтобы приложение могло работать отдельно от других приложений. Система Android работает с принципом наименьших привилегий. Каждое приложение имеет доступ только к тем компонентам, которые ему необходимы для выполнения своей работы, и не более того. Тем не менее, есть способы, по которым приложение может обмениваться данными с другими приложениями, например, путем совместного использования идентификатора пользователя Linux между приложением, или приложения могут запрашивать разрешение на доступ к данным устройства, таким как SD-карта, контакты и т. Д.

Компоненты приложения

Компоненты приложения - это строительные блоки приложения для Android. Каждый компонент играет определенную роль в приложении для Android, которое выполняет определенную задачу и имеет различные жизненные циклы (поток того, как и когда компонент создается и уничтожается). Вот четыре типа компонентов приложения:

  1. Действия: Действие представляет собой один экран с пользовательским интерфейсом (UI). Приложение Android может иметь более одного действия. (например, приложение электронной почты может иметь одно действие для перечисления всех электронных писем, другое - для отображения содержимого каждого электронного письма, а другое - для создания нового сообщения электронной почты.) Все действия в приложении работают вместе для создания пользовательского eXperience (UX).
  2. Службы: служба работает в фоновом режиме для выполнения длительных операций или для выполнения работы для удаленных процессов. Служба не предоставляет никакого пользовательского интерфейса, она работает только в фоновом режиме с помощью ввода пользователя. (например, служба может воспроизводить музыку в фоновом режиме, когда пользователь находится в другом приложении, или может загружать данные из Интернета, не блокируя взаимодействие пользователя с устройством Android.)
  3. Поставщики контента. Поставщик контента управляет данными общего доступа. Существует четыре способа хранения данных в приложении: он может быть записан в файл и сохранен в файловой системе, вставлен или обновлен в базу данных SQLite, отправлен в Интернет или сохранен в любом другом постоянном хранилище, к которому приложение может получить доступ , Через контент-провайдеры другие приложения могут запрашивать или даже изменять данные. (например, система Android предоставляет провайдера контента, который управляет контактной информацией пользователя, чтобы любое приложение, имеющее разрешение, могло запрашивать контакты.) Поставщики контента также могут использоваться для сохранения данных, которые являются приватными для приложения, для лучшей целостности данных.
  4. Широковещательные приемники: широковещательный приемник реагирует на широковещательные сообщения в масштабе всей системы (например, широковещательная передача, показывающая, что экран выключен, батарея разряжена и т. Д.) Или из приложений (например, чтобы другие приложения знали, что некоторые данные были загружается на устройство и доступно для них). У широковещательных приемников нет пользовательских интерфейсов, но они могут показывать уведомление в строке состояния, чтобы предупредить пользователя. Обычно широковещательные приемники используются в качестве шлюза для других компонентов приложения, состоящего в основном из видов деятельности и услуг.

Одним из уникальных аспектов системы Android является то, что любое приложение может запускать компонент другого приложения (например, если вы хотите позвонить, отправить SMS, открыть веб-страницу или просмотреть фотографию, есть приложение, которое уже делает это, и ваше приложение может использовать его вместо того, чтобы разрабатывать новую деятельность для одной и той же задачи).

Когда система запускает компонент, он запускает процесс для этого приложения (если он еще не запущен, то есть только один процесс переднего плана для каждого приложения может запускаться в любой момент времени в системе Android) и создает классы, необходимые для этого компонента. Таким образом, компонент работает на процессе этого приложения, к которому он принадлежит. Поэтому, в отличие от приложений на других системах, приложения Android не имеют ни одной точки входа (нет метода main() ).

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

контекст

Экземпляры класса android.content.Context обеспечивают подключение к системе Android, которая выполняет приложение. Экземпляр контекста необходим для доступа к ресурсам проекта и глобальной информации о среде приложения.

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

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

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

Более подробное описание написано здесь .

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

Настройка Android Studio

Начните с настройки Android Studio и затем откройте ее. Теперь вы готовы сделать свое первое Android-приложение!

Примечание. Данное руководство основано на Android Studio 2.2, но процесс в других версиях в основном одинаков.

Настроить свой проект

Основная конфигурация

Вы можете запустить новый проект двумя способами:

  • Нажмите « Start a New Android Studio Project с экрана приветствия.
  • Перейдите к FileNew Project если у вас уже открыт проект.

Затем вам нужно описать свое приложение, заполнив некоторые поля:

  1. Имя приложения - это имя будет показано пользователю.

    Пример: Hello World . Вы всегда можете изменить его позже в файле AndroidManifest.xml .

  2. Company Domain - это определитель имени пакета вашего проекта.

    Пример: stackoverflow.com .

  3. Имя пакета (aka applicationId ) - это полное имя пакета проекта.

    Он должен следовать за реверсивным именем имени домена (aka Reverse DNS ): домен верхнего уровня . Домен компании . [ Сегмент компании . ] Имя приложения .

    Пример: com.stackoverflow.android.helloworld или com.stackoverflow.helloworld . Вы всегда можете изменить свой applicationId , переопределив его в файле gradle .

Не используйте префикс по умолчанию «com.example», если вы не намерены отправлять свое приложение в Google Play Store. Имя пакета будет вашим уникальным приложением в Google Play.

  1. Местоположение проекта - это каталог, в котором будет сохранен ваш проект.

Новый диалог проекта

Выбор форм-факторов и уровня API

В следующем окне вы можете выбрать форм-факторы, поддерживаемые вашим приложением, такие как телефон, планшет, телевизор, Wear и Google Glass. Выбранные форм-факторы становятся модулями приложения внутри проекта. Для каждого форм-фактора вы также можете выбрать уровень API для этого приложения. Чтобы получить дополнительную информацию, нажмите « Помогите выбрать»

введите описание изображения здесь Диаграмма текущих дистрибутивов версий Android, отображаемая при нажатии кнопки «Справка».

В окне «Платформа Android Platform» показано распределение мобильных устройств, работающих с каждой версией Android, как показано на рисунке 2. Нажмите на уровень API, чтобы просмотреть список функций, представленных в соответствующей версии Android. Это поможет вам выбрать минимальный уровень API, который обладает всеми функциями, которые нужны вашим приложениям, поэтому вы можете охватить как можно больше устройств. Затем нажмите « ОК» .

Теперь выберите, какие платформы и версия Android SDK будет поддерживать приложение.

Диалог версий SDK

Пока выберите только телефон и планшет .

Минимальный SDK - нижняя граница для вашего приложения. Это один из сигналов, которые использует Google Play Store для определения того, на каких устройствах может быть установлено приложение. Например, приложение Stack Exchange поддерживает Android 4.1+.

Приложение Stack Exchange
Android Studio сообщит вам (приблизительно), какой процент устройств будет поддерживаться с учетом заданного минимального SDK.

Более низкие уровни API нацелены на большее количество устройств, но имеют меньше доступных функций.

При принятии решения о минимальном SDK вы должны учитывать статистику Dashboards , которая даст вам информацию о версиях устройств, которые посетили Google Play Store по всему миру на прошлой неделе.

Снимок экрана текущей дистрибуции Android

С: Панели мониторинга на веб-сайте разработчика Android.

Добавить деятельность

Теперь мы собираемся выбрать действие по умолчанию для нашего приложения. В Android Activity представляет собой единый экран, который будет представлен пользователю. Приложение может размещать несколько действий и перемещаться между ними. В этом примере выберите « Empty Activity и нажмите «Далее».

Здесь, если хотите, вы можете изменить название операции и макета. Хорошей практикой является сохранение Activity как суффикса для имени действия, а activity_ в качестве префикса для имени макета. Если оставить их по умолчанию, Android Studio будет генерировать для нас деятельность, называемую MainActivity , и файл макета, называемый activity_main . Теперь нажмите « Finish .

Android Studio создаст и настроит наш проект, который может занять некоторое время в зависимости от системы.

Проверка проекта

Чтобы понять, как работает Android, давайте посмотрим на некоторые из файлов, которые были созданы для нас.

На левой панели Android Studio мы можем увидеть структуру нашего приложения для Android .

Основная структура приложения

Сначала откройте AndroidManifest.xml , дважды щелкнув по нему. Файл манифеста Android описывает некоторые основные сведения об Android-приложении. Он содержит декларацию о нашей деятельности, а также некоторые более продвинутые компоненты.

Если для приложения требуется доступ к функции, защищенной разрешением, она должна заявить, что для этого требуется это разрешение с элементом <uses-permission> в манифесте. Затем, когда приложение установлено на устройстве, установщик определяет, следует ли предоставлять запрашиваемое разрешение, проверяя полномочия, которые подписали сертификаты приложения, а в некоторых случаях и спрашивают пользователя. Приложение также может защищать свои собственные компоненты (действия, службы, широковещательные приемники и контент-провайдеры) с разрешениями. Он может использовать любые разрешения, определенные Android (перечисленные в android.Manifest.permission) или объявленные другими приложениями. Или он может определить свой собственный.

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        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>
 

Затем откройте файл activity_main.xml который находится в app/src/main/res/layout/ . Этот файл содержит декларации для визуальных компонентов нашей MainActivity. Вы увидите визуального дизайнера. Это позволяет перетаскивать элементы на выбранный макет.

Вы также можете переключиться на конструктор макетов xml, нажав «Текст» внизу Android Studio, как показано здесь:

Конструкция макета / вкладки текста

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.stackexchange.docs.helloworld.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</RelativeLayout>
 

Вы увидите виджет под названием TextView внутри этого макета, а свойство android:text установлено в «Hello World!». Это блок текста, который будет показан пользователю при запуске приложения.

Вы можете больше узнать о макетах и ​​атрибутах .

Затем давайте посмотрим на MainActivity . Это код Java, который был создан для MainActivity .

public class MainActivity extends AppCompatActivity {

    // The onCreate method is called when an Activity starts
    // This is where we will set up our layout
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // setContentView sets the Activity's layout to a specified XML layout
        // In our case we are using the activity_main layout
        setContentView(R.layout.activity_main);
    }
}
 

Как определено в нашем Android-манифестах, MainActivity будет запускаться по умолчанию, когда пользователь запустит приложение HelloWorld .

Наконец, откройте файл с именем build.gradle расположенный в app/ .
Android Studio использует систему сборки Gradle для компиляции и сборки приложений и библиотек Android.

apply plugin: 'com.android.application'

android {
signingConfigs {
         applicationName {
             keyAlias 'applicationName'
             keyPassword 'password'
             storeFile file('../key/applicationName.jks')
             storePassword 'anotherPassword'
         }
     }
    compileSdkVersion 26
    buildToolsVersion "26.0.0"

    defaultConfig {
        applicationId "com.stackexchange.docs.helloworld"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        signingConfig signingConfigs.applicationName
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:26.0.0'
}
 

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

Целесообразно всегда выбирать последнюю версию, доступную для зависимостей:

compileSdkVersion

compileSdkVersion - это ваш способ сказать Gradle, какую версию Android SDK нужно скомпилировать. Использование нового Android SDK - это требование использовать любой из новых API, добавленных на этом уровне.

Следует подчеркнуть, что изменение вашей команды compileSdkVersion не изменяет поведение во время выполнения. Хотя при изменении вашей compileSdkVersion могут появляться новые предупреждения / ошибки compileSdkVersion , ваша compileSdkVersion не включена в ваш APK: она используется исключительно во время компиляции.

Поэтому настоятельно рекомендуется всегда компилировать последнюю версию SDK. Вы получите все преимущества новых проверок компиляции существующего кода, избегайте новых устаревших API и будьте готовы использовать новые API.

minSdkVersion

Если compileSdkVersion устанавливает новейшие API-интерфейсы для вас, minSdkVersion является нижней границей для вашего приложения. minSdkVersion является одним из сигналов, которые использует Google Play Store для определения того, какие из устройств пользователя могут быть установлены.

Он также играет важную роль во время разработки: по умолчанию lint запускается против вашего проекта, предупреждая вас, когда вы используете какие-либо API выше вашего minSdkVersion , помогая вам избежать проблемы во время выполнения попытки вызова API, который не существует. Проверка версии системы во время выполнения является распространенным методом при использовании API только в новых версиях платформы.

targetSdkVersion

targetSdkVersion - это основной способ, с помощью которого Android обеспечивает передовую совместимость, не применяя изменения поведения, если не будет обновлена targetSdkVersion . Это позволяет вам использовать новые API до того, как они будут работать с изменениями поведения. Обновление для установки последней версии SDK должно быть приоритетным для каждого приложения. Это не означает, что вам нужно использовать каждую новую введенную функцию и не слепо обновлять targetSdkVersion без тестирования.

targetSDKVersion - это версия Android, которая является верхним пределом доступных инструментов. Если targetSDKVersion меньше 23, приложение не нуждается в запросе разрешений во время выполнения для экземпляра, даже если приложение запускается на API 23+. TargetSDKVersion не предотвращает запуск версий Android над выбранной версией Android.

Дополнительную информацию о плагине Gradle можно найти:

Запуск приложения

Теперь давайте запустим наше приложение HelloWorld. Вы можете либо запустить Android Virtual Device (которое можно настроить с помощью AVD Manager в Android Studio, как описано в примере ниже), либо подключить собственное устройство Android через USB-кабель.

Настройка Android-устройства

Чтобы запустить приложение из Android Studio на устройстве Android, вы должны включить USB Debugging в Developer Options в настройках вашего устройства.

Settings > Developer options > USB debugging

Если Developer Options не отображаются в настройках, перейдите в « About Phone и коснитесь номера Build Number семь раз. Это позволит включить Developer Options разработчика в ваших настройках.

Settings > About phone > Build number

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

Запуск из Android Studio

Нажмите зеленую кнопку « Run на панели инструментов в верхней части Android Studio. В появившемся окне выберите любое устройство, на которое вы хотите запустить приложение (при необходимости запустите виртуальное устройство Android или см. Настройка AVD (Android Virtual Device), если вам нужно установить его вверх) и нажмите « OK .

Кнопка запуска

На устройствах под управлением Android 4.4 (KitKat) и, возможно, выше, появится всплывающее окно для авторизации USB-отладки. Нажмите « OK для подтверждения.

Приложение теперь будет установлено и запущено на вашем устройстве Android или эмуляторе.

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

Когда вы готовите приложение к выпуску, вы настраиваете, создаете и тестируете версию своего приложения. Задачи настройки просты, включая основные операции очистки кода и изменения кода, которые помогают оптимизировать ваше приложение. Процесс сборки похож на процесс сборки отладки и может быть выполнен с использованием инструментов JDK и Android SDK. Задачи тестирования служат окончательной проверкой, гарантируя, что ваше приложение будет работать в соответствии с реальными условиями. Когда вы закончите подготовку своего приложения к выпуску, у вас есть подписанный файл APK, который вы можете распространять непосредственно пользователям или распространять через рынок приложений, например Google Play.

Android Studio

Поскольку в приведенных выше примерах используется Gradle, расположение сгенерированного файла APK: <Your Project Location>/app/build/outputs/apk/app-debug.apk

IntelliJ

Если вы являетесь пользователем IntelliJ перед переключением на Studio и импортируете проект IntelliJ напрямую, то ничего не изменилось. Расположение выхода будет таким же:

out/production/...
 

Примечание: это будет устаревать иногда около 1.0

Затмение

Если вы импортируете проект Android Eclipse напрямую, не делайте этого! Как только у вас есть зависимости в вашем проекте (банки или проекты библиотек), это не сработает, и ваш проект будет неправильно настроен. Если у вас нет зависимостей, apk будет находиться в том же месте, что и в Eclipse:

bin/...
 

Настройка AVD (Android Virtual Device)

TL; DR В основном это позволяет нам имитировать реальные устройства и тестировать наши приложения без реального устройства.

Согласно документации разработчика Android ,

определение виртуального устройства Android (AVD) позволяет определить характеристики Android Phone, Tablet, Android Wear или Android TV, которые вы хотите имитировать в Android-эмуляторе. AVD Manager помогает вам легко создавать и управлять AVD.

Чтобы настроить AVD, выполните следующие действия:

1. Нажмите эту кнопку, чтобы открыть диспетчер AVD:

Значок AVD Manager

2. Вы должны увидеть такой диалог:

Диалог диспетчера AVD

3. Теперь нажмите кнопку + Create Virtual Device... Это вызовет диалог конфигурации виртуальных устройств:

Диалог настройки виртуального устройства

4. Выберите любое устройство, которое вы хотите, затем нажмите « Next :

Выберите системный образ

5. Здесь вам нужно выбрать версию Android для своего эмулятора. Вам также может потребоваться загрузить его сначала, нажав Download . После того, как вы выбрали версию, нажмите « Next .

Расширенные настройки

6. Здесь введите имя для своего эмулятора, начальную ориентацию и хотите ли вы отображать вокруг него рамку. После того, как вы выбрали все это, нажмите « Finish .

7. Теперь у вас есть новый AVD, готовый для запуска приложений на нем.

АВД

Настройка Android Studio

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

Установка инструментов Android Studio и Android SDK :

  1. Загрузите и установите Android Studio .
  2. Загрузите последние инструменты SDK Tools и SDK Platform, открыв Android Studio, а затем следуя инструкциям Android SDK Tool Updates . Вы должны установить последние доступные стабильные пакеты.

Если вам нужно работать над старыми проектами, которые были созданы с использованием старых версий SDK, возможно, вам также придется загрузить эти версии

Начиная с Android Studio 2.2, копия последней версии OpenJDK поставляется вместе с установкой и является рекомендуемым JDK (Java Development Kit) для всех проектов Android Studio. Это устраняет необходимость установки пакета Oracle JDK. Чтобы использовать пакет SDK, выполните следующие действия:

  1. Откройте проект в Android Studio и выберите « Файл»> «Структура проекта» в строке меню.
  2. На странице местоположения SDK и в местоположении JDK установите флажок Использовать встроенный JDK .
  3. Нажмите « ОК» .

Настройка Android Studio

Android Studio предоставляет доступ к двум файлам конфигурации через меню « Справка» :

  • studio.vmoptions : Настроить параметры виртуальной машины Java Java (JVM), такие как размер кучи и размер кеша. Обратите внимание, что на машинах Linux этот файл можно назвать studio64.vmoptions , в зависимости от вашей версии Android Studio.
  • idea.properties : Настройте свойства Android Studio, такие как путь к папке плагинов или максимальный размер поддерживаемого файла.

Изменить / добавить тему

Вы можете изменить его как свое предпочтение. File->Settings->Editor->Colors & Fonts-> и выберите тему. Также вы можете загружать новые темы из http://color-themes.com/. После того, как вы загрузили файл .jar.zip , перейдите в File -> Import Settings... и выберите загруженный файл.

Компиляция приложений

Создайте новый проект или откройте существующий проект в Android Studio и нажмите зеленую кнопку воспроизведения введите описание изображения здесь на верхней панели инструментов, чтобы запустить его. Если он серый, вам нужно подождать секунду, чтобы Android Studio могла правильно индексировать некоторые файлы, прогресс которых можно увидеть в нижней строке состояния.

Если вы хотите создать проект из оболочки, убедитесь, что у вас есть файл local.properties , который создается Android Studio автоматически. Если вам нужно создать проект без Android Studio, вам потребуется строка, начинающаяся с sdk.dir= а затем путь к установке SDK.

Откройте оболочку и зайдите в каталог проекта. Введите ./gradlew aR и нажмите enter. aR - это ярлык для assembleRelease , который загрузит все зависимости для вас и создаст приложение. Окончательный файл APK будет находиться в ProjectName/ModuleName/build/outputs/apk и будет называться ModuleName-release.apk .