Написання програм під андроїд. Створення проекту у Android Studio. Встановлення середовища розробки Android Studio

У будь-якій справі найскладніше – це початок. Часто буває важко увійти в контекст, з чим зіткнувся і я, вирішивши розробити свій перший Android-додаток. Ця стаття для тих, хто хоче почати, але не знає з чого.

Стаття торкнеться всього циклу розробки програми. Разом ми напишемо просту гру "Хрестики-Нолики" з одним екраном (в ОС Android це називається Activity).

Відсутність досвіду розробки на мові Java не повинна перешкоджати освоєнню Android. Так, у прикладах не будуть використовуватися специфічні для Java конструкції (або вони будуть мінімізовані на стільки, наскільки це можливо). Якщо Ви пишете, наприклад, на PHP і знайомі з основними принципами розробки ПЗ, ця стаття буде вам найбільш корисна. У свою чергу, оскільки я не є експертом з розробки на Java, можна припустити, що вихідний код не претендує на лейбл “найкращі практики розробки на Java”.

Встановлення необхідних програм та утиліт

Перелічу необхідні інструменти. Їх 3:

  1. IDE з підтримкою розробки для Android:
    • Eclipse + ADT plugin;
    • IntelliJ IDEA Community Edition;
    • Netbeans + nbandroid plugin;

Утиліти встановлюються у визначеному вище порядку. Ставити всі перелічені IDE сенсу немає (хіба що якщо Ви відчуваєте труднощі з підходящим вибором). Я використовую IntelliJ IDEA Community Edition, одну з найрозвиненіших на даний момент IDE для Java.

Запуск віртуального пристрою

Запустивши AVD Manager і встановивши додаткові пакети (SDK різних версій), можна розпочати створення віртуального пристрою з необхідними параметрами. Розібратися в інтерфейсі не повинно бути складно.

Список пристроїв

Створення проекту

Мені завжди не терпиться розпочати роботу, мінімізуючи підготовчі заходи, до яких належить створення проекту в IDE, особливо коли проект навчальний і на продакшн не претендує.

Отже, File->New Project:

Після натискання кнопки F6 проект збереться, відкомпілюється і запуститься на віртуальному девайсі.

Структура проекту

На попередньому скріншоті видно структуру проекту. Оскільки в цій статті ми переслідуємо суто практичні цілі, зверніть увагу лише на ті папки, які будемо використовувати в процесі роботи. Це такі каталоги: gen, resі src.

В папці genзнаходяться файли, які генеруються автоматично під час складання проекту. Вручну їх міняти не можна.

Папка res призначена для зберігання ресурсів, таких як картинки, тексти (у тому числі переклади), за замовчуванням, макети (layouts).

src- це папка у якій відбуватиметься переважна більшість роботи, бо тут зберігаються файли з вихідними текстами нашої програми.

Перші рядки

Як тільки створюється Activity (екран програми), викликається метод onCreate(). IDE заповнила його 2 рядками:
super.onCreate(savedInstanceState); setContentView(R.layout.main);
Метод setContentView (рівно this.setContentView) встановлює xml-макет для поточного екрану. Далі xml-макети називатимемо «layout», а екрани – «Activity». Layout у додатку буде наступним:

Для цієї програми ідеально підійде TableLayout. Id можна привласнити будь-якому ресурсу. У даному випадку TableLayout присвоєно id = main_l. За допомогою методу findViewById() можна отримати доступ до виду:
private TableLayout layout; // це властивість класу KrestikinolikiActivity public void onCreate(Bundle savedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.main); layout = (TableLayout) findViewById(R.id.main_l); buildGameFiel

Тепер необхідно реалізувати метод buildGameField(). Для цього потрібно згенерувати поле у ​​вигляді матриці. Цим займатиметься клас Game. Спочатку потрібно створити клас Square для осередків та клас Player, об'єкти якого будуть заповнювати ці осередки.

Square.java

package com.example; public class Square ( private Player player = null; public void fill(Player player) ( this.player = player; ) public boolean isFilled() ( if (player != null) ( return true; ) return false; ) () ( return player; ) )

Player.java

