Save the date! Android Dev Summit is coming to Mountain View, CA on November 7-8, 2018.

Preparar para o lançamento

Antes de distribuir o aplicativo Android para os usuários, é preciso prepará-lo para o lançamento. O processo de preparação é uma tarefa de desenvolvimento necessária para todos os aplicativos Android e é a primeira etapa no processo de publicação (veja a figura 1).

Para preparar o aplicativo para lançamento, você configura, compila e testa uma versão de lançamento do aplicativo. As tarefas de configuração são objetivas, envolvendo a limpeza básica do código e tarefas de modificação do código que ajudam a otimizar o aplicativo. O processo de compilação é semelhante ao processo de compilação para depuração e pode ser executando usando ferramentas do JDK e do Android SDK. As tarefas de teste servem como uma verificação final para garantir que o aplicativo tenha o desempenho esperado em condições reais. Quando concluir a preparação do aplicativo para lançamento, você terá um arquivo APK assinado, que poderá ser distribuído diretamente aos usuários ou por meio de uma loja de aplicativos como o Google Play.

Este documento resume as principais tarefas que precisam ser realizadas para preparar o aplicativo para lançamento. As tarefas descritas neste documento valem para todos os aplicativos Android, independentemente da forma de lançamento ou distribuição para os usuários. Se o lançamento for feito no Google Play, leia também Lista de verificação para publicação no Google Play para assegurar que o aplicativo pronto para lançamento cumpre os requisitos do Google Play.

Observação: Como prática recomendada, o aplicativo deve cumprir todos os seus critérios de lançamento para funcionalidade, desempenho e estabilidade antes que você execute as tarefas descritas neste documento.

Mostra como o processo de preparação se insere no processo de desenvolvimento

Figura 1. A preparação para lançamento é uma tarefa de desenvolvimento obrigatória e é a primeira etapa no processo de publicação.

Introdução

Para liberar o aplicativo aos usuários, é preciso criar um pacote pronto para lançamento que os usuários possam instalar e executar em dispositivos com Android. O pacote pronto para lançamento contém os mesmos componentes que o arquivo APK de depuração — código-fonte compilado, recursos, arquivo de manifesto e assim por diante — e é compilado usando as mesmas ferramentas de compilação. No entanto, ao contrário do arquivo APK de depuração, o arquivo APK pronto para lançamento é assinado com o seu próprio certificado e otimizado com a ferramenta zipalign.

Mostra as cinco tarefas executadas para preparar o aplicativo para lançamento

Figura 2. Para preparar o aplicativo para lançamento, é necessário executar cinco tarefas principais.

Normalmente, as tarefas de otimização e assinatura são integradas quando o aplicativo é compilado com o Android Studio. Por exemplo, você pode usar o Android Studio com os arquivos de compilação do Gradle para compilar, assinar e otimizar o aplicativo de uma vez só. Também é possível configurar os arquivos de compilação do Gradle para fazer o mesmo em compilações executadas na linha de comando. Para saber mais sobre o uso de arquivos de compilação do Gradle, consulte o guia Sistema de compilação.

Normalmente, para preparar o aplicativo para lançamento, você executa cinco tarefas principais (veja a figura 2). Cada tarefa principal pode incluir uma ou mais tarefas menores, dependendo da forma de lançamento do aplicativo. Por exemplo: se você estiver lançando o aplicativo no Google Play, poderá adicionar regras de filtragem especiais ao manifesto durante a configuração do aplicativo para lançamento. Da mesma forma, para atender às diretrizes de publicação do Google Play, pode ser preciso preparar capturas de tela e criar textos promocionais durante a coleta de materiais para o lançamento.

Normalmente, executam-se as tarefas listadas na figura 2 após depurar e testar cuidadosamente o aplicativo. O Android SDK contém diversas ferramentas para ajudar a testar e depurar aplicativos Android. Para obter mais informações, consulte as seções Depuração e Teste no guia do desenvolvedor.

Coleta de materiais e recursos

Para preparar o aplicativo para lançamento, é preciso coletar diversos itens de suporte. No mínimo, isso abrange as chaves criptográficas para assinatura do aplicativo e um ícone do aplicativo. Também é possível incluir um contrato de licença de usuário final.

Chaves criptográficas

O sistema Android exige que cada aplicativo instalado seja assinado digitalmente com um certificado pertencente ao desenvolvedor do aplicativo (ou seja, um certificado cuja chave privada é retida pelo desenvolvedor). O sistema Android usa o certificado como forma de identificar o autor de um aplicativo e para estabelecer relações de confiança entre os aplicativos. O certificado usado para a assinatura não precisa ser assinado por uma autoridade de certificação. O sistema Android permite assinar os aplicativos com um certificado autoassinado. Para saber mais sobre os requisitos para certificados, consulte Como assinar seus aplicativos.

Importante: o aplicativo deve ser assinado com uma chave criptográfica com período de validade além de 22 de outubro de 2033.

Pode ser preciso obter outras chaves de lançamento se o aplicativo acessar um serviço ou usar uma biblioteca de terceiros que exija o uso de uma chave baseada na chave privada.

