Главная » Статьи » Что нового в Android 5 Lollipop
Что нового в Android 5 Lollipop

Мы живем во время буйного развития  ОС Android, большинство людей (ну как минимум среди молодежи) уже являются ее пользователями либо станут ими рано или поздно. Каждая новая версия Android имеем множество улучшений в интерфейсе, функционале, производительности. С выходом новой версии Android большинство (если не сказать все) производители смартфонов, планшетов и других пока менее распространенных у нас вещей стараются не медля переходить на новую актуальную версию, что делает их устройства более трендовыми. Для разработчиков приложений ознакомление с новой версией ОС, это как обязательные курсы повышения квалификации. Поэтому давайте ознакомимся с последней на данное время версией этой ОС - Android 5 Lollipop.

 Google официально представили миру Android 5 12 ноября 2014 года. Новый SDK (комплект средств разработки) стал доступным 3 ноября. До этого уже были известны некоторые особенности нового SDK, опубликованные ранее - 25 июня 2014 года. Новой версии ОС было дано имя Lollipop - (с английского) леденец. Учитывая все названия предыдущих версий, удивляться нечему. Но Google долго удавалось сохранять по этому поводу интригу, благодаря тому, что изначально была известна только первая буква - L. Lollipop оказался довольно существенным обновлением платформы Android, большим и очень перспективным.

 

1. Особенности

Сейчас, когда новый  Android SDK опубликован, можно отметить некоторые особенности новой версии ОС.

 

Батарея

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

JobScheluder API (application programming interface - интерфейс прикладного программирования, то есть набор готовых для использования разработчиком классов, функций, процедур и тд.) позволяет запускать различные задачи асинхронно с течением времени или же с использованием конкретных условий. JobInfo объекты могут определять эти условия и JobScheluder уже с их учетом. 

Благодаря этим дополнениям, разработчики могут более тщательно следить за энергоемкими процессами в приложениях и пытаться их контролировать.

Также в ADB появилась новая команда dumpsys batterystats, которую можно использовать для создания статистических данных по использованию  батареи подключенного устройства. Следующая строка демонстрирует ее работу:

adb shell dumpsys batterystats --charged <package-name>

 

Уведомления

В Android 5 уведомления могут быть отображены на экране блокировки. Разработчики могут определять объем, состав уведомления, которое будет показано, через команду setVisibility, которая принимает следующие значения:

     - VISIBILITY_PRIVATE: показывает базовую информацию, такую как иконка уведомления, но скрывает его контент, содержимое;

     - VISIBILITY_PUBLIC: показывает содержимое уведомления;

     - VISIBILITY_SECRET: не показывает ничего, даже иконки уведомления.

К уведомлениям можно присоединять метаданные, которые будут позволять настраивать категории и приоритеты, и для добавления дополнительных контактов.

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

Уведомление

 

Многозадачность

Resents screen (последние приложения, экраны) было переименовано в Overview screen (обзор экранов). Вместе с этим новым именем появились и новые API, которые улучшают опции многозадачности в Android.  Сейчас можно каждое Activity в своем приложении делать как отдельную задачу с возможностью показывать ее в Overview screen. К примеру, если вы создаете приложение - собственный браузер (вспомним наш урок:)), то можно сделать так, что каждая его вкладка будет иметь свое окно (типа каждая вкладка - отдельное запущенное приложение). В предыдущем же методе Resents screen браузер отображался как одно окно (приложение). Вот вид нового Overview screen:

Многозадачность

 

Время запуска и ART

Все предшествующие версии Android использовали виртуальную машину Dalvik. Приложения как правило написанные на языке Java,а в дальнейшем они компилируются в байт код (bytecode). Потом переданный в Dalvik байт код переводится в форматы .dex и .odex для обработки.

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

Dalvik использует JIT (Just in Time) компиляцию, в этом случае запускается только то приложение, которое нужно на данный момент. 

ART использует AOT (Ahead of Time) компиляцию для компилирования байт кода. Когда приложение установлено, оно компилируется ART утилитой dex2oat, которая создает ELF исполняемые файлы взамен .odex файлам. А далее программа запускается из этих, уже скомпилированных, ELF  исполняемых файлов.

В целом ART фактически во всем превосходит DalvikDalvik, давая разработчикам возможность больше экспериментировать с Android.

 

Android TV

Для того, чтобы помочь разработчикам создавать свои приложения с большим экраном отображения, в Lollipop введены такие новшества, как  Leanback UI и Android TV Input Frameforks (TIF)Leanback  библиотека поддерживает виджеты пользовательского интерфейса для TV приложений. TIF разработан для того, чтобы позволить TV приложениям работать с видео потоками из различных источников, таких, как HDMI вход, TV тюнер и IPTV приемник. 

 

Графика

