Android приложения прочно вошли в нашу жизнь. Мы каждый день ими пользуемся: картами, социальными сетями, мессенджерами, браузерами. Но каждый опытный пользователь смартфона на Android хоть раз задумывался о создании своего приложения. Сложился стереотип, что это очень сложно и нужно долго учить программирование, чтобы что-то качественное написать. Однако Google постоянно совершенствует свои инструменты разработки, делая их проще и удобнее. Сегодня мы создадим самое простое приложение для Android и запустим его на смартфоне.
Приложения для Android создаются на языке программирования Java. Сейчас как альтернатива Java продвигается еще и относительно новый более простой язык Kotlin (язык назван в честь острова? на котором расположен город Кронштадт). Наш пример будет на Java.
Сперва мы проверим, установлен ли на вашем компьютере (под управлением Windows) JDK. Java Development Kit – это комплект разработчика приложений от компании Oracle. Без него среда разработки не сможет правильно функционировать.
Для этого нажмите на клавиатуре Win + R. Введите cmd и нажмите Enter. Откроется командная строка. Далее в консоли необходимо набрать:
java -version
Скорее всего, вы увидите версию Java:
Это значит, что у вас уже установлен JDK. В противном случае его необходимо скачать (150 Мб).
После установки JDK переходим к основному инструменту разработки для ОС Android – Android Studio. Загрузить его можно здесь (944 Мб).
Android Studio – это свободно распространяемая среда разработки от Google. Это такой огромный комбайн для разработки приложений, в который вошли различные инструменты для тестирования, сборки приложений, а также шаблоны, удобный редактор макетов и многое другое. Android Studio постоянно обновляется, как и его многочисленные компоненты.
Версии Android Studio есть не только под Windows, но и для Mac OS и Linux. Системные требования для Android Studio: Windows 7/8/10, 3 Гб оперативной памяти минимум, 8 Гб RAM рекомендовано, 4 Гб на жестком диске.
Итак, вы скачали инсталлятор Android Studio.
Запускаем его.
Жмем Next, выбираем путь для установки. Настройки желательно не менять.
Затем запустится мастер настройки Android Studio. Здесь можно выбрать цветовую тему среды разработки, скачать дополнительные файлы. Тип установки выбираем стандартный.
После скачивания необходимых компонентов будет предложено выбрать тип вашего проекта. Выбираем Empty Activity и кликаем Next.
На следующем экране даем название проекту и выбираем, начиная с какой версии Android будет работать ваше приложение. Лучше всего выбрать – c Android 4.0.3 – так наше приложение будет работать на максимальном количестве устройств. Стоит отметить, что Android Studio настолько универсальна, что позволяет создавать приложения не только для смартфонов, но и для смарт-часов и телевизоров!
Далее у нас открывается основное окно Android Studio. Слева мы видим несколько разделов. Это структура нашего проекта. В папке manifests находится файл AndroidManifest.xml, который отвечает за информацию о приложении, импортируемые библиотеки, компоненты и другие параметры. В папке java находится непосредственно код (файл MainActivity в папке com.example.myapplication). В папке res находятся ресурсы приложения – кнопки, файлы, которые определяют дизайн интерфейса (например, activity_main.xml).
Acitivity – это отдельный экран, с которым взаимодействует пользователь. Примеры: экран с фото, набор номера, ввод текста. У нас будет один Acitivity (экран). Поэтому сразу идем по пути app – src – main – res – layout и открываем файл activity_main.xml. Переключаемся в режим Design.
Выбираем раздел Button и перетягиваем его на экран приложения. У нас появилась кнопка. Вводим текст на ней (kv.by).
Чтобы увеличить размер шрифта – переключаемся в режим Text и в коде в разделе Button добавляем такую строчку:
android:textSize="25sp"
В режиме Design жмем правой кнопкой мыши и выбираем Constrain, далее выбираем все пункты по очереди. Это «привяжет» вашу кнопку, чтобы она не могла сместиться.
Далее редактируем надпись Hello, World – меняем на свою собственную («Мое первое приложение на Android»).
Следующий этап – добавляем картинку. Сначала мы должны ее добавить в проект. Картинка будет к примеру, эта:
Скачайте ее и перетяните прямо в проект в папку res – drawable. Она добавится в проект. Теперь открываем activity_main.xml и переключаемся в режим Design. Выбираем Common – ImageView. Перетягиваем на наш экран. Откроется окно выбора картинки. Переходим в раздел Project. Там видим логотип kv.by. Выбираем его и помещаем в середине окна нашего приложения. На картинке также применяем Constrain.
В итоге у вас должен получится такой код activity_main.xml:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:layout_width="145dp" android:layout_height="53dp" android:layout_marginTop="262dp" android:layout_marginBottom="416dp" android:gravity="center" android:text="Мое первое приложение на Android" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.552" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/button" android:layout_width="199dp" android:layout_height="113dp" android:text="kv.by" android:textSize="25sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" tools:layout_editor_absoluteY="114dp" /> <ImageView android:id="@+id/imageView" android:layout_width="216dp" android:layout_height="172dp" android:layout_marginStart="55dp" android:layout_marginLeft="55dp" android:layout_marginTop="380dp" android:layout_marginEnd="28dp" android:layout_marginRight="28dp" android:layout_marginBottom="51dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.495" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/logo" /> </android.support.constraint.ConstraintLayout>
И, соответственно, такой код MainActivity (в папке com.example.myapplication):
package com.example.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapplication"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="App kv.by" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
А теперь пора проверить, все ли работает. Проверим на виртуальном смартфоне прямо у вас на компьютере.
Жмем вверху Tools – AVD Manager – Create Virtual Device.
Мы создаем виртуальное устройство (смартфон) под управлением Android. Выбираем Nexus 5X. Скачиваем сам эмулятор Android. Жмем Next. После всех манипуляций у вас в списке виртуальных устройств должен появиться «смартфон» Nexus 5X.
Теперь запустим приложение на виртуальном смартфоне – Run – Run app.
Появится окно с выбором, на чем необходимо его протестировать. Разумеется, выберем Nexus 5X.
На смартфоне открываем список приложений и ищем там App kv.by
Вот что получилось:
Работает! Приложение готово. Теперь можно и на ваш реальный смартфон его загрузить.
Чтобы установить на смартфон наше первое приложение – нужно создать apk-файл. APK – Android Package Kit, это такой незашифрованный zip-архив, в котором содержатся скомпилированный код приложения, файлы ресурсов, файлы манифеста и другая информация. Именно в формате apk хранятся файлы в Google Play, из которого мы скачиваем приложения.
Поскольку они не зашифрованы, картинки и некоторую другую информацию можно легко извлечь из любых приложений. Для этого есть ресурс APKMirror.com. На нем можно скачать apk-файл нужного приложения из Google Play. Затем переименовать его в *.zip и открыть любым архиватором. Там можно увидеть структуру приложения, иконки, графику. Например, вот как выглядит приложение WhatsApp изнутри:
Apk-файлы можно скачивать себе на смартфон или обмениваться ими. Либо установить в качестве приложения. Это удобно и дает некоторую свободу.
Для того, чтобы установить apk на вашем смартфоне, нужно сначала это разрешить. Идем в Настройки – Приложения – Особые права доступа – Установка неизв. приложений и там выбираем «Разрешено» для вашего файлового менеджера (например, Total Commander).
Итак, наша задача сделать apk-файл из кода, который мы написали. Для этого в Android Studio выбираем Build – Build Bundle / APK – Build APK. Запустится скрипт для создания apk. В конце вам предложат открыть папку в которой будет apk-файл. Далее необходимо подключить смартфон к компьютеру и скопировать полученный apk-файл в память телефона. Затем уже на смартфоне открыть файловым менеджером папку с файлом и установить его. Теперь у вас собственное приложение в смартфоне!
Если вас заинтересовала эта тема – вы можете ознакомиться с исходным кодом некоторых простейших приложений на GitHub. Например, там есть галерея и файловый менеджер. Вы можете редактировать их код под собственные нужды. Много информации о разработке под Android вы также можете найти здесь.
Комментарии
Страницы
Ошибся. Есть в "Белхарде" курсы - - 16 занятий по 4 акад. часа за 650 брб. Неплохо, неплохо. Просмотрел программу. Довольно представительная. Правда, не нашёл там крайне важных вещей для меня - - работу с удалёнными серверами данных через интернет. Всё, что на этих курсах, я освоил самостоятельно где-то за 6-7 месяцев, из них первые 2 месяца устаканивал джаву в голове - - я её не знал, раньше писал на плюсах. Начал с javafx, чтобы разобраться с паттернами. Потом переключился на андроид. Чисто андроид занял где-то 4-5 месяцев. Помимо основного проекта пришлось пройти ещё штук 40 вспомательных, чтобы разобраться со специфическими андроидными классами. Занимался по 3-4 часа в день 4-5 раз в неделю. Долго, зато бесплатно. :)
На курсах быстрее. Но надо чётко знать ООП и джаву. SQL тоже. :)
Позволю себе добавить кое-что к пошаговой инструкции. Резонно спросить: "А откуда ты, комментатор ...ный, брал время на освоение?" Сам спросил, сам и отвечаю: "Жена выделяла". Ну, после того, как вымою полы, пропылесошу и схожу за провизией. Плюс иногда выстираю своё и/или поглажу постельное бельё. И жена довольна, и мосх кровью снабдился - - своеобразная эрекция, но не детоделательного органа, а куда выше. Короче, без физнагрузок не беритесь за освоение нового - - неэффективно получится.
ИМХО.
Питон в соседней ветке писал:
Не знаю, что за Android way он имел в виду, но точно знаю: купи самый мощный комп, который себе можешь позволить, освой язык, изучай IDE, SDK, изучай примеры, читай доки, гугли исключения, пиши модульно и веди разработку через тестирование.
Вот сегодня ночью тестил своё приложение. 2 бага точно нарыл: забыл коммит одной из настроек, а второй в бизнес-логике - - не учёл незавершённость ночной зоны текущих суток. :(
Прикольно, но некоторые курсы в рекламе утверждают, что научат андроид-разработке за 7 дней. :)
А существует ли какой-то особый "Android way"?
Думаю, важнейшим из "way" является использование связок try/catch для ловли хреновостей, а также приём throw. Если что-то не так, то вылет в блок catch. В андроид-разработке важно, чтобы в этом блоке была ветвь if(BuildConfig.DEBUG), которая бы раскрывала место и причину хреновости и выводила бы её на экран среды. После завершения разработки и переключения на релиз отметается всё, что нагромождено в этих ветвях.
"Кардинально" означает что разработка ведётся неверно в её сердцевине. Сердцевиной же приложения является его модель.
А существует ли правильная модель? Для юзера она по барабану. Ему важно, чтобы работало. Но так как в андроиде UI - - это отдельный поток, то сложно без модели. Но вот прикол: одно и то же можно делать, используя разные модели. Правильной по-моему является та, которая облегчает сопровождение. И только. А к вопросу о permissions ("помощь деду") модели отношения вообще не имеют.
Кардинальным же является не некий "андроид уэй", а востребованность приложения. Иначе всё в говно.
С почтой тоже пришлось попотеть: pdf-файлы приаттачиваются и присылаются куда надо, но сабж и содержание автоматически не заполняются. Или заполняются, но адрес не заполняестя. Гуглил долго, нашёл решение на котлине, перевёл на джаву. Засада в том, что новые решения обычно выкладываются на котлине, но их мало, джавовских же решений выложена туева хуча, но очень многие из них безнадёжно устарели.
Кстати, об эмуляторах.
Внезапно странности: не мог запустить дебажную сборку на эмуляторе без отладчика. Тык в run -- приложение стоИт, и сообщает, что ждёт отладчика. Запускается только после тыка в debug вместо run. Прогуглил это свинство. Тонны разных советов и ни одного, которое бы помогло. Зашёл в эмуляторе в опции отладки и все поочерёдно проперещёлкивал. Исправилось. Видимо, какая-то опция в настройках IDEA сбилась, и восстановить её можно было только переводом из "включено" в "выключено", затем из "выключено" во "включено". Или наоборот -- зависит от потребности. Какая именно опция не работала -- осталось загадкой.
Кажется, буду переделывать дизайн своего приложения: вместо таблиц на одной и той же вьюхе - - графика во фрагментах. Таблицы же по требованию и сразу в pdf.
Всё приходит с опытом.
Петро, дизайнер не может требовать больше, чем может прогер. Т. е. может, но хрен получит. Ну, или пусть др. прогера ищет.
:)
Задралла студия. Начал вставлять динамические фрагменты, и тут выхлоп: "Installed Build Tools revision 31.0.0 is corrupted." И совет: "Remove and install again using the SDK Manager." Ёпрст, другие проекты же билдятся нормально! Удаление инструментария, его переустановка и перезапуск студии не помогли, пришлось гуглить. Оказывается, фирменные файлы с именами d8 надо переименовать (sic, млять!) в dx. Переименовал, сбилдилось.
Или вот: вставляю студийным дизайнером фрагмент, опять выхлоп: "You must first create one or more Fragments in code". Ну наф такой дизайнер?!
Нет, андроид-студия точно не для новичков. Работать в ней -- не опусы репостить.
С самого начала освоения программирования под андроид сразу стал использовать компоновщик constraint layout. Использовал по наитию, ничего не читая, много экспериментировал. Идея этого компоновщика была ясна и понятна из других RAD, в частности, из QT. Линейные и проч. компоновщики использовал уже вложенными, например, для скроллинга кнопок. Наконец, удосужился почитать про constrsint layout. Увидел, что, используя его замечательные фичи, например, группирование контролов, мог бы упростить исходный java-код.
Никогда не поступайте, как я, всегда сначала читайте доки. Это неприятно, но экономит время.
:)
Или вот. Рано или поздно возникает потребность в уникальных настройках приложения, используемых при трансляциии и/или сборке. Эти константы нужны для разновидностей приложения. Вопрос: куда лепить их? По наитию я оформлял их статиками в классе главной активити и давал ссылки на них. Можно также засовывать их в класс перечислений. Но всё это загромождает код. Гораздо проще и, думается, лучше собрать их в спецресурсе глобальных преференций prefs.xml
Короче, если вы занялись, как выразился Питон, андроид-пейсательством, то готовьтесь читать, читать и читать. И часто открывать новое. Порой на ровном месте.
Страницы