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 Studio
Android Studio - это IDE для разработки Android, которая официально поддерживается и рекомендуется Google. Android Studio поставляется в комплекте с Android SDK Manager , который является инструментом для загрузки компонентов Android SDK
необходимых для начала разработки приложений.
Установка инструментов Android Studio и Android SDK
:
- Загрузите и установите Android Studio .
- Загрузите последние инструменты 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, выполните следующие действия:
- Откройте проект в Android Studio и выберите « Файл»> «Структура проекта» в строке меню.
- На странице местоположения SDK и в местоположении JDK установите флажок Использовать встроенный JDK .
- Нажмите « ОК» .
Настройка 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
.
Создание нового проекта
Настройка Android Studio
Начните с настройки Android Studio и затем откройте ее. Теперь вы готовы сделать свое первое Android-приложение!
Примечание. Данное руководство основано на Android Studio 2.2, но процесс в других версиях в основном одинаков.
Настроить свой проект
Основная конфигурация
Вы можете запустить новый проект двумя способами:
- Нажмите «
Start a New Android Studio Project
с экрана приветствия. - Перейдите к
File
→New Project
если у вас уже открыт проект.
Затем вам нужно описать свое приложение, заполнив некоторые поля:
Имя приложения - это имя будет показано пользователю.
Пример:
Hello World
. Вы всегда можете изменить его позже в файлеAndroidManifest.xml
.Company Domain - это определитель имени пакета вашего проекта.
Пример:
stackoverflow.com
.Имя пакета (aka
applicationId
) - это полное имя пакета проекта.Он должен следовать за реверсивным именем имени домена (aka Reverse DNS ): домен верхнего уровня . Домен компании . [ Сегмент компании . ] Имя приложения .
Пример:
com.stackoverflow.android.helloworld
илиcom.stackoverflow.helloworld
. Вы всегда можете изменить свой applicationId , переопределив его в файле gradle .
Не используйте префикс по умолчанию «com.example», если вы не намерены отправлять свое приложение в Google Play Store. Имя пакета будет вашим уникальным приложением в Google Play.
- Местоположение проекта - это каталог, в котором будет сохранен ваш проект.
Выбор форм-факторов и уровня API
В следующем окне вы можете выбрать форм-факторы, поддерживаемые вашим приложением, такие как телефон, планшет, телевизор, Wear и Google Glass. Выбранные форм-факторы становятся модулями приложения внутри проекта. Для каждого форм-фактора вы также можете выбрать уровень API для этого приложения. Чтобы получить дополнительную информацию, нажмите « Помогите выбрать»
Диаграмма текущих дистрибутивов версий Android, отображаемая при нажатии кнопки «Справка».
В окне «Платформа Android Platform» показано распределение мобильных устройств, работающих с каждой версией Android, как показано на рисунке 2. Нажмите на уровень API, чтобы просмотреть список функций, представленных в соответствующей версии Android. Это поможет вам выбрать минимальный уровень API, который обладает всеми функциями, которые нужны вашим приложениям, поэтому вы можете охватить как можно больше устройств. Затем нажмите « ОК» .
Теперь выберите, какие платформы и версия Android SDK будет поддерживать приложение.
Пока выберите только телефон и планшет .
Минимальный SDK - нижняя граница для вашего приложения. Это один из сигналов, которые использует Google Play Store
для определения того, на каких устройствах может быть установлено приложение. Например, приложение Stack Exchange поддерживает Android 4.1+.
Android Studio сообщит вам (приблизительно), какой процент устройств будет поддерживаться с учетом заданного минимального SDK.
Более низкие уровни API нацелены на большее количество устройств, но имеют меньше доступных функций.
При принятии решения о минимальном SDK вы должны учитывать статистику Dashboards , которая даст вам информацию о версиях устройств, которые посетили Google Play Store по всему миру на прошлой неделе.
С: Панели мониторинга на веб-сайте разработчика 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'
}
Этот файл содержит информацию о версии сборки и вашего приложения, и вы также можете использовать ее для добавления зависимостей к внешним библиотекам. Пока что не будем вносить никаких изменений.
Целесообразно всегда выбирать последнюю версию, доступную для зависимостей:
- buildToolsVersion : 26.0.0
- com.android.support:appcompat-v7 : 26.0.0 (июль 2017 г.)
- firebase : 11.0.4 (август 2017)
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 можно найти:
- Основной пример
- Введение в плагин Gradle для Android и обертки
- Введение в конфигурацию методов build.gradle и DSL
Запуск приложения
Теперь давайте запустим наше приложение 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/...
Android-программирование без IDE
Это минималистский пример Hello World, который использует только самые базовые инструменты для Android.
Требования и допущения
- Oracle JDK 1.7 или новее
- Android SDK Tools (только инструменты командной строки )
Этот пример предполагает Linux. Возможно, вам придется настроить синтаксис для своей собственной платформы.
Настройка Android SDK
После распаковки версии SDK:
Установите дополнительные пакеты с помощью диспетчера SDK. Не используйте
android update sdk --no-ui
как указано в комплекте Readme.txt; он загружает около 30 ГБ ненужных файлов. Вместо этого используйте интерактивный SDK-менеджерandroid sdk
чтобы получить рекомендуемый минимум пакетов.Приложите следующие каталоги JDK и SDK к вашему исполнению PATH. Это необязательно, но приведенные ниже инструкции предполагают это.
- JDK / бен
- SDK / платформенные инструменты
- SDK / инструменты
- SDK / build-tools / LATEST (как установлено на шаге 1)
Создайте виртуальное устройство Android. Используйте интерактивный AVD Manager (
android avd
). Возможно, вам придется немного поиграть и найти совет; инструкции на месте не всегда полезны.(Вы также можете использовать свое устройство)
Запустите устройство:
emulator -avd DEVICE
Если экран устройства заблокирован, проведите по экрану, чтобы разблокировать его.
Оставьте его работать, пока вы программируете приложение.
Кодирование приложения
Перейдите в пустой рабочий каталог.
Сделайте исходный файл:
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 ); } }
Добавьте манифест:
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>
Создайте подкаталог для объявленных ресурсов:
mkdir res
Оставьте его пустым.
Построение кода
Создайте источник для объявлений ресурсов. Замените здесь правильный путь к вашему SDK и установленному API для создания против (например, «android-23»):
aapt package -f \ -I SDK/platforms/android-API/android.jar \ -J src -m \ -M AndroidManifest.xml -S res -v
Объявления ресурсов (описанные ниже) фактически являются необязательными. Между тем вышеупомянутый вызов ничего не делает, если res / все еще пуст.
Скомпилируйте исходный код в байт-код Java (.java → .class):
javac \ -bootclasspath SDK/platforms/android-API/android.jar \ -classpath src -source 1.7 -target 1.7 \ src/dom/domain/*.java
Переведите байт-код с 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
. Это более известный, хорошо документированный и более широко используемый инструмент.Пакет файлов ресурсов, включая манифест:
aapt package -f \ -F app.apkPart \ -I SDK/platforms/android-API/android.jar \ -M AndroidManifest.xml -S res -v
Это приводит к частичному APK-файлу (пакет приложений для Android).
Сделайте полный 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
). (Если вы знаете, как это сделать из командной строки, обновите этот пример.)Оптимизируйте выравнивание данных APK ( рекомендуемая практика ):
zipalign -f -v 4 app.apkUnalign app.apk
Установка и запуск
Установите приложение на Android-устройство:
adb install -r app.apk
Запустите приложение:
adb shell am start -n dom.domain/.SayingHello
Он должен бежать и приветствовать.
Это все. Это то, что нужно, чтобы поздороваться с базовыми инструментами Android.
Объявление ресурса
Этот раздел не является обязательным. Заявки ресурсов не требуются для простого приложения «привет мир». Если они также не требуются для вашего приложения, вы можете упростить сборку, опуская шаг 10 и удалив ссылку на каталог res / с шага 13.
В противном случае, вот краткий пример того, как объявить ресурс и как ссылаться на него.
Добавить файл ресурсов:
mkdir res/values touch res/values/values.xml
Содержание:
<?xml version='1.0'?> <resources> <string name='appLabel'>Saying hello</string> </resources>
Ссылка на ресурс из манифеста XML. Это декларативный стиль ссылки:
<!-- <application a:label='Saying hello'> --> <application a:label='@string/appLabel'>
Ссылка на тот же ресурс из источника Java. Это настоятельная рекомендация:
// v.setText( "Hello world" ); v.setText( "This app is called " + getResources().getString( R.string.appLabel ));
Проверьте приведенные выше изменения, переустановив, переустановив и перезапустив приложение (шаги 10-17).
Он должен перезапустить и сказать: «Это приложение называется Saying hello».
Удаление приложения
adb uninstall dom.domain
Смотрите также
- исходный вопрос - оригинальный вопрос, который вызвал этот пример
- рабочий пример - рабочий скрипт сборки, который использует приведенные выше команды
Основы применения
Приложения для Android написаны на Java. Инструменты Android SDK скомпилируют файлы кода, данных и ресурсов в пакет APK (Android). Как правило, один файл APK содержит весь контент приложения.
Каждое приложение запускается на собственной виртуальной машине (VM), чтобы приложение могло работать отдельно от других приложений. Система Android работает с принципом наименьших привилегий. Каждое приложение имеет доступ только к тем компонентам, которые ему необходимы для выполнения своей работы, и не более того. Тем не менее, есть способы, по которым приложение может обмениваться данными с другими приложениями, например, путем совместного использования идентификатора пользователя Linux между приложением, или приложения могут запрашивать разрешение на доступ к данным устройства, таким как SD-карта, контакты и т. Д.
Компоненты приложения
Компоненты приложения - это строительные блоки приложения для Android. Каждый компонент играет определенную роль в приложении для Android, которое выполняет определенную задачу и имеет различные жизненные циклы (поток того, как и когда компонент создается и уничтожается). Вот четыре типа компонентов приложения:
- Действия: Действие представляет собой один экран с пользовательским интерфейсом (UI). Приложение Android может иметь более одного действия. (например, приложение электронной почты может иметь одно действие для перечисления всех электронных писем, другое - для отображения содержимого каждого электронного письма, а другое - для создания нового сообщения электронной почты.) Все действия в приложении работают вместе для создания пользовательского eXperience (UX).
- Службы: служба работает в фоновом режиме для выполнения длительных операций или для выполнения работы для удаленных процессов. Служба не предоставляет никакого пользовательского интерфейса, она работает только в фоновом режиме с помощью ввода пользователя. (например, служба может воспроизводить музыку в фоновом режиме, когда пользователь находится в другом приложении, или может загружать данные из Интернета, не блокируя взаимодействие пользователя с устройством Android.)
- Поставщики контента. Поставщик контента управляет данными общего доступа. Существует четыре способа хранения данных в приложении: он может быть записан в файл и сохранен в файловой системе, вставлен или обновлен в базу данных SQLite, отправлен в Интернет или сохранен в любом другом постоянном хранилище, к которому приложение может получить доступ , Через контент-провайдеры другие приложения могут запрашивать или даже изменять данные. (например, система Android предоставляет провайдера контента, который управляет контактной информацией пользователя, чтобы любое приложение, имеющее разрешение, могло запрашивать контакты.) Поставщики контента также могут использоваться для сохранения данных, которые являются приватными для приложения, для лучшей целостности данных.
- Широковещательные приемники: широковещательный приемник реагирует на широковещательные сообщения в масштабе всей системы (например, широковещательная передача, показывающая, что экран выключен, батарея разряжена и т. Д.) Или из приложений (например, чтобы другие приложения знали, что некоторые данные были загружается на устройство и доступно для них). У широковещательных приемников нет пользовательских интерфейсов, но они могут показывать уведомление в строке состояния, чтобы предупредить пользователя. Обычно широковещательные приемники используются в качестве шлюза для других компонентов приложения, состоящего в основном из видов деятельности и услуг.
Одним из уникальных аспектов системы Android является то, что любое приложение может запускать компонент другого приложения (например, если вы хотите позвонить, отправить SMS, открыть веб-страницу или просмотреть фотографию, есть приложение, которое уже делает это, и ваше приложение может использовать его вместо того, чтобы разрабатывать новую деятельность для одной и той же задачи).
Когда система запускает компонент, он запускает процесс для этого приложения (если он еще не запущен, то есть только один процесс переднего плана для каждого приложения может запускаться в любой момент времени в системе Android) и создает классы, необходимые для этого компонента. Таким образом, компонент работает на процессе этого приложения, к которому он принадлежит. Поэтому, в отличие от приложений на других системах, приложения Android не имеют ни одной точки входа (нет метода main()
).
Поскольку система запускает каждое приложение в отдельном процессе, одно приложение не может напрямую активировать компоненты другого приложения, однако система Android может. Таким образом, чтобы запустить компонент другого приложения, одно приложение должно отправить сообщение в систему, которое указывает на намерение запуска этого компонента, затем система запустит этот компонент.
контекст
Экземпляры класса android.content.Context
обеспечивают подключение к системе Android, которая выполняет приложение. Экземпляр контекста необходим для доступа к ресурсам проекта и глобальной информации о среде приложения.
Давайте рассмотрим простой пример: подумайте, что вы в отеле, и вы хотите что-то съесть. Вы звоните в номер-сервис и попросите их принести вам вещи или убрать вещи для вас. Теперь подумайте об этом отеле как о приложении для Android, о себе как о деятельности, а человек, обслуживающий комнату, - это ваш контекст, который предоставляет вам доступ к ресурсам отеля, таким как обслуживание в номерах, продукты питания и т. Д.
Еще один пример: вы находитесь в ресторане, сидящем на столе, в каждом столе есть помощник, когда вы хотите заказать продукты, которые вы попросите у сопровождающего сделать это. Затем сопровождающий размещает ваш заказ, и ваши продукты питания подаются на вашем столе. Опять же, в этом примере ресторан представляет собой приложение для Android, таблицы или клиенты - это компоненты приложения, продукты питания - это ресурсы вашего приложения, а сопровождающий - ваш контекст, что дает вам доступ к ресурсам, таким как продукты питания.
Для активации любого из вышеуказанных компонентов требуется экземпляр контекста. Не только только выше, но почти каждый системный ресурс: создание пользовательского интерфейса с использованием представлений (обсуждается позже), создание экземпляра системных сервисов, запуск новых действий или служб - все требует контекста.
Более подробное описание написано здесь .
Настройка AVD (Android Virtual Device)
TL; DR В основном это позволяет нам имитировать реальные устройства и тестировать наши приложения без реального устройства.
Согласно документации разработчика Android ,
определение виртуального устройства Android (AVD) позволяет определить характеристики Android Phone, Tablet, Android Wear или Android TV, которые вы хотите имитировать в Android-эмуляторе. AVD Manager помогает вам легко создавать и управлять AVD.
Чтобы настроить AVD, выполните следующие действия:
1. Нажмите эту кнопку, чтобы открыть диспетчер AVD:
2. Вы должны увидеть такой диалог:
3. Теперь нажмите кнопку + Create Virtual Device...
Это вызовет диалог конфигурации виртуальных устройств:
4. Выберите любое устройство, которое вы хотите, затем нажмите « Next
:
5. Здесь вам нужно выбрать версию Android для своего эмулятора. Вам также может потребоваться загрузить его сначала, нажав Download
. После того, как вы выбрали версию, нажмите « Next
.
6. Здесь введите имя для своего эмулятора, начальную ориентацию и хотите ли вы отображать вокруг него рамку. После того, как вы выбрали все это, нажмите « Finish
.
7. Теперь у вас есть новый AVD, готовый для запуска приложений на нем.