Главная » Разработка для Android » РАЗРАБОТКА ПРИЛОЖЕНИЙ ДЛЯ РАЗЛИЧНЫХ УСТРОЙСТВ – ЧАСТЬ 3

0

Для этой ситуации существует обходное решение. Поскольку в языке Java используется механизм отражения, вы можете обращаться к классам и методам, не включая их в инструкции import. Таким образом, вы могли бы указать в качестве минимальной версии инструментария SDK минимально возможную версию, которая может использоваться вашим приложением. Далее для расширения функциональности или возможностей приложения могла бы использоваться соответствующая бизнес-логика — путем определения на этапе выполнения доступных классов или методов. Этот подход также может быть использован для устройств, которые обладают специальными возможностями или функциями, отсутствующими на других устрой- сгвах, но при этом вы хотели бы использовать эти возможности в вашем приложении в тех случаях, когда они доступны.

ЗНАЕТЕ ЛИ ВЫ, ЧТО… __________________________________________________

Отличный пример использования механизма отражения для поддержки нескольких версий инструментария Android SDK доступен по адресу developer.android.com/resources/articles/backward-compatibility.html.

ОПРЕДЕЛЕНИЕ ВЕРСИИ ИНСТРУМЕНТАРИЯ ANDROID SDK ПРОГРАММНЫМ ПУТЕМ

Вы можете определить версию платформы Android программным путем, используя класс Build (android.os.Build). В частности, вы можете проверить значение константы SDK_INT класса Build.VERSION – возможные значения этой константы определены в классе android.os.Build.VERSION_CODES.

СОЗДАНИЕ РЕСУРСОВ ПРИЛОЖЕНИЯ ДЛЯ КОНКРЕТНОЙ ВЕРСИИ ИНСТРУМЕНТАРИЯ ANDROID SDK

Во многом подобно тому, как разработчики могут создавать в приложениях ресурсы для конкретного языка, региона и вариантов конфигурации мобильного устройства, они также могут создавать ресурсы для конкретных версий инструментария Android SDK. Если вер­нуться к табл. 20.1, вы увидите, что названия каталогов с ресурсами могут также содержать идентификатор API Level конкретной версии инструментария Android SDK.

ИТОГИ

В этом часе вы узнали, как можно адаптировать ресурсы приложения к широкому спектру конфигураций мобильных устройств, включая аппаратные и программные возможности. Вы также познакомились с принципами разработки приложений, корректно функционирующих при смене ориентации экрана. Наконец, вы узнали, как разрабатывать приложения для различных версий инструментария Android SDK.

ВОПРОСЫ И ОТВЕТЫ

Вопрос: Обновление операционной системы мобильного устройства привело к неработоспособности моего приложения. Что можно сделать, чтобы исправить эту проблему?

Ответ: Во-первых, вытрите слезы и удалите то гневное письмо, которое вы собрались отправить разработчикам операционной системы Android. Ситуации подобного рода вызывают беспокойство и могут даже поставить вас в неловкое положение, но такое случается — и довольно часто. В некоторых случаях вы можете избежать подобных сюрпризов, протестировав ваше приложение с использованием выпускаемой в скором времени версии инструментария Android SDK, исходный код которой есть в свободном доступе (Android Open Source Project), однако нет никакой гарантии, что некий производитель мобильного телефона (или оператор сотовой связи) не изменит эту версию инструментария, добавив или удалив определенные возможности по своему желанию. Иногда вы не будете знать о существовании некоторой проблемы до тех пор, пока вам не сообщит об лом пользователь откуда-нибудь из Сан-Паулу или Пекина или, что, возможно, еще страшнее, ваш босс. Для таких ситуаций у вас должен быть выработан четкий план действий. Заранее назначьте человека (беднягу), который будет следить за выходом новых версий инструментария Android SDK, чтобы оперативно исправлять ошибки и публиковать обновления приложения для пользователей.

Вопрос: Каким образом я могу получать события изменения ориентации экрана и загружать соответствующий макет для портретного или альбомного режима, чтобы экраны моего приложения всегда выглядели красиво?

Ответ: Для этого вашему приложению нет необходимости получать события изменения ориентации экрана. Вместо этого убедитесь, что у вас есть ресурсы макета, которые хранятся в каталоге с правильно определенным названием (с использованием квалификатора port или land). Операционная система Android автоматически загрузит подходящий макет при изменении ориентации экрана устройства. Как и в случае с любым другим ресурсом, вы должны убедиться в том, что ресурсы макетов для портретного и альбомного режимов включают одинаковые дочерние представления (чтобы избежать ситуаций, когда используемое представление отсутствует в макете для одной из ориентаций).

ПРАКТИКУМ Контрольные вопросы

