1 page.title=Android N for Developers 2 meta.tags="preview", "androidn" 3 page.tags="preview", "developer preview" 4 page.image=images/cards/card-n-apis_2x.png 5 @jd:body 6 7 8 9 10 <div id="qv-wrapper"> 11 <div id="qv"> 12 <h2>Principais recursos para desenvolvedores</h2> 13 <ol> 14 <ul style="list-style-type:none;"> 15 <li><a href="#multi-window_support">Suporte a vrias janelas</a></li> 16 <li><a href="#notification_enhancements">Notificaes</a></li> 17 <li><a href="#jit_aot">Compilao JIT/AOT</a></li> 18 <li><a href="#quick_path_to_app_install">Caminho rpido para a instalao de aplicativos</a></li> 19 <li><a href="#doze_on_the_go">Modo soneca em movimento</a></li> 20 <li><a href="#background_optimizations">Otimizaes em segundo plano</a></li> 21 <li><a href="#data_saver">Economia de dados</a></li> 22 <li><a href="#vulkan">Vulkan API</a></li> 23 <li><a href="#tile_api">Quick Settings Tile API</a></li> 24 <li><a href="#number-blocking">Bloqueio de nmero</a></li> 25 <li><a href="#call_screening">Triagem de chamadas</a></li> 26 <li><a href="#multi-locale_languages">Localidades e idiomas</a></li> 27 <li><a href="#emoji">Novos emoticons</a></li> 28 <li><a href="#icu4">ICU4J APIs no Android</a></li> 29 <li><a href="#gles_32">OpenGL ES 3.2 API</a></li> 30 <li><a href="#android_tv_recording">Gravao do Android TV</a></li> 31 <li><a href="#android_for_work">Android for Work</a></li> 32 <li><a href="#accessibility_enhancements">Acessibilidade</a></li> 33 <li><a href="#direct_boot">Inicializao direta</a></li> 34 <li><a href="#key_attestation">Confirmao de chaves</a></li> 35 <li><a href="#network_security_config">Configurao de segurana de rede</a></li> 36 <li><a href="#default_trusted_ca">CA confivel padro</a></li> 37 <li><a href="#apk_signature_v2">Esquema de assinatura de APK v2</a></li> 38 <li><a href="#scoped_directory_access">Acesso a diretrios com escopo</a></li> 39 <li><a href="#keyboard_shortcuts_helper">Auxiliar de atalhos de teclado</a></li> 40 <li><a href="#sustained_performance_api">API de desempenho sustentado</a></li> 41 <li><a href="#vr">Suporte a RV</a></li> 42 <li><a href="#print_svc">Melhorias nos servios de impresso</a></li> 43 <li><a href="#virtual_files">Arquivos virtuais</a></li> 44 <li><a href="#framemetrics_api">FrameMetricsListener API</a></li> 45 </ol> 46 </div> 47 </div> 48 49 50 51 <p>O Android N ainda est em desenvolvimento ativo, mas agora voc j pode test-lo 52 como parte do N Developer Preview. As sees a seguir destacam alguns dos 53 novos recursos para desenvolvedores. </p> 54 55 <p> 56 No deixe de conferir as <a href="{@docRoot}preview/behavior-changes.html">Mudanas de comportamento</a> para saber mais sobre as 57 reas onde as alteraes de plataforma podem afetar os aplicativos, examine os 58 guias para desenvolvedores para saber mais sobre os principais recursos e faa o download da <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referncia da API</a> para obter detalhes sobre as 59 novas APIs. 60 </p> 61 62 <h2 id="multi-window_support">Suporte a vrias janelas</h2> 63 64 65 <p>No Android N, introduzimos um recurso de multitarefa novo e muito solicitado 66 na plataforma — o suporte a vrias janelas. </p> 67 68 <p>Agora os usurios podem abrir dois aplicativos na tela ao mesmo tempo. </p> 69 <ul> 70 <li>Em celulares e tablets 71 executando o Android N, os usurios agora podem executar dois aplicativos lado a lado ou 72 um acima do outro em modo de tela dividida. Os usurios podem redimensionar os aplicativos arrastando 73 o divisor entre eles. </li> 74 75 <li>Em dispositivos Android TV, os aplicativos podem assumir o <a href="{@docRoot}preview/features/picture-in-picture.html">modo imagem em 76 imagem</a>, o que permite que continuem a exibir contedo enquanto o usurio navega ou 77 interage com outros aplicativos.</li> 78 </ul> 79 80 <div class="col-4of10"> 81 <img src="{@docRoot}preview/images/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" /> 82 <p class="img-caption"> 83 <strong>Figura 1.</strong> Aplicativos executando em modo de tela dividida. 84 </p> 85 86 </div> 87 88 <p>O suporte a vrias janelas oferece novas formas de envolver os usurios, 89 particularmente em tablets e outros dispositivos com telas maiores. Voc pode at ativar o recurso de arrastar e soltar 90 no aplicativo para permitir que os usurios arrastem contedo de ou para o aplicativo — uma tima 91 maneira de aprimorar a experincia do usurio. </p> 92 93 <p> muito fcil adicionar suporte a vrias janelas a seu aplicativo e configurar como ele 94 lida com exibio em vrias janelas. Por exemplo, voc pode especificar as dimenses 95 mnimas permitidas para sua atividade, evitando que os usurios redimensionem a atividade para abaixo 96 deste tamanho. Voc tambm pode desativar a exibio de vrias janelas para o aplicativo, o que 97 garante que o sistema s mostrar o aplicativo em modo de tela inteira.</p> 98 99 <p> 100 Para obter mais informaes, consulte a documentao para desenvolvedores de <a href="{@docRoot}preview/features/multi-window.html">Suporte a vrias janelas</a> 101 . 102 </p> 103 104 <h2 id="notification_enhancements">Aprimoramentos de notificaes</h2> 105 106 <p>Reformulamos as notificaes no Android N para facilitar e agilizar o 107 uso. Entre as alteraes esto:</p> 108 109 <ul> 110 <li> 111 <strong>Atualizaes de modelos</strong>: Estamos atualizando os modelos de notificao para 112 colocar mais nfase na imagem do heri e do avatar. Os desenvolvedores podero 113 aproveitar os novos modelos com ajustes mnimos no cdigo. 114 </li> 115 116 <li> 117 <strong>Personalizao de estilo de mensagem</strong>: Voc pode personalizar mais 118 rtulos de interface de usurio associados s suas notificaes usando a classe 119 <code>MessageStyle</code>. possvel configurar a mensagem, o ttulo da conversa 120 e a visualizao de contedo. 121 </li> 122 123 <li> 124 <strong>Notificaes empacotadas</strong>: O sistema pode agrupar mensagens 125 por tpico de mensagem, por exemplo, e exibir o grupo. Um usurio pode 126 executar aes, como Dismiss ou Archive, nessa exibio de grupo. Se voc 127 j implementou notificaes para o Android Wear, est familiarizado com 128 esse modelo. 129 </li> 130 131 <li> 132 <strong>Resposta direta</strong>: Para aplicativos de comunicao em tempo real, o 133 sistema Android oferece suporte a respostas em linha para que os usurios possam responder rapidamente a 134 mensagens SMS ou de texto diretamente dentro da interface de notificao. 135 </li> 136 137 <li> 138 <strong>Visualizaes personalizadas</strong>: Duas APIs novas permitem utilizar decoraes 139 do sistema, como cabealhos e aes de notificao, durante o uso de visualizaes 140 personalizadas em notificaes. 141 </li> 142 </ul> 143 144 <div class="col-4of12"> 145 <img src="{@docRoot}preview/images/notifications-1.png" alt="" style="padding:.5em;max-width:226px"> 146 </div> 147 148 <div class="col-4of12"> 149 <img src="{@docRoot}preview/images/notifications-3.png" alt="" style="padding:.5em;max-width:226px"> 150 </div> 151 152 <div class="col-4of12"> 153 <img src="{@docRoot}preview/images/notifications-2.png" alt="" style="padding:.5em;max-width:226px"> 154 </div> 155 156 157 <p class="img-caption"> 158 <strong>Figura 2.</strong> Notificaes empacotadas e resposta direta. 159 </p> 160 161 <p>Para saber como implementar os novos recursos, consulte o 162 guia <a href="{@docRoot}preview/features/notification-updates.html">Notificaes</a> 163 .</p> 164 165 166 167 <h2 id="jit_aot">Compilao JIT/AOT orientada a perfil</h2> 168 169 <p>No Android N, adicionamos um compilador Just in Time (JIT) com perfis de cdigo para 170 ART, o que permite aprimorar constantemente o desempenho de aplicativos Android durante a 171 execuo. O compilador JIT complementa o compilador atual Ahead of Time (AOT) 172 do ART e ajuda a aprimorar o desempenho em tempo de execuo, economizar espao de armazenamento e acelerar atualizaes 173 de aplicativos e de sistema.</p> 174 175 <p>A compilao orientada a perfil permite que o ART gerencie a compilao AOT/JIT de cada aplicativo 176 de acordo com o uso real e com as condies no dispositivo. Por 177 exemplo, o ART mantm um perfil dos principais mtodos do aplicativo e pode pr-compilar 178 e armazenar esses mtodos em cache para obter o melhor desempenho. As outras partes do aplicativo no so 179 compiladas at que sejam realmente utilizadas.</p> 180 181 <p>Alm de aprimorar o desempenho para as principais partes do aplicativo, a compilao 182 ajuda a reduzir o uso geral de recursos de RAM, incluindo os binrios 183 associados. Esse recurso particularmente importante em dispositivos com pouca memria.</p> 184 185 <p>O ART gerencia a compilao orientada a perfil de forma a minimizar o impacto sobre a 186 bateria do dispositivo. A pr-compilao executada apenas quando o dispositivo est ocioso e 187 com a bateria sendo carregada, economizando tempo e bateria com a execuo antecipada dessa tarefa.</p> 188 189 <h2 id="quick_path_to_app_install">Caminho rpido para a instalao de aplicativos</h2> 190 191 <p>Um dos benefcios mais tangveis do compilador JIT do ART a velocidade de instalao dos 192 aplicativos e das atualizaes do sistema. At mesmo aplicativos grandes, que exigiam vrios minutos para 193 otimizao e instalao no Android 6.0, podem agora ser instalados em 194 segundos. As atualizaes de sistema tambm ficaram mais rpidas, pois no existe mais a etapa de otimizao. </p> 195 196 <h2 id="doze_on_the_go">Modo soneca em movimento...</h2> 197 198 <p>O Android 6.0 introduziu o modo soneca, um modo de sistema que economiza bateria adiando 199 atividades de CPU e rede dos aplicativos quando o dispositivo est ocioso, como 200 quando est em uma mesa ou gaveta. </p> 201 202 <p>Agora, no Android N, o modo soneca foi aprimorado e economiza bateria quando em movimento. 203 Sempre que a tela ficar desativada por um perodo e o dispositivo ficar desativado, 204 o modo soneca aplicar um subconjunto das restries familiares de CPU e rede aos aplicativos. 205 Isso significa que os usurios podem economizar bateria transportando os dispositivos no 206 bolso.</p> 207 208 209 <img src="/preview/images/doze-diagram-1.png" alt="" id="figure1" /> 210 <p class="img-caption"> 211 <strong>Figura 3.</strong> O modo soneca agora aplica 212 restries para aumentar a vida til da bateria mesmo quando o dispositivo no est estacionrio. 213 </p> 214 215 216 <p>Pouco depois de a tela ser desativada com o dispositivo alimentado pela bateria, o modo soneca 217 restringe o acesso de rede e adia trabalhos e sincronizaes. Durante breves janelas de 218 manuteno, os aplicativos podem acessar a rede e todos os 219 trabalhos/sincronizaes adiados so executados. A ativao da tela ou do dispositivo 220 encerra o modo soneca.</p> 221 222 <p>Quando o dispositivo voltar a ficar estacionrio, com a tela desativada e alimentado por bateria por um 223 perodo, o modo soneca aplicar as restries completas de CPU e rede em {@link 224 android.os.PowerManager.WakeLock}, alarmes {@link android.app.AlarmManager} e 225 verificaes de GPS/Wi-Fi.</p> 226 227 <p>As prticas recomendadas para adaptar o aplicativo ao modo soneca so as mesmas para 228 dispositivos estacionrios ou em movimento. Portanto, se voc j atualizou o aplicativo para 229 processar o modo soneca corretamente, est pronto. Caso contrrio, comece a <a href="{@docRoot}training/monitoring-device-state/doze-standby.html#assessing_your_app">adaptar 230 o aplicativo para o modo soneca</a> agora.</p> 231 232 <h2 id="background_optimizations">Project Svelte: Otimizaes em segundo plano</h2> 233 234 <p>O Project Svelte um esforo contnuo para minimizar o uso de RAM pelo sistema e pelos aplicativos 235 nos dispositivos Android existentes no ecossistema. No Android N, o Project 236 Svelte se concentra em otimizar a forma de execuo dos aplicativos em segundo plano. </p> 237 238 <p>O processamento em segundo plano parte essencial da maioria dos aplicativos. Quando executado corretamente, a experincia 239 do usurio pode ficar incrvel — imediata, rpida e sensvel ao contexto. 240 Quando executado incorretamente, o processamento em segundo plano pode consumir desnecessariamente RAM (e 241 bateria) e afetar o desempenho do sistema para os outros aplicativos. </p> 242 243 <p>Desde o Android 5.0, {@link android.app.job.JobScheduler} a forma 244 preferencial para execuo de trabalho em segundo plano de uma maneira que beneficia 245 os usurios. Os aplicativos podem agendar trabalhos e permitir que o sistema execute otimizaes com base em 246 condies de memria, energia e conectividade. O JobScheduler oferece controle e 247 simplicidade, e queremos que seja usado por todos os aplicativos. </p> 248 249 <p> 250 Outra boa opo o <a href="https://developers.google.com/android/reference/com/google/android/gms/gcm/GcmNetworkManager"> 251 <code>GCMNetworkManager</code></a>, parte do Google Play Services, que 252 oferece um agendamento de trabalhos similar, compatvel com verses legadas do 253 Android. 254 </p> 255 256 <p>Continuamos a expandir o <code>JobScheduler</code> e o 257 <code>GCMNetworkManager</code> para atender a mais 258 casos de uso — por exemplo, no Android N, voc j pode agendar trabalhos 259 em segundo plano de acordo com mudanas nos provedores de contedo. Ao mesmo tempo, comeamos a 260 substituir alguns padres mais antigos que podem reduzir o desempenho do sistema, 261 particularmente em dispositivos com pouca memria.</p> 262 263 <p>No Android N, estamos removendo trs transmisses implcitas de uso comum — 264 {@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}, {@link 265 android.hardware.Camera#ACTION_NEW_PICTURE} e {@link 266 android.hardware.Camera#ACTION_NEW_VIDEO} —, pois podem despertar simultaneamente 267 processos em segundo plano de vrios aplicativos, aumentando o consumo de memria e bateria. Se 268 o seu aplicativo receber essas transmisses, aproveite o N Developer Preview para 269 migrar para o <code>JobScheduler</code> e as APIs relacionadas. </p> 270 271 <p> 272 Consulte a documentao de <a href="{@docRoot}preview/features/background-optimization.html">Otimizaes 273 em segundo plano</a> para obter mais detalhes. 274 </p> 275 276 277 <h2 id="data_saver">Economia de dados</h2> 278 279 <div class="col-5of12" style="margin-right:1.5em;"> 280 <img src="{@docRoot}preview/images/datasaver.png" style="border:2px solid #ddd"> 281 282 <p class="img-caption" style="padding-right:2em;"> 283 <strong>Figura 4.</strong> Economia de dados em Settings. 284 </p> 285 </div> 286 287 <p>Normalmente, o custo de um plano de dados de celular ao longo da vida til do dispositivo mvel 288 excede o custo do prprio dispositivo. Para muitos usurios, os dados de celular 289 so um recurso caro que querem economizar. </p> 290 291 <p>O Android N introduz o modo de Economia de dados, um novo servio do sistema que ajuda a reduzir 292 o uso de dados de celular pelos aplicativos em situaes de roaming, perto do final do ciclo de cobrana 293 ou em pacotes de dados pr-pagos pequenos. A Economia de dados permite que os usurios controlem o 294 uso de dados de celular e possibilita que os desenvolvedores ofeream servios mais eficientes quando o modo de Economia 295 de dados estiver ativado. </p> 296 297 <p>Quando um usurio ativa a Economia de dados em <strong>Settings</strong> e o dispositivo est 298 em uma rede tarifada, o sistema bloqueia o uso de dados em segundo plano e avisa aos aplicativos 299 para reduzir o uso de dados no primeiro plano sempre que possvel — como, por exemplo, limitar a 300 taxa de bits de streaming, reduzir a qualidade de imagens, adiar o armazenamento prvio otimista em cache 301 e assim por diante. Os usurios podem autorizar aplicativos especficos a usar dados tarifados 302 em segundo plano, mesmo com a Economia de dados ativada.</p> 303 304 <p>O Android N estende o {@link android.net.ConnectivityManager} para oferecer aos aplicativos uma 305 forma de <a href="{@docRoot}preview/features/data-saver.html#status">recuperar as 306 preferncias do usurio para a Economia de dados</a> e <a href="{@docRoot}preview/features/data-saver.html#monitor-changes">monitorar 307 as mudanas de preferncias</a>. Todos os aplicativos devem verificar se o usurio ativou a Economia 308 de dados e tentar limitar o uso de dados em primeiro e segundo plano.</p> 309 310 311 <h2 id="vulkan">Vulkan API</h2> 312 313 <p> 314 O Android N integra o <a href="http://www.khronos.org/vulkan" class="external-link">Vulkan</a>, uma nova API de renderizao 3D, plataforma. Como o 315 <a href="https://www.khronos.org/opengles/" class="external-link">OpenGL 316 ES</a>, o Vulkan um padro aberto para grficos e renderizao 3D mantido 317 pelo Khronos Group. 318 </p> 319 320 <p> 321 O Vulkan foi projetado desde o incio para minimizar sobrecargas na CPU do driver 322 e permitir que seu aplicativo controle a operao de GPU de forma mais direta. O Vulkan 323 tambm oferece melhor paralelizao ao permitir que vrios encadeamento realizem 324 trabalhos como a construo de buffer de comando de uma s vez. 325 </p> 326 327 <p> 328 As ferramentas de desenvolvimento e bibliotecas do Vulkan se combinam ao Android NDK. Elas 329 incluem: 330 </p> 331 332 <ul> 333 <li>Cabealhos 334 </li> 335 336 <li>Camadas de validao (bibliotecas de depurao) 337 </li> 338 339 <li>Compilador de sombreadores SPIR-V 340 </li> 341 342 <li>Biblioteca de compilao de sombreadores SPIR-V em tempo de execuo 343 </li> 344 </ul> 345 346 <p> 347 O Vulkan s est disponvel para aplicativos em dispositivos com hardware com capacidade para Vulkan, 348 como Nexus 5X, Nexus 6P e Nexus Player Estamos trabalhando em estreita cooperao com nossos 349 parceiros para oferecer o Vulkan em mais dispositivos assim que possvel. 350 </p> 351 352 <p> 353 Para obter mais informaes, consulte a <a href="{@docRoot}ndk/guides/graphics/index.html">documentao da API</a>. 354 </p> 355 356 <h2 id="tile_api">Quick Settings Tile API</h2> 357 358 359 <div style="float:right;max-width:320px"> 360 <img src="{@docRoot}preview/images/quicksettings.png" style="padding-left:1.5em;"> 361 362 <p class="img-caption" style="padding-left:2em;"> 363 <strong>Figura 5.</strong> Blocos de Configuraes rpidas na aba de notificaes. 364 </p> 365 366 367 </div><p>As Configuraes rpidas so uma forma popular e simples de expor as principais configuraes e aes 368 diretamente na aba de notificaes. No Android N, ampliamos o escopo das 369 Configuraes rpidas para aumentar ainda mais a utilidade e a convenincia. </p> 370 371 <p>Adicionamos mais espao para os blocos de Configuraes rpidas, que os usurios podem 372 acessar em uma rea de exibio paginada deslizando direita ou esquerda. Alm disso, 373 permitimos que os usurios controlem quais blocos de Configuraes rpidas so exibidos, bem como o local 374 em que so exibidos — para adicionar ou mover blocos, os usurios simplesmente arrastam e soltam os blocos. </p> 375 376 <p>Para desenvolvedores, o Android N tambm adiciona uma API nova que permite definir os prprios 377 blocos de Configuraes rpidas para que os usurios possam acessar facilmente os principais controles e aes do seu aplicativo.</p> 378 379 <p> 380 Os blocos de Configuraes rpidas esto reservados para controles ou aes que so 381 urgentemente necessrios ou frequentemente usados e no devem ser usados como atalhos para 382 iniciar aplicativos. 383 </p> 384 385 <p> 386 Aps definir os blocos, voc pode disponibiliz-los aos usurios, que por sua vez podem adicion-los 387 s Configuraes rpidas usando o recurso de arrastar e soltar. 388 </p> 389 390 <p> 391 Para obter informaes sobre a criao de um bloco de aplicativo, consulte a documentao para 392 <code>android.service.quicksettings.Tile</code> na <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referncia da API</a>, disponvel para download. 393 </p> 394 395 396 397 <h2 id="number-blocking">Bloqueio de nmero</h2> 398 399 <p>O Android N agora oferece suporte a bloqueio de nmeros na plataforma e disponibiliza uma 400 API de estrutura para permitir que provedores de servio mantenham uma lista de nmeros bloqueados. O 401 aplicativo padro de SMS, o aplicativo padro de telefone e os aplicativos de provedor podem ler e gravar 402 a lista de nmeros bloqueados. A lista no est acessvel para outros aplicativos.</p> 403 404 <p>Ao oferecer o bloqueio de nmero como recurso padro da plataforma, o Android oferece 405 uma forma consistente de bloqueio de nmeros em uma grande variedade de 406 dispositivos. Alguns benefcios que podem ser aproveitados pelos aplicativos so:</p> 407 408 <ul> 409 <li> Nmeros bloqueados para chamadas tambm so bloqueados para mensagens de texto 410 <li> Nmeros bloqueados podem persistir entre vrias redefinies e dispositivos por meio do 411 recurso Backup e restaurao 412 <li> Vrios aplicativos podem usar a mesma lista de nmeros bloqueados 413 </ul> 414 415 <p>Alm disso, a integrao de aplicativos da operadora por meio do Android significa que as operadoras podem 416 ler a lista de nmeros bloqueados no dispositivo e executar um bloqueio do lado do servidor 417 para o usurio, impedindo que chamadas e textos indesejados cheguem a ele 418 por qualquer meio, como terminais de VOIP ou encaminhamento de telefones.</p> 419 420 <p> 421 Para obter mais informaes, consulte <code>android.provider.BlockedNumberContract</code> 422 na <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referncia 423 da API</a>, disponvel para download. 424 </p> 425 426 <h2 id="call_screening">Triagem de chamadas</h2> 427 428 <p> 429 O Android N permite que o aplicativo de telefone padro faa a triagem das chamadas recebidas. O aplicativo 430 de telefone faz isso implementando o novo <code>CallScreeningService</code>, 431 que permite a execuo de diversas aes com base nos 432 {@link android.telecom.Call.Details Call.Details} da chamada recebida, como: 433 </p> 434 435 <ul> 436 <li> Rejeitar a chamada recebida 437 <li> No incluir a chamada no registro de chamadas 438 <li> No mostrar ao usurio a notificao da chamada 439 </ul> 440 441 <p> 442 Para obter mais informaes, consulte <code>android.telecom.CallScreeningService</code> 443 na <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referncia 444 da API</a>, disponvel para download. 445 </p> 446 447 448 <h2 id="multi-locale_languages">Suporte a diversas localidades, mais idiomas</h2> 449 450 451 <p>O Android N agora permite que os usurios selecionem <strong>diversas localidades</strong> em Settings 452 para oferecer melhor suporte a casos de uso bilngue. Os aplicativos podem usar 453 uma API nova para obter as localidades selecionadas pelo usurio e oferecer 454 experincias de usurio mais sofisticadas para usurios com diversas localidades — como, por exemplo, mostrar resultados de pesquisa em 455 diversos idiomas e no oferecer a traduo de pginas da web que usam 456 um idioma conhecido pelo usurio.</p> 457 458 <p>Juntamente com o suporte a vrias localidades, o Android N tambm amplia o nmero de idiomas 459 disponveis aos usurios. Ele oferece mais de 25 variantes para cada um dos idiomas 460 mais comuns, como ingls, espanhol, francs e rabe. Alm disso, adiciona suporte parcial 461 a mais de 100 novos idiomas.</p> 462 463 <p>Os aplicativos podem obter a lista de localidades definida pelo usurio chamando 464 <code>LocaleList.GetDefault()</code>. Para oferecer suporte ao maior nmero de localidades, o Android N est 465 alterando a forma como resolve recursos. No deixe de testar e verificar se seus aplicativos 466 funcionam da forma esperada com a nova lgica de resoluo de recursos.</p> 467 468 <p>Para saber mais sobre o novo comportamento de resoluo de recursos e sobre as prticas recomendadas que voc deve 469 seguir, consulte <a href="{@docRoot}preview/features/multilingual-support.html">Suporte a vrios idiomas</a>.</p> 470 471 472 <h2 id="emoji">Novos emoticons</h2> 473 474 <p> 475 O Android N apresenta emoticons adicionais e recursos relacionados, tais como 476 emoticons com diferentes tons de pele e suporte a seletores 477 de variao. Se o seu aplicativo suporta emoticons, 478 siga as diretrizes abaixo para aproveitar estes recursos prprios para emoticons. 479 </p> 480 481 <ul> 482 <li> 483 <strong>Verifique se o dispositivo contm um emoticon antes de inseri-lo.</strong> 484 Para conferir quais emoticons esto presentes 485 na fonte do sistema, use o mtodo {@link android.graphics.Paint#hasGlyph(String)}. 486 </li> 487 <li> 488 <strong>Verifique se um emoticon suporta seletores de variao.</strong> 489 Os seletores de variao permitem que voc 490 apresente determinados emoticons em cores ou preto e branco. 491 Em dispositivos mveis, os aplicativos devem representar os emoticons em cores, e no em preto e branco. Porm, 492 se o seu aplicativo exibe emoticons em linha com o texto, ele deve usar a variao preto e branco. 493 Para determinar se um emoticon tem variao ou no, use o seletor de variao. 494 Para obter uma lista completa de caracteres com variaes, consulte a seo 495 <em>sequncias de variao de emoticon</em> da 496 <a class="external-link" href="http://www.unicode.org/Public/9.0.0/ucd/StandardizedVariants-9.0.0d1.txt"> 497 documentao sobre variaes em Unicode</a>. 498 </li> 499 <li> 500 <strong>Verifique se um emoticon suporta tons de pele.</strong> O Android N permite que os usurios modifiquem o 501 tom de pele renderizado de emoticons como quiserem. Os aplicativos de teclado devem oferecer indicaes 502 visuais para emoticons que tenham diversos tons de pele e permitir que os usurios 503 selecionem o tom preferido. Para determinar quais emoticons do sistema tm 504 modificadores de tom de pele, use o mtodo {@link android.graphics.Paint#hasGlyph(String)} 505 . Voc pode determinar quais emoticons usam tons de pele lendo a 506 <a class="external-link" href="http://unicode.org/emoji/charts/full-emoji-list.html"> 507 documentao do Unicode</a>. 508 </li> 509 </ul> 510 511 512 <h2 id="icu4">ICU4J APIs no Android</h2> 513 514 <p> 515 Agora, o Android N oferece um subconjunto de <a href="http://site.icu-project.org/">ICU4J</a> APIs na estrutura do Android 516 no pacote <code>android.icu</code>. A migrao fcil e geralmente exige 517 apenas a mudana do namespace <code>com.java.icu</code> para 518 <code>android.icu</code>. Se voc j usa um pacote ICU4J nos seus 519 aplicativos, a mudana para as APIs do <code>android.icu</code> disponibilizadas na estrutura do 520 Android pode reduzir substancialmente o tamanho do APK. 521 </p> 522 523 <p> 524 Para saber mais sobre as APIs ICU4J no Android, consulte <a href="{@docRoot}preview/features/icu4j-framework.html">Suporte ao ICU4J</a>. 525 </p> 526 527 528 529 <h2 id="gles_32">OpenGL™ ES 3.2 API</h2> 530 531 <p>O Android N adiciona interfaces de estrutura e suporte de plataforma ao OpenGL ES 3.2, incluindo:</p> 532 533 <ul> 534 <li> Todas as extenses do <a class="external-link" href="https://www.khronos.org/registry/gles/extensions/ANDROID/ANDROID_extension_pack_es31a.txt"> 535 Pacote de extenso Android</a></a> (AEP), exceto <code>EXT_texture_sRGB_decode</code>. 536 <li> Framebuffers de ponto flutuante para HDR e sombreamento adiado. 537 <li> Chamadas de desenho a BaseVertex para possibilitar melhor organizao em lotes e transmisso. 538 <li> Controle robusto de acesso a buffers para reduzir a sobrecarga do WebGL. 539 </ul> 540 541 <p>A API da estrutura do OpenGL ES 3.2 no Android N fornecida pela classe 542 <code>GLES32</code>. Ao usar o OpenGL ES 3.2, no deixe de declarar o 543 requisito no arquivo manifesto usando o rtulo <code><uses-feature></code> e o 544 atributo <code>android:glEsVersion</code>. </p> 545 546 <p>Para obter mais informaes sobre como usar o OpenGL ES, incluindo como verificar a verso do 547 OpenGL ES compatvel do dispositivo no tempo de execuo, consulte o <a href="{@docRoot}guide/topics/graphics/opengl.html">guia da OpenGL ES API</a>.</p> 548 549 550 <h2 id="android_tv_recording">Gravao do Android TV</h2> 551 552 <p>O Android N adiciona a capacidade de gravar e reproduzir contedo de servios de entrada 553 do Android TV por meio de novas APIs de gravao. Criados usando as APIs atuais de time-shifting, 554 os servios de entrada de TV podem controlar quais dados de canal so gravados e como 555 as sesses gravadas so salvas, bem como gerenciar a interao do usurio com o contedo gravado. </p> 556 557 <p>Para obter mais informaes, consulte <a href="{@docRoot}preview/features/tv-recording-api.html">Android TV Recording APIs</a>.</p> 558 559 560 <h2 id="android_for_work">Android for Work</h2> 561 562 <p>O Android for Work adiciona vrios recursos e APIs para dispositivos que executam o Android N. 563 Veja a seguir alguns destaques — para obter uma lista completa das mudanas, consulte 564 <a href="{@docRoot}preview/features/afw.html">atualizaes no Android for Work</a>.</p> 565 566 <h3 id="work_profile_security_challenge">Desafio de segurana de perfil de trabalho </h3> 567 568 <p> 569 Donos de perfis direcionados ao N SDK 570 podem especificar um desafio de segurana em separado para aplicativos em execuo no 571 perfil de trabalho. O desafio de trabalho exibido quando um usurio tenta abrir 572 qualquer aplicativo de trabalho. O preenchimento correto do desafio de segurana desbloqueia e, 573 se necessrio, descriptografa o perfil de trabalho. Para donos de perfil, 574 <code>ACTION_SET_NEW_PASSWORD</code> solicita que o usurio defina um desafio 575 de trabalho e <code>ACTION_SET_NEW_PARENT_PROFILE_PASSWORD</code> um 576 bloqueio de dispositivo. 577 </p> 578 579 <p> 580 Os donos de perfil tambm podem definir polticas de senha distintas para o desafio de trabalho 581 (como o comprimento mnimo do PIN ou se permitido usar a impresso digital 582 para desbloquear o perfil) usando<code>setPasswordQuality()</code>, 583 <code>setPasswordMinimumLength()</code> e mtodos relacionados. O dono 584 de perfil tambm pode definir o bloqueio de dispositivo usando a instncia de <code>DevicePolicyManager</code> 585 retornada pelo novo mtodo <code>getParentProfileInstance()</code>. 586 Alm disso, donos de perfil podem personalizar a tela de credenciais do 587 desafio de trabalho usando os novos mtodos <code>setOrganizationColor()</code> e 588 <code>setOrganizationName()</code>. 589 </p> 590 <h3 id="turn_off_work">Desativar o trabalho </h3> 591 592 <p>Os usurios podem alternar o modo de trabalho em dispositivos com um perfil de trabalho. Quando o modo de trabalho est 593 desativado, o usurio gerenciado encerrado temporariamente, o que desativa 594 os aplicativos, a sincronizao em segundo plano e as notificaes do perfil de trabalho. Isso inclui o aplicativo do 595 dono do perfil. Quando o modo de trabalho est desativado, o sistema exibe um cone de status persistente 596 para lembrar ao usurio que no possvel iniciar aplicativos de trabalho. A tela de incio 597 indica que os aplicativos e widgets de trabalho no podem ser acessados. </p> 598 599 <h3 id="always_on_vpn">Always on VPN </h3> 600 601 <p>Os donos de dispositivo e perfil podem garantir que os aplicativos de trabalho se conectem sempre 602 por meio de uma VPN especificada. O sistema inicia automaticamente a VPN aps a 603 inicializao do dispositivo.</p> 604 605 <p> 606 Os novos mtodos <code>DevicePolicyManager</code> so 607 <code>setAlwaysOnVpnPackage()</code> e 608 <code>getAlwaysOnVpnPackage()</code>. 609 </p> 610 611 <p>Como os servios de VPN podem ser vinculados diretamente pelo sistema sem interao com 612 aplicativos, os clientes de VPN precisam processar novos pontos de entrada para o Always on VPN. Da 613 mesma forma que antes, os servios so indicados ao sistema por um filtro de inteno 614 correspondente ao <code>android.net.VpnService</code>. </p> 615 616 <p> 617 Alm disso, os usurios podem definir manualmente clientes do Always on VPN que implementam 618 mtodos <code>VPNService</code> no usurio principal usando 619 <strong>Settings>More>Vpn</strong>. 620 </p> 621 622 <h3 id="custom_provisioning">Provisionamento personalizado</h3> 623 624 <p> 625 Um aplicativo pode personalizar os fluxos de provisionamento do dono do perfil e do dispositivo 626 com cores e logos corporativos. 627 <code>DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR</code> personaliza 628 a cor do fluxo. <code>DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI</code> 629 personaliza o fluxo com um logo corporativo. 630 </p> 631 632 <h2 id="accessibility_enhancements">Aprimoramentos na acessibilidade</h2> 633 634 <p>O Android N agora oferece Configuraes de viso diretamente na tela de boas-vindas na instalao 635 de novos dispositivos. Isso permite que os usurios descubram e configurem recursos de acessibilidade 636 em seus dispositivos de forma muito mais fcil, incluindo gesto de ampliao, tamanho 637 da fonte, tamanho da tela e TalkBack. </p> 638 639 <p>Com o posicionamento mais proeminente desses recursos de acessibilidade, os usurios 640 ficaro mais propensos a experimentar o aplicativo com os recursos ativados. No deixe de testar antecipadamente os aplicativos 641 com essas configuraes ativadas. Voc pode ativ-las em Settings > 642 Accessibility.</p> 643 644 <p>Alm disso, os servios de acessibilidade no Android N podem ajudar usurios com deficincias 645 motoras a tocar na tela. A nova API permite criar servios com recursos 646 como acompanhamento de face, acompanhamento de olho e varredura de pontos, entre outros, para atender 647 s necessidades desses usurios.</p> 648 649 <p>Para obter mais informaes, consulte <code>android.accessibilityservice.GestureDescription</code> 650 na <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referncia da API</a>, disponvel para download.</p> 651 652 653 <h2 id="direct_boot">Inicializao direta</h2> 654 655 <p>A inicializao direta reduz os tempos de inicializao dos dispositivos e permite que aplicativos 656 registrados tenham funcionalidade limitada, mesmo aps uma reinicializao inesperada. 657 Por exemplo, se um dispositivo criptografado reinicializar durante o sono do usurio, 658 alarmes registrados, mensagens e chamadas recebidas podem agora continuar notificando 659 o usurio normalmente. Isso tambm significa que servios de acessibilidade podem ser 660 disponibilizados imediatamente aps um reincio.</p> 661 662 <p>A inicializao direita aproveita a criptografia baseada em arquivo do Android N 663 para ativar polticas de criptografia detalhadas para dados de sistema e aplicativos. 664 O sistema usa um armazenamento criptografado pelo dispositivo para determinados dados de sistema e dados 665 de aplicativos registrados explicitamente. Por padro, um armazenamento criptografado por credencial usado para todos 666 os outros dados de sistema, dados de usurio, aplicativos e dados de aplicativos. </p> 667 668 <p>Na inicializao, o sistema inicia em um modo restrito que permite 669 acessar apenas dados criptografados pelo dispositivo, sem acesso geral a aplicativos ou dados. 670 Se voc deseja executar componentes nesse modo, pode registr-los 671 definindo um sinalizador no manifesto. Aps a reinicializao, o sistema ativa 672 componentes registrados transmitindo a inteno <code>LOCKED_BOOT_COMPLETED</code> 673 . O sistema garante que dados de aplicativos registrados criptografados pelos dispositivos sejam disponibilizados 674 antes do destravamento. Todos os outros dados ficaro indisponveis at que o usurio confirme as credenciais 675 de tela de bloqueio para descriptograf-los. </p> 676 677 Para obter mais informaes, consulte <a href="{@docRoot}preview/features/direct-boot.html">Inicializao direta</a>.</p> 678 </p> 679 680 681 <h2 id="key_attestation">Confirmao de chaves</h2> 682 683 <p>Os armazenamentos de chaves protegidos por hardware oferecem um mtodo muito mais seguro para criar, armazenar 684 e usar chaves de criptografia em dispositivos Android. Eles protegem chaves contra o kernel do Linux, 685 possveis vulnerabilidades do Android e extrao 686 em dispositivos com acesso root.</p> 687 688 <p>Para permitir o uso de armazenamento de chaves protegido por hardware com maior facilidade e segurana, 689 o Android N introduziu a confirmao de chaves. Aplicativos em dispositivos mveis e fora deles podem usar a confirmao de chaves 690 para determinar com preciso se um par de chaves RSA ou EC 691 est protegido por hardware, quais as propriedades do par de chaves e quais as restries 692 aplicadas ao uso e validao. </p> 693 694 <p>Aplicativos e servios externos aos dispositivos mveis podem solicitar informaes sobre um par de chaves 695 por meio de um certificado de confirmao X.509, que deve estar assinado por uma 696 chave de confirmao vlida. A chave de confirmao uma chave de assinatura ECDSA, 697 injetada no armazenamento de chaves protegido por hardware do dispositivo na fbrica. 698 Portanto, um certificado de confirmao assinado com uma chave de confirmao 699 vlida confirma a existncia de um armazenamento de chaves protegido por hardware, alm de 700 detalhes dos pares de chaves desse armazenamento de chaves.</p> 701 702 <p>Para garantir que o dispositivo esteja usando uma imagem Android oficial de fbrica 703 e segura, a confirmao de chaves exige que o <a class="external-link" href="https://source.android.com/security/verifiedboot/verified-boot.html#bootloader_requirements">bootloader</a> 704 do dispositivo fornea as seguintes informaes ao <a class="external-link" href="https://source.android.com/security/trusty/index.html">Ambiente 705 de execuo confivel (TEE)</a>:</p> 706 707 <ul> 708 <li>A verso do SO e o nvel de correo instalado no dispositivo</li> 709 <li>A chave pblica <a href="https://source.android.com/security/verifiedboot/index.html" class="external-link">Verified Boot</a> e seu status de bloqueio</li> 710 </ul> 711 712 <p>Para obter mais informaes sobre o recurso de armazenamento de chaves protegido por hardware, 713 consulte o guia <a href="https://source.android.com/security/keystore/" class="external-link">Armazenamento de chaves protegido por hardware</a>.</p> 714 715 <p>Alm da confirmao de chaves, o Android N tambm introduziu 716 chaves associadas a impresses digitais que no so revogadas no cadastramento de impresses digitais.</p> 717 718 <h2 id="network_security_config">Configurao de segurana de rede</h2> 719 720 <p>No Android N, os aplicativos podem personalizar o comportamento de conexes seguras (HTTPS, TLS) 721 de forma segura, sem modificao no cdigo, usando a 722 <em>Configurao de segurana de rede</em> declarativa em vez das 723 APIs programticas propensas a erro (por exemplo, X509TrustManager).</p> 724 725 <p>Recursos compatveis:</p> 726 <ul> 727 <li><b>ncoras de confiana personalizadas.</b> Permite que um aplicativo personalize quais 728 autoridades de certificado (CA) so confiveis para as conexes seguras. Por 729 exemplo, confiar em certificados autoassinados privados ou um restrito conjunto de CAs pblicas. 730 </li> 731 <li><b>Substituies apenas em depurao.</b> Permite que um desenvolvedor de aplicativos depure 732 conexes seguras do aplicativo com segurana, sem adicionar riscos base 733 instalada. 734 </li> 735 <li><b>Cancelamento do uso de trfego de texto simples.</b> Permite que um aplicativo seja protegido contra 736 o uso acidental de trfego de texto simples.</li> 737 <li><b>Fixao de certificados.</b> Um recurso avanado que permite que os aplicativos 738 limitem quais chaves de servidor so confiveis para conexes seguras.</li> 739 </ul> 740 741 <p>Para obter mais configuraes, consulte <a href="{@docRoot}preview/features/security-config.html">Configurao de segurana 742 de rede</a>.</p> 743 744 <h2 id="default_trusted_ca">Autoridade de certificado confivel padro</h2> 745 746 <p>Por padro, os aplicativos direcionados ao Android N confiam apenas em certificados fornecidos pelo sistema 747 e no confiam mais em Autoridades de certificado (CA) adicionadas pelo usurio. Os aplicativos direcionados ao Android 748 N que querem confiar em CAs adicionadas pelo usurio devem usar a 749 <a href="{@docRoot}preview/features/security-config.html">Configurao de segurana de rede</a> para 750 especificar como confiar nas CAs de usurio.</p> 751 752 <h2 id="apk_signature_v2">Esquema de assinatura de APK v2</h2> 753 754 <p> 755 O Android N apresenta o esquema de assinatura de APK v2, um novo esquema de assinatura de aplicativo 756 que oferece instalaes mais rpidas e maior proteo contra alteraes no autorizadas 757 em arquivos APK. Por padro, o Android Studio 2.2 e o plug-in do Android 758 para Gradle 2.2 assinam seu aplicativo usando o esquema de assinatura de APK v2 e 759 o esquema tradicional, que usa assinaturas JAR. 760 </p> 761 762 <p> 763 Embora seja recomendvel aplicar o esquema de assinatura de APK v2 ao aplicativo, este novo 764 esquema no obrigatrio. Se o aplicativo no for compilado adequadamente ao usar o esquema 765 de assinatura de APK v2, voc poder desativ-lo. O processo de desativao 766 faz com que o Android Studio 2.2 e o plug-in do Android para Gradle 2.2 assinem 767 o aplicativo usando apenas o esquema de assinatura tradicional. Para assinar apenas com o 768 esquema tradicional, abra o arquivo do nvel de mdulo <code>build.gradle</code> e 769 adicione a linha <code>v2SigningEnabled false</code> configurao de assinatura de sua 770 verso: 771 </p> 772 773 <pre> 774 android { 775 ... 776 defaultConfig { ... } 777 signingConfigs { 778 release { 779 storeFile file("myreleasekey.keystore") 780 storePassword "password" 781 keyAlias "MyReleaseKey" 782 keyPassword "password" 783 <strong>v2SigningEnabled false</strong> 784 } 785 } 786 } 787 </pre> 788 789 <p class="caution"><strong>Cuidado: </strong>Se voc assinar o aplicativo usando o esquema de assinatura de APK 790 v2 e fizer novas alteraes posteriormente, a assinatura do app 791 ser invalidada. Por essa razo, use ferramentas como <code>zipalign</code> 792 antes de assinar o aplicativo usando o esquema de assinatura de APK v2, no depois. 793 </p> 794 795 <p> 796 Para obter mais informaes, leia os documentos do Android Studio que descrevem como 797 <a href="{@docRoot}studio/publish/app-signing.html#release-mode"> 798 assinar um aplicativo</a> no Android Studio e como<a href="{@docRoot}studio/build/build-variants.html#signing"> configurar 799 o arquivo de programao para assinar aplicativos</a> usando o plug-in do Android para Gradle. 800 </p> 801 802 <h2 id="scoped_directory_access">Acesso a diretrios com escopo</h2> 803 804 <p>No Android N, os aplicativos podem usar novas APIs para solicitar acesso a determinados diretrios de <a href="{@docRoot}guide/topics/data/data-storage.html#filesExternal">armazenamento 805 externo</a>, incluindo diretrios em mdias removveis, tais como cartes 806 SD. As novas APIs simplificam consideravelmente como o aplicativo acessa os 807 diretrios de armazenamento externo padro, tais como o diretrio<code>Pictures</code>. Os aplicativos, 808 como aplicativos de fotografia, podem usar essas APIs em vez de 809 <code>READ_EXTERNAL_STORAGE</code>, que concede acesso a todos os diretrios de 810 armazenamento, ou da Estrutura de acesso ao armazenamento, que faz o usurio navegar at 811 o diretrio.</p> 812 813 <p>Alm disso, as novas APIs simplificam as etapas executadas pelo usurio para conceder ao aplicativo 814 acesso ao armazenamento externo. Quando voc usa as novas APIs, o sistema usa uma IU de permisses simples 815 que detalha claramente a qual diretrio o aplicativo 816 est solicitando acesso.</p> 817 818 <p>Para obter mais informaes, consulte a documentao para desenvolvedores 819 <a href="{@docRoot}preview/features/scoped-folder-access.html">Acessos 820 a diretrio com escopo</a>.</p> 821 822 <h2 id="keyboard_shortcuts_helper">Auxiliar de atalhos de teclado</h2> 823 824 <p> 825 No Android N, o usurio pode pressionar "Alt + /" para acionar uma tela de <em>atalhos de teclado</em> 826 que exibe todos os atalhos disponveis do sistema e do 827 aplicativo em questo. Os atalhos so recuperados automaticamente do menu do aplicativo, se 828 estiverem disponveis, mas os desenvolvedores podem fornecer listas prprias de atalhos 829 para a tela. possvel fazer isso substituindo o novo mtodo 830 <code>Activity.onProvideKeyboardShortcuts()</code>, conforme descrito na 831 <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referncia da API</a>, disponvel para download. 832 </p> 833 834 <p> 835 Para acionar o auxiliar de atalhos de teclado em qualquer ponto do aplicativo, 836 chame {@code Activity.requestKeyboardShortcutsHelper()} para a atividade correspondente. 837 </p> 838 839 <h2 id="sustained_performance_api">API de desempenho sustentado</h2> 840 841 <p> 842 O desempenho pode flutuar drasticamente em aplicativos executados por muito tempo porque o 843 sistema aciona os mecanismos de sistema-em-um-chip quando os componentes do dispositivo atingem o 844 limite de temperatura. Esta flutuao representa um desafio para desenvolvedores de aplicativos 845 que criam aplicativos de alto desempenho e longo tempo de execuo. 846 </p> 847 848 <p> 849 Para tratar estas limitaes, o Android N inclui compatibilidade opcional para 850 <em>modo de desempenho sustentado</em>, permitindo que OEMs ofeream dicas sobre 851 capacidades de desempenho em dispositivo para aplicativos de longa durao. Os desenvolvedores de aplicativos 852 podem usar essas dicas para ajustar os aplicativos para um nvel de desempenho do dispositivo previsvel 853 e consistente em perodos longos de tempo. 854 </p> 855 856 <p> 857 Desenvolvedores de aplicativos podem testar essa nova API na N Developer Preview 858 apenas em dispositivos Nexus 6P. Para usar este recurso, 859 configure a janela de sinalizao de desempenho sustentado para a janela 860 que voc quer executar em modo de desempenho sustentado. Configure esta sinalizao usando o mtodo 861 {@code Window.setSustainedPerformanceMode()}. O sistema desativar este modo 862 automaticamente quando a janela no estiver mais em foco. 863 </p> 864 865 <h2 id="vr">Suporte a RV</h2> 866 867 <p> 868 O Android N adiciona compatibilidade de plataformas e otimizaes para um novo Modo RV Mode que d aos 869 desenvolvedores a capacidade de projetar experincias de RV mveis de alta qualidade para os usurios. H diversas melhorias de desempenho 870 , incluindo acesso a um ncleo exclusivo da CPU para aplicativos de RV. 871 Dentro dos aplicativos, possvel tirar vantagem do rastreamento inteligente da cabea 872 e de notificaes estreo que funcionam para RV. Mais importante, o Android N oferece 873 grficos de latncia muito baixa. Para obter informaes completas sobre a criao de aplicativos de RV para Android N, 874 consulte o <a href="https://developers.google.com/vr/android/">Google VR SDK para Android</a>. 875 </p> 876 877 878 <h2 id="print_svc">Melhorias nos servios de impresso</h2> 879 880 <p> 881 No Android N, agora os desenvolvedores de servios de impresso podem exibir informaes adicionais 882 sobre impressoras e trabalhos de impresso individuais. 883 </p> 884 885 <p> 886 Ao listar impressoras individuais, agora um servio de impresso pode definir 887 cones por impressora de duas maneiras: 888 </p> 889 890 <ul> 891 <li> possvel definir um cone de um ID de recurso chamando 892 <code>PrinterInfo.Builder.setResourceIconId()</code> 893 </li> 894 895 <li> possvel exibir um cone da rede chamando 896 <code>PrinterInfo.Builder.setHasCustomPrinterIcon()</code> e definindo um 897 retorno de chamada para quando o cone for solicitado usando 898 <code>android.printservice.PrinterDiscoverySession.onRequestCustomPrinterIcon()</code> 899 </li> 900 </ul> 901 902 <p> 903 Alm disso, voc pode fornecer atividade por impressora para exibir 904 informaes adicionais chamando <code>PrinterInfo.Builder.setInfoIntent()</code>. 905 </p> 906 907 <p> 908 possvel indicar o progresso e o status de trabalhos de impresso na 909 notificao de trabalhos de impresso chamando 910 <code>android.printservice.PrintJob.setProgress()</code> e 911 <code>android.printservice.PrintJob.setStatus()</code>, respectivamente. 912 </p> 913 914 <p> 915 Para obter mais informaes sobre estes mtodos, consulte a <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referncia da API</a>, disponvel para download. 916 </p> 917 918 <h2 id="framemetrics_api">FrameMetricsListener API</h2> 919 920 <p> 921 A FrameMetricsListener API permite que um aplicativo monitore o desempenho de renderizao 922 da IU. A API oferece este recurso ao expor uma API Pub/Sub em streaming para transferir informaes de preciso 923 de quadro janela atual do aplicativo. Os dados retornados so 924 equivalentes aos que<code><a href="{@docRoot}tools/help/shell.html#shellcommands">adb shell</a> 925 dumpsys gfxinfo framestats</code> exibe, mas no esto mais limitados a 120 quadros. 926 </p> 927 928 <p> 929 possvel usar o FrameMetricsListener para medir o desempenho da IU 930 em nvel de interao na produo sem conexo USB. Esta API 931 permite a coleta de dados com granularidade muito maior do que 932 {@code adb shell dumpsys gfxinfo}. A granularidade maior possvel porque 933 o sistema pode coletar dados para determinadas interaes no aplicativo; o sistema 934 no precisa capturar um resumo global do desempenho 935 do aplicativo nem limpar qualquer estado global. possvel usar este 936 recurso para reunir dados de desempenho e capturar regresses no desempenho da IU 937 para casos de uso reais dentro do aplicativo. 938 </p> 939 940 <p> 941 Para monitorar uma janela, implemente o mtodo de retorno de chamada <code>FrameMetricsListener.onMetricsAvailable()</code> 942 e registre-o nessa janela. Para obter mais informaes, consulte a 943 documentao da classe{@code FrameMetricsListener} na 944 <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referncia da API</a>,disponvel para download. 945 </p> 946 947 <p> 948 A API fornece um objeto {@code FrameMetrics}, que contm dados de quadro que 949 o subsistema de renderizao relata para vrios marcos no ciclo de vida de um quadro. 950 As mtricas suportadas so: {@code UNKNOWN_DELAY_DURATION}, 951 {@code INPUT_HANDLING_DURATION}, {@code ANIMATION_DURATION}, 952 {@code LAYOUT_MEASURE_DURATION}, {@code DRAW_DURATION}, {@code SYNC_DURATION}, 953 {@code COMMAND_ISSUE_DURATION}, {@code SWAP_BUFFERS_DURATION}, 954 {@code TOTAL_DURATION}e {@code FIRST_DRAW_FRAME}. 955 </p> 956 957 958 <h2 id="virtual_files">Arquivos virtuais</h2> 959 960 <p> 961 Em verses anteriores do Android, o aplicativo podia usar a estrutura de 962 acesso ao armazenamento para permitir que os usurios selecionem arquivos de contas de armazenamento em nuvem, 963 como o Google Drive. No entanto, no possvel representar arquivos que 964 no tenham uma representao direta de cdigo de bytes; os arquivos precisam fornecer 965 um fluxo de entrada. 966 </p> 967 968 <p> 969 O Android N adiciona o conceito de <em>arquivos virtuais</em> estrutura de acesso 970 ao armazenamento. O recurso de arquivos virtuais permite que seu 971 {@link android.provider.DocumentsProvider} retorne URIs de documentos que possam ser 972 usados com intenes {@link android.content.Intent#ACTION_VIEW} mesmo que no tenham 973 uma representao direta de cdigo de bytes. O Android N tambm permite que voc 974 oferea formatos alternativos para arquivos de usurio, sejam virtuais ou no. 975 </p> 976 977 <p> 978 Para obter o URI para um documento virtual em seu aplicativo, preciso criar uma 979 {@link android.content.Intent} para abrir a IU do seletor de arquivos. Como um aplicativo 980 no consegue abrir um arquivo virtual diretamente usando o mtodo 981 {@link android.content.ContentResolver#openInputStream(Uri) openInputStream()} 982 , seu aplicativo no receber arquivos virtuais se voc no incluir a categoria 983 {@link android.content.Intent#CATEGORY_OPENABLE}. 984 </p> 985 986 <p> 987 Depois que o usurio fizer uma seleo, o sistema chamar o mtodo 988 {@link android.app.Activity#onActivityResult onActivityResult()}. 989 O aplicativo pode recuperar o URI do arquivo virtual e obter um fluxo de resultados, como 990 demonstrado no snippet de cdigo abaixo. 991 </p> 992 993 <pre> 994 // Other Activity code ... 995 996 final static private int REQUEST_CODE = 64; 997 998 // We listen to the OnActivityResult event to respond to the user's selection. 999 @Override 1000 public void onActivityResult(int requestCode, int resultCode, 1001 Intent resultData) { 1002 try { 1003 if (requestCode == REQUEST_CODE && 1004 resultCode == Activity.RESULT_OK) { 1005 1006 Uri uri = null; 1007 1008 if (resultData != null) { 1009 uri = resultData.getData(); 1010 1011 ContentResolver resolver = getContentResolver(); 1012 1013 // Before attempting to coerce a file into a MIME type, 1014 // check to see what alternative MIME types are available to 1015 // coerce this file into. 1016 String[] streamTypes = 1017 resolver.getStreamTypes(uri, "*/*"); 1018 1019 AssetFileDescriptor descriptor = 1020 resolver.openTypedAssetFileDescriptor( 1021 uri, 1022 streamTypes[0], 1023 null); 1024 1025 // Retrieve a stream to the virtual file. 1026 InputStream inputStream = descriptor.createInputStream(); 1027 } 1028 } 1029 } catch (Exception ex) { 1030 Log.e("EXCEPTION", "ERROR: ", ex); 1031 } 1032 } 1033 </pre> 1034 1035 <p> 1036 Para obter mais informaes sobre como acessar arquivos de usurio, consulte o 1037 <a href="{@docRoot}guide/topics/providers/document-provider.html">guia da estrutura 1038 de acesso ao armazenamento</a>. 1039 </p> 1040