Была добавлена поддержка Khronos Open GL ES 3.1. Поддерживаются следующие ключевые возможности:

     - вычисление шейдеров;

     - разделение шейдерных объектов;

     - улучшение общего процесса работы с шейдерами;

     - расширения для дополнительных смешанных режимов и процесса отладки;

     - дополнительные команды рисования;

     - добавлено много примеров и шаблонов текстур.

Также стоит отметить, что невзирая на эти обновления, Android 5 Lollipop все еще поддерживает Open GL 2.0 и 3.0.

Android Extention Pack (AEP)

В дополнение к Open GL ES 3.1, был добавлен набор расширений к Open GL ES, что позволяет:

     - гарантируется поддержка фрагментов шейдеров для буфера хранения шейдеров, изображений и прочих элементов;

     - различные смешанные режимы для каждого присоединения цвета в буфере фреймов;

     - мозаичные и геометрические шейдеры;

     - ASTC (LDR) формат сжатия текстур.

 

Chrome View

Android 5 Lollipop включает в себя новую версию веб обозревателя Chromium, основанного на  выпуске Chromium m37, с дополнительными возможностями поддержки WebAudio, WebRTC и WebGL. Также в обновление включается базовая поддержка всех веб компонентов, что позволяет использовать элементы Polimer и Material Desing в упрощенном режиме.

В Android Lollipop обновление Chromium доступно из Play Store, и теперь новые API и фиксы различных багов будут широко доступны и не будут требовать обновления операционной системы. 

 

Обозреватель медиа

Новый API android.media.brows  позволяет просматривать библиотеки медиа содержимого других установленных на устройстве приложений. Класс MediaBrowserService используется для обращения к медиа контенту приложения, а класс MediaBrowser - для взаимодействия с сервисом медиа браузера. 

 

Контроль медиа воспроизведения

Также были добавлены новые классы для упрощения контроля воспроизведения через различные Uls и сервисы. 

MediaSession заменило RemoteControlClient. Здесь поддерживается набор вызываемых методов для использования передачи управления, а также медиа кнопки. MediaController может быть использован дя создания стандартного медиа диспетчера, который в дальнейшем может быть использован для отправки команд в MediaSession

 

Новые сенсоры

Были введены два новых сенсора:

     - Tilt Detector - улучшает действие распознавания касания;

     - Heart Rate Sensor - дает возможность измерить сердцебиение пользователя при прикосновении к устройству.

Стоит отметить, что обе из этих функций требуют соответствующего аппаратного обеспечения. 

 

Управляемый доступ к программам

Администраторы устройства могут использовать режим управляемого доступа к приложениям для того, чтобы добавлять приложения в отдельные пользовательские профили. Если некоторый пользовательский аккаунт имеет возможность управления доступа, то приложения с отредактированной функцией доступа будут показаны рядом с существующими доступными приложениями.

Владелец устройства

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

Закрепление экрана

Закрепление экрана это новая функция, которая сравнима с функцией kiosk mode на iOS. Закрепление экрана включает в себя следующие возможности:

     - пустая полоса статуса;

     - прочие приложения не могут запустить новые активности;

     - используемые уведомления и информация статуса скрыты;

     - текущее приложение может создавать новые активности до тех пор, пока не запущены новые задачи.

Функция закрепления экрана может быть активирована вручную через Настройки --- Безопасность --- Закрепление экрана. Также ее можно активировать программно. Для этого в своем создаваемом приложении нужно реализовать метод startLockTask. Если такое приложение будет запускаться не владельцем устройства, то ему будет показано соответствующее окно, в котором будет предложено соглашение на запуск этой функции. Чтобы избежать отображения этого окна, разработчикам следует применять метод setLockTaskPackages. Для отключения функции закрепления экрана владельцу устройства нужно использовать команду stopLockTask, а для других пользователей устройством (не являющихся владельцами) для выхода с данного режима нужно зажать одновременно кнопки "Назад" и "Последние приложения".

 

Скриншоты

Захват изображения на экране теперь возможен через использование новых API -  android.media.projection. Создание метола VirtualDisplay позволяет приложениям вызывать функцию создания скриншотов, которые потом можно отослать в Сеть. Эти API могут делать захват только не защищенного контента (содержимого).

 

Камера

Благодаря новому API android.hardware.camera2 появилась возможность "сырого" (необработанного) захвата изображения.

 

Низко энергетический Bluetooth

Теперь Adroid устройства могут взаимодействовать с периферийными устройствами Bluetooth LE. Это можно использовать в приложениях для того, чтобы объявить о присутствии приложения находящимся невдалеке устройствам. С новыми  API android.bluetooth.le разработчики могут снабдить свое приложение возможностью присоединяться по Bluetooth к близ находящимся устройствам, передавать сообщения и принимать ответ. Для того, чтобы использовать эти новые возможности, для файла AndroidManifest.xml появилось новое разрешение, BLUETOOTH_ADMIN

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

 