Ícone do aplicativo

Confira se você tem um ícone para o aplicativo e se ele atende às orientações para ícones recomendadas. O ícone do aplicativo ajuda os usuários a identificar o aplicativo em uma tela inicial do dispositivo e na janela Launcher. Ele também aparece em Manage Applications, My Downloads e em outros locais. Além disso, serviços de publicação como o Google Play exibem o ícone aos usuários.

Observação: se você estiver lançando o aplicativo no Google Play, será preciso criar uma versão do ícone em alta resolução. Consulte Ativos gráficos para aplicativos para obter mais informações.

Contrato de licença de usuário final

Considere a preparação de um contrato de licença de usuário final (EULA) para o aplicativo. Um EULA pode ajudar a proteger você, a organização e a propriedade intelectual. Recomendamos fornecer um EULA com o aplicativo.

Materiais diversos

Também pode ser necessário preparar materiais promocionais e de marketing para divulgar o aplicativo. Por exemplo, se estiver lançando o aplicativo no Google Play, você precisará preparar textos promocionais e criar capturas de tela do aplicativo. Para obter mais informações, consulte Ativos gráficos para aplicativos

Configuração do aplicativo para o lançamento

Após coletar todos os materiais de suporte, você poderá começar a configurar o aplicativo para lançamento. Esta seção oferece um resumo das mudanças de configuração recomendadas para o código-fonte, os arquivos de recursos e o manifesto do aplicativo antes do lançamento. Embora a maioria das alterações de configuração listadas nesta seção sejam opcionais, são consideradas boas práticas de codificação e sugerimos que você as implemente. Em alguns casos, essas alterações já podem ter sido feitas como parte do processo de desenvolvimento.

Escolha um bom nome para o pacote

Escolha um nome de pacote adequado para todo o período de validade do aplicativo. Não será possível alterar o nome do pacote após a distribuição do aplicativo aos usuários. Você pode definir o nome do pacote no arquivo de manifesto do aplicativo. Para obter mais informações, consulte a documentação dos atributos de package.

Desativar o registro em log e a depuração

Não deixe de desativar o registro em log e a opção de depuração antes de compilar o aplicativo para lançamento. Para desativar o registro em log, remova as chamadas para os métodos Log nos arquivos de origem. Para desativar a depuração, remova o atributo android:debuggable da tag <application> no arquivo de manifesto ou defina o atributo android:debuggable como false no arquivo de manifesto. Além disso, remova todos os arquivos de registros ou arquivos de teste estáticos criados no projeto.

Além disso, recomendamos remover também todas as chamadas de rastreamento a Debug adicionadas ao código, como as chamadas aos métodos startMethodTracing() e stopMethodTracing().

Importante: não deixe de desativar a depuração do aplicativo se estiver usando o WebView para exibir conteúdo pago ou usando interfaces JavaScript, pois a depuração permite que usuários injetem scripts e extraiam conteúdo usando o Chrome DevTools. Para desativar a depuração, use o método WebView.setWebContentsDebuggingEnabled().

Limpe os diretórios do projeto

Limpe o projeto e verifique se ele está de acordo com a estrutura de diretórios descrita em Projetos Android. Arquivos perdidos ou órfãos esquecidos no projeto podem evitar a compilação do aplicativo ou fazer com que ele tenha um comportamento imprevisível. Recomendamos realizar pelo menos as seguintes tarefas de limpeza:

  • Examine o conteúdo dos diretórios jni/, lib/ e src/. O diretório jni/ deve conter apenas arquivos de origem associados ao Android NDK, como arquivos .c, .cpp, .h e .mk. O diretório lib/ deve conter apenas arquivos de bibliotecas de terceiros ou privadas, inclusive bibliotecas pré-compiladas compartilhadas e bibliotecas estáticas (por exemplo, arquivos .so). O diretório src/ deve conter apenas os arquivos de origem do aplicativo (arquivos .java e .aidl). O diretório src/ não deve conter nenhum arquivo .jar.
  • Confira se o projeto contém arquivos de dados privados proprietários não usados pelo aplicativo e remova-os. Por exemplo: procure no diretório res/ do projeto arquivos antigos drawable, de layout e de valores que não são mais usados e exclua-os.
  • Verifique se há bibliotecas de teste no diretório lib/ e remova-as se não estiverem mais sendo usadas pelo aplicativo.
  • Examine o conteúdo dos diretórios assets/ e res/raw/ para verificar a existência de arquivos de ativos brutos e arquivos estáticos que precisam ser atualizados ou removidos antes do lançamento.

Revise e atualize o manifesto e as configurações de compilação do Gradle

Verifique se os seguintes itens dos arquivos de manifesto e de compilação estão definidos corretamente:

  • Elemento <uses-permission>

    Você só deve especificar as permissões relevantes e necessárias para o aplicativo.

  • Atributos android:icon e android:label

    Você deve especificar valores para esses atributos, que estão localizados no elemento <application>.

  • Atributos android:versionCode e android:versionName.

    Recomendamos especificar valores para esses atributos, localizados no elemento <manifest>. Para obter mais informações, consulte Controle de versões do aplicativo.