package com.example; public class Player ( private String name; public Player(String name) ( this.name = name; ) public CharSequence getName() ( return (CharSequence) name; )

Всі класи нашої програми знаходяться у папці src.

Game.java

package com.example; public class Game ( /** * поле */ private Square field; /** * Конструктор * */ public Game() ( field = new Square; squareCount = 0; // заповнення поля for (int i = 0, l = field.length;i

Ініціалізація Game в конструкторі KrestikinolikiActivity.
public KrestikinolikiActivity() ( game = new Game(); game.start(); // буде реалізований пізніше )

Метод будівництваGameField() класу KrestikinolikiActivity. Він динамічно додає рядки та колонки в таблицю (ігрове поле):
private Button buttons = New Button; //(....) private void buildGameField() ( Square field = game.getField(); for (int i = 0, lenI = field.length; i
У рядку 8 створюється об'єкт, який реалізує інтерфейс View.OnClickListener. Створимо вкладений клас Listener. Він буде видно тільки з КрестікінолікіActivity.
Public class Listener implements View.OnClickListener ( private int x = 0; private int y = 0; public Listener(int x, int y) ( this.x = x; this.y = y; ) public void onClick(View view) ( Button button = (Button) view; ) )
Залишилось реалізувати логіку гри.
public class Game ( /** * гравці */ private Player players; /** * поле */ private Square field; /** * розпочата чи гра? */ private boolean started; /** * поточний гравець */ private Player activePlayer;/** * Вважає кількість заповнених осередків */ private int filled; /** * Усього осередків */ private int squareCount; // Заповнення поля for (int i = 0, l = field.length; i

Визначення переможця

К. О. підказує, що в хрестики-нуліки вириває той, хто вибудує X або O в лінію довжиною, що дорівнює довжині поля по-вертикалі, або по-горизонталі, або по-діагоналі. Перша думка, яка спадає на думку - це написати методи для кожного випадку. Думаю, у цьому випадку добре підійде патерн Chain of Responsobility. Визначимо інтерфейс
package com.example; public interface WinnerCheckerInterface ( public Player checkWinner(); )
Оскільки Game має обов'язок виявляти переможця, він реалізує цей інтерфейс. Настав час створити віртуальних «лайнсменів», кожен із яких перевірятиме свій бік. Всі вони реалізують інтерфейс WinnerCheckerInterface.

WinnerCheckerHorizontal.java

package com.example; Public class WinnerCheckerHorizontal implements WinnerCheckerInterface ( private Game game; public WinnerCheckerHorizontal(Game game) ( this.game = game; ) Public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlay i = 0, len = field.length;

WinnerCheckerVertical.java

package com.example; Public class WinnerCheckerVertical implements WinnerCheckerInterface ( private Game game; public WinnerCheckerVertical (Game game) ( this.game = game; ) Public Player checkWinner() ( Square field = game.getField(); i = 0, len = field.length;

WinnerCheckerDiagonalLeft.java

package com.example; Public class WinnerCheckerDiagonalLeft implements WinnerCheckerInterface ( private Game game; public WinnerCheckerDiagonalLeft(Game game) ( this.game = game; ) Public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player ; 1; for (int i = 0, len = field.length; i

WinnerCheckerDiagonalRight.java

package com.example; Public class WinnerCheckerDiagonalRight implements WinnerCheckerInterface ( private Game game; public WinnerCheckerDiagonalRight(Game game) ( this.game = game; ) Public Player checkWinner() ( Square field = game.getField(); Player currPlayer ; 1; for (int i = 0, len = field.length; i
Проініціалізуємо їх у конструкторі Game:
//(....) /** * "Судді" =). Після кожного ходу вони перевірятимуть, * чи немає переможця */ private WinnerCheckerInterface winnerCheckers; //(....) public Game() ( //(....) winnerCheckers = new WinnerCheckerInterface; winnerCheckers = new WinnerCheckerHorizontal(this); winnerCheckers = new WinnerCheckerVertical(this); winnerCheckers = new WinnerCheckerDiag winnerCheckers = new WinnerCheckerDiagonalRight(this); //(....) )
Реалізація checkWinner():
public Player checkWinner() ( for (WinnerCheckerInterface winChecker: winnerCheckers) ( Player winner = winChecker.checkWinner(); if (winner != null) ( return winner; ) ) return null; )
Переможця перевіряємо після кожного ходу. Додамо код у метод onClick() класу Listener
public void onClick(View view) ( Button button = (Button) view; Game g = game; Player player = g.getCurrentActivePlayer(); if (makeTurn(x, y)) ( button.setText(player.getName()) ; ) Player winner = g.checkWinner(); if (winner != null) ( gameOver(winner); ) if (g.isFieldFilled()) ( // у випадку, якщо поле заповнене gameOver(); ) )
Метод gameOver() реалізований у 2-х варіантах:
private void gameOver(Player player) ( CharSequence text = "Player \"" + player.getName() + "\" won!"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset (); refresh(); ) private void gameOver() ( CharSequence text = "Draw"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset(); refresh(); )
Для Java, gameOver(Player player) та gameOver() - різні методи. Скориставшись Builder"ом Toast.makeText, можна швидко створити та показати повідомлення. refresh() оновлює стан поля:
private void refresh() ( Square field = game.getField(); for (int i = 0, len = field.length; i

Готово! Сподіваюся, ця стаття допомогла Вам освоїтись у світі розробки під OS Android. Дякую за увагу!

Відео готової програми

Як створити мобільний додаток в Android Studio

Android Studio - інтегроване середовище розробки (IDE) на базі IntelliJ IDEA, яке Google називає офіційним IDE для додатків Android.

У цьому посібнику описано розробка програм для android:

  • Навігація між файлами за допомогою провідника
  • Встановлення файлу AndroidManifest.xml
  • Імпорт файлів у проект
  • Розширений редактор макетів з функцією динамічного прев'ю
  • Використання Logcat та Android Monitor для налагодження програм

Початок роботи в Android Studio

Запустіть Android Studio, у вікні Android Studio Setup WizardВиберіть Start a new Android Studio проект(почати новий проект).

У вікні Create New ProjectВиберіть Application Name(назва програми) як Fortune ball («Куля фортуни»), введіть домен компанії; в полі Project locationвиберіть місце, в якому програма буде збережена. Клацніть Next.

Перед вами вікно Target Android Devices. Виберіть Phone and Tablet. В полі Minimum SDKвкажіть API 15. Натисніть Next.

У вікні Add an activity to MobileВиберіть Basic Activity. Оцініть усі опції, у цьому вікні представлений огляд доступних макетів.

Клацніть Next.

У вікні Customize the Activity, скріншот якого розміщено нижче, ви зможете змінити Activity Name(назва активності), Layout Name(назва макета), Title(загальна назва) та Menu Resource Name(Назва меню ресурсів). Залишіть значення за замовчуванням та клацніть Finish.

За кілька секунд з'явиться наступне вікно:

На вашому пристрої або емуляторі висвітиться таке саме вікно. Емулятор функціонує як пристрій, завантаження займе певний час.

Це вже програма. Йому багато чого не вистачає, але зараз можна переходити до наступного кроку.

Структура проекту та файлу

Вікно показує файли проекту.

У меню, що випадає (скриншот нижче) є кілька фільтрів для файлів. Основні - Project та Android.

Фільтр Project покаже всі модулі програми - у кожному проекті є щонайменше один модуль. Серед модулів інших типів є модулі з бібліотек сторонніх розробників, або модулі інших програм Android (такі як програми для Android Wear, Android TV). Кожен із модулів має свій набір характеристик, у т. ч. файл gradle, ресурси та вихідні файли (java-файли).

Примітка. Якщо проект не відкритий, клацніть вкладку Project на лівій стороні панелі, як показано на скріншоті. За промовчанням встановлено фільтр Android, який групує файли за певним типом. На верхньому рівні ви побачите такі папки:

  • manifests
  • Gradle Scripts

У наступних розділах докладно описані всі ці папки, починаючи з manifests.

Огляд AndroidManifest.xml

Кожна програма під Android має файл AndroidManifest.xml, який знаходиться в папці manifests. Цей XML-файл повідомляє вашій системі про вимоги програми. Присутність цього файлу обов'язково, тому що саме він дозволяє системі Android створити програму.

Відкрийте папку manifests та AndroidManifest.xml. Подвійний клік відкриє файл.

Теги manifest і application потрібні manifest, з'являються лише один раз.

Кожен тег також визначає набір атрибутів, поряд із назвою елемента. Наприклад, деякі атрибути в application можуть бути такими:

android:icon, android:label та android:theme

Серед іншого у manifest може з'явитися:

  • uses-permission: запитує спеціальний дозвіл, який видається додатку для коректної роботи. Наприклад, програма повинна вимагати дозволу у користувача, щоб отримати доступ до мережі - у випадку, якщо ви додасте дозвіл android.permission.INTERNET.
  • activity: повідомляє про активність, яка частково відповідає за візуальний UI та логіку. Будь-яка активність, яка передбачена в додатку, повинна додаватися в manifest - невідзначену активність система не помітить, і вона не відображатиметься у додатку.
  • service: додає сервіс, який ви збираєтеся використовувати, щоб реалізувати тривалі операції або розширені комунікації API з іншими програмами. Прикладом у цьому випадку може бути мережевий виклик, за допомогою якого програма отримує дані. На відміну від активностей, сервіси не мають інтерфейсів користувача.
  • receiver: завдяки приймачу широкомовних повідомлень програма отримує сигнали про системні повідомлення або повідомлення інших програм, навіть коли інші компоненти програми не запущені. Приклад такої ситуації - батарея з низьким рівнем заряду та сповіщення про це операційної системи.

Повний перелік тегів можна знайти у manifest-файлі на веб-сайті Android Developer.

Налаштування файлу Manifest

До активності додайте наступний атрибут:

android:screenOrientation="portrait". щоб обмежити екран лише портретним режимом. Якщо цього не зробити, екран, залежно від розташування пристрою, буде або в ландшафтному або портретному режимі. Після додавання атрибута файл manifest виглядатиме як на скріншоті.

Створіть та запустіть програму. Якщо ви тестуєте на своєму пристрої, переверніть його, переконайтеся, що екран не переміщається в ландшафтний режим, якщо ви обмежили цю можливість у AndroidManifest.

Огляд Gradle

Перейдемо до Gradle. Gradle перетворює Android-проект на APK, що встановлюється, який можна встановлювати на пристрої. Файл build.gradle присутній у Gradle scripts, на двох рівнях: модульному та проектному.

Відкрийте файл build.gradle (Module:app). Ви побачите установку gradle за замовчуванням:

apply plugin: "com.android.application" android (compileSdkVersion 25buildToolsVersion "25.0.2" defaultConfig (applicationId "com.raywenderlich.fortuneball"minSdkVersion 15targetSdkVersion 25version .runner.AndroidJUnitRunner")buildTypes (release (minifyEnabled falseproguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"))) dependencies (compile fileTree(dir: "libs", include: ["*.jar"])androidTestCompile(" com.android.support.test.espresso:espresso-core:2.2.2", (exclude group: "com.android.support", module: "support-annotations"))compile "com.android.support:appcompat- v7:25.1.0"compile "com.android.support:design:25.1.0"testCompile "junit:junit:4.12")

Розберемо основні компоненти:

  • apply plugin: ‘com.android.application’ застосовує плагін Android на батьківському рівні та забезпечує доступність завдань верхнього рівня, які потрібні для створення програми.
  • Поруч із розділом android(…) знаходяться опції налаштувань, такі як targetSdkVersion. Цільовий SDK для вашої програми повинен розташовуватися на новітньому рівні API. Ще один важливий компонент - minSDKVersion (визначає мінімальну версію SDK, яка має бути встановлена ​​на пристрої, щоб програму можна було запустити). Наприклад, якщо версія SDK 14, тоді програма буде неможливо запустити на цьому пристрої, оскільки в даному конкретному випадку мінімальна версія 15, що підтримується.
  • Останній компонент – dependencies(…). Необхідно відзначити compile 'com.android.support:appcompat-v7:VERSION' та compile 'com.android.support:design:VERSION'. Вони забезпечують підтримку та сумісність особливостей нових та старих API.

Крім бібліотек сумісності Android, ви можете додати бібліотеки сторонніх розробників до компонента dependencies(…) Бібліотека анімацій, наприклад, містить ефекти інтерфейсу користувача. Знайдіть dependencies, потім додайте вниз дві наступні лінії:

dependencies (... compile "com.daimajia.easing:library:2.0@aar"compile "com.daimajia.androidanimations:library:2.2@aar")

Тут можна додати залежність сторонніх розробників. Бібліотеки автоматично завантажуються та інтегруються в Android Studio. Натисніть Sync Now, щоб інтегрувати ці залежності у свою програму.

Синхронізація триває кілька секунд. Оновлення Gradle відображаються у вкладці Messages нижньої панелі.

Це все налаштування, які вам поки що будуть потрібні в Gradle. Такі маніпуляції додадуть анімацію у додатку.

Імпорт файлів

У розробці програми під Android важлива інтеграція з іншими ресурсами: зображення, кастомні шрифти, звуки, відео та ін. Ці ресурси імпортуються в Android Studio і розміщуються у відповідних папках, що дозволяє операційній системі підбирати коректні ресурси для програми. Для нашої програми Fortune Ball знадобиться імпорт зображень у папки drawable. У цих папках можуть бути зображення або спеціальні файли XML drawables (тобто ви можете малювати форми за допомогою XML-коду і використовувати їх у своїх макетах).

В Android Studio перейдіть з Android до Project

Відкрийте папку res (app > src > main). Клацніть правою кнопкою миші по папці res, виберіть New > Android resource directory.

З'явиться вікно під назвою New Resource Directory.

З списку Resource type виберіть опцію drawable. У списку Available qualifiers виберіть Density, потім натисніть кнопку, яка виділена на скріншоті.

У наступному вікні виберіть XX-High Density зі списку Density. Натисніть OK.

Повторіть все, щоб створити папки drawable-xhdpi, drawable-hdpi та drawable-mdpi. Виберіть X-High, high (високу) та medium (середню) щільність відповідно до списку Density.

Кожна папка, яка має визначник щільності (i.e. xxhdpi, xhdpi, hdpi), містить зображення, які співвідносяться з певною щільністю або роздільною здатністю. Наприклад, папка drawable-xxhdpi містить зображення високої щільності, це означає, що Android-пристрій з екраном високої роздільної здатності витягне зображення з цієї папки. Зображення добре виглядатиме на всіх пристроях Android, незалежно від якості екрану. Більше інформації про щільність екранів міститься у документації Android.

Створивши всі «мальовані» папки, ви можете повернутися до нерозпакованого контенту в папці та скопіювати (cmd + C) зображення з кожної папки та помістити (cmd + V) у відповідну папку Android Studio.

Розмістивши файли, ви побачите вікно Copy. Виберіть OK.

XML View та Dynamic Layout Previews

Створення макета, з яким користувачі можуть взаємодіяти, є важливою частиною процесу. В Android Studio це можна зробити в редакторі макету. Відкрийте content_main.xml із res/layout. У вкладці Design можна переносити елементи інтерфейсу (кнопки, текстові поля).

Праворуч від Design є вкладка Text, яка дозволяє редагувати XML безпосередньо у макеті.

Перед створенням зовнішнього вигляду необхідно визначити деякі значення. Відкрийте strings.xml у вкладці res/values ​​і додайте наступне:

Зауважте питання, які ви можете повідомити “yes” або “no”, then click on the magic ball.

strings.xml містить усі рядки, які з'являються в програмі. Поділ цих рядків на окремі файли полегшує інтернаціоналізацію, т.к. потрібен лише файл рядків для кожної мови, яка потрібна у додатку. Навіть якщо ви не збираєтеся перекладати програму іншими мовами, використовувати файл рядків завжди рекомендується.

Відкрийте dimens.xml в res/values ​​і додайте наступне:

15sp20sp

dimens.xml містить розмірні величини, граничні інтервали для макетів, розміру тексту та ін. Рекомендується зберігати ці дані у файлі, щоб їх можна було використовувати для створення макетів у подальшому.

Поверніться до content_main.xml і замініть весь вміст файлу наступним кодом:

Цей великий код створює макет програми під назвою FortuneBall. На верхньому рівні ви додали RelativeLayout (відносна розмітка визначає позицію дочірніх компонентів щодо батьківського компонента). RelativeLayout можна розтягнути, підігнати під розмір батьківського компонента.

У відносній розмітці додаються дві частини тексту, зображення та кнопка. Всі ці деталі буде видно в порядку додавання. Їх вміст можна буде прочитати в strings.xml (текст) та у drawable (зображення).

Оновлюючи content_main.xml, зверніть увагу на вікно Preview оновлює UI:

Примітка: якщо не видно вікно перегляду, у вкладці Text натисніть кнопку Preview на панелі редактора розмітки праворуч.

Створіть та запустіть.

І ось ви створили макет програми. Але на даному етапі це лише красиве зображення – клік по кнопці ні до чого не приведе.

Об'єднуємо Activity та View

Ви можете використовувати java-файли, розміщені в app/src/main/java щоб встановити логічні зв'язки у додатку.

Відкрийте MainActivity.java і додайте ці дані під існуючі:

Import java.util.Random;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView; import com.daimajia.androidanimations.library.Techniques;import com.daimajia.androidanimations.library.YoYo;

Перші п'ять імпортів вказують на відповідні класи у вашому коді: Random, View, Button, ImageView та TextView. Наступні два імпорти вказують на те, що ви використовуватимете два класи з бібліотек, у т.ч. build.gradle для анімацій. У MainActivity.java до класу MainActivity додайте:

String fortuneList = ("До нього нема", "Як можу повідомити про це", "Ви можете йти на нього", "Якщо ви не згодні", "Якщо ви не знаєте", "Він не згоден", "Signs point to yes","Yes definitely","Yes","My sources say NO");

У цьому невеликому відрізку коду ви встановили 4 змінні активності. Перший - рядки, які визначають можливі стани, інші три - елементи UI, які ви створили в макеті/розмітці.

Тепер замініть вміст методу onCreate() на наступні дані:

// 1:super.onCreate(savedInstanceState); // 2: setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); (TextView) findViewById(R.id.fortuneText);mFortuneBallImage = (ImageView) findViewById(R.id.fortunateImage);mGenerateFortuneButton = ( Button) findViewById(R.id.fortuneButton); // 4:mGenerateFortuneButton.setOnClickListener(new View.OnClickListener() (@Overridepublic void onClick( View view) (// 5:int index = new Random().nextInt(fortuneList.length);mFortuneText.setText(fortuneList);// 6:YoYo.with(Techniques.Swing).duration(500).playOn(mFortuneBallImage);)));

  • Перевірте, чи активність готова (реалізація суперкласу).
  • Вкажіть, що макет для цієї активності представлений макетом, який ви створили раніше, перевірте панель інструментів.
  • Заповніть значення трьох змінних, які ви створили насамперед у компонентах views макету за допомогою методу findViewById. Значення id те саме, що й у макеті XML.
  • Додайте OnClickListener на кнопці. Це простий клас, який інкапсулює (пакує) функціональність, яку, своєю чергою, викликає натискання кнопки.
  • Виберіть довільний варіант з набору fortuneList для цієї програми, і оновіть текст fortune text, щоб показати.
  • Використовуйте бібліотеку сторонніх розробників, щоб додати залежність у файл gradle, і таким чином додати анімацію до програми.

Вже майже готове. Але потрібно прибрати плаваючу кнопку. Перейдіть в res/layout та відкрийте activity_main.xml.

Цей файл макета містить посилання на content_main.xml, який ви раніше редагували. Він за замовчуванням визначає контент (тулбар і кнопка дії, що плаває). Однак у даному конкретному додатку (Fortune Ball) плаваюча кнопка не потрібна. Тому приберіть наступний блок коду з xml-файлу:

Тепер у правому нижньому кутку немає кнопки, що плаває.

Поставте питання (What's my fortune?) - Натисніть кнопку. Перевірте роботу програми.

Android Monitor

В Android Studio міститься безліч інструментів. Відкрийте вкладку Android Monitor у нижній частині вікна Android Studio.

Тут ви знайдете багато опцій для розробника.

  • Камера та кнопка play зліва дозволяють робити скріншоти та записувати відео.
  • Збільшувальне скло відкриває ряд додаткових опцій, наприклад, аналіз пам'яті програми.
  • Layout Inspector надає візуальний інтерфейс, який визначає, чому інтерфейс програми виглядає певним чином.

LogCat надає детальний огляд системних повідомлень з можливістю вникнути в дані певної програми, або навіть використовувати рядок пошуку, щоб відфільтрувати повідомлення, якщо вони не містять специфічних символів.

Перевірте, що ви вибрали Show only selected application у верхньому правому кутку, як було показано на скріншоті вище. Тепер буде видно лише повідомлення вашої програми.

У MainActivity.java додайте до списку імпортів наступне:

Import android.util.Log;

В кінці onCreate() в MainActivity.java додайте наступну лінію:

Log.v("FORTUNE APP TAG","onCreateCalled");

Log.v викликає два параметри - тег та повідомлення. У даному випадку тег визначено як “FORTUNE APP TAG”, а повідомлення “onCreateCalled”.

Запустіть програму, щоб бачити повідомлення лога на панелі Logcat.

Відфільтруйте вміст LogCat, впишіть onCreateCalled у пошуковий рядок над консоллю:

Потім видаліть пошуковий текст, щоб знову побачити всі повідомлення лога.

Ще одна корисна функція - logcat, це можливість переглядати повідомлення про помилку. Додайте баг у свій цілком функціональний додаток, щоб подивитися, як все влаштовано.

Перейдіть до MainActivity.java і змініть наступну лінію onCreate():

//mFortuneText = (TextView) findViewById(R.id.fortuneText);

Запустіть програму. Клацніть кнопку What's My Fortune? Не працює!

Як би ви виправили помилку, якби не знали про наявність бага? У цьому допоможе Logcat.

Перейдіть до панелі Logcat - вона виглядає приблизно так:

Тут багато червоного тексту. В даному випадку проблема в лінії 50 у файлі MainActivity.java. LogCat перетворив це посилання на гіперпосилання синього кольору. Якщо її натиснути, можна дізнатися, у чому проблема.

Змінивши mFortuneText = (TextView) findViewById(R.id.fortuneText), ви цим створили змінну, але з вказали її значення - звідси виняток нульового покажчика. Поверніться назад і змініть код, запустіть програму. На цей раз все працює гладко. Logcat – корисний інструмент для пошуку помилок.

Share this article:

Related Articles

Операційна система Android з кожним роком стає не лише придатною ОС для звичайних користувачів, а й потужною платформою для розробників. Що ж вдієш: Google завжди йде назустріч девелоперам, надаючи широкі можливості та потужний інструментарій, заправлений інформативною документацією.
До того ж не варто зважати на той факт, що «зелений робот» є лідером за популярністю серед мобільних операційних систем. Це говорить про те, що, програмуючи під Android, ви матимете широку аудиторію, яка згодом може принести прибуток. Загалом, Android – своєрідний «оазис» для розробників. Тому ми підготували для вас спеціальну добірку мов програмування, а також середовищ розробки для цієї ОС.
Увага, невелике настанова новачкам
: програмування на Android може спочатку здатися складним або надто монотонним Порада: попередньо розгляньте посилання на корисні документації, перш ніж братися за справу, і тоді програмування на Android не стане для вас проблемою.

Java - основний засіб для Android-розробника

Середовища розробки: Android Studio (IntelliJ IDEA) , Eclipse + плагін ADT
Підійде дляширокого спектра завдань
Java – основна мова для програмістів під Android, обов'язковий маст-хев для новачків. Основний вихідний код Android написаний саме цією мовою, так що легко зрозуміти, чому більшість вибирають саме цю мову. Програми, написані на Java, запускаються в Android за допомогою віртуальної машини ART (або Dalvik в Jelly Bean і більш ранніх версіях Android) - аналога віртуальної машини Java, через яку у Google присутні серйозні судові позови з Oracle.

Google на даний момент офіційно підтримує досить потужне середовище розробки Android Studio, яке зібрано на основі Intellij IDEA від JetBrains. Також не варто забувати про дуже докладну документацію від Google, в якій розбирається все: від match_parent і wrap_content до конструкторів, констант та основних методів класу JavaHttpConnection обов'язково варто почитати.

Крім того, не варто забувати про Eclipse - дуже популярне середовище для Java-програмістів. З офіційним плагіном ADT від Google цей тулкіт стане потужною та легковажною зброєю у ваших руках. Але хлопці з Маунтін-В'ю ще з літа минулого року перестали підтримувати Eclipse, поступившись місцем свіжої Android Studio. Рекомендується використовувати на слабких комп'ютерах.

Необхідна документація:

С++ - потужний інструмент у руках майстра

Основні середовища розробки: Android Studio (версія 1.3 і вище), Visual Studio 2015, QtCreator
Підійде дляігрових двигунів та ресурсоємних додатків.
С++ - немолода, але дуже потужна мова програмування, яка відзначила минулого року своє тридцятиріччя. Був винайдений в 1985 завдяки старанням товариша Бйорна Страуструпа і досі займає верхні позиції найпопулярніших мов програмування. "Плюси" надають вам повну свободу дії, обмежуючи вас лише рамками розумного.


За все існування Android було створено чимало фреймворків та засобів розробки для C++. Особливо хочеться виділити широко відомий Qt і IDE QtCreator, що дозволяють розробляти кросплатформні програми для Windows, Windows Phone, Windows RT, iOS, SailfishOS та Android (колись у цей список входив ще й Symbian). Крім того, ви отримуєте зручну бібліотеку контейнерів, алгоритмів і шаблонів Tulip, що ввібрала все найкраще з Java і Android. Ну і, нарешті, ви отримуєте безліч різних QT-модулів для високо-і низькорівневої роботи із системою. Ваш покірний слуга кодує саме у зв'язці C++ та Qt.

Минулого року на конференції Windows: The Next Champter було приділено широку увагу досить популярному середовищу розробки Visual Studio 2015. Одним із головних нововведень стала підтримка розробки додатків як під Windows Phone, так і під Android - Microsoft намагалася хоч якось збільшити кількість додатків своєї ОС.

Не можна також не згадати, що офіційний Android Studio став підтримувати NDK. За допомогою NDK ви зможете використовувати під час роботи з Android графіку OpenGL. Якщо вам потрібна швидкість та ефективність – вибирайте NDK! Цей метод розробки відмінно підійде для ігрових двигунів, що вимагають великої продуктивності.

Android розробка на C або C++ може здатися більш простою ніж на Java, але, незважаючи на те, що мова пропонує вам повну свободу дій і не обмежує вас у ваших кроках, він має деякі специфічні особливості, на вивчення яких піде чимало часу - недарма C++ порівнюють з нунчаками (чудовою зброєю, яка, на жаль, вимагає величезної майстерності). Тим не менш, розробка додатків під Android на C і C + + може виявитися цікавою справою.

Необхідна документація:

Інші мови

Тепер саме час розповісти про інші менш популярні, але теж цікаві мови та фреймворки для них. Однак з багатьох причин ви не зможете досягти такого успіху як з Java та C++.

Корона (LUA Script)


Підійде длястворення ігор та простих додатків
Якщо вам з якихось причин не хочеться вивчати Java або розбиратися в побудові інтерфейсу через XML, ви можете вибрати для себе дане IDE. Corona - це досить легковажна середовище розробки, код в якій необхідно писати на легкому LUA (любителі Pascal гідно оцінять).

Цей тулкіт допоможе вам при написанні найпростіших 2D-ігор, для яких тут є бібліотеки для 2D=об'єктів, звуків, мережі та ігрового двигуна. Створені ігри працюють із OpenGL, що означає високу ефективність. Відмінно підходить для новачків, можливо, саме на ньому ви зможете створити свій перший мобільний додаток на Android!


Необхідна документація:

Adobe PhoneGap (HTML5, JavaScript, CSS)


Підійде длястворення нересурсоємних додатків
Якщо ви вже знайомі з HTML, CSS і JavaScript, як альтернативу ви можете спробувати PhoneGap. Це IDE дозволить збирати повноцінні програми, розроблені вищезгаданими мовами програмування та розмітки.

Насправді готові програми з PhoneGap являють собою найпростіші WebView, жваві за допомогою JavaScript. За допомогою різноманітних API ви зможете використовувати різний функціонал пристрою як на нативних додатках. Що цікаво – програми компілюються на сервері і потім вже доступні для використання на iOS, Android, Windows Phone, Web OS та BlackBerry OS. З такою широкою кросплатформністю розробка програм може значно прискоритися.


Необхідна документація:

Fuse (JavaScript та UX)


Підійде длястворення як простих, так і складних програм
Коли люди говорять про засоби розробки під Android, часто згадують Fuse. Цей інструмент - один із найзручніших у своєму роді, і він може представити перед розробником широкий спектр можливостей та переваг.

Основна логіка Fuse-додатків будується на JavaScript - простою та зрозумілою мовою з низьким порогом входження. Інтерфейсний фундамент представляє UX-розмітка - інтуїтивно зрозуміла кожному. Ну а «плюшки» середовища дозволять вам застосовувати зміни прямо під час роботи програми на вашому пристрої або емуляторі - як у Android Studio 2.0 і вище. За допомогою Fuse розробка програм для Android може виявитися нескладною та приємною.

Необхідна документація:

Слова «під завісу»

Звичайно, ми вам показали далеко не всі існуючі на даний момент інструменти розробки. Цією статтею ми вам хотіли пояснити, що стати Android-розробником не так вже й складно, хоча це часто вимагає старанності та завзятості. Світ розробки під мобільні платформи є відкритим для вас, але пам'ятайте: перший крок завжди за вами.

Отже, ви вирішили стати розробником мобільних програм для операційної системи Android. Це чудове рішення, але без певних знань працювати не вдасться. Як мінімум вам потрібно навчитися програмування. Є кілька мов програмування, і вам потрібно буде вибрати, з якого ви почнете. Різниця між ними є, і розібратися може бути не надто просто.

Ось мови програмування, які може розглядати для себе майбутній Android-розробник:

  • Java – це офіційна мова розробки для Android, і вона підтримується середовищем розробки від Google. Вивчити його може бути не так просто.
  • Kotlin – ця мова була представлена ​​як друга офіційно підтримувана мова. Багато в чому він схожий на Java, але працювати з ним простіше.
  • C / C ++ - Android Studio підтримує C ++. Ця мова ще складніша, але вона активно застосовується при розробці ігор.
  • C# – ця мова може сподобатися початківцям. Він підтримується середовищами розробки Unity та Xamarin. Вони дають переваги при розробці ігор та продуктів для різних платформ.
  • BASIC – ця мова підтримує середовище розробки B4A IDE, яке є простим, але потужним інструментом.
  • Corona/LUA – середовище LUA хороше для розробки крос-платформних продуктів. Вона значно спрощує створення програм та надає доступ до нативних бібліотек.
  • PhoneGap (HTML, CSS, JavaScript) – це варіант для тих, хто вміє створювати інтерактивні веб-сторінки. З PhoneGap ви зможете схожим чином створювати крос-платформні програми.

Тепер розберемо ці варіанти докладніше.

Java

Мова програмування Java першим спадає на думку, коли мова заходить про розробку під Android. Java був випущений компанією Sun Microsystems у 1995 році. Він використовується для різних типів програм. Якщо говорити про Android-додатки, Java - це найкращий вибір для тих, хто хоче піти в розробку для Android з головою. Однак це не найкраща мова для новачка. Ви неодмінно зіткнетеся з труднощами. Якщо ви початківець, хочете створити гру або хочете почати навчання, але ще не визначилися, якого саме результату ви хочете досягти, можливо, слід почати з чогось простішого.

Kotlin

Kotlin, як і Java, хороший для розробки Android-додатків. Відмінність у тому, що Kotlin простіше для початківців, але все ще не простіше, ніж багато інших варіантів. Він заслуговує на увагу, так як мова молодий, і ви можете працювати з ним в Android Studio, що є великим плюсом.

C/C++

Не найкращий вибір для створення простих програм. Ви можете працювати з мовою в Android Studio за допомогою Android NDK, але на відміну від Java та Kotlin вона не виконується на Java Virtual Machine. Однак він працює на пристрої, що може дати вам більше можливостей у роботі з пам'яттю. Ви можете досягти за його допомогою кращої продуктивності у випадку з 3D-іграми. Якщо це ваш вибір, готуйтеся до труднощів. Можливо, вам краще використовувати готовий ігровий двигун для створення ігор.

C#

C# - це простіша версія C і C++, розроблена компанія Microsoft. З цією мовою вам не потрібно дбати про роботу з пам'яттю, як і у випадку з Java. Однак C# сучасніший і чистіший, порівняно з Java. C# і Unity виявляться дуже корисними та простими у розробці ігор. Для розробки додатків середовище Unity не таке гарне. C# - відмінний вибір, але він обмежить ваші можливості у випадку, якщо ви бажаєте стати професійним Android-розробником.

BASIC

Ця мова – найкращий варіант для початківця. Ви зможете використовувати його у середовищі розробки B4A. Ця комбінація не надто добре підходить для створення ігор, але вона ідеальна для того, щоб навчитися розробці. Ви зможете дізнатися багато нового без зайвої праці та створити непогані програми. Проте за всі ці радощі доведеться заплатити грошима. Ви навчитеся чогось нового, але професіоналом не стати, вміючи лише програмувати на BASIC.

Corona

Corona у зв'язці з LUA дозволить розробляти не тільки для Android, і це значно простіше, ніж починати вивчати Java. Вам сподобається, і результат порадує, але для того, щоб розвивати свої навички, доведеться вчити щось ще. Як і у випадку з BASIC, професіоналом не стати.

PhoneGap

Останній варіант підходить для тих, хто хороший у веб-розробці та може створити інтерактивний сайт, використовуючи HTML, CSS та JavaScript. PhoneGap дозволить цими ж інструментами створити програму. Цей варіант має дуже мало спільного з розробкою для Android, але підійде, якщо ви маєте конкретну мету і не плануєте розробляти для Android у майбутньому.

Варіантів багато. Впевнені, ви можете зробити правильний вибір.

За матеріалами Android Authority

Операційна система Android на сьогодні є однією з найпопулярніших мобільних платформ у всьому світі. Практично кожен власник Android смартфона хотів би отримати унікальну програму, яка підійде в конкретному випадку саме йому, але не завжди можна знайти таку програму. У цій статті ми поговоримо з вами про те, як зробити програму для Андроїд самому за допомогою безкоштовних способів.

Через стрімкий розвиток платформи Android, деякі функції описаних програм можуть змінюватися, тому для уточнення будь-яких деталей пишіть у коментарях. Остання редакція – 20.01.2018.

Звичайно, прогрес не стоїть на місці і з розвитком ОС Android з'являється все більше можливостей для створення різноманітних додатків, які підходять до неї. І якщо ще недавно, його міг створити лише фахівець, який навчився цьому в інституті, то тепер цим може зайнятися будь-який власник телефону або планшетаАндроїд онлайн онлайн.

Користувачі можуть створити власну програму для того, щоб порадувати себе унікальною програмою. А можуть зробити його для того, щоби заробити трохи грошей. Сьогодні інтернет дає для цього усі можливості.

Описані нижче інструменти дозволять створити власний додаток у кілька етапів.

Деякі з представлених програм дозволяють не просто зробити, а й відразу монетизуватийого. Також будь-яку із створених програм можна буде розмістити в системі Google Play.

Чотири способи як зробити додаток для Андроїд самому

Нижче ви знайдете чотири «інструменти», які дозволять вам створити таку програму швидко і без особливих знань. Такі програми нагадують конструктори, які по блоках дозволяють створити все, що вам потрібно, хороша аналогія зі складання всім знайомого конструктора LEGO.

Всі програми, представлені тут, підбиралися за такими критеріями:

  • Зручне використання. Звичайно користуватися цими пропозиціями буде не навчені фахівці, а звичайні користувачі, такі як ми з вами. Саме тому, додаток має бути дуже зручним, функціональним і простим в ознайомленні.
  • Інтуїтивно простий інтерфейс. Якщо говорити логічно, то цей пункт начебто випливає з попереднього, що означає програма має бути не просто зручною, а й інтуїтивно зрозумілою.
  • Великий функціонал. Велика різноманітність способів створення програми це безперечний плюс. Хоча всі представлені програми, у середньому, мають одні й самі функції, крім деяких дрібниць.

Нижче познайомимося з добіркою інструментів, які допоможуть вам створити свій перший додаток.

App Builder - простий інструмент для створення програм

Цей варіант є гарним способом для створення власних програм швидко. Без сумніву, тішить і те, що його можна використовувати не вкладаючи ні копійки, а отже безкоштовно. Хоча тут є і мінуси, як мінімум у тому, що він повністю англійською мовою (після оновлення у грудні 2017, додали російську мову).

Можливості програми

  • Наведено величезний вибір шаблонів для того, щоб створити програму. Якщо у вас у задумі якийсь простий додаток, то ця програма з легкістю допоможе підібрати шаблон;
  • Після створення програми можна буде стежити за його статистикою;
  • Якщо ви створите додаток і він пройде перевірку, його можна просто і досить зрозуміло розмістити в магазині Google Play.

AppsGeyser - сайт для створення якісних додатків на Андроїд своїми силами

Офіційний сайт - https://www.appsgeyser.com

Цей інструмент якісніший за попередній, адже тут набагато більше можливостей для створення власної програми. Сайт дозволяє створити свою програму буквально за кілька хвилин. Цей редактор найпростіший із усіх, що нам зустрічалися. Список додатків, які він допоможе вам зробити дуже великий, починаючи від звичайного браузера і закінчуючи власним месенджером.

Переваги AppsGeyser

  • Програма пишеться досить швидко, буквально в пару кліків;
  • Воно дозволяє створити прості ігри для Android, адже погодьтеся, що не кожен інструмент сьогодні може це зробити;
  • Після того, як програма буде готова, її з легкістю можна буде розмістити в магазині Google Плей;
  • Крім того, можна монетизувати вашу програму безпосередньо через сервіс AppsGeyser. Це корисна функція, адже виявивши свою фантазію, ви можете ще й заробити на цьому;
  • Створюйте, редагуйте, публікуйте додаток в онлайн режимі в особистому кабінеті (щоб збереглися результати).

IbuildApp - потужний двигун для розробки власних проектів

Цей інструмент заслуговує на справді досконалого розгляду. Як ми обговорювали вище, вам не потрібно знати мови програмування, щоб створювати Андроїд програми. Платформа розробки настільки проста, що створити власний додаток буде дуже просто. Процес займе лише кілька хвилин, зате результат буде очевидним.

Сайт IbuildApp має як платні тарифи (розробка індивідуального додатку з подальшим розвитком) так і безкоштовні шаблони, яких дуже багато.

Російський офіційний сайт - https://russia.ibuildapp.com

Давайте подивимося, на що воно здатне:

  • Величезний архів тем на різні тематики: це можуть бути ресторани, кафе, спортивні заняття, а також багато інших тем, що дозволяють підібрати все, що завгодно. Від вас потрібно лише підібрати щось конкретне, а далі відредагувати його під свої потреби;
  • Також у ньому є вбудовані способи просування створеної програми. Програма не просто допомагає швидко створити програму, але й розкручує її. В інших випадках цей процес займає багато часу;
  • Крім того, ви зможете підключити додаток до рекламної мережі, а значить зароблятимете на ньому гроші.

AppsMakerstore - платформа створення простих програм

Офіційний сайт - https://appsmakerstore.com

Четверта крута платформа, яка розроблена для створення Android додатків. Напевно однією з найголовніших переваг є те, що за допомогою сайту AppsMakerStore можна створювати програми, які будуть мультиплатформенними (наприклад, на Андроїд, iOS та Windows Phone)

Давайте розглянемо переваги платформи:

  • Робота з конструктором відбувається у режимі онлайн;
  • Можливість безкоштовної реєстрації;
  • Написання програм за допомогою готових макетів, при цьому величезний вибір шаблонів на тему забезпечений кожному користувачеві.

Відео інструкція зі створення програми за допомогою APK Creator


Ось і все, сподіваємося, що ви знайшли те, що шукали та залишилися задоволені нашою добіркою. Цей набір інструментів стане чимось особливим для програміста-початківця і дозволить розібратися з тонкощами створення найпростіших програм безкоштовно.