Preparar para o lançamento

Para preparar o aplicativo para lançamento, configure, compile e teste uma versão de lançamento. As tarefas de configuração são objetivas e envolvem tarefas básicas de limpeza e modificação do código que ajudam a otimizar o aplicativo. O processo de compilação é semelhante ao de compilação para depuração e pode ser realizado por meio de 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 se aplicam a todos os aplicativos Android, independentemente da forma de lançamento ou distribuição para os usuários. Se você estiver lançando seu aplicativo pelo Google Play, leia também a Lista de verificação para publicação no Google Play.

Observação: como prática recomendada, o aplicativo deve cumprir todos os seus critérios de lançamento quanto à funcionalidade, desempenho e estabilidade antes de você executar 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 necessária e é a primeira etapa no processo de publicação.

Introdução

Para lançar o aplicativo para os usuários, é preciso criar um pacote pronto para lançamento que os usuários possam instalar e executar em dispositivos Android. O pacote pronto para lançamento contém os mesmos componentes que o arquivo APK de depuração, ou seja, código-fonte compilado, recursos, arquivo de manifesto, entre outros, 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 seu certificado e otimizado com a ferramenta zipalign.

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

Figura 2. Cinco tarefas principais são realizadas para preparar o aplicativo para lançamento.

Normalmente, as tarefas de otimização e assinatura ocorrem de maneira ideal 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ê está lançando o aplicativo no Google Play, pode querer 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, as tarefas listadas na figura 2 são realizadas depois de depurar e testar cuidadosamente o aplicativo. O Android SDK contém diversas ferramentas para ajudar a testar e depurar aplicativos Android. Para ver mais informações, consulte as seções Depurar seu app e Testar o aplicativo no guia do desenvolvedor.

Coleta de materiais e recursos

Para preparar o aplicativo para lançamento, é preciso coletar diversos itens de suporte. Isso inclui, no mínimo, as chaves criptográficas usadas na assinatura 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 pertence ao desenvolvedor. O sistema Android usa o certificado como forma de identificar o autor de um aplicativo e estabelecer relações de confiança entre os aplicativos. O certificado usado na 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 Assinar o aplicativo.

Importante: o aplicativo precisa ser assinado com uma chave criptográfica com período de validade posterior a 22 de outubro de 2033.

Poderá ser necessário utilizar outras chaves de lançamento se o aplicativo acessar um serviço ou usar uma biblioteca de terceiro que exija uma chave baseada na sua chave privada.

Ícone do app

Verifique se você tem um ícone de aplicativo e se ele atende às orientações para ícones (link em inglês) recomendadas. O ícone ajuda o usuário a identificar o aplicativo na tela inicial de um 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ê está lançando o aplicativo no Google Play, é preciso criar uma versão do ícone em alta resolução. Para ver mais informações, consulte Recursos gráficos para aplicativos.

Contrato de licença de usuário final

Considere a preparação de um contrato de licença de usuário final (EULA, na sigla em inglês) para o aplicativo. Um EULA pode ajudar a proteger você, a organização e a propriedade intelectual. Recomendamos disponibilizar 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 você estiver lançando o aplicativo no Google Play, precisará preparar textos promocionais e criar capturas de tela do aplicativo. Para ver mais informações, consulte Recursos gráficos para aplicativos.

Configurar o aplicativo para lançamento

Depois de coletar todos os materiais de apoio, você pode começar a configurar o aplicativo para lançamento. Esta seção oferece um resumo das mudanças de configuração que recomendamos fazer no código-fonte, nos arquivos de recursos e no manifesto do aplicativo antes do lançamento. Embora a maioria das alterações de configuração listadas nesta seção seja opcional, elas são consideradas boas práticas de programação, e sugerimos que você as implemente. Em alguns casos, essas alterações já podem ter sido feitas como parte do processo de desenvolvimento.

Escolher 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 depois de distribuir o aplicativo aos usuários. Você pode definir o nome do pacote no arquivo de manifesto do aplicativo. Para ver mais informações, consulte a documentação do atributo package.

Desativar a geração de registros e a depuração

Desative a geração de registros e a opção de depuração antes de compilar o aplicativo para lançamento. Para desativar a geração de registros, 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 nesse mesmo arquivo. Além disso, remova todos os arquivos de registro ou de teste estáticos criados no projeto.

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

Importante: se você está usando o WebView para exibir conteúdo pago ou se está usando interfaces JavaScript, verifique se desativou a depuração do app, uma vez que ela permite que o usuário injete scripts e extraia conteúdo usando o Chrome DevTools. Para desativar a depuração, use o método WebView.setWebContentsDebuggingEnabled().

Limpar 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. Realize pelo menos as seguintes tarefas de limpeza:

  • Analise o conteúdo dos diretórios jni/, lib/ e src/. O diretório jni/ precisa 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 privadas ou de terceiros, 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 ou reservados que não sã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.
  • Analise 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.

Revisar e atualizar 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>

    Especifique apenas as permissões relevantes e necessárias para o aplicativo.

  • Atributos android:icon e android:label

    É preciso especificar os valores desses atributos, localizados no elemento <application>.

  • Atributos android:versionCode e android:versionName

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

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

Resolver 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, faça o seguinte:

  • Adicione compatibilidade para configurações com diversas telas.

    Verifique se está cumprindo as práticas recomendadas para compatibilidade com diversas telas. A compatibilidade com configurações para várias telas 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 essa versão do Android seguindo as orientações e práticas recomendadas descritas em Otimizar apps para o Android 3.0.

  • Use a Biblioteca de Suporte.

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

Atualizar URLs para servidores e serviços

Se o aplicativo acessa servidores ou serviços remotos, você precisa usar o URL ou caminho de produção para o servidor ou serviço, não o URL ou caminho de teste.

Implementar o licenciamento (para lançamento no Google Play)

Se você está lançando um aplicativo pago no Google Play, pode adicionar compatibilidade com a licença dessa plataforma. O licenciamento permite controlar o acesso ao aplicativo dependendo da compra ou não do aplicativo pelo usuário. O uso da licença do Google Play é opcional, mesmo que você lance o app nessa plataforma.

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

Compilar o aplicativo para lançamento

Depois de concluir a configuração do aplicativo, você pode iniciar a compilação 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 você está usando o Android Studio ou o sistema de compilação do Gradle na linha de comando, pode automatizar todo o processo de compilação. Para ver mais informações sobre como configurar as compilações do Gradle, consulte Configurar 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 Compilar e executar no Android Studio.

O processo de compilação presume que você tem um certificado e uma chave privada adequados para assinar o aplicativo. Se você não tem um certificado e uma chave privada adequados, o Android Studio pode ajudar a gerá-los. Para ver mais informações sobre o processo de assinatura, consulte Assinar o aplicativo.

Preparar servidores e recursos externos

Se o aplicativo utilizar um servidor remoto, verifique se o servidor é seguro e se está configurado para uso em produção. Isso é especialmente importante se você está implementando o Faturamento em apps e executando a etapa de verificação da assinatura em um servidor remoto.

Além disso, se o aplicativo busca conteúdo de um servidor remoto ou de um serviço em tempo real (como um feed de conteúdo), verifique 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 seja executado corretamente em condições reais de dispositivos e rede. O ideal é testar o aplicativo em pelo menos um dispositivo com tamanho de celular e em um com tamanho de tablet, para verificar se os elementos da interface do usuário têm o tamanho correto e se o desempenho do aplicativo e o 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 precisam ser consideradas durante os testes. Quando você concluir os testes e achar que o comportamento da versão de lançamento do aplicativo é adequado, poderá lançá-lo para os usuários. Para ver 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.