1page.title=Guia de teste 2page.image=images/cards/card-n-guide_2x.png 3meta.tags="preview", "testing" 4page.tags="preview", "developer preview" 5 6@jd:body 7 8<div id="qv-wrapper"> 9 <div id="qv"> 10 <h2>Neste documento</h2> 11 <ol> 12 <li><a href="#runtime-permissions">Teste de permissões</a></li> 13 <li><a href="#doze-standby">Teste de soneca e App em espera</a></li> 14 <li><a href="#ids">Identificadores de dispositivo e backup automático</a></li> 15 </ol> 16 </div> 17</div> 18 19<p> 20 O Android N fornece uma oportunidade de garantir que os aplicativos funcionem 21 na próxima versão da plataforma. Esta prévia inclui uma série de mudanças de comportamento e APIs que podem 22 ter impacto no aplicativo, como descrito em <a href="{@docRoot}preview/api-overview.html">Visão geral da API 23</a> e <a href="{@docRoot}preview/behavior-changes.html">Mudanças de comportamento</a>. No teste 24 do aplicativo com a prévia, há algumas alterações de sistema específicas em que você deve se concentrar 25 para garantir que os usuários tenham uma boa experiência. 26</p> 27 28<p> 29 Este guia descreve quais recursos de prévia testar e como testá-los com o aplicativo. Você deve 30 priorizar o teste destes recursos de prévia específicos devido ao grande impacto potencial no 31 comportamento do aplicativo: 32</p> 33 34<ul> 35 <li><a href="#runtime-permissions">Permissões</a> 36 </li> 37 <li><a href="#doze-standby">Soneca e App em espera</a> 38 </li> 39 <li><a href="#ids">Identificadores de dispositivo e backup automático</a></li> 40</ul> 41 42<p> 43 Para obter mais informações sobre como configurar dispositivos físicos ou virtuais com uma imagem do sistema de prévia 44 para teste, consulte <a href="{@docRoot}preview/setup-sdk.html">Configuração 45do Android N SDK</a>. 46</p> 47 48 49<h2 id="runtime-permissions">Teste de permissões</h2> 50 51<p> 52 O novo modelo de <a href="{@docRoot}preview/features/runtime-permissions.html">permissões</a> 53 altera a maneira que as permissões são alocadas ao aplicativo pelo usuário. Em vez de conceder todas as permissões 54 durante o procedimento de instalação, o aplicativo deve pedir ao usuário permissões individuais 55 em tempo de execução. Para os usuários, este comportamento fornece um controle mais granular sobre as atividades de cada aplicativo, bem 56 como um melhor contexto para entender o porquê do aplicativo estar solicitando uma permissão específica. Os usuários 57 podem conceder ou revogar as permissões concedidas a um aplicativo individualmente a qualquer momento. É provável que este recurso 58 da prévia tenha um impacto no comportamento do aplicativo e pode impedir que alguns 59 dos recursos do aplicativo funcionem, ou funcionem em um estado degradado. 60</p> 61 62<p class="caution"> 63 Esta alteração afeta todos os aplicativos em execução na nova plataforma, mesmo aqueles que não são destinados 64 para a versão nova da plataforma. A plataforma fornece um comportamento de compatibilidade limitado para aplicativos legados. No entanto, 65 você deve começar a planejar a migração do aplicativo para o novo modelo de permissões agora, com o objetivo 66 de publicar uma versão atualizada do aplicativo no lançamento oficial da plataforma. 67</p> 68 69 70<h3 id="permission-test-tips">Dicas de teste</h3> 71 72<p> 73 Use as seguintes dicas de teste para ajudar você a planejar e executar os testes do aplicativo com o novo 74 comportamento de permissões. 75</p> 76 77<ul> 78 <li>Identifique as permissões atuais do aplicativo e os caminhos de código relacionados.</li> 79 <li>Teste o fluxo de usuário entre serviços protegidos por permissão e dados.</li> 80 <li>Teste com várias combinações de permissões revogadas/concedidas.</li> 81 <li>Use a ferramenta {@code adb} para gerenciar as permissões da linha de comando: 82 <ul> 83 <li>Liste as permissões e o status por grupos: 84 <pre>adb shell pm list permissions -d -g</pre> 85 </li> 86 <li>Conceda ou revogue uma ou mais permissões usando a seguinte sintaxe:<br> 87 <pre>adb shell pm [grant|revoke] <permission.name> ...</pre> 88 </li> 89 </ul> 90 </li> 91 <li>Analise o aplicativo para encontrar os serviços que usam permissões.</li> 92</ul> 93 94<h3 id="permission-test-strategy">Estratégia de teste</h3> 95 96<p> 97 A mudança de permissões afeta a estrutura e o projeto do aplicativo, bem como 98 a experiência do usuário e os fluxos fornecidos a eles. Você deve avaliar o uso das permissões atuais 99 do aplicativo e começar a planejar novos fluxos que deseja oferecer. O lançamento oficial 100 da plataforma fornece comportamento de compatibilidade, mas deve-se planejar a atualização do aplicativo e 101 não confiar nestes comportamentos. 102</p> 103 104<p> 105 Identifique as permissões que o aplicativo realmente precisa e usa e, em seguida, encontre os vários caminhos 106 de código que usam os serviços protegidos por permissões. É possível fazer isto por meio de uma combinação de 107 testes na nova plataforma e análise de códigos. Nos testes, você deve se concentrar em usar 108 as permissões em tempo de execução alterando {@code targetSdkVersion} do aplicativo para a versão da prévia. Para 109 obter mais informações, consulte <a href="{@docRoot}preview/setup-sdk.html#">Configuração 110do Android N SDK</a>. 111</p> 112 113<p> 114 Teste com várias combinações de permissões revogadas e concedidas para destacar os fluxos de usuário 115que dependem de permissões. Onde uma dependência não for óbvia ou lógica, considere 116refatorar ou compartimentalizar este fluxo para eliminar a dependência ou para esclarecer por que 117a permissão é necessária. 118</p> 119 120<p> 121 Para obter mais informações sobre o comportamento das permissões em tempo de execução, de testes e de melhores práticas, consulte a página 122 <a href="{@docRoot}preview/features/runtime-permissions.html">Permissões</a> do Developer 123 Preview. 124</p> 125 126 127<h2 id="doze-standby">Teste de soneca e App em espera</h2> 128 129<p> 130 Os recursos de economia de energia de App em espera e soneca limitam a quantidade de processamento de segundo plano que o aplicativo 131 pode realizar quando um dispositivo está no estado ocioso ou enquanto não está em foco. As 132 restrições que o sistema pode impor nos aplicativos inclui acesso a rede limitado ou restrito, 133 tarefas de segundo plano suspensas, notificações suspensas, solicitações de soneca ignoradas e despertadores. Para garantir 134 que o aplicativo se comportará adequadamente com essas otimizações de economia de energia, deve-se testá-lo 135 simulando estes estados de baixa energia. 136</p> 137 138<h4 id="doze">Testar o aplicativo com Soneca</h4> 139 140<p>Para testar a Soneca com o aplicativo:</p> 141 142<ol> 143<li>Configure um dispositivo de hardware ou virtual com uma imagem do sistema Android N.</li> 144<li>Conecte o dispositivo à máquina de desenvolvimento e instale o aplicativo.</li> 145<li>Execute o aplicativo e deixe-o ativo.</li> 146<li>Simule o dispositivo acessando o modo Soneca executando os seguintes comandos: 147 148<pre> 149$ adb shell dumpsys battery unplug 150$ adb shell dumpsys deviceidle step 151$ adb shell dumpsys deviceidle -h 152</pre> 153 154 </li> 155 <li>Observe o comportamento do aplicativo quando o dispositivo é reativado. Certifique-se de que 156 ele se recupere corretamente quando o dispositivo sai do modo Soneca.</li> 157</ol> 158 159 160<h4 id="standby">Testar aplicativos com App em espera</h4> 161 162<p>Para testar o modo de espera do aplicativo:</p> 163 164<ol> 165 <li>Configure um dispositivo de hardware ou virtual com uma imagem do sistema Android N.</li> 166 <li>Conecte o dispositivo à máquina de desenvolvimento e instale o aplicativo.</li> 167 <li>Execute o aplicativo e deixe-o ativo.</li> 168 <li>Simule o aplicativo acessando o modo de espera executando os seguintes comandos: 169 170<pre> 171$ adb shell am broadcast -a android.os.action.DISCHARGING 172$ adb shell am set-idle <packageName> true 173</pre> 174 175 </li> 176 <li>Simule o despertar do aplicativo usando o seguinte comando: 177 <pre>$ adb shell am set-idle <packageName> false</pre> 178 </li> 179 <li>Observe o comportamento do aplicativo quando ele é despertado. Certifique-se de que ele se recupere corretamente 180 do modo de espera. Particularmente, deve-se verificar se as notificações e os trabalho de segundo plano 181 do aplicativo continuam a funcionar como o esperado.</li> 182</ol> 183 184<h2 id="ids">Backup automático para aplicativos e identificadores específicos do dispositivo</h2> 185 186<p>Caso o aplicativo esteja persistindo qualquer identificador específico do dispositivo, como o ID de registro do Google 187Cloud Messaging, no armazenamento interno, 188certifique-se de seguir as práticas recomendadas para excluir o local de armazenamento 189do backup automático, como descrito em <a href="{@docRoot}preview/backup/index.html">Backup automático 190para aplicativos</a>. </p> 191