NFS

 Улучшение NFS произошло в основном в таких направлениях:

     - Android Beam сейчас является опцией в share - меню;

     - invokeBeam может быть использован для инициации раздачи данных;

     - добавлены registerAidsForService и setPrefferedService для помощи в разработке платежных приложений. 

 

Редакторы метода ввода (IME)

Появилась возможность циклировать (периодически менять) различные методы ввода, доступные платформе. Это выполняется использованием метода shouldOffetToNextInputMethod.

 

2. Material Design

 Пришло время начать обзор того, что наиболее интересует большинство пользователей Android - свеженький Material Design о котором ходят легенды с самого начала нагнетания интриги над  Lollipop. Material Design - это набор основных принципов, относящихся к визуальному дизайну, движению контента и взаимодействию с пользователем. Полагается, что эти принципы визуализации будут использованы не только на Andoid, но и на множестве других устройств и платформ.

Проект Polimer является ярким примером того, как Material Design можно использовать и вне платформы Andoid, там Google представили несколько примеров с веб элементами в стиле Material Design для того, чтобы помочь желающим разобраться в том, как создавать веб ресурсы и веб приложения в стиле Material Design. Но несмотря на такую возможность использовать новшество на многих платформах, на данный момент Material Design остается в основном достоянием устройств на Android 5. 

Мультиплатформность

 

Новые виждеты 

В Android Lollipop представлены два новых виджета:

     - CardView: этот виджет позволяет сгруппировать информацию в последовательной манере. Можно настраивать опции продвижения или подчеркивания.

    - RecyclerView: более продвинутая версия виджета ListView

 

Новые темы

Появились две новенькие темы, которые используют принцип Material Design, под названием Dark Material и Light Material. Обе темы применяют новый вид пользовательского интерфейса системных виджетов. Темы довольно легко модифицируются, возможно изменение их цветовой палитры. Также в них есть свои уникальные эффекты переходов и анимации. 

 Новые темы

 

Глубина и тени

Теперь появилась возможность настраивать глубину через новый параметр Z. Увеличенный параметр Z бросает продолговатую тень от объекта (вспомним иконки приложений в стиле Material Design). Это характерная особенность, призванная создать ощущение особого вида интерфейса через использование слоев. 

 

Анимация

Также важной особенностью Material Design является анимация. Анимация при прикосновениях а также при различных переходах создает ощущение интерактивности и глубины отображения, не вызывая при этом какой либо неожиданности. Каждое изображение или объект должны появляться как отдельный слой на поверхности.  

Чтобы лучше понять смысл Material Design, представьте себе, что перед вами лежит белый чистый лист. На нем находятся разнообразные предметы: клочки бумаги, блокнот, канцелярские инструменты. Вы смотрите на все это сверху и вы видите не плоскую картинку, а объемную: каждый объект на столе имеет свою высоту, отбрасывает тень. Вот по такому принципу создается изображение и анимация в Material Design. Это выполняется с помощью использования множества слоев и настроек глубины изображения и теней.

 

3. Использование Android 5.0

Для начала работы с Android 5.0 нужно загрузить SDK платформу v21, желательно сделать это через SDK инструмент в Android Studio либо Eclipce. в файле ApplicationManifest.xml или в файле build.gradle настройте TargetSDKVersion до 21. 

 

4. Обратная совместимость

Одним из наибольших изменений в Android 5.0 является Material Design. Чтобы взять на вооружение лучшие новые возможности этого дизайна и научиться их использовать, давайте сейчас немного побудем в качестве разработчиков, перед которыми, кстати, образовалась проблема - как оборудовать свое приложение новыми фишками с Material Design, при этому не потеряв пользовательскую аудиторию, ведь среди пользователей далеко не все уже перешли на Android 5.0 (в этом плане могу напомнить свой мини обзор LG L Fino, в котором уже заимствованы стили оформления Material Design, хотя версия ОС - Android 4.4.2). 

Для демонстрации использования Android 5.0 и Material Design создадим простое приложение из одного Activity. Оно будет содержать всего лишь несколько виджетов. В папку res/ добавим следующее:

     - menu-v21/: содержит файл menu_main.xml, который будет использоваться для отображения иконок Material Design в устройствах на Android 5.0;

     - values-v11/: содержит файл styles.xml, который содержит настройки базовой темы holo.light для устройств на Android 3.0 и выше;

     - values-v21/: содержит файл styles.xml, который содержит настройки темы material.light для устройств на Android 5.0, также здесь определяются базовые цвета.

Изображение ниже демонстрирует запущенное приложение на Android 4.4.2 и Android 5.0. Тема material.light применена для устройства 5.0, а holo.light - для остальных устройств. Показано состояние по умолчанию обоих тем и вы можете видеть отличия пользовательского интерфейса:

 Интерфейс

 