1.                                                               Верно ли это? Квалификаторы в указанном названии каталога с ресурсами перечислены в правильном порядке: /res/drawables-rUS-en.

2.                                                               Для каких из следующих конфигураций мобильного устройства могут быть определены ресурсы?

A.                                Язык и регион/локаль.

B.                                 Способы ввода информации, например клавиатуры, сенсорные экраны и навигационные клавиши.

C.                                Размеры экрана, разрешение и ориентация.

Доступность клавиатуры и навигационных клавиш. Всего вышеперечисленного.

Ответы

Неверно. Регион должен указываться после языка. Таким образом, правильное название каталога будет выглядеть следующим образом: /res/drawables-en-rUS.

D.        

E.         

E. Для всех перечисленный конфигураций доступны соответствующие квалификаторы, которые могут использоваться для определения ресурсов приложения. Кроме того, существуют и другие квалификаторы. Полный список квалификаторов можно найти на веб-сайте, посвященном разработке на платформе Android, по адресу developer.android.com/guide/topics/resources/providing- resources.html#AlternativeResources.

Час 21. БОЛЕЕ ГЛУБОКОЕ ЗНАКОМСТВО С ПЛАТФОРМОЙ ANDROID

Вопросы, рассматриваемые в этом часе:

•             рассмотрение дополнительных возможностей платформы Android;

•             разработка сложных пользовательских интерфейсов;

•             работа с мультимедиа;

•             хранение и предоставление общего доступа к данным;

•             взаимодействие с нижележащим аппаратным обеспечением устройства.

При знакомстве с новой платформой для мобильных устройств знание возможностей этой платформы может оказаться весьма полезным. Этот час представляет собой экспресс-курс по некоторым из дополнительных возможностей инструментария Android SDK. В частности, вы узнаете об использовании базовых возможностей приложений, разработке сложных пользовательских интерфейсов, использовании мультимедиа, управлении хранилищами и данными, а также о взаимодействии с нижележащим аппаратным обеспечением устройства.

РАССМОТРЕНИЕ ДРУГИХ БАЗОВЫХ ВОЗМОЖНОСТЕЙ ПЛАТФОРМЫ ANDROID

Двадцать четыре часа — это, безусловно, очень короткий промежуток времени, чтобы успеть рассказать обо всех интересных и полезных возможностях платформы Android и инструментария Android SDK. В процессе знакомства с этой книгой вы уже добавили множество возможностей в приложение «Been There, Done That!». В этом часе вы познакомитесь со многими другими дополнительными возможностями платформы Android.

Объявление разрешений, необходимых для использования приложения

Как вы знаете, приложения должны указывать требуемые для их функционирования разрешения в файле манифеста Android. Приложения также могут объявлять и заставлять использовать свои собственные разрешения при помощи тега <permission>. Каждое разрешение должно быть определено в файле манифеста Android и может применяться к отдельным компонентам — в основном, к деятельностям или к службам — внутри приложения Кроме тою. разрешения также могут применяться на уровне методов.

Предупреждение пользователя при помощи уведомлений

Приложение может предупреждать пользователя о некоторых событиях даже в тех случаях, когда оно не активно, при помощи уведомлений. Например, приложение, предназначенное для обмена сообщениями, может уведомлять пользователей, когда приходит новое сообщение, как показано на рис. 21.!.

Уведомления могут принимать различную форму. Приложение может использовать несколько различных типов уведомлений при условии, что оно имеет соответствующие разрешения, указанные в файле манифеста Android:

•             отображение текстового уведомления в строке состояния;

•             воспроизведение звука;

Рис. 20.1. Уведомление в строке состояния

•             вибрация устройства;

•             изменение цвета светового индикатора и частоты его мигания

ВНИМАНИЕ! ___________________________________________________________

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

звуки, а у некоторых может отсутствовать световой индикатор.

Уведомления создаются и отображаются при помощи системной службы, представляемой классом NotificationManager (android. app .NotificationManager). Получив экземпляр класса для данной службы, вы можете создать объект типа Notification (указав подходящий текст уведомления, а также настройки вибрации, светового индикатора и звука) и использовать метод notify() класса NotificationManager, чтобы представить созданное уведомление пользователю.

ВНИМАНИЕ! ___________________________________________________________

Вы должны проявлять крайнюю осторожность при использовании уведомлений, чтобы не досаждать пользователю. Некоторые типы уведомлений, например вибрация уст­ройства, должны быть протестированы на реальном устройстве, поскольку эмулятор Android не позволяет имитировать этот тип действия.

Литература: Дэрси JI., Android за 24 часа. Программирование приложений под операционную систему Google/ ДэрсиЛ., КондерШ. — М.: Рид Групп, 2011. — 464 с. — (Профессиональные компьютерные книги). ISBN 978-5-4252-0318-2

По теме:

  • Комментарии