am 14592ef0: Merge "Docs: L10N for remaining M Preview docs (pt-br)." into mnc-preview-docs

* commit '14592ef01be9ed8244400c9abf0777960f0581e0':
  Docs: L10N for remaining M Preview docs (pt-br).
This commit is contained in:
David Friedman
2015-07-08 04:45:00 +00:00
committed by Android Git Automerger
10 changed files with 2195 additions and 0 deletions

View File

@@ -0,0 +1,327 @@
page.title=Backup automático para aplicativos
page.tags=backup, previewresources, androidm
page.keywords=backup, autobackup, preview
page.image=images/cards/card-auto-backup_2x.png
@jd:body
<div id="qv-wrapper">
<div id="qv">
<h2>Neste documento</h2>
<ol>
<li><a href="#overview">Visão geral</a></li>
<li><a href="#configuring">Configurar backup de dados</a></li>
<li><a href="#testing">Testar configuração de backup</a></li>
<li><a href="#issues">Problemas conhecidos</a></li>
</ol>
</div>
</div>
<p>
Frenquentemente, os usuários investem muito tempo e esforço para criar dados e configurar preferências
nos aplicativos. Preservar esses dados para os usuários caso substituam um dispositivo quebrado ou atualizem-se para um novo
é importante para garantir uma ótima experiência de usuário. Dispositivos que executam o sistema Android M Preview
ajudam a garantir uma boa experiência para os usuários nessas circunstâncias realizando o backup dos dados do aplicativo
automaticamente no Google Drive. Os dados do aplicativo são restaurados automaticamente se um usuário alterar ou atualizar um
dispositivo.
</p>
<p>
Os backups automáticos estão ativos para todos os aplicativos instalados nos dispositivos que executam o Android M Preview. Nenhum
código adicional de aplicativo é necessário. O sistema fornece aos usuários a habilidade de decisão
sobre os backups automáticos de dados. Também é possível limitar quais dados do aplicativo devem ter o backup.
</p>
<p>
Este documento descreve o novo comportamento do sistema e como especificar quais dados terão backup
para o aplicativo.
</p>
<h2 id="overview">Visão geral</h2>
<p>
O recurso de backup automático preserva os dados que o aplicativo cria em um dispositivo de usuário enviando-os
à conta do Google Drive do usuário e criptografando-os. Não há cobranças para você ou para o usuário
em relação ao armazenamento de dados e os dados salvos não contam para a cota do Drive pessoal do usuário. Durante
o período do M Preview, os usuários podem armazenar até 25 MB por aplicativo do Android.
</p>
<p>
Os backups automáticos ocorrem a cada 24 horas, quando o dispositivo está ocioso, carregando e conectado
a uma rede Wi-Fi. Quando esses requisitos são atendidos, o serviço Backup Manager envia todos os dados de backup
disponíveis à nuvem. Quando um usuário transita para um novo dispositivo, ou desinstala e reinstala
o aplicativo com backup realizado, uma operação de restauração copia os dados de backup para o diretório de dados
do aplicativo recém-instalado.
</p>
<p class="note">
<strong>Observação:</strong> se o usuário usar o
<a href="{@docRoot}google/backup/index.html">serviço de Backup do Android</a> de legado, este novo comportamento
não se aplicará aos trabalhos de comportamento de backup existentes com o normal.
</p>
<h3 id="auto-exclude">Arquivos de dados excluídos automaticamente</h3>
<p>
Nem todos os dados do aplicativo devem ter backup, como arquivos temporários e de armazenamento em cachê. Portanto, o serviço de backup automático
exclui determinados arquivos de dados por padrão:
</p>
<ul>
<li>Arquivos em diretórios identificados pelos métodos {@link android.content.Context#getCacheDir
getCacheDir()} e {@link android.content.ContextWrapper#getCodeCacheDir getCodeCacheDir()}
.
</li>
<li>Arquivos localizados no armazenamento externo, a não ser que estejam no diretório identificado pelo método
{@link android.content.Context#getExternalFilesDir getExternalFilesDir()}
.
</li>
<li>Arquivos localizados no diretório identificado pelo método
{@link android.content.Context#getNoBackupFilesDir getNoBackupFilesDir()}.
</li>
</ul>
<h2 id="configuring">Configurar backup de dados</h2>
<p>
Os dados criados por qualquer aplicativo instalado em um dispositivo M Preview têm backup, exceto
os arquivos excluídos automaticamente listados na seção anterior. É possível limitar e configurar
quais dados terão backup no seu aplicativo usando as configurações no manifesto do aplicativo.
</p>
<h3 id="include-exclude">Incluir ou excluir dados</h3>
<p>
Dependendo de quais dados o aplicativo precisar e do modo que forem salvos, você precisará definir
regras específicas para incluir ou excluir determinados arquivos ou diretórios. O serviço de backup automático suporta
a configuração dessas regras de backup por meio do uso de um arquivo de configuração XML e do
manifesto do aplicativo. No manifesto do aplicativo, é possível especificar o arquivo de configuração de esquema de backup como exibido
no seguinte exemplo:
</p>
<pre>
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.my.appexample"&gt;
&lt;uses-sdk android:minSdkVersion="MNC"/&gt;
&lt;uses-sdk android:targetSdkVersion="MNC"/&gt;
&lt;app ...
<strong> android:fullBackupContent="&#64;xml/mybackupscheme"&gt;</strong>
&lt;/app&gt;
...
&lt;/manifest&gt;
</pre>
<p>
Neste código de exemplo, o atributo <code>android:fullBackupContent</code> especifica um arquivo XML,
localizado no diretório <code>res/xml/</code> do projeto de desenvolvimento do aplicativo, chamado
<code>mybackupscheme.xml</code>. Este arquivo de configuração inclui as regras de quais arquivos terão
backup. O seguinte código de exemplo mostra um arquivo de configuração que exclui um arquivo específico
dos backups:
</p>
<pre>
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;full-backup-content&gt;
&lt;exclude domain="database" path="device_info.db"/&gt;
&lt;/full-backup-content&gt;
</pre>
<p>
Esta configuração de backup de exemplo exclui do backup somente um arquivo específico do banco de dados.
Todos os outros arquivos terão backup.
</p>
<h4>Sintaxe da configuração de backup</h4>
<p>
A configuração do serviço de backup permite que você especifique quais arquivos incluir ou excluir do
backup. A sintaxe para o arquivo XML de configuração de backup de dados é a seguinte:
</p>
<pre>
&lt;full-backup-content&gt;
&lt;include domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string" /&gt;
&lt;exclude domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string" /&gt;
&lt;/full-backup-content&gt;
</pre>
<p>
Os seguintes elementos e atributos permitem que você especifique os arquivos que serão incluídos ou excluídos
do backup:
</p>
<ul>
<li>
<code>&lt;include&gt;</code>. Use este elemento se quiser especificar um conjunto de recursos
para o backup, em vez de fazer o sistema realizar o backup de todos os dados no aplicativo por padrão. Ao especificar
uma tag <code>&lt;include&gt;</code>, o sistema realiza apenas o backup <em>dos recursos especificados</em>
com este elemento.
</li>
<li>
<code>&lt;exclude&gt;</code>. Use este elemento para especificar um conjunto de recursos que será excluído
do backup. O sistema realiza o backup de todos os dados no aplicativo, exceto os recursos especificados
com este elemento.
</li>
<li>
<code>domain.</code> O tipo de recurso que deseja excluir ou incluir no backup. Os valores válidos
que podem ser especificados para este atributo incluem:
</li>
<li style="list-style: none">
<ul>
<li>
<code>root</code>. Especifica que o recurso está no diretório raiz do aplicativo.
</li>
<li>
<code>file</code>. Corresponde ao recurso no diretório retornado
pelo método {@link android.content.Context#getFilesDir getFilesDir()}.
</li>
<li>
<code>database</code>. Corresponde ao banco de dados retornado
pelo método {@link android.content.Context#getDatabasePath getDatabasePath()} ou usando
a classe {@link android.database.sqlite.SQLiteOpenHelper}.
</li>
<li>
<code>sharedpref</code>. Corresponde a um objeto {@link android.content.SharedPreferences}
retornado pelo método {@link android.content.Context#getSharedPreferences getSharedPreferences()}
.
</li>
<li>
<code>external</code>. Especifica que o recurso está no armazenamento externo e corresponde
a um arquivo no diretório retornado pelo método
{@link android.content.Context#getExternalFilesDir getExternalFilesDir()}.
</li>
<li>
<code>path</code>. O caminho de arquivo para um recurso que deseja excluir ou incluir
no backup.
</li>
</ul>
</li>
</ul>
<h3 id="prohibit">Proibir backup de dados</h3>
<p>
É possível optar por evitar backups automáticos de quaisquer dados do aplicativo configurando
o atributo <code>android:allowBackup</code> para <code>false</code> no elemento do aplicativo
do manifesto. Esta configuração é ilustrada no seguinte código de exemplo:
</p>
<pre>
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.my.appexample"&gt;
&lt;uses-sdk android:minSdkVersion="MNC"/&gt;
&lt;uses-sdk android:targetSdkVersion="MNC"/&gt;
&lt;app ...
<strong> android:allowBackup="false"&gt;</strong>
&lt;/app&gt;
...
&lt;/manifest&gt;
</pre>
<h2 id="testing">Testar configuração de backup</h2>
<p>
Ao criar uma configuração de backup, deve-se testá-la para garantir que o aplicativo
salva os dados e que eles podem ser restaurados corretamente.
</p>
<h4>Ativar registro de backup</h4>
<p>
Para ajudar a determinar como o recurso de backup analisa o arquivo XML, ative o registro
antes de realizar um backup de teste:
</p>
<pre class="noprettyprint">
$ adb shell setprop log.tag.BackupXmlParserLogging VERBOSE
</pre>
<h4>Teste de backup</h4>
<p>Para executar um backup manualmente, primeiro deve-se inicializar o Backup Manager chamando o seguinte
comando:
</p>
<pre class="noprettyprint">
$ adb shell bmgr run
</pre>
<p>
Em seguida, realiza-se o backup manualmente do aplicativo usando o seguinte comando, especificando o nome
do pacote para o aplicativo como o parâmetro <code>&lt;PACKAGE&gt;</code>:
</p>
<pre class="noprettyprint">
$ adb shell bmgr fullbackup &lt;PACKAGE&gt;</pre>
<h4>Teste de restauração</h4>
<p>
Para iniciar manualmente uma restauração após o backup dos dados do aplicativo, chame o seguinte comando,
especificando o nome do pacote para o aplicativo como o parâmetro <code>&lt;PACKAGE&gt;</code>:
</p>
<pre class="noprettyprint">
$ adb shell bmgr restore &lt;PACKAGE&gt;
</pre>
<p class="warning">
<b>Aviso:</b> esta ação impede o aplicativo de apagar os dados antes de realizar
a operação de restauração.
</p>
<p>
Para iniciar o processo de restauração do aplicativo, deve-se desinstalar e reinstalá-lo. Os dados
do aplicativo são restaurados automaticamente a partir da nuvem quando a instalação do aplicativo for concluída.
</p>
<h4>Resolução de problemas de backups</h4>
<p>
Caso ocorra problemas, é possível apagar os dados de backup e os metadados associados desativando o backup
e reativando-o em <strong>Settings (Configurações) &gt; Backup</strong>, redefinindo o dispositivo para as especificações de fábrica, ou
chamando este comando:
</p>
<pre>$ adb shell bmgr wipe &lt;TRANSPORT&gt; &lt;PACKAGE&gt;</pre>
<p>
O valor <code>&lt;TRANSPORT&gt;</code> deve ser prefixado por <code>com.google.android.gms</code>.
Para obter uma lista de transportes, chame o seguinte comando:
</p>
<pre>$ adb shell bmgr list transports</pre>
<h2 id="issues">Problemas conhecidos</h2>
<p>A seguir estão os problemas conhecidos com o serviço de backup automático:</p>
<ul>
<li><strong>Google Cloud Messaging</strong> -
Para aplicativos que usam o Google Cloud Messaging para notificações push, há um problema conhecido
onde o backup do ID de registro retornado pelo registro do Google Cloud Messaging pode
desencadear notificações push para o aplicativo restaurado. É importante consultar a API para obter um novo ID de registro
após a instalação em um novo dispositivo, o que não deve ser o caso se o ID de registro antigo
tiver backup. Para evitar isto, exclua o ID de registro do conjunto de arquivos
de backup.
</li>
</ul>

View File

@@ -0,0 +1,348 @@
page.title=Downloads
page.image=images/cards/card-download_16-9_2x.png
@jd:body
<div style="position:relative; min-height:600px">
<div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
<p class="sdk-terms-intro">Antes de fazer o download ou instalar componentes do Android Preview
SDK, você deve concordar com os seguintes termos e condições.</p>
<h2 class="norule">Termos e condições</h2>
<div class="sdk-terms" onfocus="this.blur()" style="width:678px">
Este é o contrato de licença do Android SDK Preview (o “Contrato de Licença”).
1. Introdução
1.1 O Android SDK Preview (que este Contrato de licença chama de "Preview", incluindo especificamente os arquivos de sistema do Android, APIs integradas e arquivos da biblioteca Preview, se e quando estiverem disponíveis) é licenciado por meio da concordância com os termos deste contrato. O Contrato de licença forma um vínculo contratual legal entre o contratante e a Google em relação ao uso do Preview.
1.2 "Android" se refere à pilha de software do Android para dispositivos, conforme disponibilizado no Projeto de código aberto do Android, localizado no URL a seguir: http://source.android.com/, atualizado periodicamente.
1.3 "Google" refere-se à Google Inc, uma corporação de Delaware, com sede em 1600 Amphitheatre Parkway, Mountain View, CA 94043, Estados Unidos.
2. Aceitação do Contrato de Licença
2.1 A fim de usar o Preview, é necessário concordar com este Contrato de licença. O uso do Preview é proibido àqueles que não concordam com este Contrato de licença.
2.2 Ao clicar em aceitar e/ou usar o Preview, você concorda com os termos do Contrato de licença
2.3 É proibido o uso do Preview e a aceitação deste contrato pelo indivíduo que tenha impedimento legal sobre o recebimento do Preview sob as leis dos Estados Unidos ou de outros países, incluindo o país de residência ou no qual usa o Preview.
2.4 Se for usar o Preview internamente na empresa ou organização, você deverá concordar com o vínculo com este contrato em nome do empregador ou de outra entidade e declarar e garantir que tem total autoridade legal para tanto. Se você não tem a autoridade necessária, não deve concordar com este contrato nem usar o Preview em nome do empregador ou de outra entidade.
3. Licença do Preview da Google
3.1 Sujeito aos termos do Contrato de licença, a Google confere uma licença limitada, revogável, livre de taxas, intransmissível, não sub-licenciável e não exclusiva para o uso apenas do Preview, pessoal ou internamente dentro da sua empresa ou organização, para fins de desenvolvimento de aplicativos executados na plataforma do Android.
3.2 Você concorda que a Google ou terceiros detêm todos os direitos legais, títulos e interesses relativos ao Preview, incluindo quaisquer direitos de propriedade intelectual que subsistam no Preview. "Direitos de propriedade intelectual" se referem a todo e qualquer direito sob as leis de patentes, de direitos autorais, de segredo comercial, de marca registrada e todos os outros direitos de propriedade. A Google reserva todos os direitos não conferidos expressamente a você.
3.3 O uso do Preview não é autorizado para qualquer finalidade não expressamente permitida por este Contrato de licença. Salvo na extensão exigida por licenças aplicáveis de terceiros, é proibido: (a) copiar (exceto para fins de cópia de segurança), modificar, adaptar, redistribuir, descompilar, fazer engenharia reversa, desmontar ou criar trabalhos derivados do Preview ou qualquer parte dele; ou (b) carregar qualquer parte do Preview em um aparelho celular ou outro dispositivo de hardware, exceto em computador pessoal, combinar qualquer parte do Preview com outros softwares ou distribuir qualquer software ou dispositivo que contenha uma parte do Preview.
3.4 Você concorda que não tomará quaisquer medidas que possam causar ou resultar em fragmentação do Android, incluindo, sem limitar-se, a distribuição e a participação na criação ou na promoção, sob quaisquer formas, de um conjunto de desenvolvimento de software derivado do Preview.
3.5 O uso, a reprodução e a distribuição de componentes do Preview licenciado sob licença de software de código aberto são regidos exclusivamente pelos termos daquela licença de software de código aberto, e não por este Contrato de licença. Você concorda em manter uma licença em bom estado para as licenças de software de código aberto sob todos os direitos concedidos e deter quaisquer ações que possam limitar, suspender ou romper tais direitos.
3.6 Você concorda que a forma e a natureza do SDK que a Google fornece podem mudar sem aviso prévio e que as versões futuras do SDK podem ser incompatíveis com aplicativos desenvolvidos em versões anteriores do SDK. Você concorda que a Google pode cessar (permanente ou temporariamente) o fornecimento do Preview (ou quaisquer recursos dentro dele) a você ou a usuários em geral sob critério exclusivo da Google, sem aviso prévio.
3.7 Nada neste Contrato de licença confere o direito de uso de quaisquer nomes comerciais, marcas comerciais, marcas de serviço, logomarcas, nomes de domínios e outros recursos de marcas especiais da Google.
3.8 Você concorda que não removerá, ocultará nem alterará quaisquer observações de direitos de propriedade (incluindo observações de direitos autorais e de marcas registradas) que possam estar afixadas ou contidas no Preview.
4. Uso do Preview por você
4.1 A Google compreende que nada no Contrato de licença dá a ela direito, título nem interesse no usuário (ou em seus licenciadores), sob o presente Contrato de licença, no que tange ao desenvolvimento de aplicativos de software através do uso do Preview, incluindo quaisquer direitos de propriedade intelectual que subsistam nos referidos aplicativos.
4.2 Você concorda em usar o Preview e desenvolver aplicativos somente para as finalidades permitidas por (a) este Contrato de licença e (b) quaisquer leis, normas, diretrizes geralmente aceitas ou orientações aplicáveis nas jurisdições relevantes (incluindo quaisquer leis acerca da exportação e da importação de dados ou softwares nos Estados Unidos ou em outros países relevantes).
4.3 Você concorda que, se usar o Preview para o desenvolvimento de aplicativos, deverá proteger a privacidade e os direitos legais destes usuários. Se nomes de usuário, senhas ou outras informações de acesso ou informações pessoais forem fornecidos ao aplicativo, deve-se informá-los de que tais dados estarão disponíveis para o aplicativo, além de fornecer observações de privacidade e proteção legalmente adequadas a esses usuários. Se o aplicativo armazenar informações pessoais ou confidenciais fornecidas pelos usuários, deve fazê-lo com segurança. Se o usuário fornecer informações da conta do Google, o aplicativo poderá usar essas informações exclusivamente para acessar a conta da Google do usuário quando houver autorização para fazê-lo e para os fins limitados pela autorização.
4.4 Você concorda que não se envolverá em qualquer atividade com o Preview, incluindo o desenvolvimento e a distribuição de um aplicativo que interfira, perturbe, danifique ou acesse, de modo não autorizado, servidores, redes ou outras propriedades ou serviços da Google ou qualquer outro terceiro.
4.5 Você concorda que é exclusivamente responsável por (e que a Google não tem qualquer responsabilidade com você ou terceiro) quaisquer dados, conteúdo ou recursos que criar, transmitir ou exibir por meio do Android e/ou de aplicativos do Android e pelas consequências que suas ações (incluindo perda ou dano que a Google possa sofrer) podem gerar.
4.6 Você concorda que é exclusivamente responsável por (e que a Google não tem qualquer responsabilidade com você ou terceiro) qualquer violação das obrigações exigidas neste Contrato de licença, qualquer contrato ou termos de serviço aplicáveis a terceiros, qualquer lei ou norma aplicável e pelas consequências (incluindo a perda ou dano que a Google ou qualquer terceiro possa sofrer) de quaisquer violações.
4.7 O Preview está em desenvolvimento e o seu teste e feedback são uma parte importante deste processo. Ao usar o Preview, você está ciente de que a implementação de alguns recursos ainda estão em desenvolvimento e que não se deve confiar que o Preview tem a funcionalidade completa de uma versão estável. Você concorda em não distribuir nem enviar publicamente quaisquer aplicativos usando este Preview, pois ele não será mais suportado após o lançamento oficial do Android SDK.
5. Suas credenciais de desenvolvedor
5.1 Você é responsável pela manutenção da confidencialidade de quaisquer credenciais de desenvolvedor que possam ser emitidas pela Google ou escolhidas por você e será o único responsável por todos os aplicativos que forem desenvolvidos sob suas credenciais de desenvolvedor.
6. Privacidade e informações
6.1 A fim de inovar e aprimorar continuamente o Preview, a Google pode coletar certas estatísticas de uso do software, incluindo, sem limitar-se, um identificador exclusivo, endereço IP associado, número de versão do software e informações sobre quais ferramentas e/ou serviços no Preview estão sendo usados e como estão sendo usados. Antes de coletar quaisquer dessas informações, o Preview o notificará e buscará seu consentimento. Se você recusar, as informações não serão coletadas.
6.2 Os dados coletados são examinados coletivamente para aprimorar o Preview e são mantidos em conformidade com a Política de privacidade da Google acessível em http://www.google.com/policies/privacy/.
7. Aplicativos de terceiros
7.1 Ao usar o Preview para executar aplicativos desenvolvidos por terceiros ou que acessam dados, conteúdo ou recursos fornecidos por terceiros, você concorda que a Google não é responsável por tais aplicativos, dados, conteúdo ou recursos. Você compreende que quaisquer dados, conteúdo ou recursos passíveis de aceitação por meio de tais aplicativos de terceiros imputam responsabilidade exclusiva ao indivíduo que os originou. A Google não é responsável por qualquer perda ou dano que possa ocorrer como resultado do uso ou acesso de quaisquer aplicativos, dados, conteúdo ou recursos de terceiros.
7.2 Você deve estar ciente de que os dados, conteúdo e recursos apresentados a você por aplicativos de terceiros podem ser protegidos pelos direitos de propriedade intelectual de posse dos fornecedores (ou de outras pessoas ou empresas em seus nomes). Não é permitido modificar, alugar, arrendar, emprestar, vender, distribuir nem criar trabalhos derivados com base nestes dados, conteúdo ou recursos (na totalidade ou em parte), salvo se houver permissão explícita especificada pelos respectivos detentores de direitos.
7.3 Você reconhece que o uso de tais aplicativos, dados, conteúdo ou recursos de terceiros pode estar sujeito a termos adicionais entre você e o terceiro em questão.
8. Uso de APIs da Google
8.1 APIs da Google
8.1.1 Ao usar qualquer API para recuperar dados da Google, você reconhece que eles podem ser protegidos por direitos de propriedade intelectual de posse da Google ou dos terceiros que fornecem os dados (ou de pessoas ou empresas em nomes deles). O uso de tal API pode estar sujeito a termos de serviço adicionais. Não é permitido modificar, alugar, arrendar, emprestar, vender, distribuir nem criar trabalhos derivados baseados nesses dados (na totalidade ou em parte), salvo se permitido pelos termos de serviço pertinentes.
8.1.2 Se você usar qualquer API para recuperar dados de um usuário a partir da Google, reconhece e concorda que deve recuperar dados somente com consentimento explícito do usuário e somente quando, e para os fins limitados aos quais, o usuário conceder permissão para fazê-lo.
9. Rescisão do Contrato de licença
9.1 O Contrato de licença continuará a se aplicar até que ocorra uma rescisão sua ou da Google, como definido abaixo.
9.2 Caso queira rescindir o Contrato de licença, você pode fazer isto cessando o uso do Preview e de qualquer credencial de desenvolvedor relevante.
9.3 A Google pode, a qualquer momento, rescindir o Contrato de licença, com ou sem causa, com uma notificação.
9.4 O Contrato de licença será encerrado automaticamente sem aviso ou outras ações na ocorrência de:
(A) a Google interromper o fornecimento do Preview ou de determinadas partes do Preview aos usuários no país em que você reside ou de onde o serviço é usado; e
(B) a Google emitir uma versão de lançamento final do Android SDK.
9.5 Quando o Contrato de licença é rescindido, a licença concedida a você no Contrato de licença é finalizada, todo o uso do Preview será interrompido e as provisões dos parágrafos 10, 11, 12 e 14 deverão permanecer indefinidamente.
10. EXCLUSÕES
10.1 VOCÊ COMPREENDE E CONCORDA EXPRESSAMENTE QUE O RISCO DO USO DO PREVIEW É EXCLUSIVAMENTE SEU E QUE O PREVIEW É FORNECIDO NA FORMA EM QUE SE ENCONTRA E COMO DISPONIBILIZADO, SEM GARANTIA DE QUALQUER TIPO DA GOOGLE.
10.2 O USO DO PREVIEW E DE QUALQUER MATERIAL BAIXADO OU OBTIDO DE OUTRO MODO PELO USO DO PREVIEW ESTÁ A SEU CRITÉRIO E RISCO E VOCÊ É O ÚNICO RESPONSÁVEL POR QUALQUER DANO AO SEU SISTEMA OPERACIONAL OU OUTRO DISPOSITIVO OU PELA PERDA DE DADOS QUE RESULTEM DE TAL USO. SEM LIMITAR OS PRECEDENTES, VOCÊ ENTENDE QUE O PREVIEW NÃO É UMA VERSÃO ESTÁVEL E QUE PODE CONTER ERROS, DEFEITOS E VULNERABILIDADES DE SEGURANÇA QUE PODEM RESULTAR EM DANOS SIGNIFICANTES, INCLUINDO A PERDA IRRECUPERÁVEL OU COMPLETA DO USO DO SISTEMA DO COMPUTADOR OU DE OUTROS DISPOSITIVOS.
10.3 A GOOGLE EXCLUI EXPRESSAMENTE TODAS AS GARANTIAS E CONDIÇOES DE QUALQUER TIPO, EXPRESSAS OU IMPLÍCITAS, INCLUINDO, MAS NÃO LIMITADO A, GARANTIAS E CONDIÇÕES DE COMERCIALIZAÇÃO IMPLÍCITAS, ADEQUAÇÃO A UMA FINALIDADE PARTICULAR E A NÃO VIOLAÇÃO.
11. LIMITAÇÃO DE RESPONSABILIDADE
11.1 VOCÊ COMPREENDE E CONCORDA EXPRESSAMENTE QUE A GOOGLE, SUAS SUBSIDIÁRIAS, AFILIADAS E SEUS LICENCIADORES NÃO SERÃO RESPONSABILIZADOS POR VOCÊ SOB QUALQUER TEORIA DE RESPONSABILIDADE POR QUAISQUER DANOS, SEJAM ELES DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, CONSEQUENCIAIS OU DE EXEMPLO QUE POSSAM INCORRER, INCLUINDO QUALQUER PERDA DE DADOS, INDEPENDENTE DE AVISO À GOOGLE OU A SEUS REPRESENTANTES OU DA NECESSIDADE DE AVISO SOBRE A POSSIBILIDADE DA INCORRÊNCIA DE TAIS PERDAS.
12. Indenização
12.1 Ao limite máximo permitido por lei, você concorda em defender, indenizar e isentar a Google, suas afiliadas e respectivos conselheiros, diretores, empregados e agentes com relação a todas e quaisquer reivindicações, ações, processos ou procedimentos, bem como todas e quaisquer perdas, responsabilidades, danos, custos e despesas (incluindo honorários advocatícios) decorrentes ou provenientes de: (a) seu uso do Preview, (b) qualquer aplicativo desenvolvido no Preview que infrinja direitos de propriedade intelectual de qualquer pessoa, difame qualquer pessoa ou viole seus direitos de publicidade ou privacidade e (c) qualquer não cumprimento deste Contrato de licença.
13. Mudanças no Contrato de licença
13.1 A Google pode realizar mudanças no Contrato de licença à medida que distribui novas versões do Preview. Quando essas mudanças forem realizadas, a Google fará uma nova versão do Contrato de licença disponível no site em que o Preview estiver disponível.
14. Termos legais gerais
14.1 Esse Contrato de licença constitui o contrato legal integral entre você e a Google e rege o uso do Preview (excluindo quaisquer serviços que a Google possa fornecer a você sob um contrato escrito em separado), e substitui inteiramente quaisquer contratos anteriores entre você e a Google em relação ao Preview.
14.2 Você concorda que, se a Google não exercer nem impetrar qualquer direito ou recurso legal que esteja contido no Contrato de licença (ou que a Google detenha direitos nos termos de qualquer lei aplicável), não se considerará esse fato como uma renúncia formal aos direitos da Google e esses direitos ou recursos continuarão disponíveis à Google.
14.3 Se qualquer tribunal de justiça que tiver a competência para decidir sobre esse tema determinar que qualquer cláusula do Contrato de licença é inválida, tal cláusula será removida do contrato sem afetar as cláusulas restantes ou sua vigência. As cláusulas restantes do Contrato de licença continuarão válidas e obrigatórias.
14.4 Você reconhece e concorda que cada membro do grupo de empresas das quais a Google é a empresa controladora deve ser beneficiário terceiro do Contrato de licença e que essas outras empresas terão o poder de aplicar diretamente, e apoiar-se em, qualquer cláusula do Contrato de licença que confira um direito (ou direitos em favor) deles. Além disso, nenhuma outra pessoa nem empresa deve ser beneficiário terceiro do Contrato de licença.
14.5 RESTRIÇÕES DE EXPORTAÇÃO. O PREVIEW ESTÁ SUJEITO ÀS LEIS E NORMAS DE EXPORTAÇÃO DOS ESTADOS UNIDOS. VOCÊ DEVE CUMPRIR TODAS AS LEIS E NORMAS DOMÉSTICAS E INTERNACIONAIS QUE SE APLICAREM AO PREVIEW. ESSAS LEIS INCLUEM RESTRIÇÕES SOBRE DESTINOS, USUÁRIOS FINAIS E USO FINAL.
14.6 O Contrato de licença não pode ser atribuído nem transferido por você sem a aprovação prévia por escrito da Google. Qualquer tentativa de atribuição sem a aprovação será inválida. Você não deve delegar as próprias responsabilidades ou obrigações nos termos do Contrato de licença sem aprovação prévia por escrito da Google.
14.7 O Contrato de licença e sua relação com a Google nos termos do contrato serão regidos pelas leis do estado da Califórnia sem considerar conflitos de disposições legais. Você e a Google concordam em se submeter à competência exclusiva dos tribunais localizados na comarca de Santa Clara, Califórnia, para dirimir quaisquer questões legais decorrentes do Contrato de licença. Não obstante a isso, você concorda que a Google continua habilitada a impetrar medidas cautelares (ou mecanismo legal urgente equivalente) em qualquer jurisdição.
</div><!-- sdk terms -->
<div id="sdk-terms-form">
<p>
<input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
<label id="agreeLabel" for="agree">Li e concordo com todos os termos e condições expressos acima</label>
</p>
<p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
</div>
</div><!-- end TOS -->
<div id="landing">
<div id="qv-wrapper">
<div id="qv">
<h2>Neste documento</h2>
<ol>
<li><a href="#sdk">Preview SDK</a></li>
<li><a href="#docs">Documentação do desenvolvedor</a></li>
<li><a href="#images">Imagens do sistema de hardware</a></li>
</ol>
</div>
</div>
<p>
O Android M Preview SDK inclui ferramentas de desenvolvimento, arquivos de sistema do Android e arquivos da biblioteca
para ajudar você a testar o aplicativo e novas APIs da próxima versão da plataforma. Este documento
descreve como adquirir os componentes disponíveis para download da prévia para o teste do aplicativo.
</p>
<h2 id="sdk">Preview SDK</h2>
<p>
O Preview SDK está disponível para download no <a href="{@docRoot}tools/help/sdk-manager.html">Android SDK Manager</a>. Para obter mais informações
sobre o download e a configuração do Preview SDK, consulte <a href="{@docRoot}preview/setup-sdk.html#downloadSdk">Configuração do Preview SDK</a>.
</p>
<h2 id="docs">Documentação do desenvolvedor</h2>
<p>
O pacote de download da documentação do desenvolvedor fornece informações de referência de API detalhadas e um relatório de diferença de API para a prévia.
</p>
<table>
<tr>
<th scope="col">Descrição</th>
<th scope="col">Download / Somas de verificação</th>
</tr>
<tr id="docs-dl">
<td>Android M Preview<br>Documentações do desenvolvedor</td>
<td><a href="#top" onclick="onDownload(this)">m-preview-1-developer-docs.zip</a><br>
MD5: b65201b0d35416f5a1b7a071b52854a7<br>
SHA-1: d47e856aa65e06897e6edd902ad8d2b1f05ac3ec
</td>
</tr>
<table>
<h2 id="images">Imagens do sistema de hardware</h2>
<p>
Essas imagens do sistema permitem que você instale uma versão de prévia da plataforma em um dispositivo físico
para fins de teste. Ao configurar um dispositivo com uma dessas imagens, é possível instalar e testar o aplicativo
para verificar o seu desempenho na próxima versão da plataforma. O processo de instalação de uma imagem do sistema
em um dispositivo <em>remove todos os dados do dispositivo</em>. Portanto, deve-se realizar um backup dos dados
antes de instalar uma imagem do sistema.
</p>
<p class="warning">
<b>Aviso:</b> as seguintes imagens do sistema Android são prévias e estão sujeitas a alterações. O uso
dessas imagens do sistema são governadas pelo Contrato de licença do Android SDK Preview. As imagens do sistema do Android Preview
não são versões estáveis e podem conter erros e defeitos que podem resultar
em danos aos sistemas do computador, aos dispositivos e aos dados. As imagens do sistema Android Preview
não estão sujeitas ao mesmo teste do sistema operacional de fábrica e podem fazer com que o telefone e aplicativos e os serviços
instalados parem de funcionar.
</p>
<table>
<tr>
<th scope="col">Dispositivo</th>
<th scope="col">Download / Somas de verificação</th>
</tr>
<tr id="hammerhead">
<td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td>
<td><a href="#top" onclick="onDownload(this)">hammerhead-MPZ44Q-preview-55d76d3a.tgz</a><br>
MD5: 9e2631b06c6525e401ceaae3677ff320<br>
SHA-1: 55d76d3a379b18f3363f28d8a462c236ab96fc36
</td>
</tr>
<tr id="shamu">
<td>Nexus 6 <br>"shamu"</td>
<td><a href="#top" onclick="onDownload(this)">shamu-MPZ44Q-preview-c1d6506a.tgz</a><br>
MD5: 307cbf9dab0a38df4ab2639d02be12aa<br>
SHA-1: c1d6506a74094bdb2f4b8677c7fe4967334f9ea8
</td>
</tr>
<tr id="volantis">
<td>Nexus 9 <br>"volantis"</td>
<td><a href="#top" onclick="onDownload(this)">volantis-MPZ44Q-preview-d15ad483.tgz</a><br>
MD5: fae40377fd999d2b09128665c915264d<br>
SHA-1: 7ab05f96093b2cb370b226f65931202714cbc2ca
</td>
</tr>
<tr id="fugu">
<td>Nexus Player <br>"fugu"</td>
<td><a href="#top" onclick="onDownload(this)">fugu-MPZ44Q-preview-2406ba05.tgz</a><br>
MD5: 815902141a85cc65e7725f005cad31d5<br>
SHA-1: 2406ba0598dea1e69110497ac0bc8e16789bc8fb
</td>
</tr>
</table>
<h3 id="install-image">Instalar uma imagem no dispositivo</h3>
<p>
Para usar uma imagem de dispositivo para testes, deve-se instalá-lo em um dispositivo compatível. Siga
as instruções abaixo para instalar uma imagem de sistema.
</p>
<ol>
<li>Faça o download e descompacte um dos pacotes de imagem do sistema listados aqui.</li>
<li>Faça um backup dos dados do dispositivo que deseja preservar.</li>
<li>Siga as instruções em
<a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>
para programar em flash a imagem no dispositivo.</li>
</ol>
<p class="note">
<strong>Observação:</strong> ao programar em flash a imagem do sistema de prévia no dispositivo de desenvolvimento,
ele é atualizado automaticamente com o próximo lançamento da prévia por meio de atualizações over-the-air (OTA).
</p>
<h3 id="revertDevice">Reverter um dispositivo para as especificações de fábrica</h3>
<p>
Caso queira desinstalar a prévia e reverter o dispositivo para as especificações de fábrica, acesse
<a href="http://developers.google.com/android/nexus/images">developers.google.com/android</a> e
faça o download da imagem que deseja programar em flash no dispositivo. Siga as instruções nesta página
para programar em flash a imagem no dispositivo.
</p>
</div><!-- landing -->
</div><!-- relative wrapper -->
<script>
var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/";
function onDownload(link) {
$("#downloadForRealz").html("Download " + $(link).text());
$("#downloadForRealz").attr('href', urlRoot + $(link).text());
$("#tos").fadeIn('fast');
$("#landing").fadeOut('fast');
return true;
}
function onAgreeChecked() {
/* verify that the TOS is agreed */
if ($("input#agree").is(":checked")) {
/* reveal the download button */
$("a#downloadForRealz").removeClass('disabled');
} else {
$("a#downloadForRealz").addClass('disabled');
}
}
function onDownloadForRealz(link) {
if ($("input#agree").is(':checked')) {
/*
$("#tos").fadeOut('fast');
$("#landing").fadeIn('fast');
*/
ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
/*
location.hash = "";
*/
return true;
} else {
return false;
}
}
$(window).hashchange( function(){
if (location.hash == "") {
location.reload();
}
});
</script>

View File

@@ -0,0 +1,123 @@
page.title=Links de aplicativos
page.image=images/cards/card-app-linking_2x.png
page.keywords=applinking, deeplinks, intents
@jd:body
<div id="qv-wrapper">
<div id="qv">
<h2>Neste documento</h2>
<ol>
<li><a href="#web-assoc">Declarar uma associação de site</a></li>
<li><a href="#verfy-links">Solicitar verificação de link de aplicativo</a></li>
<li><a href="#user-manage">Gerenciar configurações de link de aplicativo</a></li>
</ol>
</div>
</div>
<p>
O sistema de intenções do Android é um mecanismo flexível para possibilitar que aplicativos lidem com conteúdos e solicitações.
Vários aplicativos podem declarar padrões de URI correspondentes em seus filtros de intenções. Quando um usuário clica em um
link da web que não tem um manipulador de inicialização padrão, a plataforma pode exibir um diálogo para
o usuário selecionar entre uma lista de aplicativos que declararam filtros de intenções correspondentes.
</p>
<p>
O Android M Developer Preview introduz suporte para links de aplicativos, que aprimora
a manipulação de links existentes, permitindo que desenvolvedores de aplicativos associem um aplicativo a um domínio da web pertencente a eles. Quando
os desenvolvedores criam esta associação, a plataforma pode automaticamente determinar o aplicativo padrão usado
para lidar com um link da web particular e ignorar a solicitação aos usuários.
</p>
<h2 id="web-assoc">Declarar uma associação de site</h2>
<p>
Os donos de sites da web devem declarar as associações aos aplicativos para estabelecer um link de aplicativo. O dono do site
declara a relação com um aplicativo hospedando um arquivo JSON chamado {@code statements.json} no
local bem conhecido no domínio:
</p>
<pre>http://&lt;domain&gt;:&lt;optional port&gt;/.well-known/statements.json</pre>
<p class="note">
<strong>Observação:</strong>
durante o período do M Developer Preview, o arquivo JSON é verificado por meio de protocolo http. Para
o lançamento oficial da plataforma, o arquivo é verificado com o protocolo http criptografado.
</p>
<p>
Este arquivo JSON indica o aplicativo do Android que deve ser usado como o manipulador padrão para URLs
neste domínio. Ele identifica o aplicativo com base nestes campos:
</p>
<ul>
<li>{@code package_name}: o nome do pacote declarado no manifesto do arquivo.</li>
<li>{@code sha256_cert_fingerprints}: a impressão digital SHA256 do certificado assinado do aplicativo.
É possível usar o Java Keytool para gerar a impressão digital usando o seguinte comando:
<pre>keytool -list -v -keystore my-release-key.keystore</pre>
</li>
</ul>
<p>
A seguinte lista de arquivos exibe um exemplo de conteúdo e formato
de um arquivo {@code statements.json}:
</p>
<pre>
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "<strong>&lt;package name&gt;</strong>",
"sha256_cert_fingerprints": ["<strong>6C:EC:C5:0E:34:AE....EB:0C:9B</strong>"]
}
}]
</pre>
<h2 id="verfy-links">Solicitar verificação de link de aplicativo</h2>
<p>
Um aplicativo pode solicitar que a plataforma verifique automaticamente quaisquer links de aplicativo relacionados aos arquivos {@code statements.json}
hospedados nos respectivos domínios da web que são definidos pelos nomes de host
nos elementos de dados dos seus filtros de intenções. Para solicitar a verificação de link de aplicativo, adicione um atributo {@code android:autoVerify}
a cada filtro de intenção desejado no manifesto, como exibido no seguinte fragmento
de código do manifesto:
</p>
<pre>
&lt;activity ...&gt;
&lt;intent-filter <strong>android:autoVerify="true"</strong>&gt;
&lt;action android:name="android.intent.action.VIEW" /&gt;
&lt;category android:name="android.intent.category.DEFAULT" /&gt;
&lt;category android:name="android.intent.category.BROWSABLE" /&gt;
&lt;data android:scheme="http" android:host="www.android.com" /&gt;
&lt;data android:scheme="https" android:host="www.android.com" /&gt;
&lt;/intent-filter&gt;
&lt;/activity&gt;
</pre>
<p>
Quando o atributo {@code android:autoVerify} está presente em um manifesto do aplicativo, a plataforma
tenta verificar os links do aplicativo quando o aplicativo é instalado. Se a plataforma não conseguir
verificar os links do aplicativo, o aplicativo não será definido como o aplicativo preferencial para lidar com os links da web. Na próxima vez
que um usuário tentar abrir um dos links, a plataforma voltará a apresentar ao usuário
uma caixa de diálogo.
</p>
<p class="note">
<strong>Observação:</strong> no teste, há chances de ocorrer um falso positivo se a verificação
falhar, mas o usuário explicitamente permitiu que o aplicativo abrisse links sem solicitar, usando
o aplicativo do sistema Settings (Configurações). Neste caso, nenhum diálogo é exibido e o link vai direto para o
aplicativo, mas somente devido à configuração do usuário, e não porque a verificação foi bem-sucedida.
</p>
<h2 id="user-manage">Gerenciar configurações de link de aplicativo</h2>
<p>
Os usuários podem alterar as configurações de link de aplicativo para que os URLs sejam tratados da maneira que preferirem. É possível revisar e
gerenciar os links de aplicativo no aplicativo Settings (Configurações) do sistema, em <strong>Settings (Configurações) &gt; Apps (Aplicativos) &gt; App Info (Informações do aplicativo) &gt;
Open by default (Abrir por padrão)</strong>.
</p>

View File

@@ -0,0 +1,67 @@
page.title=Android M Developer Preview
page.tags="preview",
meta.tags="preview, M preview", androidm
fullpage=true
section.landing=true
header.hide=1
footer.hide=1
@jd:body
<section class="dac-expand dac-hero dac-light" >
<div class="wrap">
<div class="cols dac-hero-content">
<div class="col-9of16 col-push-7of16 dac-hero-figure">
<img class="dac-hero-image" src="{@docRoot}images/home/devices-hero_620px_2x.png" srcset="{@docRoot}images/home/devices-hero_620px.png 1x,
{@docRoot}images/home/devices-hero_620px_2x.png 2x">
</div>
<div class="col-7of16 col-pull-9of16">
<h1 class="dac-hero-title">Android M Developer Preview</h1>
<p class="dac-hero-description">
Prepare-se para a próxima versão do Android. Teste os aplicativos no Nexus 5, 6, 9 e
Player. Explore o que há de novo &mdash; <strong>permissões em tempo de execução</strong>,
recursos de economia de energia <strong>aplicativo em espera</strong> e <strong>soneca</strong>, novas
<strong>tecnologias de auxílio</strong> e muito mais.
</p>
<a class="dac-hero-cta" href="{@docRoot}preview/overview.html">
<span class="dac-sprite dac-auto-chevron"></span>
Comece!
</a><br>
</div>
</div>
<div class="dac-section dac-small">
<div class="resource-widget resource-flow-layout col-16"
data-query="collection:preview/landing/resources"
data-cardSizes="6x2"
data-maxResults="6"></div>
</div>
</div>
</section>
<section class="dac-section dac-gray"><div class="wrap">
<h1 class="dac-section-title">Recursos</h1>
<div class="dac-section-subtitle">
Informações essenciais para ajudar você a preparar os aplicativos para Android M.
</div>
<div class="resource-widget resource-flow-layout col-16"
data-query="collection:preview/landing/more"
data-cardSizes="6x6"
data-maxResults="16"></div>
<ul class="dac-section-links">
<li class="dac-section-link">
<a href="https://code.google.com/p/android-developer-preview/">
<span class="dac-sprite dac-auto-chevron"></span>
Relate problemas
</a>
</li>
<li class="dac-section-link"><a href="http://g.co/dev/AndroidMDevPreview">
<span class="dac-sprite dac-auto-chevron"></span>
Junte-se à comunidade do G+
</a>
</li>
</ul>
</div>
</section>

View File

@@ -0,0 +1,143 @@
page.title=Contrato de licença
@jd:body
<p>
Para começar a usar o Android SDK Preview, você deve concordar com os seguintes termos e condições.
Como descrito abaixo, observe que isto é uma versão de prévia do Android SDK, sujeita a alterações, que deve ser usada a seu risco. O Android SDK Preview não é uma versão estável e pode conter erros e defeitos que podem resultar em danos sérios aos sistemas de computador, aos dispositivos e aos dados.
</p>
<p>
Este é o contrato de licença do Android SDK Preview (o “Contrato de Licença”).
</p>
<div class="sdk-terms" style="height:auto;border:0;padding:0;width:700px">
1. Introdução
1.1 O Android SDK Preview (que este Contrato de licença chama de "Preview", incluindo especificamente os arquivos de sistema do Android, APIs integradas e arquivos da biblioteca Preview, se e quando estiverem disponíveis) é licenciado por meio da concordância com os termos deste contrato. O Contrato de licença forma um vínculo contratual legal entre o contratante e a Google em relação ao uso do Preview.
1.2 "Android" refere-se à pilha de software do Android para dispositivos, conforme disponibilizado no Projeto de código aberto do Android, localizado no URL a seguir: http://source.android.com/, atualizado periodicamente.
1.3 "Google" refere-se à Google Inc, uma corporação de Delaware, com sede em 1600 Amphitheatre Parkway, Mountain View, CA 94043, Estados Unidos.
2. Aceitação do Contrato de Licença
2.1 A fim de usar o Preview, é necessário concordar com este Contrato de licença. O uso do Preview é proibido àqueles que não concordam com este Contrato de licença.
2.2 Ao clicar em aceitar e/ou usar o Preview, você concorda com os termos do Contrato de licença
2.3 É proibido o uso do Preview e a aceitação deste contrato pelo indivíduo que tenha impedimento legal sobre o recebimento do Preview sob as leis dos Estados Unidos ou de outros países, incluindo o país de residência ou no qual usa o Preview.
2.4 Se for usar o Preview internamente na empresa ou organização, você deverá concordar com o vínculo com este contrato em nome do empregador ou de outra entidade e declarar e garantir que tem total autoridade legal para tanto. Se você não tem a autoridade necessária, não deve concordar com este contrato nem usar o Preview em nome do empregador ou de outra entidade.
3. Licença do Preview da Google
3.1 Sujeito aos termos do Contrato de licença, a Google confere uma licença limitada, revogável, livre de taxas, intransmissível, não sub-licenciável e não exclusiva para o uso apenas do Preview, pessoal ou internamente dentro da sua empresa ou organização, para fins de desenvolvimento de aplicativos executados na plataforma do Android.
3.2 Você concorda que a Google ou terceiros detêm todos os direitos legais, títulos e interesses relativos ao Preview, incluindo quaisquer direitos de propriedade intelectual que subsistam no Preview. "Direitos de propriedade intelectual" se referem a todo e qualquer direito sob as leis de patentes, de direitos autorais, de segredo comercial, de marca registrada e todos os outros direitos de propriedade. A Google reserva todos os direitos não conferidos expressamente a você.
3.3 O uso do Preview não é autorizado para qualquer finalidade não expressamente permitida por este Contrato de licença. Salvo na extensão exigida por licenças aplicáveis de terceiros, é proibido: (a) copiar (exceto para fins de cópia de segurança), modificar, adaptar, redistribuir, descompilar, fazer engenharia reversa, desmontar ou criar trabalhos derivados do Preview ou qualquer parte dele; ou (b) carregar qualquer parte do Preview em um aparelho celular ou outro dispositivo de hardware, exceto em computador pessoal, combinar qualquer parte do Preview com outros softwares ou distribuir qualquer software ou dispositivo que contenha uma parte do Preview.
3.4 Você concorda que não tomará quaisquer medidas que possam causar ou resultar em fragmentação do Android, incluindo, sem limitar-se, a distribuição e a participação na criação ou na promoção, sob quaisquer formas, de um conjunto de desenvolvimento de software derivado do Preview.
3.5 O uso, a reprodução e a distribuição de componentes do Preview licenciado sob licença de software de código aberto são regidos exclusivamente pelos termos daquela licença de software de código aberto, e não por este Contrato de licença. Você concorda em manter uma licença em bom estado para as licenças de software de código aberto sob todos os direitos concedidos e deter quaisquer ações que possam limitar, suspender ou romper tais direitos.
3.6 Você concorda que a forma e a natureza do SDK que a Google fornece podem mudar sem aviso prévio e que as versões futuras do SDK podem ser incompatíveis com aplicativos desenvolvidos em versões anteriores do SDK. Você concorda que a Google pode cessar (permanente ou temporariamente) o fornecimento do Preview (ou quaisquer recursos dentro dele) a você ou a usuários em geral sob critério exclusivo da Google, sem aviso prévio.
3.7 Nada neste Contrato de licença confere o direito de uso de quaisquer nomes comerciais, marcas comerciais, marcas de serviço, logomarcas, nomes de domínios e outros recursos de marcas especiais da Google.
3.8 Você concorda que não removerá, ocultará nem alterará quaisquer observações de direitos de propriedade (incluindo observações de direitos autorais e de marcas registradas) que possam estar afixadas ou contidas no Preview.
4. Uso do Preview por você
4.1 A Google compreende que nada no Contrato de licença da a ela direito, título nem interesse no usuário (ou em seus licenciadores), sob o presente Contrato de licença, no que tange ao desenvolvimento de aplicativos de software através do uso do Preview, incluindo quaisquer direitos de propriedade intelectual que subsistam nos referidos aplicativos.
4.2 Você concorda em usar o Preview e desenvolver aplicativos somente para as finalidades permitidas por (a) este Contrato de licença e (b) quaisquer leis, normas, diretrizes geralmente aceitas ou orientações aplicáveis nas jurisdições relevantes (incluindo quaisquer leis acerca da exportação e da importação de dados ou softwares nos Estados Unidos ou em outros países relevantes).
4.3 Você concorda que, se usar o Preview para o desenvolvimento de aplicativos, deverá proteger a privacidade e os direitos legais dos usuários. Se nomes de usuário, senhas ou outras informações de acesso ou informações pessoais forem fornecidos ao aplicativo, deve-se informá-los de que tais dados estarão disponíveis para o aplicativo, além de fornecer observações de privacidade e proteção legalmente adequadas a esses usuários. Se o aplicativo armazenar informações pessoais ou confidenciais fornecidas pelos usuários, deve fazê-lo com segurança. Se o usuário fornecer informações da conta do Google, o aplicativo poderá usar essas informações exclusivamente para acessar a conta da Google do usuário quando houver autorização para fazê-lo e para os fins limitados pela autorização.
4.4 Você concorda que não se envolverá em qualquer atividade com o Preview, incluindo o desenvolvimento e a distribuição de um aplicativo que interfira, perturbe, danifique ou acesse, de modo não autorizado, servidores, redes ou outras propriedades ou serviços da Google ou qualquer outro terceiro.
4.5 Você concorda que é exclusivamente responsável por (e que a Google não tem qualquer responsabilidade com você ou terceiro) quaisquer dados, conteúdo ou recursos que criar, transmitir ou exibir por meio do Android e/ou de aplicativos do Android e pelas consequências que suas ações (incluindo perda ou dano que a Google possa sofrer) podem gerar.
4.6 Você concorda que é exclusivamente responsável por (e que a Google não tem qualquer responsabilidade com você ou terceiro) qualquer violação das obrigações exigidas neste Contrato de licença, qualquer contrato ou termos de serviço aplicáveis a terceiros, qualquer lei ou norma aplicável e pelas consequências (incluindo a perda ou dano que a Google ou qualquer terceiro possa sofrer) de quaisquer violações.
4.7 O Preview está em desenvolvimento e o seu teste e feedback são uma parte importante deste processo. Ao usar o Preview, você está ciente de que a implementação de alguns recursos ainda estão em desenvolvimento e que não se deve confiar que o Preview tem a funcionalidade completa de uma versão estável. Você concorda em não distribuir nem enviar publicamente quaisquer aplicativos usando este Preview, pois ele não será mais suportado após o lançamento oficial do Android SDK.
5. Suas credenciais de desenvolvedor
5.1 Você é responsável pela manutenção da confidencialidade de quaisquer credenciais de desenvolvedor que possam ser emitidas pela Google ou escolhidas por você e será o único responsável por todos os aplicativos que forem desenvolvidos sob suas credenciais de desenvolvedor.
6. Privacidade e informações
6.1 A fim de inovar e aprimorar continuamente o Preview, a Google pode coletar certas estatísticas de uso do software, incluindo, sem limitar-se, um identificador exclusivo, endereço IP associado, número de versão do software e informações sobre quais ferramentas e/ou serviços no Preview estão sendo usados e como estão sendo usados. Antes de coletar quaisquer dessas informações, o Preview o notificará e buscará seu consentimento. Se você recusar, as informações não serão coletadas.
6.2 Os dados coletados são examinados coletivamente para aprimorar o Preview e são mantidos em conformidade com a Política de privacidade da Google acessível em http://www.google.com/policies/privacy/.
7. Aplicativos de terceiros
7.1 Ao usar o Preview para executar aplicativos desenvolvidos por terceiros ou que acessam dados, conteúdo ou recursos fornecidos por terceiros, você concorda que a Google não é responsável por tais aplicativos, dados, conteúdo ou recursos. Você compreende que quaisquer dados, conteúdo ou recursos passíveis de aceitação por meio de tais aplicativos de terceiros imputam responsabilidade exclusiva ao indivíduo que os originou. A Google não é responsável por qualquer perda ou dano que possa ocorrer como resultado do uso ou acesso de quaisquer aplicativos, dados, conteúdo ou recursos de terceiros.
7.2 Você deve estar ciente de que os dados, conteúdo e recursos apresentados a você por aplicativos de terceiros podem ser protegidos pelos direitos de propriedade intelectual de posse dos fornecedores (ou de outras pessoas ou empresas em seus nomes). Não é permitido modificar, alugar, arrendar, emprestar, vender, distribuir nem criar trabalhos derivados com base nestes dados, conteúdo ou recursos (na totalidade ou em parte), salvo se houver permissão explícita especificada pelos respectivos detentores de direitos.
7.3 Você reconhece que o uso de tais aplicativos, dados, conteúdo ou recursos de terceiros pode estar sujeito a termos adicionais entre você e o terceiro em questão.
8. Uso de APIs da Google
8.1 APIs da Google
8.1.1 Ao usar qualquer API para recuperar dados da Google, você reconhece que eles podem ser protegidos por direitos de propriedade intelectual de posse da Google ou dos terceiros que fornecem os dados (ou de pessoas ou empresas em nomes deles). O uso de tal API pode estar sujeito a termos de serviço adicionais. Não é permitido modificar, alugar, arrendar, emprestar, vender, distribuir nem criar trabalhos derivados baseados nesses dados (na totalidade ou em parte), salvo se permitido pelos termos de serviço pertinentes.
8.1.2 Se você usar qualquer API para recuperar dados de um usuário a partir da Google, reconhece e concorda que deve recuperar dados somente com consentimento explícito do usuário e somente quando, e para os fins limitados aos quais, o usuário conceder permissão para fazê-lo.
9. Rescisão do Contrato de licença
9.1 O Contrato de licença continuará a se aplicar até que ocorra uma rescisão sua ou da Google, como definido abaixo.
9.2 Caso queira rescindir o Contrato de licença, você pode fazer isto cessando o uso do Preview e de qualquer credencial de desenvolvedor relevante.
9.3 A Google pode, a qualquer momento, rescindir o Contrato de licença, com ou sem causa, com uma notificação.
9.4 O Contrato de licença será encerrado automaticamente sem aviso ou outras ações na ocorrência de:
(A) a Google interromper o fornecimento do Preview ou de determinadas partes do Preview aos usuários no país em que você reside ou de onde o serviço é usado; e
(B) a Google emitir uma versão de lançamento final do Android SDK.
9.5 Quando o Contrato de licença é rescindido, a licença concedida a você no Contrato de licença é finalizada, todo o uso do Preview será interrompido e as provisões dos parágrafos 10, 11, 12 e 14 deverão permanecer indefinidamente.
10. EXCLUSÕES
10.1 VOCÊ COMPREENDE E CONCORDA EXPRESSAMENTE QUE O RISCO DO USO DO PREVIEW É EXCLUSIVAMENTE SEU E QUE O PREVIEW É FORNECIDO NA FORMA EM QUE SE ENCONTRA E COMO DISPONIBILIZADO, SEM GARANTIA DE QUALQUER TIPO DA GOOGLE.
10.2 O USO DO PREVIEW E DE QUALQUER MATERIAL BAIXADO OU OBTIDO DE OUTRO MODO PELO USO DO PREVIEW ESTÁ A SEU CRITÉRIO E RISCO E VOCÊ É O ÚNICO RESPONSÁVEL POR QUALQUER DANO AO SEU SISTEMA OPERACIONAL OU OUTRO DISPOSITIVO OU PELA PERDA DE DADOS QUE RESULTEM DE TAL USO. SEM LIMITAR OS PRECEDENTES, VOCÊ ENTENDE QUE O PREVIEW NÃO É UMA VERSÃO ESTÁVEL E QUE PODE CONTER ERROS, DEFEITOS E VULNERABILIDADES DE SEGURANÇA QUE PODEM RESULTAR EM DANOS SIGNIFICANTES, INCLUINDO A PERDA IRRECUPERÁVEL OU COMPLETA DO USO DO SISTEMA DO COMPUTADOR OU DE OUTROS DISPOSITIVOS.
10.3 A GOOGLE EXCLUI EXPRESSAMENTE TODAS AS GARANTIAS E CONDIÇOES DE QUALQUER TIPO, EXPRESSAS OU IMPLÍCITAS, INCLUINDO, MAS NÃO LIMITADO A, GARANTIAS E CONDIÇÕES DE COMERCIALIZAÇÃO IMPLÍCITAS, ADEQUAÇÃO A UMA FINALIDADE PARTICULAR E A NÃO VIOLAÇÃO.
11. LIMITAÇÃO DE RESPONSABILIDADE
11.1 VOCÊ COMPREENDE E CONCORDA EXPRESSAMENTE QUE A GOOGLE, SUAS SUBSIDIÁRIAS, AFILIADAS E SEUS LICENCIADORES NÃO SERÃO RESPONSABILIZADOS POR VOCÊ SOB QUALQUER TEORIA DE RESPONSABILIDADE POR QUAISQUER DANOS, SEJAM ELES DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, CONSEQUENCIAIS OU DE EXEMPLO QUE POSSAM INCORRER, INCLUINDO QUALQUER PERDA DE DADOS, INDEPENDENTE DE AVISO À GOOGLE OU A SEUS REPRESENTANTES OU DA NECESSIDADE DE AVISO SOBRE A POSSIBILIDADE DA INCORRÊNCIA DE TAIS PERDAS.
12. Indenização
12.1 Ao limite máximo permitido por lei, você concorda em defender, indenizar e isentar a Google, suas afiliadas e respectivos conselheiros, diretores, empregados e agentes com relação a todas e quaisquer reivindicações, ações, processos ou procedimentos, bem como todas e quaisquer perdas, responsabilidades, danos, custos e despesas (incluindo honorários advocatícios) decorrentes ou provenientes de: (a) seu uso do Preview, (b) qualquer aplicativo desenvolvido no Preview que infrinja direitos de propriedade intelectual de qualquer pessoa, difame qualquer pessoa ou viole seus direitos de publicidade ou privacidade e (c) qualquer não cumprimento deste Contrato de licença.
13. Mudanças no Contrato de licença
13.1 A Google pode realizar mudanças no Contrato de licença à medida que distribui novas versões do Preview. Quando essas mudanças forem realizadas, a Google fará uma nova versão do Contrato de licença disponível no site em que o Preview estiver disponível.
14. Termos legais gerais
14.1 Esse Contrato de licença constitui o contrato legal integral entre você e a Google e rege o uso do Preview (excluindo quaisquer serviços que a Google possa fornecer a você sob um contrato escrito em separado), e substitui inteiramente quaisquer contratos anteriores entre você e a Google em relação ao Preview.
14.2 Você concorda que, se a Google não exercer nem impetrar qualquer direito ou recurso legal que esteja contido no Contrato de licença (ou que a Google detenha direitos nos termos de qualquer lei aplicável), não se considerará esse fato como uma renúncia formal aos direitos da Google e esses direitos ou recursos continuarão disponíveis à Google.
14.3 Se qualquer tribunal de justiça que tiver a competência para decidir sobre esse tema determinar que qualquer cláusula do Contrato de licença é inválida, tal cláusula será removida do contrato sem afetar as cláusulas restantes ou sua vigência. As cláusulas restantes do Contrato de licença continuarão válidas e obrigatórias.
14.4 Você reconhece e concorda que cada membro do grupo de empresas das quais a Google é a empresa controladora deve ser beneficiário terceiro do Contrato de licença e que essas outras empresas terão o poder de aplicar diretamente, e apoiar-se em, qualquer cláusula do Contrato de licença que confira um direito (ou direitos em favor) deles. Além disso, nenhuma outra pessoa nem empresa deve ser beneficiário terceiro do Contrato de licença.
14.5 RESTRIÇÕES DE EXPORTAÇÃO. O PREVIEW ESTÁ SUJEITO ÀS LEIS E NORMAS DE EXPORTAÇÃO DOS ESTADOS UNIDOS. VOCÊ DEVE CUMPRIR TODAS AS LEIS E NORMAS DOMÉSTICAS E INTERNACIONAIS QUE SE APLICAREM AO PREVIEW. ESSAS LEIS INCLUEM RESTRIÇÕES SOBRE DESTINOS, USUÁRIOS FINAIS E USO FINAL.
14.6 O Contrato de licença não pode ser atribuído nem transferido por você sem a aprovação prévia por escrito da Google. Qualquer tentativa de atribuição sem a aprovação será inválida. Você não deve delegar as próprias responsabilidades ou obrigações nos termos do Contrato de licença sem aprovação prévia por escrito da Google.
14.7 O Contrato de licença e sua relação com a Google nos termos do contrato serão regidos pelas leis do estado da Califórnia sem considerar conflitos de disposições legais. Você e a Google concordam em se submeter à competência exclusiva dos tribunais localizados na comarca de Santa Clara, Califórnia, para dirimir quaisquer questões legais decorrentes do Contrato de licença. Não obstante a isso, você concorda que a Google continua habilitada a impetrar medidas cautelares (ou mecanismo legal urgente equivalente) em qualquer jurisdição.
</div>

View File

@@ -0,0 +1,70 @@
page.title=Exemplos
page.image=images/cards/samples-new_2x.png
@jd:body
<p>
Os seguintes exemplos de código são fornecidos para o M Developer Preview. Para fazer o download
dos exemplos no Android Studio, selecione a opção do menu <b>File (Arquivo) &gt; Import Samples (Importar exemplos)</b>.
</p>
<p class="note">
<strong>Observação:</strong> estes projetos disponíveis para download foram feitos
para serem usados com Gradle e Android Studio.
</p>
<h3 id="RuntimePermissions">Permissões em tempo de execução</h3>
<p>
O Android M altera a maneira como as permissões do sistema funcionam. Os usuários são solicitados a aprovar
as permissões em tempo de execução em vez de aprovar durante a instalação. Este exemplo mostra como solicitar
essas permissões.
</p>
<p><a href="https://github.com/googlesamples/android-RuntimePermissions">Obtenha isto no GitHub</a></p>
<h3 id="ConfirmCredentials">Confirmação de credencial</h3>
<p>
Este exemplo demonstra como usar as credenciais do dispositivo como um método de autenticação no aplicativo.
</p>
<p><a href="https://github.com/googlesamples/android-ConfirmCredential">Obtenha isto
no GitHub</a></p>
<h3 id="FingerprintDialog">Diálogo de impressão digital</h3>
<p>
Este exemplo demonstra como reconhecer as impressões digitais registradas para autenticar o usuário
no aplicativo.
</p>
<p><a href="https://github.com/googlesamples/android-FingerprintDialog">Obtenha isto no GitHub</a></p>
<h3 id="AutomaticBackup">Backup automático para aplicativos</h3>
<p>
O Android M introduz o backup automático para as configurações de aplicativos. Este exemplo demonstra como adicionar
regras de filtro a um aplicativo para gerenciar o backup de configurações.
</p>
<p><a href="https://github.com/googlesamples/android-AutoBackupForApps">Obtenha isto no GitHub</a></p>
<h3 id="CameraRaw">Câmera 2 Bruta</h3>
<p>
Demonstra como usar a API <code>Camera2</code> API para capturar buffers de câmera RAW e salvá-los
como arquivos <code>DNG</code>.
</p>
<p><a href="https://github.com/googlesamples/android-Camera2Raw">Obtenha isto no GitHub</a></p>
<h3 id="ActiveNotification">Notificação ativa</h3>
<p>
Este exemplo demonstra como o
<a href="{@docRoot}reference/android/app/NotificationManager.html"><code>NotificationManager</code></a>
pode dizer quantas notificações o aplicativo está exibindo.
</p>
<p><a href="https://github.com/googlesamples/android-ActiveNotifications">Obtenha isto no GitHub</a></p>

View File

@@ -0,0 +1,207 @@
page.title=Configuração do Preview SDK
page.image=images/cards/card-set-up_16-9_2x.png
@jd:body
<div id="qv-wrapper">
<div id="qv">
<h2>Neste documento</h2>
<ol>
<li><a href="#get-as13">Obter o Android Studio 1.3</a></li>
<li><a href="#get-sdk">Obter o Preview SDK</a></li>
<li><a href="#create-update">Criar ou atualizar um projeto</a></li>
<li><a href="#setup-test">Configurar para teste</a></li>
</ol>
</div>
</div>
<p>O M Developer Preview SDK está disponível a partir do Android SDK Manager.
Este documento assume que você está familiarizado com o desenvolvimento de aplicativos do Android,
como o uso do Android SDK Manager e criação de projetos. Caso seja novo no
Android, consulte a lição de treinamento <a href="{@docRoot}training/basics/firstapp/index.html">Como criar o primeiro
aplicativo</a> primeiro.</a></p>
<h2 id="get-as13">Obter o Android Studio 1.3</h2>
<p>A prévia de desenvolvedor é melhor usada com o Android Studio 1.3, que está no estado
de prévia. É altamente recomendado que você instale a versão de prévia
do Android Studio 1.3 para que funcione com o Preview SDK.</p>
<p class="caution"><strong>Cuidado:</strong> a prévia canário do Android
Studio 1.3 ainda está em desenvolvimento ativo. Caso esteja usando a máquina de desenvolvimento principal
para testar a prévia de desenvolvedor, é possível criar uma segunda instalação
do Android Studio para usar em testes.</p>
<p>Para instalar a prévia do Android Studio 1.3:</p>
<ol>
<li>Faça o download e inicie o <a href="{@docRoot}tools/studio/index.html">Android
Studio</a>.
</li>
<li>Abra a janela <strong>Settings (Configurações)</strong> (no Windows, é possível fazer isto
escolhendo <strong>File (Arquivo) &gt; Settings (Configurações)</strong>). Escolha o painel
<strong>Appearance &amp; Behavior (Aparência e comportamento) &gt; System
Settings (Configurações do sistema) &gt; Updates (Atualizações)</strong>.
<p class="aside">No OSX, é possível encontrar o painel <strong>Appearance &amp;
Behavior (Aparência e comportamento)</strong>
na janela <strong>Preferences (Preferências)</strong> do Android Studio.</p>
</li>
<li> No painel <strong>Updates (Atualizações)</strong>, escolha a opção
<strong>Automatically check updates for: Canary Channel (Verificar atualizações automaticamente para: canal canário)</strong>.
</li>
<li>No painel <strong>Updates (Atualizações)</strong>, selecione <strong>Check Now (Verificar agora)</strong>
para verificar a versão mais recente da versão canário. Faça o download e instale a versão
quando solicitado.
</li>
</ol>
<h2 id="get-sdk">Obter o Preview SDK</h2>
<p>Para adicionar os componentes do Preview SDK ao ambiente de desenvolvimento:</p>
<ol>
<li>Inicie a prévia do Android Studio 1.3.
</li>
<li>Abra a janela <strong>Settings (Configurações)</strong> (no Windows, é possível fazer isto
escolhendo <strong>File (Arquivo) &gt; Settings (Configurações)</strong>). Escolha o painel
<strong>Appearance &amp; Behavior (Aparência e comportamento) &gt; System
Settings (Configurações do sistema) &gt; Updates (Atualizações)</strong>.
<p class="aside">No OSX, é possível encontrar o painel <strong>Appearance &amp;
Behavior (Aparência e comportamento)</strong>
na janela <strong>Preferences (Preferências)</strong> do Android Studio.</p>
</li>
<li>No painel <strong>Updates (Atualizações)</strong>, escolha a opção
<strong>Automatically check updates for: Canary Channel (Verificar atualizações automaticamente para: canal canário)</strong> e
<strong>Automatically check atualização for Android SDK: Preview Channel (Verificar atualizações automaticamente para: canal de pré-visualização)</strong>.
</li>
<li>Inicie o <strong>Android SDK Manager</strong>. (Com o Android Studio 1.3,
o SDK Manager está integrado no Android Studio, em vez de ser
um aplicativo independente.)
</li>
<li>Na seção <strong>Platforms (Plataformas)</strong>, selecione <strong>Android MNC
Preview</strong>.
</li>
<li>Na seção <strong>Tools (Ferramentas)</strong>, selecione o Android <strong>
SDK Tools</strong>, <strong>Platform-tools</strong> e
<strong>Build-tools</strong> mais recentes.
</li>
<li>Clique em <strong>Install packages (Instalar pacotes)</strong> e aceite o contrato de licença
para todos os pacotes.
</li>
<li>Verifique se o M Developer Preview está instalado abrindo a janela <strong>
Settings (Configurações)</strong> e escolhendo o painel <strong>Appearance &amp; Behavior (Aparência e comportamento)
&gt; System Settings (Configurações do sistema) &gt; Android SDK</strong>.</li>
<li>No painel <strong>Android SDK</strong>, escolha
a guia <strong>SDK Platforms (Plataformas SDK)</strong>. <strong>Android MNC
Preview</strong> deve estar listado como <em>Installed (Instalado)</em>. Além disso, abra a guia
<strong>SDK Tools (Ferramentas SDK)</strong> para verificar se as ferramentas mais recentes
estão instaladas.
</li>
</ol>
<p>Após concluir estas etapas, os componentes de prévia estarão disponíveis
no ambiente de desenvolvimento. </p>
<h2 id="create-update">Criar ou atualizar um projeto</h2>
<p>
Para usar as APIs de prévia, deve-se criar ou atualizar um projeto de desenvolvimento para usar
os componentes de prévia.
</p>
<h3 id="create">Criar um novo projeto</h3>
<p>
Recomendamos o uso do Android Studio para criar um projeto com a prévia. Siga as etapas
descritas em <a href="{@docRoot}sdk/installing/create-project.html">Criar um projeto</a>
até chegar na tela <em>Form Factors (Novas especificações)</em> no assistente do projeto. Em seguida,
realize as seguintes etapas para criar um projeto configurado para a prévia.
</p>
<ul>
<li>Verifique <strong>Phone and Tablet (Telefone e tablet)</strong>.</li>
<li>Selecione <strong>MNC: Android M (Preview)</strong> em <strong>Minimum
SDK (SDK mínimo)</strong>.</li>
</ul>
<h3 id="update">Atualizar um projeto existente</h3>
<p>
Para projetos existentes, deve-se modificar a configuração de projeto para ativar as APIs de prévia. No
ambiente de desenvolvimento, abra o arquivo <code>build.gradle</code> para o módulo
e defina estes valores da seguinte forma:
</p>
<ul>
<li><code>compileSdkVersion</code> para <code>'android-MNC'</code></li>
<li><code>minSdkVersion</code> para <code>'MNC'</code></li>
<li><code>targetSdkVersion</code> para <code>'MNC'</code></li>
</ul>
<h2 id="setup-test">Configurar para teste</h2>
<p>
Testar um aplicativo com a prévia requer que você tenha um dispositivo ou dispositivo virtual configurado
com a versão de prévia da plataforma. Caso tenha um dispositivo compatível, é possível instalar a plataforma
de prévia para teste. Caso contrário, é possível configurar um dispositivo virtual para o teste.
</p>
<h3 id="setup-device">Configurar um dispositivo físico</h3>
<p>
Caso tenha um Nexus 5, Nexus 6, Nexus 9 ou Android TV, é possível instalar uma imagem do sistema
de prévia nestes dispositivos para testar o aplicativo.
É possível configurar um dispositivo virtual com a versão de prévia da plataforma a partir do Android Studio
usando a ferramenta Android Virtual Device Manager.
</p>
<p class="caution">
<strong>Importante:</strong> instalar uma imagem de prévia em um dispositivo <em>remove todos os dados
dele</em>. Portanto, deve-se realizar o backup de quaisquer dados antes de instalar uma imagem de prévia.
</p>
<h3 id="setupAVD">Configurar um dispositivo virtual</h3>
<p>
É possível configurar um dispositivo virtual com a versão de prévia da plataforma dentro do Android Studio
usando a ferramenta Android Virtual Device Manager.
</p>
<p>Para criar um AVD com o AVD Manager:</p>
<ol>
<li>Instale o Preview SDK no ambiente de desenvolvimento, como descrito
em <a href="{@docRoot}preview/setup-sdk.html">Configurar o Preview
SDK.</a></li>
<li>Siga as etapas em
<a href="{@docRoot}tools/devices/managing-avds.html">Como gerenciar AVDs com
o Gerenciador de AVD</a>. Use as seguintes configurações:
<ul>
<li><strong>Dispositivo:</strong> Nexus 5, Nexus 6, Nexus 9 ou Android TV</li>
<li><strong>Alvo:</strong>
Android M (Preview) - Nível da API M</li>
<li><strong>ABI:</strong> x86</li>
</ul>
</li>
</ol>
<p>
Para obter mais informações sobre como criar dispositivos virtuais para teste, consulte <a href="{@docRoot}tools/devices/index.html">Gerenciamento de dispositivos virtuais</a>.
</p>

View File

@@ -0,0 +1,67 @@
page.title=Suporte
page.image=images/cards/card-support_16-9_2x.png
@jd:body
<p>
Caso tenha encontrado erros ou tenha feedback sobre o M Developer Preview,
<a href="https://code.google.com/p/android-developer-preview/">crie um problema</a>
em nosso issue tracker.
</p>
<p>
Para obter mais auxílio, junte-se à comunidade
<a href="http://g.co/dev/AndroidMDevPreview">M Developer
Preview do Google+</a> para discutir suas experiências de desenvolvimento.
</p>
<h2 id="release-notes">Notas da versão</h2>
<!--
<div class="toggle-content opened">
<p><a href="#" onclick="return toggleContent(this)">
<img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
alt=""/>M Developer Preview, Revision 2</a> <em>(Month 2015)</em>
</p>
<div class="toggle-content-toggleme">
<dl>
<dt>Fix Category 1</dt>
<dd>
<ul>
<li>Fixed issue X.</li>
<li>Fixed issue Y.</li>
<li>Fixed issue Z.</li>
</ul>
</dd>
<dt>Fix Category 2</dt>
<dd>
<ul>
<li>Fixed issue X.</li>
<li>Fixed issue Y.</li>
<li>Fixed issue Z.</li>
</ul>
</dd>
</dl>
</div>
</div>
-->
<div class="toggle-content opened">
<p><a href="#" onclick="return toggleContent(this)">
<img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img" alt="" />M Developer Preview, revisão 1</a> <em>(maio de 2015)</em>
</p>
<div class="toggle-content-toggleme">
<dl>
<dt>Versão inicial.</dt>
</dl>
</div>
</div>

View File

@@ -0,0 +1,187 @@
page.title=Guia de teste
page.image=images/cards/card-build_16x9_2x.png
page.keywords=previewresources,androidm,testing,permissions
@jd:body
<div id="qv-wrapper">
<div id="qv">
<h2>Neste documento</h2>
<ol>
<li><a href="#runtime-permissions">Teste de permissões</a></li>
<li><a href="#doze-standby">Teste de soneca e aplicativo em espera</a></li>
<li><a href="#ids">Identificadores de dispositivo e backup automático</a></li>
</ol>
</div>
</div>
<p>
O Android M Developer Preview fornece uma oportunidade de garantir que os aplicativos funcionem
na próxima versão da plataforma. Esta prévia inclui um número de mudanças de comportamento e APIs que podem
ter impacto no aplicativo, como descrito em <a href="{@docRoot}preview/api-overview.html">Visão geral da API
</a> e <a href="{@docRoot}preview/behavior-changes.html">Mudanças de comportamento</a>. No teste
do aplicativo com a prévia, há algumas alterações de sistema específicas em que você deve se concentrar
para garantir que os usuários tenham uma boa experiência.
</p>
<p>
Este guia descreve quais recursos de prévia testar e como testá-los com o aplicativo. Você deve
priorizar o teste destes recursos de prévia específicos, devido ao grande impacto potencial no
comportamento do aplicativo:
</p>
<ul>
<li><a href="#runtime-permissions">Permissões</a>
</li>
<li><a href="#doze-standby">Soneca e aplicativo em espera</a>
</li>
<li><a href="#ids">Identificadores de dispositivo e backup automático</a></li>
</ul>
<p>
Para obter mais informações sobre como configurar dispositivos físicos ou virtuais com uma imagem do sistema de prévia
para teste, consulte <a href="{@docRoot}preview/setup-sdk.html">Configuração do Preview SDK</a>.
</p>
<h2 id="runtime-permissions">Teste de permissões</h2>
<p>
O novo modelo de <a href="{@docRoot}preview/features/runtime-permissions.html">permissões</a>
altera a maneira que as permissões são alocadas ao aplicativo pelo usuário. Em vez de conceder todas as permissões
durante o procedimento de instalação, o aplicativo deve pedir ao usuário permissões individuais
em tempo de execução. Para os usuários, este comportamento fornece um controle mais granular sobre as atividades de cada aplicativo, bem
como um melhor contexto para entender o porquê do aplicativo estar solicitando uma permissão específica. Os usuários
podem conceder ou revogar as permissões concedidas a um aplicativo individualmente a qualquer momento. É provável que este recurso
da prévia tenha um impacto no comportamento do aplicativo e pode impedir que alguns
dos recursos do aplicativo funcionem, ou funcionem em um estado degradado.
</p>
<p class="caution">
Esta alteração afeta todos os aplicativos em execução na nova plataforma, mesmo aqueles que não são destinados
para a versão nova da plataforma. A plataforma fornece um comportamento de compatibilidade limitado para aplicativos legados. No entanto,
você deve começar a planejar a migração do aplicativo para o novo modelo de permissões agora, com o objetivo
de publicar uma versão atualizada do aplicativo no lançamento oficial da plataforma.
</p>
<h3 id="permission-test-tips">Dicas de teste</h3>
<p>
Use as seguintes dicas de teste para ajudar você a planejar e executar os testes do aplicativo com o novo
comportamento de permissões.
</p>
<ul>
<li>Identifique as permissões atuais do aplicativo e os caminhos de código relacionados.</li>
<li>Teste o fluxo de usuário entre serviços protegidos por permissão e dados.</li>
<li>Teste com várias combinações de permissões revogadas/concedidas.</li>
<li>Use a ferramenta {@code adb} para gerenciar as permissões da linha de comando:
<ul>
<li>Liste as permissões e o status por grupos:
<pre>adb shell pm list permissions -d -g</pre>
</li>
<li>Conceda ou revogue uma ou mais permissões usando a seguinte sintaxe:<br>
<pre>adb shell pm [grant|revoke] &lt;permission.name&gt; ...</pre>
</li>
</ul>
</li>
<li>Analise o aplicativo para encontrar os serviços que usam permissões.</li>
</ul>
<h3 id="permission-test-strategy">Estratégia de teste</h3>
<p>
A mudança de permissões afeta a estrutura e o projeto do aplicativo, bem como
a experiência dos usuários e os fluxos fornecidos a eles. Você deve avaliar o uso das permissões atuais
do aplicativo e começar a planejar novos fluxos que deseja oferecer. O lançamento oficial
da plataforma fornece comportamento de compatibilidade, mas deve-se planejar a atualização do aplicativo e
não confiar nestes comportamentos.
</p>
<p>
Identifique as permissões que o aplicativo realmente precisa e usa e, em seguida, encontre os vários caminhos
de código que usam os serviços protegidos por permissões. É possível fazer isto por meio de uma combinação de
testes na nova plataforma e análise de códigos. Nos testes, você deve se concentrar em usar
as permissões em tempo de execução alterando {@code targetSdkVersion} do aplicativo para a versão da prévia. Para
obter mais informações, consulte <a href="{@docRoot}preview/setup-sdk.html#">Configuração do Preview SDK</a>.
</p>
<p>
Teste com várias combinações de permissões revogadas e concedidas para destacar os fluxos de usuário
que dependem de permissões. Onde uma dependência não for óbvia ou lógica, considere
refatorar ou compartimentalizar este fluxo para eliminar a dependência ou para esclarecer por que
a permissão é necessária.
</p>
<p>
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
<a href="{@docRoot}preview/features/runtime-permissions.html">Permissões</a> do Developer
Preview.
</p>
<h2 id="doze-standby">Teste de soneca e aplicativo em espera</h2>
<p>
Os recursos de economia de energia de aplicativo em espera e soneca limitam a quantidade de processamento de segundo plano que o aplicativo
pode realizar quando um dispositivo está no estado ocioso ou enquanto não está em foco. As
restrições que o sistema pode impor nos aplicativos inclui acesso a rede limitado ou restrito,
tarefas de segundo plano suspensas, notificações suspensas, solicitações de soneca ignoradas e despertadores. Para garantir
que o aplicativo se comportará adequadamente com essas otimizações de economia de energia, deve-se testá-lo
simulando estes estados de baixa energia.
</p>
<h4 id="doze">Testar o aplicativo com Soneca</h4>
<p>Para testar a Soneca com o aplicativo:</p>
<ol>
<li>Configure um dispositivo de hardware ou virtual com uma imagem do sistema M Preview.</li>
<li>Conecte o dispositivo à máquina de desenvolvimento e instale o aplicativo.</li>
<li>Execute o aplicativo e deixe-o ativo.</li>
<li>Simule o dispositivo acessando o modo Soneca executando os seguintes comandos:
<pre>
$ adb shell dumpsys battery unplug
$ adb shell dumpsys deviceidle step
$ adb shell dumpsys deviceidle -h
</pre>
</li>
<li>Observe o comportamento do aplicativo quando o dispositivo é reativado. Certifique-se de que
ele se recupere corretamente quando o dispositivo sai do modo Soneca.</li>
</ol>
<h4 id="standby">Testar o aplicativo no modo de espera</h4>
<p>Para testar o modo de espera do aplicativo:</p>
<ol>
<li>Configure um dispositivo de hardware ou virtual com uma imagem do sistema M Preview.</li>
<li>Conecte o dispositivo à máquina de desenvolvimento e instale o aplicativo.</li>
<li>Execute o aplicativo e deixe-o ativo.</li>
<li>Simule o aplicativo acessando o modo de espera executando os seguintes comandos:
<pre>
$ adb shell am broadcast -a android.os.action.DISCHARGING
$ adb shell am set-idle &lt;packageName&gt; true
</pre>
</li>
<li>Simule o despertar do aplicativo usando o seguinte comando:
<pre>$ adb shell am set-idle &lt;packageName&gt; false</pre>
</li>
<li>Observe o comportamento do aplicativo quando ele é despertado. Certifique-se de que ele se recupere corretamente
do modo de espera. Particularmente, deve-se verificar se as notificações e os trabalho de segundo plano
do aplicativo continuam a funcionar como o esperado.</li>
</ol>
<h2 id="ids">Backup automático para aplicativos e identificadores específicos do dispositivo</h2>
<p>Caso o aplicativo esteja persistindo qualquer identificador específico do dispositivo, como o ID de registro do Google
Cloud Messaging, no armazenamento interno,
certifique-se de seguir as práticas recomendadas para excluir o local de armazenamento
do backup automático, como descrito em <a href="{@docRoot}preview/backup/index.html">Backup automático
para aplicativos</a>. </p>

View File

@@ -0,0 +1,656 @@
page.title=Teste de desempenho de exibição
page.image=images/cards/card-test-performance_2x.png
page.keywords=performance, fps, tools
@jd:body
<div id="qv-wrapper">
<div id="qv">
<h2>Neste documento</h2>
<ol>
<li><a href="#measure">Medir desempenho da IU</a>
<ul>
<li><a href="#aggregate">Agregar estatísticas de quadro</a></li>
<li><a href="#timing-info">Informações de precisão de quadro</a></li>
<li><a href="#timing-dump">Despejo de precisão de quadro simples</a></li>
<li><a href="#collection-window">Controlar janela de coleta de estatísticas</a></li>
<li><a href="#diagnose">Diagnosticar regressões de desempenho</a></li>
<li><a href="#resources">Recursos adicionais</a></li>
</ul>
</li>
<li><a href="#automate">Automatizar teste de desempenho da IU</a>
<ul>
<li><a href="#ui-tests">Configurar testes da IU</a></li>
<li><a href="#automated-tests">Configurar testes automatizados da IU</a></li>
<li><a href="#triage">Triagem e resolução de problemas observados</a></li>
</ul>
</li>
</ol>
</div>
</div>
<p>
O teste de desempenho da interface do usuário (IU) garante que o aplicativo
não só esteja de acordo com os requisitos funcionais, como também que as interações de usuários
sejam muito mais suaves, executando a 60 quadros por segundo de forma consistente (<a href="https://www.youtube.com/watch?v=CaMTIgxCSqU&amp;index=25&amp;list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE">por que
60 qps?</a>), sem nenhum quadro atrasado ou descartado ou, como gostamos de chamar, <em>"jank"</em>. Este documento explica as ferramentas disponíveis
para medir o desempenho da IU e dispõe uma abordagem para integrar
as medidas de desempenho de IU nas práticas de teste.
</p>
<h2 id="measure">Medir desempenho da IU</h2>
<p>
Para aprimorar o desempenho, deve-se primeiro ter a habilidade de medir o desempenho
do sistema e, em seguida, diagnosticar e identificar problemas que podem ocorrer
em várias partes do processo.
</p>
<p>
<em><a href="https://source.android.com/devices/tech/debug/dumpsys.html">dumpsys</a></em> é uma ferramenta
do Android que é executada no dispositivo e despeja informações interessantes sobre o estado
dos serviços do sistema. Passar o comando <em>gfxinfo</em> para dumpsys fornece uma saída no logcat
com informações de desempenho relacionada aos quadros de animação que ocorrem
durante a fase de registro.
</p>
<pre>
&gt; adb shell dumpsys gfxinfo &lt;PACKAGE_NAME&gt;
</pre>
<p>
Este comando pode produzir diversas variáveis de dados de precisão de quadro.
</p>
<h3 id="aggregate">Agregar estatísticas de quadro</h3>
<p>
Com o M Preview, o comando emite uma análise agregada dos dados de quadro para logcat,
coletados em todo o ciclo de vida do processo. Por exemplo:
</p>
<pre class="noprettyprint">
Stats since: 752958278148ns
Total frames rendered: 82189
Janky frames: 35335 (42.99%)
90th percentile: 34ms
95th percentile: 42ms
99th percentile: 69ms
Number Missed Vsync: 4706
Number High input latency: 142
Number Slow UI thread: 17270
Number Slow bitmap uploads: 1542
Number Slow draw: 23342
</pre>
<p>
Estas estatísticas de alto nível carregam um alto nível de desempenho de renderização do aplicativo,
bem como a estabilidade em vários quadros.
</p>
<h3 id="timing-info">Informações de precisão de quadro</h3>
<p>
Com o M Preview, há um novo comando para gfxinfo, o <em>framestats</em>, que fornece
informações de precisão de quadros extremamente detalhadas dos quadros recentes para que você possa rastrear
e depurar os problemas de forma mais precisa.
</p>
<pre>
&gt;adb shell dumpsys gfxinfo &lt;PACKAGE_NAME&gt; framestats
</pre>
<p>
Este comando emite informações de precisão de quadros, com marcações de data e hora, dos últimos 120
quadros produzidos pelo aplicativo. Abaixo, há um exemplo de saída bruta das estatísticas
de quadro de adb dumpsys gfxinfo &lt;PACKAGE_NAME&gt;:
</p>
<pre class="noprettyprint">
0,49762224585003,49762241251670,9223372036854775807,0,49762257627204,49762257646058,49762257969704,49762258002100,49762265541631,49762273951162,49762300914808,49762303675954,
0,49762445152142,49762445152142,9223372036854775807,0,49762446678818,49762446705589,49762447268818,49762447388037,49762453551527,49762457134131,49762474889027,49762476150120,
0,49762462118845,49762462118845,9223372036854775807,0,49762462595381,49762462619287,49762462919964,49762462968454,49762476194547,49762476483454,49762480214964,49762480911527,
0,49762479085548,49762479085548,9223372036854775807,0,49762480066370,49762480099339,49762481013089,49762481085850,49762482232152,49762482478350,49762485657620,49762486116683,
</pre>
<p>
Cada linha desta saída representa um quadro produzido pelo aplicativo. Cada linha tem um número fixo
de colunas que descrevem o tempo gasto em cada estágio do pipeline que produz quadros. A próxima seção descreve
este formato com detalhes, incluindo o que cada coluna representa.
</p>
<h4 id="fs-data-format">Formato de dados de estatísticas de quadro</h4>
<p>
Como o bloco de dados é a saída no formato CSV, basta colá-lo na ferramenta
de planilha de sua escolha ou coletá-lo e analisá-lo com o script. A tabela a seguir explica o formato
das colunas de dados de saída. Todas as marcações de data e hora estão em nanossegundos.
</p>
<ul>
<li>SINALIZADORES
<ul>
<li>Linhas com 0 para a coluna FLAGS podem ter o tempo total de quadros calculado
subtraindo a coluna INTENDED_VSYNC da coluna FRAME_COMPLETED.
</li>
<li>Se for um número diferente de zero, a linha deverá ser ignorada, pois o quadro será determinado
como exceção em comparação ao desempenho normal, onde espera-se que o layout e o desenho
demorem mais do que 16 ms. Eis alguns motivos para que isto ocorra:
<ul>
<li>Layout da janela alterado (como o primeiro quadro do aplicativo
ou após uma rotação)
</li>
<li>Também é possível que o quadro seja ignorado, quando alguns valores
ainda terão marcações de data e hora de lixo. Um quadro pode ser ignorado se, por exemplo,
estiver executando a 60 quadros por segundo ou se nada na tela estiver incorreto, o que não necessariamente
é um sinal de problema no aplicativo.
</li>
</ul>
</li>
</ul>
</li>
<li>INTENDED_VSYNC
<ul>
<li>O ponto inicial planejado para o quadro. Se este valor for diferente de VSYNC,
significa que há um trabalho ocorrendo no encadeamento da IU que não permitiu que ele respondesse
ao sinal de vsync de forma precisa.
</li>
</ul>
</li>
<li>VSYNC
<ul>
<li>O valor de tempo foi usado em todos os escutadores vsync e no desenho para o quadro
(retorno de chamada do quadro Choreographer, animações, View.getDrawingTime(), etc.)
</li>
<li>Para entender mais sobre VSYNC e como ele influencia o aplicativo, assista ao vídeo
<a href="https://www.youtube.com/watch?v=1iaHxmfZGGc&amp;list=PLOU2XLYxmsIKEOXh5TwZEv89aofHzNCiu&amp;index=23">
Entendimento do VSYNC</a>.
</li>
</ul>
</li>
<li>OLDEST_INPUT_EVENT
<ul>
<li>A marcação de data e hora do evento de entrada mais antigo na fila de entrada, ou Long.MAX_VALUE
se não houver eventos de entrada para o quadro.
</li>
<li>Este valor é principalmente planejado para o trabalho da plataforma e tem utilidade limitada
para desenvolvedores de aplicativos.
</li>
</ul>
</li>
<li>NEWEST_INPUT_EVENT
<ul>
<li>A marcação de data e hora do evento de entrada mais recente na fila de entrada
ou 0 se não houver eventos de entrada para o quadro.
</li>
<li>Este valor é principalmente planejado para o trabalho da plataforma e tem utilidade limitada
para desenvolvedores de aplicativos.
</li>
<li>No entanto, é possível ter uma breve ideia da quantidade de latência que o aplicativo
está adicionado verificando (FRAME_COMPLETED - NEWEST_INPUT_EVENT).
</li>
</ul>
</li>
<li>HANDLE_INPUT_START
<ul>
<li>A marcação de data e hora em que os eventos de entrada foram despachados para o aplicativo.
</li>
<li>Ao olhar o horário entre isto e ANIMATION_START, é possível medir o tempo que o aplicativo
gastou para lidar com os eventos de entrada.
</li>
<li>Se este número for alto (&gt; 2 ms), indica que o aplicativo está gastando
tempo demais processando os eventos de entrada, como View.onTouchEvent(), o que pode indicar
que este trabalho precisa ser otimizado ou descarregado para um encadeamento diferente. Observe que há algumas situações,
como eventos de clique que iniciam novas atividades,
em que é esperado e aceitável que este número seja grande.
</li>
</ul>
</li>
<li>ANIMATION_START
<ul>
<li>A marcação de data e hora em que as animações registradas com Choreographer foram executadas.
</li>
<li>Ao olhar para o tempo entre isto e PERFORM_TRANVERSALS_START,
é possível determinar o tempo levado para avaliar todos os animadores
(ObjectAnimator, ViewPropertyAnimator e Transitions sendo as mais comuns) que estão sendo executados.
</li>
<li>Se este número for alto (&gt; 2 ms), verifique se o aplicativo gravou qualquer animador
personalizado ou quais campos de ObjectAnimators estão animando
e certifique-se de que eles sejam adequados para uma animação.
</li>
<li>Para saber mais sobre Choreographer, assista ao vídeo
<a href="https://developers.google.com/events/io/sessions/325418001">Para melhor ou pior</a>.
</li>
</ul>
</li>
<li>PERFORM_TRAVERSALS_START
<ul>
<li>Se você subtrair o DRAW_START deste valor, será possível extrair o tempo que as fases de medida e layout
levaram para serem concluídas (observação: durante uma rolagem ou animação,
espera-se que este valor seja próximo a zero).
</li>
<li>Para saber mais sobre as fases de medida e layout do pipeline de renderização,
assista ao vídeo <a href="https://www.youtube.com/watch?v=we6poP0kw6E&amp;list=PLOU2XLYxmsIKEOXh5TwZEv89aofHzNCiu&amp;index=27">
Invalidações, layouts e desempenho</a>
</li>
</ul>
</li>
<li>DRAW_START
<ul>
<li>O horário em que a fase de desenho de performTraversals foi iniciada. Este é o ponto inicial
do registro de listas de exibição de vistas que foram invalidadas.
</li>
<li>O tempo entre isto e SYNC_START é o tempo levado para chamar View.draw()
em todas as vistas invalidadas na árvore.
</li>
<li>Para obter mais informações sobre o modelo de desenho, assista aos vídeos <a href="{@docRoot}guide/topics/graphics/hardware-accel.html#hardware-model">Aceleração de hardware</a>
ou <a href="https://www.youtube.com/watch?v=we6poP0kw6E&amp;list=PLOU2XLYxmsIKEOXh5TwZEv89aofHzNCiu&amp;index=27">
Invalidações, layouts e desempenho</a>
</li>
</ul>
</li>
<li>SYNC_START
<ul>
<li>O horário em que a fase de sincronização do desenho foi iniciada.
</li>
<li>Se o tempo entre isto e ISSUE_DRAW_COMMANDS_START for substancial (aproximadamente &gt; 0,4ms),
geralmente indicará que vários Bitmaps novos que foram desenhados deverão
ser enviados para o GPU.
</li>
<li>Para entender mais sobre a fase de sincronização, assista ao vídeo <a href="https://www.youtube.com/watch?v=VzYkVL1n4M8&amp;index=24&amp;list=PLOU2XLYxmsIKEOXh5TwZEv89aofHzNCiu">
Renderização de GPU de perfil</a>
</li>
</ul>
</li>
<li>ISSUE_DRAW_COMMANDS_START
<ul>
<li>O horário em que o renderizador de hardware começou a emitir comandos de desenho para a GPU.
</li>
<li>O tempo entre isto e FRAME_COMPLETED fornece uma breve ideia da quantidade de trabalho de GPU
que o aplicativo está produzindo. Problemas com excesso ou efeitos de renderização
ineficientes são exibidos aqui.
</li>
</ul>
</li>
<li>SWAP_BUFFERS
<ul>
<li>O horário em que o eglSwapBuffers foi chamado, relativamente desinteressante
fora do trabalho da plataforma.
</li>
</ul>
</li>
<li>FRAME_COMPLETED
<ul>
<li>Tudo feito! O tempo total gasto trabalhando neste quadro pode ser calculando
realizando FRAME_COMPLETED - INTENDED_VSYNC.
</li>
</ul>
</li>
</ul>
<p>
É possível usar estes dados de várias formas. Uma visualização simples mas útil é o histograma
exibindo a distribuição dos tempos dos quadros (FRAME_COMPLETED - INTENDED_VSYNC)
em diferentes espaços de latência. Consulte a figura abaixo. Este gráfico mostra brevemente que a maioria
dos quadros estavam bons — bem abaixo do limite de 16 ms (representado em vermelho) —,
mas que alguns quadros estavam bem acima do limite. Podemos verificar as alterações neste histograma
com o tempo para encontrar as mudanças indiscriminadas ou novas exceções sendo criadas. Também é possível colocar em gráfico a latência de entrada,
o tempo gasto no layout ou outras medidas interessantes com base
nas várias marcações de data e hora nos dados.
</p>
<img src="{@docRoot}preview/images/perf-test-framestats.png">
<h3 id="timing-dump">Despejo de precisão de quadro simples</h3>
<p>
Se a <strong>renderização de GPU de perfil</strong> for definida para <strong>em adb shell dumpsys gfxinfo</strong>
nas opções de desenvolvedor, o comando <code>adb shell dumpsys gfxinfo</code> emitirá informações
de precisão para os 120 quadros mais recentes, divididas em algumas categorias
com valores separados por guias. Estes dados podem ser úteis para indicar quais partes do pipeline
de desenho podem estar lentas em um nível alto.
</p>
<p>
Semelhante às <a href="#fs-data-format">estatísticas de quadro</a> acima,
basta colá-los na ferramenta de planilha de sua escolha ou coletá-los e analisá-los
com um script. O gráfico a seguir exibe um detalhamento de onde os vários quadros produzidos
pelo aplicativo gastaram o tempo.
</p>
<img src="{@docRoot}preview/images/perf-test-frame-latency.png">
<p>
O resultado de executar gfxinfo, copiar a saída, colá-lo no aplicativo de planilha
e gerar um gráfico dos dados como barras empilhadas.
</p>
<p>
Cada barra vertical representa um quadro da animação; sua altura representa a quantidade
de milissegundos para calcular este quadro de animação. Cada segmento colorido da barra
representa um estágio diferente do pipeline de renderização para que você possa ver que partes do aplicativo
podem estar criando um afunilamento. Para obter mais informações sobre o entendimento do pipeline
de renderização e como otimizá-lo, assista ao vídeo <a href="https://www.youtube.com/watch?v=we6poP0kw6E&amp;index=27&amp;list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE">
Invalidações, layouts e desempenho</a>.
</p>
<h3 id="collection-window">Controlar janela de coleta de estatísticas</h3>
<p>
As precisões de quadro simples e estatísticas de quadro coletam dados
em um período muito curto — cerca de dois segundos de renderização. Para controlar este período de forma precisa — por exemplo,
restringir os dados para uma animação em particular —, é possível redefinir
todos os contadores e agregar as estatísticas coletadas.
</p>
<pre>
&gt;adb shell dumpsys gfxinfo &lt;PACKAGE_NAME&gt; reset
</pre>
<p>
Isto também pode ser usado em conjunto com os próprios comandos de despejo para coletar
e redefinir em uma cadência regular, capturando períodos de menos de dois segundos de quadros
continuamente.
</p>
<h3 id="diagnose">Diagnosticar regressões de desempenho</h3>
<p>
A identificação de regressões é uma boa primeira etapa para rastrear os problemas
e manter o bem-estar do aplicativo. No entanto, o dumpsys identifica apenas a existência
e a gravidade relativa dos problemas. Ainda é necessário diagnosticar a causa particular dos problemas
de desempenho e encontrar maneiras adequadas de resolvê-los. Para isso, é altamente recomendado
o uso da ferramenta <a href="{@docRoot}tools/help/systrace.html">systrace</a>.
</p>
<h3 id="resources">Recursos adicionais</h3>
<p>
Para obter mais informações sobre como o pipeline de renderização do Android funciona,
problemas comuns que podem ser encontrados e como resolvê-los,
alguns dos seguintes recursos podem ser úteis:
</p>
<ul>
<li>Desempenho de renderização 101
</li>
<li>Por que 60 qps?
</li>
<li>GPU e IU do Android
</li>
<li>Invalidações, layouts e desempenho
</li>
<li>Análise do desempenho de IU com Systrace
</li>
</ul>
<h2 id="automate">Automatizar teste de desempenho da IU</h2>
<p>
Uma abordagem para o teste de desempenho da IU é fazer com que um testador humano
realize uma série de operações de usuário no aplicativo-alvo e procure visualmente problemas
ou gaste uma grande quantidade de tempo usando uma abordagem de ferramenta para encontrá-los. No entanto, esta abordagem manual
é repleta de riscos: a habilidade humana de notar alterações na taxa de quadros varia tremendamente,
além de consumir tempo, ser tedioso e propenso a erros.
</p>
<p>
Uma abordagem mais eficiente é registrar e analisar as métricas de desempenho essenciais
dos testes de IU automatizados. O Android M Developer Preview inclui novas capacidades de registro que facilitam
a determinação da quantidade e da gravidade de erros nas animações do aplicativo
e que podem ser usadas para compilar um processo rigoroso para determinar o desempenho atual
e rastrear os futuros objetivos de desempenho.
</p>
<p>
Este artigo mostra uma abordagem recomendada para usar estes dados para automatizar
o teste de desempenho.
</p>
<p>
Ele é geralmente dividido em duas ações principais. Primeiro: identificar o que está testando
e como será testado. Segundo: configuração e manutenção
de um ambiente de teste automatizado.
</p>
<h3 id="ui-tests">Configurar de testes da IU</h3>
<p>
Antes de iniciar o teste automatizado, é importante determinar algumas decisões de alto nível
para entender corretamente o espaço de teste e as possíveis necessidades.
</p>
<h4>
Identificar principais animações/fluxos a testar
</h4>
<p>
Lembre-se que um desempenho ruim é mais visível aos usuários quando
interrompe uma animação suave. Portanto, ao identificar que tipos de ações de IU serão testadas, é útil se concentrar
nas animações principais que os usuários veem
ou nas mais importantes para a experiência. Por exemplo, eis alguns cenários comuns que pode ser útil identificar:
</p>
<ul>
<li>Rolagem de um ListView ou RecyclerView principal
</li>
<li>Animações durante ciclos de espera assíncrona
</li>
<li>Qualquer animação que possa ter manipulação ou carregamento de bitmap
</li>
<li>Animações com mistura alpha
</li>
<li>Desenho de vista personalizada com Canvas
</li>
</ul>
<p>
Trabalhe com engenheiros, designers, e gerentes de produto em sua equipe para priorizar
as animações de produto essenciais para a cobertura de teste.
</p>
<h4>
Defina os futuros objetivos e faça um rastreamento
</h4>
<p>
De um alto nível, talvez seja essencial identificar os objetivos específicos de desempenho
e concentrar-se em escrever testes e coletar dados. Por exemplo:
</p>
<ul>
<li>Quer apenas iniciar o rastreamento de desempenho de IU pela primeira vez para aprender mais?
</li>
<li>Quer evitar regressões que possam ser introduzidas no futuro?
</li>
<li>Está com 90% de quadros suaves hoje e deseja chegar a 98% neste trimestre?
</li>
<li>Está com 98% de quadros suaves e não quer regredir?
</li>
<li>O seu objetivo é aprimorar o desempenho em dispositivos de baixo nível?
</li>
</ul>
<p>
Em todos esses casos, você optará pelo rastreamento histórico, que exibe o desempenho
entre várias versões do aplicativo.
</p>
<h4>
Identificar dispositivos para realizar testes
</h4>
<p>
O desempenho do aplicativo varia dependendo do dispositivo em que está sendo executado. Alguns dispositivos podem
conter menos memória, GPUs menos eficientes ou chips de CPU mais lentos. Isto significa que as animações que podem
ter um bom desempenho em um conjunto de hardwares podem não ter o mesmo desempenho em outras,
podendo ser o resultado de um afunilamento em uma parte diferente do pipeline. Portanto, para contabilizar
esta variação em o que o usuário pode ver, escolha uma variação de dispositivos
para executar os testes: dispositivos e tablets de alto e baixo nível etc. Procure variações no desempenho de CPU,
RAM, densidade da tela, tamanho etc. Testes que passam em dispositivos de alto nível
podem falhar em dispositivos de baixo nível.
</p>
<h4>
Estruturas básicas para teste de IU
</h4>
<p>
Conjuntos de ferramenta, como <a href="{@docRoot}training/testing/ui-testing/uiautomator-testing.html">UI Automator</a> e
<a href="{@docRoot}training/testing/ui-testing/espresso-testing.html">Espresso</a>,
são integrados para ajudar na automatização da ação de um usuário movendo-se pelo aplicativo. São estruturas simples
que imitam a interação de usuário no dispositivo. Para usar estas estruturas,
você cria efetivamente scripts únicos que executam um conjunto
de ações de usuário e reproduzem-nas no próprio dispositivo.
</p>
<p>
Ao combinar estes testes automatizados, juntamente com <code>dumpsys gfxinfo</code>, é possível criar
rapidamente um sistema reproduzível que permite a execução de um teste e a medição das informações
de desempenho desta condição em particular.
</p>
<h3 id="automated-tests">Configurar testes automatizados da IU</h3>
<p>
Com a habilidade de executar um teste de IU e um pipeline para coletar
os dados de um único teste, a próxima etapa importante é adotar uma estrutura que pode executar
esse teste várias vezes, em vários dispositivos, e agregar os dados de desempenho resultados
para futuras análises da equipe de desenvolvimento.
</p>
<h4>
Uma estrutura para automatização de testes
</h4>
<p>
Vale observar que as estruturas de teste de IU (como o <a href="{@docRoot}training/testing/ui-testing/uiautomator-testing.html">UI Automator</a>)
são executadas diretamente no emulador/dispositivo alvo. Enquanto as informações de coleta de desempenho feita
pelo <em>dumpsys gfxinfo</em> forem direcionadas por uma máquina hospedeira, envie comandos pelo ADB. Para ajudar a transmitir
a automatização dessas entidades separadas, a estrutura <a href="{@docRoot}tools/help/monkeyrunner_concepts.html">MonkeyRunner</a>
foi desenvolvida: um sistema de script que é executado na máquina host que pode
emitir comandos para um conjunto de dispositivos conectados, bem como receber dados deles.
</p>
<p>
A compilação de um conjunto de scripts para uma automatização adequada de teste de desempenho de IU,
no mínimo, deve ser capaz de utilizar o MonkeyRunner para realizar as seguintes tarefas:
</p>
<ul>
<li>Carregar e iniciar um APK desejado para um emulador ou dispositivo alvo.
</li>
<li>Iniciar um teste de IU do UI Automator e permitir que ele seja executado.
</li>
<li>Coletar informações de desempenho por meio de <em>dumpsys gfxinfo</em><em>.</em>
</li>
<li>Agregar informações e exibi-las de forma útil para o desenvolvedor.
</li>
</ul>
<h3 id="triage">Triagem e resolução de problemas observados</h3>
<p>
Quando os padrões ou regressões dos problemas forem identificados, a próxima etapa
é identificar e aplicar a resolução. Se a estrutura de teste automatizado preservar o detalhamento preciso para os quadros,
ela poderá ajudar na inspeção de alterações de layout/código suspeitos recentes (em caso
de regressão) ou reduzir a parte do sistema que você está analisando ao alternar
para a investigação manual. Para a investigação manual, <a href="{@docRoot}tools/help/systrace.html">systrace</a> é um ótimo lugar para começar,
exibindo as informações de precisão sobre cada estágio do pipeline de renderização,
cada encadeamento e núcleo no sistema, bem como quaisquer marcadores de evento personalizados definidos.
</p>
<h4>
Geração de perfis adequada de precisões temporais
</h4>
<p>
É importante observar as dificuldades em obter e medir as precisões
do desempenho de renderização. Esses números são, por natureza, não determinísticos e frequentemente
oscilam dependendo do estado do sistema, da quantidade de memória disponível,
da diminuição termal e da última vez em que a luz do sol atingiu a sua área da Terra. Ou seja, é possível executar
o mesmo teste duas vezes e receber números levemente diferentes
que podem ser muito próximos, mas não idênticos.
</p>
<p>
A coleta e a geração de perfil de dados nesta maneira significa executar o mesmo teste,
várias vezes, e acumular os resultados como uma média ou valor mediano (para a simplicidade,
chamemos de "lote"). Isto fornece uma aproximação do desempenho do teste,
já que precisões exatas não são necessárias.
</p>
<p>
Os lotes podem ser usados entre alterações de códigos para verificar o impacto relativo
dessas alterações no desempenho. Se a taxa de quadros média para o lote antes da alteração
for maior do que o lote após a alteração, então o resultado de desempenho wrt geral será um sucesso
para esta alteração em particular.
</p>
<p>
Isto significa que qualquer teste de IU automatizado feito deve levar este conceito
em consideração, bem como quaisquer anomalias que possam ocorrer durante um teste. Por exemplo,
se o desempenho do aplicativo repentinamente cair devido a algum problema do dispositivo
(que não tenha sido causado pelo aplicativo), então talvez seja necessário executar
o lote novamente para obter precisões menos caóticas.
</p>
<p>
Logo, quantas vezes deve-se realizar um teste antes de as medidas terem algum sentido? 10 vezes deve ser o mínimo,
com números altos como 50 ou 10 oferecendo resultados mais precisos
(é claro que se deve levar em consideração o tempo para ter mais precisão).
</p>