Цвет и Action Bar

С приходом Material Design появилась возможность настройки базовых цветов тем. К примеру, добавьте код, размещенный ниже, для того, чтобы настроить задний фон панели уведомлений, фон панели Action Bar и виджетов пользовательского интерфейса:

<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Material.Light">
 <!-- Настраиваем тему -->
 <!-- Цвета основной темы -->
 <!-- Установка цветов для панели приложения -->
 <item name="android:colorPrimary">#0d7963</item>
 <!-- darker variant for the status bar and contextual app bars -->
 <item name="android:colorPrimaryDark">#ff0d5b47</item>
 <!-- theme UI controls like checkboxes and text fields -->
 <item name="android:colorAccent">#0d7963</item>
</style>

Результат может быть поразительным и приложение преобразится на глазах. Также присутствует набор Material Design иконок, которые можно использовать в уже существующий приложениях, чтобы внести в старые приложения дух новшеств. 

Вот пример использования Material Design иконок и настроек базовых цветов темы:

Вид модерн

Поэтому, разработчики, желающие преобразить свои старые приложения под дух новшества и модерна с Android 5.0,  сейчас получили эту возможность. Например, чтобы преобразовать приложение, создаваемое в свое время на Android 4.4.2, мы можем сделать следующее:

     - для смены иконок, меняем изображения в res/menu/menu-main.xml  на Material Design иконки;

     - для action bar, редактируем файл res/values-v11/styles.xml к следующему виду:

<resources>
 <!-- Базовая тема приложения. -->
 <style name="AppTheme" parent="android:Theme.Holo.Light">
 <!-- Настраиваем тему. -->
 <item name="android:actionBarStyle">@style/MyActionBar</item>
 </style>
 
 <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
 <item name="android:background">#0d7963</item>
 </style>
</resources>

Сравните произошедшие изменения:

Сравнение

Как видите, даже приложение на ОС Android 4.4.2 приобрело более современный, сравнимый с Android 5.0 и Material Design внешний вид.

 

Использование не поддерживаемых характеристик

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

Пример проверки системы:

// Проверяем систему на использование Android 5.0 и выше:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
 // Вызываем желаемые material design APIs здесь
} else {
 // Выполняем программу без material design
}

 

Поддерживаемые библиотеки

V7 r21 библиотеки поддерживают различные виджеты и особенности Material Design.

Theme.AppCompat позволяет использовать цветовую палитру любой из AppCompat тем и дополнять ее своими настройками. 

Например, AppCompat.Light:

<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
 <item name="colorPrimary">@color/material_blue_500</item>
 <item name="colorPrimaryDark">@color/material_blue_700</item>
 <item name="colorAccent">@color/material_green_A200</item>
</style>

Новые библиотеки также предоставляют Material Design виджеты для элементов:

     - EditText;

     - CheckBox;

     - Spinner;

     - RadioButtin;

     - SwitchCompat;

     - CheckedTextView;

Также библиотека V7 дает доступ к использованию новых виджетов CardView и RecyclerView, о которых упоминалось выше.

Если вы привязываете свои графические настройки к AppCompat , то существует возможность создать единичный слой, который будет поддерживать такие же настройки для многочисленных API. 

Для использования библиотеки V7, ее нужно добавить в свой проект. Если вы используете Android Studio и Gradle, это можно сделать в файле build.gradle:

dependencies {
 compile 'com.android.support:appcompat-v7:21.0.+'
 compile 'com.android.support:cardview-v7:21.0.+'
 compile 'com.android.support:recyclerview-v7:21.0.+'
} 

Когда вы подключаете библиотеку V7, то нужно настроить minSdkVersion до 7.

 

Заключение

Итак, мы рассмотрели основные особенности Android 5.0. Одними с основных изменений, которые незамедлительно войдут в широкое использование, это ART и всплывающие окна - уведомления, без прерывания от основного работающего приложения. Такие более сложные вещи, как Material Design, OverView, Job Scheduling, о которых в этой статье речь шла выше, будут входить в использование разработчиками более плавно и неспешно. 

Также большую роль в развитии ОС  Android  играют и будут играть простые пользователи. Сейчас в стадии развития и набирания популярности находятся сравнительно новые вещи, такие как, например, Smart TV, что в ближайшем будущем имеет шансы стать устройством из раздела must-have (должно быть).

Не взирая на то, ка как много людей смогут оценить все новшества и улучшения очередного релиза Android 5.0 Lollipop, нельзя сказать, что Google не потрудились при его создании

Оригинал статьи можете увидеть здесь

Категория: Статьи | Добавил: Oleg (08.01.2015)
Просмотров: 1201 | Рейтинг: 5.0/1
Всего комментариев: 0
avatar