novidades do android 7.+ (bruno vieira e luiz cristofori)
TRANSCRIPT
![Page 1: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/1.jpg)
Novidades do Android 7.+Algumas novidades dessa mais nova versão do Android
![Page 2: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/2.jpg)
Luiz Cristofori
- Dev Android na Concrete há 1 ano- Dev Java Web por 5 anos- Projetos participados: Estácio,
Nextel e CS Billing
Apresentação
Bruno Vieira
- Androideiro na CS há 1 ano- Participante do time CartolaFC- Cursando Ciência da Computação
![Page 3: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/3.jpg)
Conteúdo:
– Android 7.0:
• Notificação
• Acessibilidade
• Doze
• Multi-window
• Compilação JIT/AOT no ART
• Data Saver
• Vulkan API
• Quick Settings Tile API
Novidades do Android 7.+
– Android 7.1:
• App Shortcuts
• Storage Manager Intent
![Page 4: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/4.jpg)
Android 7.0
![Page 5: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/5.jpg)
Notifications
Maior InteratividadeMais informaçãoMenos desperdício de espaço
![Page 6: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/6.jpg)
Notifications
- Direct replies- Bundled Notification- Mark as read- Notification Peeking
![Page 7: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/7.jpg)
Accessibility
- Vision Settings- Display Size- Mono- Text-to-speech
![Page 8: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/8.jpg)
Accessibility
![Page 9: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/9.jpg)
Accessibility
- 320dp- API 23 ou menor- Sem muita implementação- Uso de DP e não PX
![Page 10: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/10.jpg)
DOZEvamos cortar um doze
- Introduced in Marshmallow- Maintenance Windows- Stationary- 30 minutes
![Page 11: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/11.jpg)
DOZE
- Refined in Nougat- Wakelocks- Not only stationary
![Page 12: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/12.jpg)
Multi-window
Possibilidade de dividir a tela entre diferentes aplicações
Suporte às duas orientações de tela - portrait e landscape
Diferentes formas de personalização por parte do usuário
![Page 13: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/13.jpg)
Multi-window
Aproveitamento melhor de telas em determinados devices;
Fabricantes de celulares determinam a possibilidade;
Algumas fabricantes já possuem suporte a multi-window, porém de forma não nativa.
![Page 14: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/14.jpg)
Multi-window para desenvolvedores
Implementação rápida e bem fácil
APENAS uma tag no arquivo manifest
Algumas opções de customizações individuais
Não altera o ciclo de vida da activity
Métodos na activity para identificar se o app entrou em modo de multi-window
![Page 15: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/15.jpg)
Multi-window para desenvolvedores
Atributos para configuração em elementos <activity> ou <application>:- android:resizeableActivity=["true" | "false"]
- android:supportsPictureInPicture=["true" | "false"]
Atributos para configuração em elementos <layout>:- android:defaultWidth - android:minWidth - android:gravity- android:defaultHeight - android:minHeight
Métodos para activity:- isInMultiWindowMode() - isInPictureInPictureMode()- onMultiWindowModeChanged() - onPictureInPictureModeChanged()
![Page 16: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/16.jpg)
Multi-window para desenvolvedores
![Page 17: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/17.jpg)
Compilador JIT/AOT no ART
Entendendo as siglas:- ART - Android Runtime - Atual VM do Android- Dalvik - Antiga VM do Android- AOT - Ahead-of-time compilation - Compilação do código dex para
um código bytecode, mais específico para o device, no momento de instalação
- JIT - Just-in-time compilation - Mesma otimização, mas feita durante o uso do app
Mix do melhor dos dois mundos JIT/OAT
![Page 18: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/18.jpg)
Compilador JIT/AOT no ART
Visa acelerar - e muito - o processo de instalação de um app, atualizações de sistemas e reduzir espaço que o app ocupa depois de instalado
Otimização inteligente JIT feita enquanto o device está idle ou carregando
Constante atualização do bytecode otimizado
![Page 19: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/19.jpg)
Modo de economia de dados para planos móveis de internet 3g/4g
Usuário pode ligar ou desligar este modo. Ao ser ligado o sistema bloqueia o uso de dados em background e sinaliza aos apps para usar a menor quantidade de dados em foreground possível
É possível adicionar apps a uma whitelist para terem livre acesso ao consumo de dados mesmo com este modo ativado
Para economizar o uso de dados o app deve diminuir a qualidade das imagens e dos vídeos e os bit rates de um streaming
Data Saver
![Page 20: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/20.jpg)
Data Saver para o desenvolvedor
Método para verificar se a rede conectada é considerada limitada- connMgr.isActiveNetworkMetered()
Caso seja, chamamos um método para verificar o status do Data Saver- connMgr.getRestrictBackgroundStatus()
E por fim, fazemos um switch/case entre as opções
- RESTRICT_BACKGROUND_STATUS_ENABLED
- RESTRICT_BACKGROUND_STATUS_WHITELISTED
- RESTRICT_BACKGROUND_STATUS_DISABLED
![Page 21: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/21.jpg)
Data Saver para o desenvolvedor
![Page 22: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/22.jpg)
Vulkan API
Até o Nougat, o Android usava a OpenGL ES - rival da Vulkan
Tem como característica ser uma API de “menor sobrecarga”
Desenvolvedor tem total controle ao hardware do device - GPU
Melhor performance e menor dependência de alguma implementação extra para uma determinada GPU
![Page 23: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/23.jpg)
Vulkan API
Similar à Metal API, desenvolvida pela Apple
Maior facilidade para o desenvolvedor publicar seus games em diversas plataformas - Android, Linux, Windows, SteamOS
Apoiadores: Samsung, NVidia, Valve...
Fácil portabilidade entre plataformas
Vulkan API vs DirectX 12
![Page 24: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/24.jpg)
Vulkan API
Alguns jogos que estão usando:
![Page 25: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/25.jpg)
Quick Settings Tile
Maneira fácil e rápida do usuário acionar alguma função “crítica” do seu app
Um tile deve ser muito bem pensado antes de ser posto ali - Qual é a urgência dessa ação? E a sua frequência de uso? Vale a pena?
Diferentes possibilidades de interação: iniciar uma tarefa em background, pausar essa tarefa, abrir um dialog, ou até mesmo abrir uma activity do seu app
![Page 26: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/26.jpg)
Quick Settings Tile para o desenvolvedor
Muita atenção ao escolher o ícone e o título do tile!
Cada tile é associado a um TileService
Como qualquer service basta você declará-lo no manifest
Depois, basta criar uma classe Java e estender a classe TileService
![Page 27: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/27.jpg)
Quick Settings Tile para o desenvolvedor
Listeners que podem ser customizados:- onDestroy()- onTileAdded()- onTileRemoved()- onStartListening()- onStopListening()- onClick()
O processamento que será executado no método onClick() será na UI thread, então caso seja um processamento bem pesado é recomendado movê-lo para uma outra thread
![Page 28: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/28.jpg)
Quick Settings Tile para o desenvolvedor
![Page 29: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/29.jpg)
Quick Settings Tile para o desenvolvedor
![Page 30: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/30.jpg)
Android 7.1
![Page 31: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/31.jpg)
Shortcut3D TouchDeep LinkingIsso já existe no meu iPhone
Ações pontuais de sua app
Classificação estática e dinâmica
![Page 32: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/32.jpg)
Static Shortcut
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapplication"> <application ... > <activity android:name="Main"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="android.app.shortcuts" android:resource="@xml/cs_shortcuts" /> </activity> </application></manifest>
Ação genérica.
![Page 33: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/33.jpg)
Static Shortcut
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <shortcut android:shortcutId="compose" android:enabled="true" android:icon="@drawable/compose_icon" android:shortcutShortLabel="@string/short_label" android:shortcutLongLabel="@string/long_label" android:shortcutDisabledMessage="@string/disabled_text"> <intent android:action="android.intent.action.VIEW" android:targetPackage="com.example.myapplication" android:targetClass="com.example.myapplication.HomeActivity" /> <categories android:name="android.shortcut.conversation" /> </shortcut> <!-- Outros shortcuts aqui --></shortcuts>
res/xml/cs_shortcuts
![Page 34: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/34.jpg)
Dynamic Shortcut
ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
ShortcutInfo shortcut = new ShortcutInfo.Builder(this, "id1") .setShortLabel("Concrete") .setLongLabel("Concrete Solutions") .setIcon(Icon.createWithResource(context, R.drawable.ic_web)) .setIntent(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.concretesolutions.com.br/"))) .build();
shortcutManager.setDynamicShortcuts(Arrays.asList(shortcut));
Ação mutável.Dããã
![Page 35: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/35.jpg)
Shortcut - Best Practices
https://commondatastorage.googleapis.com/androiddevelopers/shareables/design/app-shortcuts-design-guidelines.pdf
•GuideLine
•4 Distintos Shortcuts
•Limite de descrição
•Preservação de shortcuts dinâmicos
![Page 36: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/36.jpg)
Storage Manager Intent
Usado para facilitar o problema de pouco espaço na memória interna
Resolver este problema pode trazer muitas dores de cabeça para o desenvolvedor
Maneira rápida de o app “sugerir” que o usuário limpe espaço da memória interna
Válido para apps que precisam armazenar uma quantidade de dados considerável
![Page 37: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/37.jpg)
Storage Manager Intent para desenvolvedores
![Page 38: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/38.jpg)
Links relevantes
- Android 7.0 Nougat - link
- Android 7.0 for developers - link
- Android 7.1 for developers - link
- Android Design: O que devemos saber - link
![Page 39: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/39.jpg)
Perguntas?
![Page 40: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/40.jpg)
Fontes
http://www.androidcentral.com/android-70-better-and-more-interactive-notificationshttps://www.thurrott.com/mobile/android/78293/android-7-0-nougat-tip-master-notificationshttp://www.androidcentral.com/android-n-developer-preview-brings-accessibility-improvementshttps://developer.android.com/about/versions/nougat/android-7.0-changes.html#accessibilityhttp://www.howtodroid.com/2016/08/change-text-item-size-nougat.htmlhttp://www.greenbot.com/article/3112224/android/what-you-need-to-know-about-doze-mode-in-android-nougat.htmlhttp://lifehacker.com/how-android-doze-works-and-how-to-tweak-it-to-save-you-1785921957https://developer.android.com/about/versions/nougat/android-7.0-changes.html#perfhttps://www.thurrott.com/mobile/android/83888/android-7-1-nougat-tip-app-shortcutshttps://developer.android.com/about/versions/nougat/android-7.1.htmlhttps://developer.android.com/guide/topics/ui/shortcuts.htmlhttps://catinean.com/2016/10/20/exploring-android-nougat-7-1-app-shortcuts/
![Page 41: Novidades do Android 7.+ (Bruno Vieira e Luiz Cristofori)](https://reader034.vdocuments.pub/reader034/viewer/2022042618/58a33bfd1a28ab9b6d8b6875/html5/thumbnails/41.jpg)
www.concretesolutions.com.br
Rio de Janeiro – Rua São José, 90 – cj. 2121Centro – (21) 2240-2030
São Paulo - Rua Sansão Alves dos Santos, 433 4º andar - Brooklin - (11) 4119-0449
Ajudamos empresas a criar produtos digitais de sucesso