Existem vários elementos adicionais de arquivos de manifesto ou compilação que poderão ser definidos se você lançar o aplicativo no Google Play. Por exemplo: os atributos android:minSdkVersion e android:targetSdkVersion, localizados no elemento <uses-sdk>. Para obter mais informações sobre essas e outras configurações do Google Play, consulte Filtros no Google Play.

Resolva problemas de compatibilidade

O Android oferece diversas ferramentas e técnicas para tornar o aplicativo compatível com uma grande variedade de dispositivos. Para disponibilizar o aplicativo para o maior número possível de usuários, considere fazer o seguinte:

  • Adicione compatibilidade a configurações para diversas telas

    Verifique se está cumprindo as práticas recomendadas para compatibilidade com diversas telas. A compatibilidade com várias configurações de tela permite criar um aplicativo que funciona corretamente e com boa aparência nos tamanhos de tela compatíveis com o Android.

  • Otimize o aplicativo para dispositivos tablet do Android.

    Se o aplicativo for projetado para dispositivos anteriores ao Android 3.0, torne-o compatível com dispositivos Android 3.0 seguindo as orientações e as práticas recomendadas descritas em Otimização de aplicativos para Android 3.0.

  • Considere usar a Support Library

    Se o aplicativo for projetado para dispositivos executando o Android 3.x, torne-o compatível com versões anteriores do Android adicionando a Support Library ao projeto do aplicativo. A Support Library oferece bibliotecas de suporte estáticas que podem ser adicionadas ao aplicativo Android, o que permite usar APIs não disponíveis em versões antigas da plataforma ou usar APIs de utilitários que não fazem parte das APIs do framework.

Atualizar URLs para servidores e serviços

Se o aplicativo acessar servidores ou serviços remotos, confirme se está usando o URL ou o caminho para o servidor ou serviço de produção e não o URL ou caminho de teste.

Implementar o licenciamento (se estiver lançando no Google Play)

Se você estiver lançando um aplicativo pago no Google Play, considere adicionar a compatibilidade com o Google Play Licensing. O licenciamento permite controlar o acesso ao aplicativo dependendo da compra ou não do aplicativo pelo usuário. O uso do Google Play Licensing é opcional, mesmo se você lançar o aplicativo no Google Play.

Para obter mais informações sobre o Google Play Licensing Service e como usá-lo no aplicativo, consulte Licenciamento do aplicativo.

Compilar o aplicativo para lançamento

Após concluir a configuração do aplicativo, você poderá compilá-lo em um arquivo APK pronto para lançamento, assinado e otimizado. O JDK contém as ferramentas para assinar o arquivo APK (Keytool e Jarsigner). O Android SDK contém as ferramentas para compilar e otimizar o arquivo APK. Se estiver usando o Android Studio ou o sistema de compilação do Gradle na linha de comando, você poderá automatizar todo o processo de compilação. Para obter informações sobre a configuração de compilações do Gradle, consulte Configuração de compilações do Gradle.

Compilar com o Android Studio

Você pode usar o sistema de compilação do Gradle integrado ao Android Studio para criar um arquivo APK pronto para lançamento, otimizado e assinado com a chave privada. Para saber como configurar e executar compilações no Android Studio, consulte Como compilar e executar no Android Studio.

O sistema de compilação supõe que você tem um certificado e uma chave privada adequados para a assinatura do aplicativo. Se não tiver um certificado e uma chave privada adequados, o Android Studio poderá ajudar a gerá-los. Para obter mais informações sobre o processo de assinatura, consulte Como assinar seus aplicativos.

Preparar servidores e recursos externos

Se o aplicativo depender de um servidor remoto, confirme se o servidor é seguro e está configurado para uso em produção. Isso é especialmente importante se você estiver implementando cobrança no aplicativo e executando a etapa de confirmação da assinatura em um servidor remoto.

Ou seja, se o aplicativo recuperar conteúdo de um servidor remoto ou de um serviço em tempo real (como um feed de conteúdo), confirme se o conteúdo que você oferece está atualizado e pronto para produção.

Testar o aplicativo para o lançamento

O teste da versão de lançamento do aplicativo ajuda a garantir que ele execute corretamente em condições realistas de dispositivos e rede. O ideal é testar o aplicativo em pelo menos um dispositivo com tamanho de celular e outro com tamanho de tablet para conferir se os elementos da interface do usuário estão dimensionados corretamente e se o desempenho do aplicativo e seu consumo de bateria são aceitáveis.

Como ponto de partida para o teste, consulte O que testar. Este artigo oferece um resumo de situações comuns no Android que devem ser consideradas durante os testes. Quando concluir os testes e estiver satisfeito com o comportamento adequado da versão de lançamento do aplicativo, você poderá lançá-lo para os usuários. Para obter mais informações, consulte Lançar o aplicativo para os usuários. Se você estiver publicando o aplicativo no Google Play, consulte a Lista de verificação de lançamento para o Google Play.