Первое Android‑приложение с нуля: от установки до запуска
Чтобы создать первое Android‑приложение — установите Android Studio, создайте проект с Empty Activity на Kotlin, опишите интерфейс в activity_main.xml и логику в MainActivity.kt, затем соберите и запустите на эмуляторе или реальном устройстве. Ниже — краткая, практичная пошаговая инструкция с пояснениями и рабочим примером.
Подготовка окружения и быстрая настройка
- Минимальные требования: 8 ГБ RAM (лучше 16), 64‑битный процессор с виртуализацией, 15–20 ГБ свободного места.
- Установка Android Studio: запустите стандартный инсталлятор, установите SDK и инструменты сборки по умолчанию.
- SDK и AVD:
- В SDK Manager выберите актуальную платформу (например, Android 14/15) и Build Tools.
- В AVD Manager создайте виртуальное устройство (рекомендуется x86_64 образ для производительности).
Если виртуализация (Intel VT‑x / AMD‑V) отключена в BIOS/UEFI, эмулятор будет медленным или не запустится — включите её.
Для слабого ПК выбирайте образы с меньшим разрешением, отключайте анимации и используйте cold boot реже — сборка будет быстрее.
Структура проекта и пример кода
При создании проекта выберите Empty Activity, Kotlin и задайте уникальный package name (например, com.example.myfirstapp). Ключевые файлы и их роль:
Короткая схема
- app/src/main/java/.../MainActivity.kt — логика экрана.
- app/src/main/res/layout/activity_main.xml — разметка интерфейса.
- app/src/main/AndroidManifest.xml — описание приложения и активностей.
- app/build.gradle(.kts) — зависимости и конфигурация сборки.
Пример: экран с текстом и кнопкой
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:padding="16dp">
<TextView
android:id="@+id/tvMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Привет, Android!"
android:textSize="24sp"
android:padding="8dp" />
<Button
android:id="@+id/btnChangeText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Изменить текст"
android:layout_marginTop="16dp" />
</LinearLayout>
MainActivity.kt:
package com.example.myfirstapp
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.widget.Button
import android.widget.TextView
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val tvMessage: TextView = findViewById(R.id.tvMessage)
val btnChangeText: Button = findViewById(R.id.btnChangeText)
btnChangeText.setOnClickListener {
tvMessage.text = "Текст изменён! Это ваше первое Android‑приложение."
}
}
}
Для первого проекта достаточно связки XML + Kotlin. Позже можно перейти на View Binding или Jetpack Compose для более удобной работы с UI.
Короткая таблица: ключевые файлы проекта
| Файл | Где | Назначение |
|---|---|---|
| MainActivity.kt | app/src/main/java/... | Логика экрана, обработка событий |
| activity_main.xml | app/src/main/res/layout | Разметка интерфейса |
| AndroidManifest.xml | app/src/main | Описание активностей, разрешений |
| app/build.gradle(.kts) | app/ | Зависимости и параметры сборки |
| strings.xml | app/src/main/res/values | Текстовые ресурсы интерфейса |
Сборка и запуск: эмулятор и реальное устройство
- На панели Android Studio выберите устройство: AVD или подключённый телефон.
- Нажмите Run (зелёный треугольник). Gradle соберёт APK и установит его.
- На эмуляторе проверьте работу: нажмите кнопку — текст изменится.
- Для реального устройства:
- Включите Режим разработчика и USB‑отладку.
- Подключите кабелем, подтвердите доступ на телефоне и выберите устройство в списке.
Если сборка падает:
- Проверьте совпадение id в XML и findViewById.
- Убедитесь, что в build.gradle версии SDK и библиотек совместимы.
- Посмотрите логи в Run/Logcat — там есть точная причина ошибки.
Частые ошибки
- Неправильный package name или конфликт зависимостей в Gradle.
- Забыт setContentView в onCreate — экран будет пустым.
- Использование findViewById до setContentView — NullPointerException.
- Отключённая виртуализация — AVD не запускается или тормозит.
- Запросы на разрешения в манифесте, которые не обрабатываются в рантайме (для Android 6+).
FAQ
- Нужно ли знать Java? Коротко: не обязательно — Kotlin рекомендуем для новых проектов, но знание Java помогает.
- Как выбрать Minimum SDK? Выбирайте минимальную версию, покрывающую целевую аудиторию; для обучения подойдёт API 24+.
- Что быстрее учить: XML или Compose? XML проще для понимания основ; Compose — современнее и эффективнее для сложных UI, но требует изучения концепций.
- Как отлаживать ошибки на устройстве? Используйте Logcat, брейкпойнты в Android Studio и adb logcat при необходимости.
Что дальше: добавьте второй экран (Activity), сохраняйте состояние (ViewModel, savedInstanceState), изучите RecyclerView и работу с сетью (Retrofit) — это естественные шаги после первого приложения. Удачи в разработке!