SlideShare a Scribd company logo
Десятая независимая научно-практическая 
конференция «Разработка ПО 2014» 
23 - 25 октября, Москва 
Что нового в Android 
Кирилл Данилов 
Developer Evangelist 
Samsung Electronics 
5.0
Полный список нововведений 
burst-mode camera, APIs H.265, NDK media, APIs TV input framework, low 
latency audio recording, audio patch-panel, impruved AV sync, USB audio, 
Cast receiver hardware assisted hot-word, ART, 64-bit trusted execution 
environment, volta, impruved battery stats, predicted time remaining, battery 
historian, Battery saver mode, time to charge, time on lock screen, 
JobScheduler, multinetwork, Bluetooth 4.1 BLE, central & peripheral modes, 
HFP 1.6 SAP, multi HFP, Map Email, OpenGL ES3.1 & Android Extencion 
Pack, personal unlocking, enterprise lock to app apis, Document-sentric multi-tasking, 
lockscreen notifications, head-up notifications, do not disturb, new 
quick settings, phone rotation lock, impruved game controller support, Closed 
caption, color inversion, colot space correction, impruved text rendering, 
Material theme, activity transitions, view shadows, new elevation, 
RecycleView, CardView, path animations, color extractor
Что нового в Android 
● Art - замена Dalvik 
● Material Design 
● Новые View 
● Notifications 
● Project Volta 
● WebView 
● Индексирование 
приложений
Art - Android Runtime 
● Зачем нужен Art? 
● Манифест Art 
● Ahead-of-time (AOT) compilation 
● Параллельное выполнение 
● Использование нескольких ядер 
● 85% сразу готовы к архитектуре 64bit 
http://source.android.com/devices/tech/dalvik/art.html
Что нового в Android 5.0
Material Design 
● Цель: создать визуальный язык 
● Принципы: разработать единую 
базовую систему, которая 
позволяет получить одинаковый 
опыт на разных платформах и 
размерах устройств 
http://www.google.com/design/spec/material-design/introduction.html
Material Design: Принципы 
Материал - 
это 
метафора 
Смело, 
графично, 
намеренно 
Движение 
определяет 
смысл 
http://www.google.com/design/spec/material-design/introduction.html
Новые View 
●RecycleView 
●CardView 
●Path animations 
●Color extractor 
●Vector Drawables
RecycleView 
●Обязательное использование шаблона 
HolderView 
●LayoutManager решает, что делать с 
элементом списка 
●RecyclerView.ItemAnimator отвечает за 
анимацию 
●Доступен в support library 
https://github.com/googlesamples/android-RecyclerView
RecycleView 
public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> { 
public static class ViewHolder extends RecyclerView.ViewHolder { 
public ViewHolder(View v) { super(v); } 
} 
public CustomAdapter(String[] dataSet) { mDataSet = dataSet; } 
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int position) { 
View v = LayoutInflater.from... 
ViewHolder vh = new ViewHolder(v); 
return vh; 
} 
public void onBindViewHolder(ViewHolder viewHolder, int position) { 
viewHolder.getmTextView().setText(mDataSet[position]); 
} 
} 
https://github.com/googlesamples/android-RecyclerView
CardView 
<android.support.v7.widget.CardView 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:elevation="100dp" 
card_view:cardBackgroundColor="@color/red" 
card_view:cardCornerRadius="8dp" 
android:layout_marginLeft="@dimen/margin_large" 
android:layout_marginRight="@dimen/margin_large"> 
<TextView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_margin="@dimen/margin_medium" 
android:text="@string/cardview_contents"/> 
</android.support.v7.widget.CardView> 
https://github.com/googlesamples/android-CardView
Notifications 
●Вывод на LockScreen: public, 
private, secret 
●High-priority notifications 
●Синхронизация между 
устройствами 
●Expanded layouts 
http://developer.android.com/about/versions/android-5.0.html#Notifications 
https://developer.android.com/design/patterns/notifications.html
Project Volta 
● Scheduling jobs - позволит выполнять задачи пачкой, во время зарядки 
или появления сети 
● Battery Historian и batterystats - выдают аналитические и 
статистические данные по энергопотреблению вашего приложения
Jobschedule api 
JobInfo.Builder builder = new JobInfo.Builder(kJobId++, mServiceComponent); 
builder.setMinimumLatency(Long.valueOf(delay) * 1000); 
builder.setOverrideDeadline(Long.valueOf(deadline) * 1000); 
builder.setRequiredNetworkCapabilities(JobInfo.NetworkType.UNMETERED); 
builder.setRequiresDeviceIdle(mRequiresIdleCheckbox.isChecked()); 
builder.setRequiresCharging(mRequiresChargingCheckBox.isChecked()); 
mTestService.scheduleJob(builder.build()); 
https://github.com/googlesamples/android-JobScheduler
Battery historian 
$ adb shell dumpsys batterystats --enable full-wake-history 
$ adb shell dumpsys batterystats --reset 
Произвести действия с приложением на телефоне 
$ adb bugreport > bugreport.txt 
$ ./historian.py bugreport.txt > result.html 
https://github.com/google/battery-historian/blob/master/historian.py
Battery historian
WebView 
● Основан на Chromium M37 
● Улучшена безопасность и стабильность 
● версия user-agent: 37.0.0.0 
● WebAudio, WebGL, WebRTC 
● Запрос разрешения на getUserMedia() 
● navigator.vibrate 
https://developer.chrome.com/multidevice/webview/overview
Как включить индексирование 
● Добавить поддержку Deeplinking: HTTP scheme (url-based) 
<activity 
<intent-filter 
<action .. VIEW 
<category ...DEFAULT 
<categoty ...BROWSABLE 
<data scheme=http host=example.com pathPrefix=/gizmos 
● Пройти верификацию сайта в консоли GooglePlay в “Службы и API”, 
далее публикация deeplinks и sitemap.xml 
<html 
<head 
<link rel="alternate" href="android-app://com.example/http/example.com/gizmos" /> 
...<url><loc>http://example.com/giznos</loc> 
<xhtml:link rel="alternate" href="android-app://com.example/http/example.com/gizmos" /> 
Отслеживание в WebMasterTools раздел Android App 
● Индексирование, проверка ошибок и статус 
https://developers.google.com/app-indexing/webmasters/
И еще кое что 
● Screen pinning 
● Multiple network connections 
● OpenGL ES 3.1 
● Extension Pack 
● android.media.projection API 
● android.bluetooth.le API 
● Android TV
Вопросы? 
Кирилл Данилов 
@broderix 
+kirilldanilov

