Руководство по программированию под Android для начинающих
Android – базирующаяся на ОС Linux операционная система с открытым исходным кодом, предназначенная для мобильных устройств – таких, как, например, смартфоны или планшетные компьютеры.
Это руководство предназначено для введения в основные понятия программирования под Android, так что после его изучения вы будете понимать некоторые базовые концепции программирования под эту ОС.
От вас же, в свою очередь, требуется только желание и базовое понимание программирования на языке Java. Не так много, правда? Что ж, начнём!
Среда разработки
Для разработки приложений под Android можно использовать любые из перечисленных операционных систем:
- Microsoft Windows XP или более поздняя версия
- Mac OS X 10.5.8 или более поздняя версия с чипом Intel
- Linux, включающая GNU C Library 2.7 или более позднюю версию
При этом все необходимые инструменты для разработки Android-приложений находятся в свободном доступе и вы можете загрузить их из Интернета. Для того, чтобы начать создавать приложения под Android, вам понадобятся:
- Java JDK5 или более поздняя версия
- Android Studio
Структура приложений
Поздравляем, ваше оборудование готово к работе! Однако прежде чем приступить к вашему первому приложению, поговорим о том, что из себя представляет приложение на Android и из чего оно состоит.
Компоненты приложения являются своего рода «строительными блоками» для приложения Android. Эти компоненты связаны файлом-манифестом приложения AndroidManifest.xml, который описывает каждый компонент приложения и взаимодействие этих компонентов между собой.
Есть четыре базовых типа компонентов, которые могут быть использованы в приложении Android:
- Операции (Activities) представляют собой элементы пользовательского интерфейса (одна операция – один экран) и отвечают за взаимодействие пользователя с экраном мобильного устройства;
- Службы (Services) представляют собой длительные операции, работающие в фоновом режиме и не имеющие пользовательского интерфейса (например, передача данных), вместо этого они, как правило, запускаются иными элементами, уже имеющими пользовательский интерфейс, и взаимодействуют с ними;
- Приемники широковещательных сообщений (Broadcast receivers) представляют собой компоненты, реагирующие на объявления самой ОС, передаваемые всей системе (как хороший пример – объявление о низком уровне заряда батареи устройства). Они также не имеют пользовательского интерфейса, однако могут передавать данные другим компонентам, где они демонстрируются пользователю в виде уведомлений;
- Поставщики контента (Content providers) представляют собой компоненты, управляющие взаимодействием приложения с его базой данных – посредством поставщика контента другие компоненты приложения могут запрашивать или изменять данные.
Помимо четырех базовых типов, существуют дополнительные типы компонентов, используемые для выстраивания взаимодействий и связей как между базовыми типами компонентов, так и между компонентами и внешними элементами. К ним относятся:
- Фрагменты (Fragments) – части пользовательского интерфейса в Операциях (см. выше);
- Виды (Views) – элементы пользовательского интерфейса, отображаемые на экране, например, кнопки, списки и т. д.;
- Макеты (Layouts) – определяют элементы пользовательского интерфейса, их свойства и расположение;
- Намерения (Intents) – соединяют вместе различные компоненты приложения или связывают друг с другом работу разных приложений;
- Ресурсы (Resources) – внешние элементы, такие, как строки, константы или изображения;
- Манифест (Manifest) – конфигурационный файл приложения.
Теперь, когда вы получили базовое понимание о структуре приложений на Android, хотелось бы предложить вам самим попробовать создать свое первое приложение.
Первое приложение
Итак, давайте приступим к созданию простого Android-приложения, которое будет выводить на экран “Hello World!”.
У вас к этому времени уже должен быть установлен Android Studio последней версии. Ниже будет приведена небольшая пошаговая инструкция:
- Откройте Android Studio.
- В открывшемся окне кликните на «Start a new Android Studio project», чтобы создать новый проект.
- В открывшемся окне в строку «Application name» введите название вашего будущего приложения. Нажмите Next.
- В следующем окне вам нужно выбрать тип устройств, для которых создается приложение – в нашем случае необходимо выбрать «Phone and Tablet» (смартфоны и планшетные компьютеры), а в выпадающем списке под названием «Minimum SDK» нужно выбрать версию Android, для которой создается приложение (обычно указывается самая ранняя версия, способная запустить приложение) – в нашем конкретном случае выберем версию Android 6.0. Если в вашей версии есть возможность выбрать язык программирования (выпадающее окно Language), выберите пункт “Java”. Остальные опции можно оставить без изменений. Нажмите Next.
- На следующем этапе выберите пункт Empty Activity – это будет означать, что экран нашего приложения не будет иметь никаких дополнительных элементов. Нажмите Next.
Теперь перед вами открылась привычная среда разработки. К сожалению или к счастью, но сейчас вам не нужно будет писать код – среда разработки уже сделала это за вас, создав файлы для приложения, выводящего «Hello world!» на экран, по умолчанию. Вместо этого хотелось бы обратить ваше внимание на несколько созданных файлов и папок, найти которые вы можете в колонке слева, отображающей все элементы проекта.
- Файл MainActivity.java
В папке «Java» содержатся исходные файлы формата .java для вашего приложения. По умолчанию в ней находится исходный файл MainActivity.java, имеющий класс Операция – он запускается при нажатии пользователем на иконку приложения на устройстве. Этот файл содержит главный код приложения, и именно он преобразуется в файл .exe для запуска приложения на устройстве.
- Файл AndroidManifest.xml
Это файл типа «Манифест», который описывает основные характеристики приложения и определяет каждый из его компонентов. Он является своего рода интерфейсом между ОС Android и вашим приложением – если компонент не упомянут в этом файле, он не будет отображен и в операционной системе.
- Файл Build.gradle
Это автоматически генерируемый файл, содержащий определённые данные касательно приложения – такие, как, например, версия SDK.
Запустить приложение можно двумя способами: на реальном устройстве или на эмуляторе в самой среде разработки. В нашем случае мы рассмотрим более универсальный случай – запуск на эмуляторе, полностью имитирующем работу устройства с операционной системой Android.
Запуск приложения на эмуляторе
Попытайтесь запустить приложение кнопкой «Run» – в появившемся диалоговом окне выберите пункт «Create New Virtual Device». В последующих окнах нужно будет выбрать размер экрана и версию Android – помните, что она должна быть не ниже, чем указанная на этапе создания проекта. В случае, если данная версия Android будет отсутствовать на компьютере, Android Studio предложит ее загрузить. Остальные пункты можно оставить без изменений – на данный момент нет необходимости их изменять. После выбора всех настроек нажмите кнопку «Finish», и если вы увидели на своем мониторе экран телефона с названием вашего приложения сверху и с надписью «Hello world!» на экране, значит, вы можете себя поздравить – вы создали свое первое Android-приложение!
Теперь у вас есть базовое понимание и минимальный опыт в создании приложений на Android. Этого, разумеется, совершенно не хватит, чтобы заниматься разработкой, но это необходимый для дальнейшего развития фундамент – продолжайте изучать и практиковаться! Всего наилучшего!
Также можно научиться создавать приложения на Android и другие ОС после прохождения нашего шестимесячного курса «Профессия: Разработчик» 👉 Узнать подробности!
Программирование под Android для начинающих. Часть 1
Здравствуйте. Сегодня на глаза попался пост о курсе программирования под Android на сайте Linux Foundation, а вместе с ним — и немало комментариев о том, что хотелось бы видеть и перевод этих уроков. Поскольку я сейчас, после четырех лет разработки под микроконтроллеры, начал изучать и программирование для мобильных устройств, то параллельно решил сделать перевод первой части урока.
Программирование под Android для начинающих. Часть 1
Смартфоны и планшеты на Android все чаше встречаются в наших сумках и карманах, и программирование под Android также становится все популярнее. Это отличная платформа для разработки — API прекрасно документирован и прост в использовании, да и просто интересно создать что-то, что вы cможете запустить на своем смартфоне. Изначально вы можете обойтись и без него, создав и протестировав код с помощью эмулятора на вашем Linux ПК. В первой из двух частей этого введения объясняется как создать простое приложение с таймером, а также даются начальные сведения о Android API. Курс подразумевает наличие начальных представлений о Java, XML и технологиях программирования, но тем не менее не стесняйтесь попробовать даже если вы имеете об этом очень смутное представление.
Начало работы и среда разработки
Немного о версиях: последней версией Android является 4.2 (Jelly Bean), но, как можно выдеть по этой диаграмме, она еще недостаточно распространена. Лучше всего начинать разработку под одну из версий: 4.0 (Ice Cream Sandwich) или 2.3 (Gingerbeard), особенно с учетом того, что версии Android поддерживают обратную совместимость (т.е. ваш код для версии 2.3 будет работать и на 4.2), а приложения, разработанные для более поздней версии, не всегда будут работать и на старой. Приведенный здесь код должен работать на версиях 4.0 и 2.3.
Простейший способ получить среду разработки — установить Android Bundle, который можно скачать здесь. Также вам понадобится JDK 6 (не только JRE). Не забудьте что Android не совместим с gcj. Если вы уже используете Eclipse или другую IDE, то вы можете попробовать настроить ее под Android. Как это сделать — описано здесь. Теперь создайте проект под именем Countdown с помощью Eclipse, или из командной строки. Я установил в настройках BuildSDK 4.0.3 и minimum SDK 2.2, и (в Eclipse) использовал шаблон BlankActivity.
Мой первый проект под Android: интерфейс
Первой нашей программой под Android будет таймер, показывающий обратный отсчет от 10 секунд после нажатия кнопки. Прежде чем писать код, нужно создать интерфейс — то, что пользователь увидит, запустив наше приложение. Нужно открыть res/layout/activity_countdown.xml и создать XML шаблон — с помощью редактора Eclipse или текстового/XML редактора ввести следующее:
Обратите внимание на string/start и string/__00_30. Их значения будут расположены в res/values/strings.xml:
Start 00:30
Это общепринятый способ обращения к ресурсам в Android: лучше использовать ссылки на строковые переменные, чем жестко заданные строки.
Мой первый проект под Android: код
Теперь откроем в редакторе файл CountdownActivity.java — и мы готовы писать код нашего приложения. Вы должны увидеть автоматически сгенерированную «заглушку» метода onCreate(). Он всегда вызывается как только создается объект Activity, и в него вы можете поместить какие-либо функции, которые должны выполняться при запуске приложения. (Eclipse также может создать пустой метод onCreateOptionsMenu(), но мы пока не будем обращать на него внимания). Введите следующий код:
public class CountdownActivity extends Activity < private static final int MILLIS_PER_SECOND = 1000; private static final int SECONDS_TO_COUNTDOWN = 30; private TextView countdownDisplay; private CountDownTimer timer; @Override public void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_countdown); countdownDisplay = (TextView) findViewById(R.id.time_display_box); Button startButton = (Button) findViewById(R.id.startbutton); startButton.setOnClickListener(new View.OnClickListener() < public void onClick(View view) < try < showTimer(SECONDS_TO_COUNTDOWN * MILLIS_PER_SECOND); >catch (NumberFormatException e) < // method ignores invalid (non-integer) input and waits // for something it can use >> >); > >
Вы видите как просто оказалось создать наш первый проект: Android API включает в себя CountDownTimer, который мы можем использовать. Мы объявили его и поле отображения обратного отсчета как закрытые (private) свойства класса Activity. В методе onCreate() мы использовали метод setContentView, чтобы подключить наш XML-шаблон. Такой R.foo.bar синтаксис — это стандартный способ обращения к XML-ресурсам в Android, и мы встретимся с ним еще много раз.
findViewById — это еще один метод, который вы будете часто использовать. Здесь он возвращает ссылки на поле вывода таймера и кнопку Start, описанные в XML-шаблоне. Для кнопки, чтобы мы могли обработать ее нажатие, должен быть задан «перехватчик» OnClickListener, и его метод onClick(). Здесь он просто вызывает метод showTimer() c заданным числом миллисекунд (сейчас жестко заданным в коде).
Итак, что делает showTimer():
private void showTimer(int countdownMillis) < if(timer != null) < timer.cancel(); >timer = new CountDownTimer(countdownMillis, MILLIS_PER_SECOND) < @Override public void onTick(long millisUntilFinished) < countdownDisplay.setText("counting down: " + millisUntilFinished / MILLIS_PER_SECOND); >@Override public void onFinish() < countdownDisplay.setText("KABOOM!"); >>.start(); >
Класс CountDownTimer делает за нас почти всю работу, что очень приятно. В начале мы проверяем, существует ли уже таймер, и, если он есть, то сбрасываем его. Далее мы создаем новый таймер с заданным числом миллисекунд для обратного отсчета (из параметра метода showTimer()) и с заданным числом миллисекунд между интервалами отсчета. По истечении времени между интервалами вызывается метод onTick().
CountDownTimer — абстрактный класс, и методы __onTick() и __onFinish() должны быть реализованы в его подклассе. Мы переопределяем метод onTick(), уменьшающий выводимое число на единицу по истечении каждого интервала, и метод onFinish(), выводящий на дисплей сообщение о окончании обратного отсчета. Потом start() запускает таймер.
С помощью команды «Run» в Eclipse вы можете запустить созданное приложение, при этом будет автоматически запущен эмулятор Android. Посмотрите документацию по Android если вы хотите узнать больше о настройке эмулятора, или о запуске приложений из командной строки.
Поздравляем, вы только что создали свое первое приложение под Android. Во второй части этого введения мы более подробно рассмотрим структуру Android-приложения, и сделаем некоторые улучшения нашей программы: ввод времени обратного отсчета, кнопку Stop и меню. Также мы запустим его на реальном устройстве, а не на эмуляторе.
Более подробную информацию вы можете найти в разделе Android Development Training сайта The Linux Foundation’s Linux training website.
- Android
- Java
- Обучение программированию
Основы разработки мобильных приложений для Android
1. Java и Kotlin
Java – объектно-ориентированный язык программирования, лежащий в основе всей разработки под Android. Он имеет обширную экосистему с открытым исходным кодом, включающую все необходимые инструменты, и обеспечивает более понятный процесс сборки приложений, иногда в ущерб времени.
Kotlin – передовой язык программирования, обеспечивающий повышенную производительность, интуитивный и последовательный синтаксис, а также высокую скорость кодирования. Он статически типизирован и полностью совместим с Java. Как и в случае с Java, все необходимые программисту инструменты распространяются с открытыми исходными текстами. Оба языка используются для создания мобильных приложений под Android, так что изучив один из них, вы получите прочный фундамент.
☕ Подтянуть свои знания по Java вы можете на нашем телеграм-канале «Библиотека Java для собеса»
2. XML
Одним из распространенных форматов хранения и передачи данных является xml. Это похожий на HTML структурированный язык разметки с угловыми скобками и глубокой вложенностью элементов. В мире Android разработчики используют XML для создания макетов, определяющих пользовательский интерфейс приложений. С его помощью можно изменять элементы макета, когда приложение уже запущено. Знание XML поможет вам в освоении разработки для Android.
3. Android SDK
SDK (Software Development Kit) представляет собой набор инструментов для создания программного обеспечения под конкретную платформу. В общем случае в него могут входить компилятор, отладчик, различные библиотеки и тому подобные вещи. Android SDK – это модули кода на Java, которые предоставляют программисту доступ к функциям мобильных устройств, сторонним сервисам и тому подобным вещам.
Одним из ключевых компонентов Android SDK является библиотека Gradle. Допустим, вы хотите интегрировать в приложение платформу социальных сетей (например, Facebook). Вы должны загрузить библиотеку кода (или SDK) из Facebook, а затем сообщить Gradle об этом. Среднее мобильное приложение для Android использует около 15 отдельных SDK. Самыми популярными их категориями являются аналитика и реклама.
4. Android Studio
Android Studio – интегрированная среда разработки (IDE) от Google. Она построена на хорошо зарекомендовавшей себя IntelliJ IDE и поставляется с поддержкой наиболее распространенных SDK. В IDE есть стандартные функции: автодополнение по мере ввода кода, отладчик для поиска ошибок, а также мониторинг памяти и ЦП для контроля производительности. В Android Studio можно создавать приложения для телефонов, планшетов, Android Wear, Android TV и Android Auto. Модули структурированного кода позволяют разделить проект на функциональные блоки. Эта IDE подходит как начинающим, так и опытным разработчикам.
🧩☕ Интересные задачи по Java для практики можно найти на нашем телеграм-канале «Библиотека задач по Java»
5. API
Обычно приложение для Android должно взаимодействовать с различными сервисами и сторонними платформами. Многие компании предлагают API (Application Programming Interface) для доступа к данным последовательным и безопасным способом. В частности Google с их помощью упрощает использование функций устройства и собственных сервисов из сторонних приложений. Например, вы можете отслеживать местоположение пользователей, помогать им искать определенные локации на карте и т.д.
Хороший API упрощает разработку программы, предоставив все строительные блоки для стыковки со сторонними сервисами, а хороший программист складывает эти блоки вместе.
6. Базы данных
Если приложение обрабатывает большие объемы информации, вам необходимо будет взаимодействовать с внешними базами данных. Firebase, Parse и другие подобные сервисы имеют простые API для хранения данных в облаке и обеспечения их доступности на всех устройствах. Эти платформы предоставляют библиотеки Java для упрощения кэширования некоторых данных на устройстве пользователя.
Синхронизация данных между локальным хранилищем и удаленной базой очень важна, если вы хотите разрешить использование автономного режима. Для создания локальной базы данных лучше всего взять Room, которая является частью архитектурного компонента Android Jetpack. Другой способ локального хранения данных – SQLite.
7. Material Design
В отличие от Apple, в Google изначально не придерживались единой эстетики дизайна продуктов. Ситуация изменилась после появления набора передовых стандартов интерфейса под названием Material Design.
Это многофункциональное руководство по оформлению приложений с множеством подсказок, при помощи которого можно создать и оптимизировать интерфейс, используя 3D-эффекты, реалистичное освещение и анимацию. Такой подход, например, применялся при оформлении сервисов Google Drive и Gmail. Google рекомендует разработчикам ПО для Android брать это руководство за основу для собственных пользовательских интерфейсов. Для понимание принципов Material Design ознакомьтесь с официальной документацией .
8. Тестирование
Тестирование конечного продукта – важный этап разработки. Вы должны проверить все точки взаимодействия пользователя с приложением. Наиболее часто используемые библиотеки для тестирования: Expresso, Junit, Mockito, Robolectric и UI Automator. Все они предоставляют разработчикам набор API для создания надежных тестов, имитирующих взаимодействие пользователя с приложением для Android.
9. Безопасность
Android имеет встроенные функции, которые защищают установленные приложения. Вы можете позаботиться о конфиденциальности через специальные разрешения и безопасный обмен данными на основе подписей. Для большей надежности стоит использовать ContentProvider – центральный механизм Android, который позволяет получать доступ к данным других приложений. По умолчанию никогда не экспортируйте компоненты Android без необходимости.
В Android ограничены возможности WebView (элемента для отображения веб-страницы), чтобы избежать проблем вроде межсайтового скриптинга. Тем не менее вам нужно свести к минимуму частоту запроса учетных данных пользователя, создав регулярно обновляемый токен авторизации.
10. Не техникой единой
Опытный разработчик приложений для Android должен обладать не только отличным знанием программирования и дизайна, но и некоторыми не техническими навыками:
- Коммуникабельность. Общение между людьми определяет эффективность командной работы и удовлетворения запросов клиентов. Компетентные разработчики обеспечивают постоянную доступность и оперативно реагируют на сообщения коллег или клиентов.
- Внимание к деталям. Успешный продукт требует хорошо структурированного и легко поддерживаемого кода, поэтому внимание к мелочам может иметь решающее значение. Ориентированные на детали разработчики продумывают выбор и тщательно проверяют свою работу.
- Организационные навыки. Опытные разработчики знают, как расставлять приоритеты задач в соответствии с общим уровнем срочности. Также необходимо уметь отслеживать мелкие административные проблемы и не допускать их скопления.
- Позитивный настрой. Разработчик приложений для Android – сложная профессия, поэтому очень важно сохранять устойчивость перед лицом утомительных задач. Никогда не сдавайтесь и сохраняйте самообладание, будьте гибкими и открытыми для изменений.
Создавая продукт, необходимо учитывать его полезность для конечного потребителя. Прежде чем приступить к разработке мобильного приложения, подумайте, кто будет его использовать, и какую проблему оно решит. Затем создайте модель и покажите ее людям из целевой аудитории. Получите их отзывы об идее и по возможности учтите их пожелания. Не бойтесь обратной связи при создании своих первых проектов. Удачи!
Дополнительные материалы:
- План развития разработчика Android
- Главный язык для Android разработчика в 2020 году
- Разработка приложений на Android с нуля: установка среды разработки
- Как начать разрабатывать мобильные игры для Android?
- Создаем мобильное приложение для Android на JavaScript с помощью Apache Cordova
- 8 распространенных ошибок в разработке под Android
При подготовке материала использовались источники:
https://vc.ru/hr/148461-rukovodstvo-po-programmirovaniyu-pod-android-dlya-nachinayushchih
https://habr.com/ru/articles/164853/
https://proglib.io/p/10-vazhnyh-navykov-razrabotchika-prilozheniy-dlya-android-2021-03-29