• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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] &lt;permission.name&gt; ...</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 &lt;packageName&gt; true
173</pre>
174
175  </li>
176  <li>Simule o despertar do aplicativo usando o seguinte comando:
177    <pre>$ adb shell am set-idle &lt;packageName&gt; 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