More Related Content

PPT
Разработка приложений Tizen Wearable для Samsung Gear 2 на DevConf14
PDF
Android: Как создать свое первое приложение?
PDF
IT-инфраструктура. FAQ для разработчика
PPTX
Node.js введение в технологию, КПИ #ITmeetingKPI
PDF
Desktop app based on node js and html5
PDF
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
PPTX
Модульная структура
PPTX
Модульная структура. Цветцих Денис D2D Just.NET
Разработка приложений Tizen Wearable для Samsung Gear 2 на DevConf14
Android: Как создать свое первое приложение?
IT-инфраструктура. FAQ для разработчика
Node.js введение в технологию, КПИ #ITmeetingKPI
Desktop app based on node js and html5
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
Модульная структура
Модульная структура. Цветцих Денис D2D Just.NET

Similar to Что нового в Android 5.0 (20)

PPTX
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
PDF
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
PDF
Frontend: Путешествие в мир модульных загрузчиков
PPT
Embarcadero All-Access
PDF
Webinar: Обзор новых возможностей в RAD Studio XE8 (Delphi, C++Builder)
PDF
20160316 Работа с подготовленными заранее опросниками, хранимыми на сервере
PPT
Лекция 4
PDF
C# Web. Занятие 11.
PPTX
автоматизация процедуры адаптации гидродинамической модели
PPTX
OpenStack - Python Project with 12 Million Lines of code (RUS, Moscow Python ...
PPTX
Arduino and Azure IoT
PPT
Platypus platform ivbit
PPT
Владимир Никонов "Вызовы при разработке enterprise продукта"
PPT
Sencha Complete: Kharkiv JS #1
PPTX
Online TechTalk “Flutter Mobile Development”
PDF
Что такое мобильная платформа HyperHive
PDF
Программируемость коммутаторов для ЦОД Cisco Nexus
PDF
Seminar: Эффективное использование среды разработки и компилятора C++
PDF
Инструментируй это
PPTX
What's new in Visual Studio 2012
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
Frontend: Путешествие в мир модульных загрузчиков
Embarcadero All-Access
Webinar: Обзор новых возможностей в RAD Studio XE8 (Delphi, C++Builder)
20160316 Работа с подготовленными заранее опросниками, хранимыми на сервере
Лекция 4
C# Web. Занятие 11.
автоматизация процедуры адаптации гидродинамической модели
OpenStack - Python Project with 12 Million Lines of code (RUS, Moscow Python ...
Arduino and Azure IoT
Platypus platform ivbit
Владимир Никонов "Вызовы при разработке enterprise продукта"
Sencha Complete: Kharkiv JS #1
Online TechTalk “Flutter Mobile Development”
Что такое мобильная платформа HyperHive
Программируемость коммутаторов для ЦОД Cisco Nexus
Seminar: Эффективное использование среды разработки и компилятора C++
Инструментируй это
What's new in Visual Studio 2012
Ad

More from Kirill Danilov (7)

PPTX
Secr15 разработка кросс платформенных десктоп приложений nw.js
PDF
Интернет Тренды 2015
PPTX
Что нового в Android M Developer Preview 1
PPTX
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
PPTX
Разработка энерго-эффективных Tizen приложений для Gear
PPTX
Tizen HTML5 Development
PPTX
Tizen for Wearable Development Gear2 Danilov
Secr15 разработка кросс платформенных десктоп приложений nw.js
Интернет Тренды 2015
Что нового в Android M Developer Preview 1
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
Разработка энерго-эффективных Tizen приложений для Gear
Tizen HTML5 Development
Tizen for Wearable Development Gear2 Danilov
Ad

Что нового в Android 5.0

  • 1. Десятая независимая научно-практическая конференция «Разработка ПО 2014» 23 - 25 октября, Москва Что нового в Android Кирилл Данилов Developer Evangelist Samsung Electronics 5.0
  • 2. Полный список нововведений burst-mode camera, APIs H.265, NDK media, APIs TV input framework, low latency audio recording, audio patch-panel, impruved AV sync, USB audio, Cast receiver hardware assisted hot-word, ART, 64-bit trusted execution environment, volta, impruved battery stats, predicted time remaining, battery historian, Battery saver mode, time to charge, time on lock screen, JobScheduler, multinetwork, Bluetooth 4.1 BLE, central & peripheral modes, HFP 1.6 SAP, multi HFP, Map Email, OpenGL ES3.1 & Android Extencion Pack, personal unlocking, enterprise lock to app apis, Document-sentric multi-tasking, lockscreen notifications, head-up notifications, do not disturb, new quick settings, phone rotation lock, impruved game controller support, Closed caption, color inversion, colot space correction, impruved text rendering, Material theme, activity transitions, view shadows, new elevation, RecycleView, CardView, path animations, color extractor
  • 3. Что нового в Android ● Art - замена Dalvik ● Material Design ● Новые View ● Notifications ● Project Volta ● WebView ● Индексирование приложений
  • 4. Art - Android Runtime ● Зачем нужен Art? ● Манифест Art ● Ahead-of-time (AOT) compilation ● Параллельное выполнение ● Использование нескольких ядер ● 85% сразу готовы к архитектуре 64bit http://source.android.com/devices/tech/dalvik/art.html
  • 6. Material Design ● Цель: создать визуальный язык ● Принципы: разработать единую базовую систему, которая позволяет получить одинаковый опыт на разных платформах и размерах устройств http://www.google.com/design/spec/material-design/introduction.html
  • 7. Material Design: Принципы Материал - это метафора Смело, графично, намеренно Движение определяет смысл http://www.google.com/design/spec/material-design/introduction.html
  • 8. Новые View ●RecycleView ●CardView ●Path animations ●Color extractor ●Vector Drawables
  • 9. RecycleView ●Обязательное использование шаблона HolderView ●LayoutManager решает, что делать с элементом списка ●RecyclerView.ItemAnimator отвечает за анимацию ●Доступен в support library https://github.com/googlesamples/android-RecyclerView
  • 10. RecycleView public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> { public static class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(View v) { super(v); } } public CustomAdapter(String[] dataSet) { mDataSet = dataSet; } public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int position) { View v = LayoutInflater.from... ViewHolder vh = new ViewHolder(v); return vh; } public void onBindViewHolder(ViewHolder viewHolder, int position) { viewHolder.getmTextView().setText(mDataSet[position]); } } https://github.com/googlesamples/android-RecyclerView
  • 11. CardView <android.support.v7.widget.CardView android:layout_width="fill_parent" android:layout_height="wrap_content" android:elevation="100dp" card_view:cardBackgroundColor="@color/red" card_view:cardCornerRadius="8dp" android:layout_marginLeft="@dimen/margin_large" android:layout_marginRight="@dimen/margin_large"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="@dimen/margin_medium" android:text="@string/cardview_contents"/> </android.support.v7.widget.CardView> https://github.com/googlesamples/android-CardView
  • 12. Notifications ●Вывод на LockScreen: public, private, secret ●High-priority notifications ●Синхронизация между устройствами ●Expanded layouts http://developer.android.com/about/versions/android-5.0.html#Notifications https://developer.android.com/design/patterns/notifications.html
  • 13. Project Volta ● Scheduling jobs - позволит выполнять задачи пачкой, во время зарядки или появления сети ● Battery Historian и batterystats - выдают аналитические и статистические данные по энергопотреблению вашего приложения
  • 14. Jobschedule api JobInfo.Builder builder = new JobInfo.Builder(kJobId++, mServiceComponent); builder.setMinimumLatency(Long.valueOf(delay) * 1000); builder.setOverrideDeadline(Long.valueOf(deadline) * 1000); builder.setRequiredNetworkCapabilities(JobInfo.NetworkType.UNMETERED); builder.setRequiresDeviceIdle(mRequiresIdleCheckbox.isChecked()); builder.setRequiresCharging(mRequiresChargingCheckBox.isChecked()); mTestService.scheduleJob(builder.build()); https://github.com/googlesamples/android-JobScheduler
  • 15. Battery historian $ adb shell dumpsys batterystats --enable full-wake-history $ adb shell dumpsys batterystats --reset Произвести действия с приложением на телефоне $ adb bugreport > bugreport.txt $ ./historian.py bugreport.txt > result.html https://github.com/google/battery-historian/blob/master/historian.py
  • 17. WebView ● Основан на Chromium M37 ● Улучшена безопасность и стабильность ● версия user-agent: 37.0.0.0 ● WebAudio, WebGL, WebRTC ● Запрос разрешения на getUserMedia() ● navigator.vibrate https://developer.chrome.com/multidevice/webview/overview
  • 18. Как включить индексирование ● Добавить поддержку Deeplinking: HTTP scheme (url-based) <activity <intent-filter <action .. VIEW <category ...DEFAULT <categoty ...BROWSABLE <data scheme=http host=example.com pathPrefix=/gizmos ● Пройти верификацию сайта в консоли GooglePlay в “Службы и API”, далее публикация deeplinks и sitemap.xml <html <head <link rel="alternate" href="android-app://com.example/http/example.com/gizmos" /> ...<url><loc>http://example.com/giznos</loc> <xhtml:link rel="alternate" href="android-app://com.example/http/example.com/gizmos" /> Отслеживание в WebMasterTools раздел Android App ● Индексирование, проверка ошибок и статус https://developers.google.com/app-indexing/webmasters/
  • 19. И еще кое что ● Screen pinning ● Multiple network connections ● OpenGL ES 3.1 ● Extension Pack ● android.media.projection API ● android.bluetooth.le API ● Android TV