Каким образом проходит процесс разработки под Android? Выделим несколько основ:
Вы, конечно же, найдете более глубокие процессы, происходящие за кулисами вышеперечисленных шагов. Например, продвинутые пользователи захотят узнать роль виртуальной машины Dalvik. В конце статьи будут перечислены ссылки на полезные ресурсы, с которыми должен быть знаком каждый Android разработчик. Первым из них является официальная документация от Google .
В конце статьи вы можете ознакомиться с полезными рекомендациями начинающим разработчикам от компании.
Начать читать документацию и писать код что бы узнать на что способна платформа - это действительно заманчиво. И мы скоро это сделаем! Однако, для начала работы с платформой Android необходимо настроить среду разработки.
Новичкам в программировании под Андроид особенно важно не торопиться и методично следовать каждому шагу. Даже если вы выполняете шаги правильно, может потребоваться устранить небольшую проблему с настройкой среды в зависимости от конфигурации вашей системы или версии продукта. Для этого используйте поисковые сервисы. Особенно можно выделить ресурс StackOverflow .
Важно не допустить, чтобы какие-либо подводные камни препятствовали вашей конечной цели — обучиться Android программированию. Известно, что даже профессионалы иногда испытывают определенные проблемы с настройкой рабочего окружения. В таких случаях бывает важно знание командной строки. Если вы хотите лучше ознакомиться с этим инструментом, внизу приводится ссылка на хороший вводный .
Наряду с тренировками в синтаксисе, важно обучить себя мышлению успешного программиста, которое не будет принимать сообщение об ошибке file X not found окончательным приговором. Такое мышление легко тренируется вами в случаях, если вы не сдаетесь и ищите решение возникшей проблемы.
Перейдите на страницу Android Studio developer.android.com/studio/index.html и найдите кнопку для загрузки последней версии для своей платформы.
Кликните по кнопке загрузки и вас попросят ознакомиться с правилами и условиями использования программного продукта. После внимательного прочтения (как вы всегда это делаете) и принятия, начинается загрузка. Вероятно, это займет несколько минут. После этого вы можете установить Android Studio аналогично любой другой программе. На начальной странице загрузки содержатся инструкции по установке под Mac и Windows.
Теперь, когда вы установили Android Studio, давайте запустим его! Запустите Android Studio. Программа спросит, хотите ли вы импортировать свои настройки. Поскольку вы начинаете с нуля, просто выберите второй пункт и продолжайте.
Вы должны увидеть красивый загрузочный экран в стиле Material Design.
По окончанию загрузки, вы попадете на экран приветствия.
Даже в том случае, если вы только что загрузили Android Studio, у вас может быть не самая последняя версия. Чтобы избежать проблем с версиями в дальнейшем, нажмите кнопку «Check for updates now» и, если необходимо, выполнить все инструкции для получения последней версии. Иногда Studio автоматически информирует вас о том, что есть обновление с помощью экрана, подобного этому:
В этом случае всегда выбирайте Update and Restart. Отлично! Мы успешно справились с установкой среды для разработки.
Пришло время создать первый проект. Начнем с простого. У программистов принято называть первую программу «Hello World». Давайте следовать этой традиции, а затем сделаем несколько небольших изменений, чтобы приложение использовало ваше имя для приветствия. В конце вы сможете загрузить его на устройство и показать своим знакомым. Android Studio имеет небольшой пошаговый инструмент, который поможет вам создать свой проект. Нажмите «New Project» на стартовом экране:
Заполните его подобным образом. Не стесняйтесь заменить «example» в имени пакета на что-то еще, чтобы удалить предупреждение внизу экрана. Вы также можете установить местоположение проекта, указав любую папку на жестком диске
Для раскрывающихся версий SDK обратите внимание на раздел «Описание» в нижней части диалогового окна. В нем объясняется, для чего предназначена каждая настройка.
Установите минимальный требуемый SDK, как показано на снимке экрана. Это устанавливает минимальную версию Android, необходимую для запуска приложения. Выбор этого значения для ваших собственных проектов — это вопрос балансировки возможностей SDK, которые вы хотите, и устройств, которые будут поддерживаться.
Для получения дополнительной информации о версиях API и их использовании, на сайте для разработчиков под Android существует специальная страничка Dashboards https://developer.android.com/about/dashboards/index.html.
После выбора версии, открывается экран выбора стартового шаблона. Вы можете создать приложение , которое уже взаимодействует с api google maps и отображает карту. В нашем тестовом примере выбираем Empty Activity и нажимаем кнопку «Next».
И сейчас вы находитесь на последнем шаге процесса создания приложения. Прежде чем нажать «Finish», обратите внимание на некоторые вещи. Тут вы впервые сталкиваетесь с упоминаниями о главных архитектурных компонентах любого приложения.
Нажимаем Finish. Некоторое время займет создание и загрузка проекта. Через некоторое время Android Studio завершит билд вашего проекта. Конечно, проект пока пуст, но в нем есть все необходимое для запуска на Android-устройстве или эмуляторе.
После загрузки проекта вы просматриваете файл макета в формате XML. Прежде чем перейти к программированию под Android, давайте поговорим о том, каким образом мы можем запустить это приложение. Пришло время сказать «Hello world!».
Теперь настало время сказать пару слов об эмуляторе. Android Studio поставляется с программным обеспечением, способным эмулировать Android-устройство для запуска на нем приложений, просмотра веб-сайтов, отладки и всего остального.
Эту возможность предоставляет Android Virtual Device (AVD) Manager. По желанию вы можете настроить несколько эмуляторов, установить размер экрана и версию платформы для каждого нового эмулятора. Этот функционал очень полезен, поскольку избавляет разработчиков от необходимости покупать несколько устройств для тестирования программ.
Нажмите на кнопку Run в виде зеленой стрелки.
Придется подождать некоторое время, пока эмулятор загрузится и как только он будет готов, вы увидите что-то вроде этого:
Мои поздравления! Вы сделали свое первое приложение для Android!
И так… Почему и как это сработало?
Чтобы начать делать изменения и добавлять интересные функции, необходимо получить рабочее знание о том, что происходит за кулисами. Взгляните на раздел проекта Android Studio с файлами и папками в левой части экрана. Возможно, вам понадобится нажать маленькую вкладку на краю (см. Ниже), если на данный момент проводник проекта не отображается.
Просмотрите в течение нескольких минут структуру папок и дважды кликните по файлам, чтобы увидеть их содержимое в главном окне. Если все это выглядит загадочно, не волнуйтесь!
Каждая хорошая команда состоит из людей, которые выполняют отведенные им роли. Вы хотите выполнить работу правильно? Вам нужна правильная команда. В проектах Android есть несколько ключевых элементов, и каждый из них должен сыграть определенную роль:
Это часть вашего кода, которая отвечает за логику приложения. Ваш код будет находиться в каталоге src\main\java в основной папке проекта. Для изучения Java можно посоветовать книгу Брюса Эккеля «Философия Java»;
Недостаточно просто сделать Android приложение, оно должно быть еще и стильным. Ваше приложение никогда не будет выделяться, если у него нет четких значков и изображений, хорошо продуманных макетов и, возможно, даже плавных анимаций.
При инициализации, папка содержит следующие папки:
Этот XML-файл информирует вашу систему о требованиях к оборудованию и программному обеспечению приложения и содержит его версию имя и значок. Манифест также содержит информацию про все Activity в приложении. Вам нужна работа, выполняемая вашим приложением? Сначала поговорите с начальником.
Перейдите к res/values/strings.xml и дважды щелкните файл. Когда вы откроете файл, вы увидите два строковых ресурса в XML.
Эти ресурсы используются в разных местах, но очень удобно иметь весь текст, используемый в вашем приложении в одном файле. Если вам нужно перевести его, или если ваш коллега по маркетингу попросит удалить все лишние ссылки, здесь будет легко внести все изменения.
Измените строку hello_world, которую приложение отображает на экране. Измените ее содержимое на нечто более личное, например используйте ваше собственное имя. Получится что-то вроде:
Нажмите Run. Приложение должно перезапуститься и вы увидите персональное сообщение:
Мы поздравляем вас - вы сделали первый проект и научились редактировать исходный код. Первый шаг в Android программировании сделан. Желаем удачи на этом непростом, но безумно интересном пути! Если вам нужна профессиональная разработка приложения для Android , обращайтесь к специалистам Infoshell.
Как создать приложение для Android или iPhone? — таким вопросам все чаще задаются не только веб-разработчики, но и обычные владельцы небольших бизнес-сайтов, блоггеры.
В данном обзоре предлагает рассмотреть , которые представляют собой конструкторы для быстрого и удобного создания Android и iPhone приложений . При этом не требуя от пользователя навыков программирования или других специальных ИТ-знаний. Такие приложения незаменимы для разного вида бизнеса — ведь это отличный способ расширить целевую аудиторию и привлечь клиентов.
Таким образом, все рассмотренные в обзоре для разработки приложений можно объединить под лозунгом: просто, быстро и без программирования!
— бесплатный
веб-сервис, который позволяет сконвертировать контент вашего сайта в Android приложение и распространить его через Google Play. Кроме того, созданные приложения можно как продавать, так и размещать в них рекламу.
Можно создать неограниченное количество Android приложений из трех типов контента: сайта, просто html-страницы и YouTube видео. Для создания Android приложения AppsGeyser использует простой и наглядный мастер шаблонов.
Сайты AppsGeyser: http://www.appsgeyser.com, http://www.appsgeyser.ru
— бесплатный онлайн-сервис для быстрого создания мобильных приложений. TheAppBuilder создает приложения с помощью конструктора и типовых шаблонов — для бизнеса, событий, образования, музыки, спорта и др. Созадние приложения бесплатно, а за 5 у.е. в мес. можно отключить показ посторонней рекламы в созданном приложении. TheAppBuilder позволяет создавать Android приложение, и Windows Mobile.
Сайт TheAppBuilder: http://www.theappbuilder.com
— это онлайн-сервис, который позволяет пользователям создавать и публиковать свои собственные мобильные приложения в несколько кликов в интернете. Платформа Appsmakerstore создает мобильные приложения, поддерживаемые HTML5, iTunes, Android Market, Blackberry Marketplace, Windows Marketplace и Facebook без каких-либо глубоких технологических навыков. Это всего 1 приложение для 6 разных платформ . Appsmakerstore предлагается в 23 языках, в том числе на русском и украинском.
Особенность Appsmakerstore в том, что он предлагает на выбор уже готовые шаблоны для определенных индустрий (например, юридические услуги, ночные клубы, рестораны и кафе, торговля, салоны красоты и пр.)
Всегда включено во все планы:
— платный онлайн-конструктор мобильных приложений (iPad, Android , HTML5) для небольшого бизнеса. Среди возможностей - геолокация, получение и отправка сообщений, корзина для товаров, уведомления, интеграция с соцсетями, размещение информации о меню, наборе услуг, предстоящих событиях и др. Есть шаблоны для ресторанов, риелторов, гимнастических залов и др.
Данный сервис представлен такими планами:
AppGlobus — платный, один из российских онлайн конструкторов мобильных приложений, позволяющий пользователям самостоятельно создать и опубликовать своё приложение в App Store и Google Play.
Использует новый дизайн и возможности Ionic Framework, что значительно улучшает качество разработки, и даёт возможность создавать мобильные приложения на HTML5, iOS, Android даже без навыков программирования.
На данный момент AppGlobus предлагается на 8 языках, в том числе на русском.
AppGlobus.com предлагает следующие пакеты:
— платный онлайн-сервис для создания своего мобильного приложение для бизнеса или личного пользования. Никаких специальных умений не требуется. Хорошо подходит для небольшого бизнеса, например, интернет-магазинов. Чтобы создать свое приложение, понадобится всего 5 минут – нужно всего лишь выбрать необходимые модули и дизайн. Есть английская и русская версии.
My-apps.com предлагает такие пакеты:
VIP — 3999 руб. /мес + 150 000 руб. инсталляционный платеж
предоставляет платформу “сделай сам ” для создания iPhone/ приложений , которая так же не требует навыков программирования. Данный сервис предоставляет для каждой организации простой способ создания мобильных (iPhone, iPad, Android) приложений и публикационных материалов. Клиенты могут создать собственные каталоги, флайеры, брошюры, отчеты, резюме и пр. и предоставлять их с помощью SaaS-решения. Есть английская и русская версии.
iBuildApp предоставляется в таких пакетах:
— онлайн-сервис для разработки приложений (iPhone , iPad, Android). Позволяет создавать приложение на основе одного из множества шаблонов приложений. Элементы создаваемого пользовательского интерфейса приложения могут быть связаны с такими функциями, как отправка электронной почты, SMS-сообщения, отправка на сервисы Facebook и Twitter.
Все пакеты поддерживают такие платформы: IOS (iPhone/iPad) & Android (Phone/Tablet)
Сайт Viziapps: http://www.viziapps.com
- онлайн-редактор, позволяющий создавать приложения для iOS, Android и Windows Phone. Пользоваться ей очень просто: собственную программу можно собрать из уже готовый частей. Несмотря на то что AppsBuilder старается быть более простым и понятным для неопытных пользователей, в него добавлены и некоторые возможности для программистов: к примеру, можно дополнять созданные приложения собственными Java-скриптами.
Есть три платных пакета, в которых есть везде 30 дней — бесплатная пробная версия:
Сотни миллионов устройств работают под Android. Платформа открытая, поэтому каждый может написать свое приложение и распространять его через каталоги программ. Все инструменты бесплатны, а язык программирования очень простой. Расскажем как писать под Android
Android - самая популярная операционная система в мире . Windows сложила регалии после30 лет доминирования, и теперь Android - абсолютный мировой лидер, если учесть все устройства, подключенные к интернету: персональные компьютеры, ноутбуки, планшеты и смартфоны. Кто-то может сказать, что мировой лидер - Linux, потому что Android работает на ядре Linux, но это софистика.
C чего начать писать приложение для Android? Первым делом установите программу Android Studio . Это официальная среда разработки (IDE) для Android, она выпускается для Windows, macOS и Linux . Хотя при разработке программ для Android можно использовать и другие среды, кроме Android Studio.
Если у вас на компьютере не установлен Android SDK и другие компоненты, то Android Studio автоматически скачает их. Android SDK - это среда программирования для Android, она обязательно должна быть установлена вместе с IDE . В SDK входят библиотеки, исполняемые файлы, скрипты, документация и т.д.
Полезно установить на свой компьютер и эмулятор Android , чтобы потом запускать в нем приложения APK. Эмулятор тоже поставляется в комплекте с Android Studio .
Когда все инструменты установлены, можно создать первый проект. Но сначала нужно разобраться с основными понятиями: что из себя представляет Android-приложение.
Стандартный язык программирования Android-приложений - это Java . Правда, сейчас Google активно продвигает Kotlin как язык, который сможет заменить Java . Приложения также можно писать на C++ .
Инструменты Android SDK компилируют ваш код вместе с любыми данными и ресурсами в файл APK (пакет Android) с расширением .apk . Этот файл содержит всё необходимое для установки приложения на Android-устройство.
Каждое Android-приложение живет в собственной «песочнице», которая подчиняется правилам безопасности Linux :
Из правил есть исключения. Возможно организовать для двух приложений общий user ID, так что они могут делиться файлами друг с другом. Приложение также может запросить разрешение на доступ к контактам пользователя, SMS, содержимому накопителя, информации с камеры и другим данным. Но пользователь должен явно дать это разрешение, прежде чем программа начнет нормально работать.
Android-приложение состоит из четырех компонентов . Это своеобразные строительные блоки приложения. Каждый компонент - это точка входа, через которую система или пользователь может зайти в приложение.
Теперь попробуем сделать свое приложение для Android.
Как сделать простое приложение для Android? Этот процесс состоит из нескольких этапов: создания проекта в Android Studio, запуска приложения в эмуляторе, формирования простого пользовательского интерфейса и добавления новых активностей в приложение.
На первом этапе создания проекта выбираем название приложения, указываем домен своей компании, путь к проекту и название пакета. Здесь же указываем, включить ли для проекта поддержку опциональных языков программирования C++ и Kotlin .
Затем нужно задать одну или несколько целевых платформ для сборки. Для этого используется SDK и AVD, менеджер виртуальных устройств Android. Данный инструмент позволяет устанавливать в SDK пакеты, которые будут поддерживать несколько версий операционной системы Android и несколько уровней API (интерфейсов программирования приложений).
Вы указываете минимальную версию Android, которую будет поддерживать ваше приложение. Чем ниже версия - тем больше количество устройств, на которых запустится приложение. Чем выше версия - тем богаче функциональность API, которую можно использовать.
Затем выбираем основную активность, которая будет запускаться при нажатии на иконку приложения.
Указываем название для этой активности.
Нажимаем кнопку Next, затем Finish - и после нескольких минут сборки Android Studio открывает интерфейс IDE.
Если выбрать в выпадающем меню вид Android , то можно посмотреть основные файлы своего проекта. Например, наша основная активность называется app > java > ru.skillbox.skillboxapp > FullscreenActivity , потому что при создании проекта мы указали вместо активности Main запускать приложение в полноэкранном режиме (Fullscreen ).
Наконец, третий важный файл: app > manifests > AndroidManifest.xml , который описывает фундаментальные характеристики приложения и определяет все его компоненты.
Содержимое манифеста
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:theme="@style/FullscreenTheme">
Созданное нами приложение представляет собой одну активность, которая запускается в полноэкранном режиме и не имеет никаких графических элементов. Тем не менее это приложение уже можно запустить на реальном Android-устройстве или в эмуляторе. Смартфон или планшет для этого нужно подключить в режиме USB-отладки, которая активируется в «Настройках разработчика» в меню «Настройки».
Для запуска в эмуляторе нажимаем в Android Studio кнопку Run в меню Run (Shift+F10) . Там выбираем подходящее устройство и версию ОС, портретную или ландшафтную (альбомную) ориентацию.
Android Studio установит эмулятор и запустит его.
Пришло время создать базовый интерфейс для главного экрана. Пользовательский интерфейс Android-приложения создается через иерархию макетов (layouts, объекты ViewGroup ) и виджетов (объекты View ). Макеты - это невидимые контейнеры, которые управляют расположением дочерних виджетов на экране. Сами виджеты - это непосредственно компоненты UI, такие как кнопки и текстовые поля на экране.
Интерфейс активностей хранится по большей части в XML-файлах. А создается в Android Studio в Редакторе макетов (Layout Editor).
Снова открываем файл app > res > layout > activity_fullscreen.xml. В левом верхнем углу мы видим Палитру (Palette) со всеми виджетами, которые можно добавить на экран. Добавляются они просто перетягиванием мышью. Например, перетянем на экран текстовое поле (PlainText) . Это виджет EditText , куда пользователь может вводить текст.
Также на экран можно перетащить кнопки и другие элементы.
Предположим, что мы создали активность с текстовым полем и кнопкой «Отправить». После этого нужно написать, что конкретно будет происходить при нажатии кнопки «Отправить». Для этого заходим в код app > java > FullscreenActivity и добавляем метод SendMessage() в класс FullscreenActivity , чтобы при нажатии пользователя на кнопку вызывался этот метод.
Затем нужно создать «намерения» (класс Intent ) для перехода от одной активности к другой, новые активности, навигацию и все остальное, что необходимо для приложения. Ну и, конечно, придумать, как программа будет зарабатывать деньги (об этом подробнее в другой статье).
Детально все этапы разработки приложения объясняются в курсе . Участники этой 12-месячной программы научатся создавать приложения под Android и iOS. Кроме того, они получат полноценное портфолио разработчика и могут устроиться на работу в качестве джуниор-программиста или попытать участия в качестве инди-разработчика, то есть индивидуалиста, который сам создает приложения, распространяет их, зарабатывает и ни с кем не делится доходами, кроме налоговых отчислений в бюджет.
Здравствуйте. Сегодня на глаза попался пост о курсе программирования под Android на сайте Linux Foundation, а вместе с ним - и немало комментариев о том, что хотелось бы видеть и перевод этих уроков. Поскольку я сейчас, после четырех лет разработки под микроконтроллеры, начал изучать и программирование для мобильных устройств, то параллельно решил сделать перевод первой части урока.
Обратите внимание на string /start и string /__00_30. Их значения будут расположены в res/values/strings.xml:
Это общепринятый способ обращения к ресурсам в Android: лучше использовать ссылки на строковые переменные, чем жестко заданные строки.
Вы видите как просто оказалось создать наш первый проект: 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.
Для примера описано создание игры Sudoku из книги Hello, Android – Ed Burnette .
Осторожно много скриншотов.
1. Трудности разработки
Android это уникальная операционная система. Разработчик приложений должен знать ее особенности и нюансы для получения хорошего результата. Существуют некоторые трудности, которые нужно учитывать при разработке (). Перечислим их кратко:
1) Приложение требует для установки в два раза (или даже в четыре) больше места чем оригинальный размер приложения.
2) Скорость работы с файлами на встроенной флэшке падает в десятки раз при уменьшении свободного места.
3) Каждый процесс может использовать до 16 Мб (иногда 24 Мб) оперативной памяти.
2. Принципы разработки производительных приложений под Android
Для работы нужен Android SDK и Eclipse. О том как все установить и начать написано .
Для загрузки проекта в Eclipse ножно выполнить такую последовательность действий:
1) Разархивировать проект в отдельную папку в рабочем пространстве Eclipse.
2) Выбрать пункт меню File->New->Android Project.
3) В диалоге New Android Project выбрать опцию Create project from existing source.
4) В поле Location указать путь к папке с проектом. Нажать Next.
Меню программы
Игровое меню описано в файле res/layout/main.xml. Описание интерфейса можно редактировать в виде XML или в виде визуализированного интерфейса. Для переключения служат вкладки внизу области отображения содержимого.
Обычно элементы управления содержатся внутри контейнера, в нашем случае это LinearLayout. Он располагает все элементы в виде одной колонки.
Ресурсы
Обратите внимание, что все текстовые надписи (android:text) берут данные из ресурсов. Например, запись android:text="@string/main_title" указывает, что текст нужно искать в файле res/values/string.xml в узле с именем main_title (Android Sudoku). Цвет фона также содержится в ресурсах (android:background="@color/background") но в файле color.xml (#3500ffff). При открытии файлов ресурсов в редакторе может возникнуть ошибка. Но всегда можно перейти к отображению XML.
Элементы управления к которым нужно получить доступ из кода должны иметь id. У кнопок есть id (android:id="@+id/continue_button") для того что бы было можно присоединить к кнопке обработчик нажатия. Знак плюс указывает, что для кнопки нужно создать идентификатор в файле /gen/org.example.sudoku/R.java (public static final int continue_button=0x7f0b000b;). Этот файл генерируется автоматически и не рекомендуется его изменять. Файл содержит класс R через него можно обратиться к любому элементу интерфейса и другим ресурсам.
Создание окон
Рассмотрим создание окна с информацией о программе. Разметка этого окна находится в файле /res/layout/about.xml. Activity класс описан в файле /src/org.example.sudoku/About.java. Activity связана с разметкой в файле AndroidManifest.xml. Этот файл можно просматривать или через редактор или в виде XML. На разных вкладках редактора можно выбрать различные разделы файла. В разделе Application находятся параметры Activity. Обратите внимание, что параметр Theme имеет значение :style/Theme.Dialog. Благодаря этому стиль окна больше похож на модальный диалог.
Вызов окна с информацией о программе осуществляется из класса Sudoku по нажатию кнопки About. Класс Sudoku написан так, что сам обрабатывает событие Click (public class Sudoku extends Activity implements OnClickListener). В методе public void onClick(View v) определяется какая кнопка вызвала событие и выполняется соответствующий код. Для показа окна About вызывается соответствующий Intent.
case R.id.about_button:
Intent i = new Intent(this, About.class);
startActivity(i);
break;
Обработчики событий также могут устанавливаться на конкретные элементы управления. Например в классе Keypad при создании класса в методе setListeners() устанавливаются обработчики для отдельных кнопок.
Простой диалог
Пользователю нужно дать возможность выбрать уровень сложности. Это маленький диалог, в котором нужно выбрать один из нескольких вариантов. Очень радует, что для этого не нужно создавать отдельный Intent, а достаточно воспользоваться классом AlertDialog.
Разберем процес старта новой игры. Пользователь нажимает на кнопку New Game. Обработчик нажатия это метод класса Sudoku – onClick. Далее вызывается метод openNewGameDialog, который показывает диалог выбора сложности и стартует игру с выбранным уровнем сложности. Это диалог строится с помощью класса AlertDialog.
Private void openNewGameDialog() { new AlertDialog.Builder(this) .setTitle(R.string.new_game_title) .setItems(R.array.difficulty, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialoginterface, int i) { startGame(i); } }) .show(); }
Обратите внимание, что содержимое диалога (набор кнопок) строится из массива строк R.array.difficulty. Тут же назначается обработчик нажатия на кнопки диалога, который по номеру нажатой кнопки запускает новую игру с заданным уровнем сложности, вызывая метод startGame.
Графика
За игровую логику отвечает класс Game. Тут загружаются задания, проверяются условия выигрыша. Класс Game есть Activity но интерфейс описан не в XML, а создается кодом. В методе onCreate создается View:
PuzzleView = new PuzzleView(this);
setContentView(puzzleView);
puzzleView.requestFocus();
PazzleView это класс производный от View, в нем рисуется игровое поле и происходит обработка событий касания экрана (метод onTouchEvent) и нажатия клавиш (метод onKeyDown).
Разберем процесс рисования в Android. Для рисования нужно перегрузить метод onDraw. Метод получает объект Canvas через который осуществляется рисование. Для задания цветов создаются обьекты класса Paint. Цвет задается в формате ARGB. Цвет лучше хранить в виде ресурсов (файл colors.xml). Paint это не только класс для хранения информации о цвете. Например при рисовании текста он содержит информацию о способе закрашивания, шрифте и выравнивании текста.
Canvas содержит набор методов для рисования графики (drawRect, drawLine, drawPath, drawText и другие).
Для оптимизации графики, лучше воздержаться от создания объектов и лишних вычислений внутри метода onDraw (рассматриваемый пример реализации графики не оптимален).
Музыка
Для воспроизведения музыки используется класс MediaPlayer. Музыка для игры добавлена в ресурсы. Нужно просто скопировать нужные файлы в папку /res/raw (форматы WAV, AAC, MP3, WMA, AMR, OGG, MIDI).
Для начала нужно создать экземпляр класса MediaPlayer:
mp = MediaPlayer.create(context, resource);
тут context это обычно класс, который инициирует запуск музыки, resource – идентификатор ресурса с музыкой. Для управления воспроизведением используют методы start, stop и release.
В игре музыка воспроизводится в главном меню (запуск из класса Sudoku) и в игровом процессе (запуск из класса Game). Для управления воспроизведением создан класс Music. Класс содержит статический экземпляр MediaPlayer, что позволяет не создавать отдельный проект для каждого запуска звукового ресурса.
В классах Sudoku и Game переопределены методы onResume и onPause, в которых запускается музыка при старте Activity и останавливается при деактивации.
Выводы
Пример, который рассматривается в статье не слишком сложный, что позволяет в нем разобраться без особых усилий. При этом он затрагивает различные аспекты разработки под Android.
P.S. Большое спасибо пользователю