Home | History | Annotate | Download | only in preview
      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 &mdash; 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 &mdash; 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 &mdash; 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 &mdash; 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 &mdash;
    264 {@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}, {@link
    265 android.hardware.Camera#ACTION_NEW_PICTURE} e {@link
    266  android.hardware.Camera#ACTION_NEW_VIDEO} &mdash;, 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 &mdash; 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 &mdash; 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 &mdash; 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&trade; 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>&lt;uses-feature&gt;</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 &mdash; 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&gt;More&gt;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 &gt;
    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   &#64;Override
   1000   public void onActivityResult(int requestCode, int resultCode,
   1001     Intent resultData) {
   1002       try {
   1003         if (requestCode == REQUEST_CODE &amp;&amp;
   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