Pular para o conteúdo
Início
Docs/Compilar apps Android

Compilar apps Android

O PocketCode compila um projeto Android escrito em Kotlin para um APK ou um AAB no seu celular. Não há Gradle nem servidor. O botão é gratuito e exige a versão 1.1.0 do app ou posterior, Android 9 ou mais recente e um processador de 64 bits.

O que faz

Abra um projeto Android e toque em Compilar APK, o ícone do Android na barra do editor. O botão só aparece em projetos Android: os que têm app/build.gradle.kts e o plugin com.android.application. Na paleta ele é descrito assim: compila este projeto Android em um APK no seu celular.

Você pode

  • Compilar um APK de depuração para testar no celular, assinado com uma chave de depuração.
  • Compilar um APK de release, otimizado e assinado com a sua própria chave, para distribuir fora do Google Play.
  • Compilar um Pacote de release (AAB), o formato que o Google Play exige.
  • Usar bibliotecas Maven do Google Maven e do Maven Central, com catálogos libs.versions.toml. Elas são baixadas na primeira compilação e ficam no celular.
  • Sair do app enquanto compila. Uma notificação mostra que a compilação está em andamento.
  • Abrir o mesmo projeto no Android Studio: os modelos são projetos Gradle padrão.

Você não pode, e por quê

  • Compilar arquivos .java. Eles aparecem como Ainda não suportado no celular.​Ainda não
  • Ler um build.gradle em Groovy. Só funciona o DSL do Kotlin, build.gradle.kts.​Ainda não
  • Instalar o APK de dentro do PocketCode. Quem instala é o Android, a partir do app Arquivos.De propósito
  • Instalar um AAB em um celular. Ele serve apenas para o Google Play Console.De propósito

Criar um projeto Android

Abra Projetos e toque em Novo para chegar a Novo projeto. Há dois modelos Android. Os dois são projetos Gradle padrão, então também abrem no Android Studio.

ModeloO que você recebe
Android App (Activity)Um app Android em Kotlin que compila um APK no seu celular.
Android App (Compose)O mesmo, com Jetpack Compose.
Cada modelo traz um bloco release com isMinifyEnabled = false e o arquivo proguard-rules.pro já ligado. Veja a seção do R8 para ativar a redução.

Compilar um APK de depuração

Um APK de depuração é o jeito rápido de testar o app no celular. Toque em Compilar APK, escolha APK de depuração na folha Compilar o app e toque em Compilar.

  1. 1Verificar o projeto — lê os arquivos do Gradle e a estrutura do projeto.
  2. 2Baixar bibliotecas — só na primeira vez, depois ficam no celular.
  3. 3Recursos — prepara os recursos do app.
  4. 4Compilar Kotlin — compila o seu código.
  5. 5Preparar bibliotecas para Android — só na primeira vez, depois ficam salvas.
  6. 6Empacotar — monta o APK.
  7. 7Assinar — assina com a chave de depuração.

A folha mostra esses passos enquanto eles rodam, com Ver registro e Cancelar. A primeira compilação demora mais, e a folha avisa. Se você cancelar, nada fica pela metade: o cache e o APK só são gravados inteiros.

A primeira compilação

  • As ferramentas do Kotlin (kotlinc e d8) não vêm dentro do app. O Google Play as baixa uma vez, cerca de 119 MB, na primeira vez que você compila um APK ou executa um arquivo .kt. Você verá Preparando as ferramentas de compilação e Baixando do Google Play: X de Y. Só na primeira vez.
  • Com dados móveis, o Google Play pode pedir permissão antes: O Google Play precisa da sua permissão para baixá-las. Toque em Continuar o download.
  • As ferramentas precisam do app instalado pelo Google Play.
  • Se você executar um .kt antes de as ferramentas estarem lá, o executor de Kotlin mostra um cartão Ferramentas do Kotlin: baixadas uma vez do Google Play, cerca de 119 MB. Toque em Baixar (~119 MB). Quando terminar, o seu arquivo é executado de novo sozinho.

Quanto tempo leva

  • Em um Galaxy S24, a primeira compilação de depuração do modelo Compose levou 1 min 25 s, incluindo o download das ferramentas. O APK tinha 7,8 MB.
  • Em um Galaxy S24, um hello world em Kotlin com as ferramentas já instaladas rodou em menos de 1 s (266 ms).
  • Outros celulares serão mais rápidos ou mais lentos. São medições, não uma promessa.

Instalar o APK

Quando a compilação termina, a folha mostra APK pronto com o tempo, o tamanho e a chave usada.

  1. 1Toque em Salvar em Downloads. O arquivo vai para Downloads/PocketCode/<Projeto>-debug.apk. Nas outras compilações o nome termina em -release.apk ou -release.aab.
  2. 2Ou toque em Compartilhar… para enviá-lo a outro app. No Android 9 não dá para salvar em Downloads a partir desta tela: use Compartilhar….
  3. 3Abra o arquivo no app Arquivos. Na primeira vez, o Android pede permissão para instalar apps de origem desconhecida. Permita e instale.
O PocketCode não instala APKs. Quem instala é o Android, a partir do app Arquivos.

APK de release e AAB

Escolha o tipo na folha Compilar o app. As compilações de release precisam de uma chave de release. Sem ela, a folha diz: você ainda não tem uma chave de release. Crie uma ou importe a que já usa. Compilar fica desativado até você adicionar uma.

OpçãoPara que serve
APK de depuraçãoPara testar no seu celular. Assinado com uma chave de depuração.
APK de releaseOtimizado e assinado com a sua própria chave, para distribuir fora do Google Play.
Pacote de release (AAB)O formato que o Google Play exige. Não pode ser instalado em um celular.

Depois de compilar

  • O APK de release é salvo como <Projeto>-release.apk.
  • Com um AAB, a folha diz: envie este arquivo no Google Play Console. Um pacote não pode ser instalado diretamente em um celular.
  • Em um Galaxy S24, a compilação de release do modelo Compose levou 44 s com o R8 e o APK tinha 1,2 MB.

Chaves de release

Uma chave de release assina o seu app. Para gerenciar chaves, toque em Compilar APK, escolha um build de release (APK ou AAB) e toque em Gerenciar chaves no quadro da chave de assinatura. Lá você cria, importa, exporta ou exclui chaves.

Criar uma chave

  • Escolha Criar uma chave. Ela gera uma chave RSA de 2048 bits, válida por 30 anos, guardada criptografada no celular, no Android Keystore.
  • O alias padrão é upload. A senha precisa ter 6 caracteres ou mais.
  • O Google Play não aceita, para um app novo, uma chave que expire antes de 23 de outubro de 2033. O app avisa se a sua expira antes.

Importar uma chave

  • Escolha Importar uma chave e selecione um arquivo .p12 ou .pfx. Só funciona PKCS12, o formato padrão do Android Studio e do keytool.
  • Um .jks antigo precisa ser convertido antes: keytool -importkeystore.
  • Se a senha estiver errada, você verá Senha incorreta.

Gerenciar chaves

AçãoO que faz
Exportar uma cópia…Salva um .p12 padrão que abre com o keytool ou o Android Studio. Precisa da senha: use Mostrar senha.
Mostrar senhaMostra a senha da chave.
ExcluirRemove a chave depois que você confirma: Excluir esta chave?
Guarde uma cópia da chave e da senha. Se perder uma delas, você nunca mais poderá atualizar o seu app no Google Play. Em outro celular, ou depois de restaurar um backup, importe o .p12 de novo.

Reduzir o código com o R8

O R8 reduz e ofusca o código de uma compilação de release. Só funciona se o bloco release de app/build.gradle.kts tiver isMinifyEnabled = true. A folha lembra você disso.

  1. 1Abra app/build.gradle.kts e coloque isMinifyEnabled = true dentro do bloco release.
  2. 2Compile um APK de release ou um Pacote de release (AAB).
  3. 3Se o R8 rodou, o resultado diz: o R8 ofuscou o código. Guarde app/build/outputs/mapping/release/mapping.txt.
  • Guarde o mapping.txt. O Play Console o usa para ler os relatórios de falhas.
  • Regras do R8 que leem ou gravam arquivos, como -printmapping ou -include, são rejeitadas por segurança.
  • Com Compose, o R8 precisa de memória: até cerca de 335 MB em um Galaxy S24. Em um celular com pouca memória ele pode falhar.

O que ainda não é suportado

O que a compilação no celular não faz hoje.

  • Arquivos .java ainda não são compilados. Aparecem como Ainda não suportado no celular, com o arquivo e a linha.Ainda não
  • O build.gradle em Groovy não é suportado. Use build.gradle.kts.​Ainda não
  • O que a compilação não entende aparece como Ainda não suportado no celular. As configurações que não mudam o resultado aparecem como Configuração ignorada.​Ainda não
  • O R8 pode ficar sem memória em celulares com pouca RAM, principalmente com Compose.Dispositivo
  • Regras do R8 que leem ou gravam arquivos são rejeitadas.De propósito
  • O PocketCode não instala o APK. Você o abre no app Arquivos.De propósito
  • As ferramentas de compilação vêm do Google Play, então o app precisa estar instalado pelo Google Play.Google Play
  • A primeira compilação precisa de conexão para baixar as ferramentas e as bibliotecas.Precisa de rede

Limpar o cache de compilação

A compilação guarda bibliotecas e arquivos compilados no celular para que as próximas sejam mais rápidas. Para liberar esse espaço:

  1. 1Abra Configurações.
  2. 2Toque em Limpar cache de compilação: libera as bibliotecas e os arquivos compilados guardados para compilar apps Android.
  3. 3A próxima compilação baixa as bibliotecas de novo.

Solução de problemas

Os problemas comuns e o que fazer.

Não foi possível baixar as ferramentas de compilação do Google Play: sem conexão. Tente de novo quando estiver online.

As ferramentas têm cerca de 119 MB e vêm do Google Play na primeira vez. Conecte-se à internet e compile de novo. Com dados móveis, toque em Continuar o download se o Google Play pedir permissão.

Não há espaço livre suficiente para as ferramentas de compilação.

Libere espaço no celular e compile de novo. Se o cache de compilação estiver grande, Limpar cache de compilação em Configurações o libera.

O Google Play não pode entregar as ferramentas de compilação a esta cópia do PocketCode. É preciso ter o app instalado pelo Google Play.

As ferramentas só chegam pelo Google Play. Instale o PocketCode pelo Google Play, não por um arquivo, e compile de novo.

O Google Play não conseguiu instalar as ferramentas de compilação.

Tente de novo daqui a pouco. Se continuar falhando, confira se o Google Play está atualizado e se há espaço livre para instalar.

Ainda não suportado no celular

A compilação encontrou algo que ainda não sabe fazer, com o arquivo e a linha. Os casos mais comuns são arquivos .java e o build.gradle em Groovy. Passe o código para Kotlin e use build.gradle.kts.

Senha incorreta.

A senha do arquivo .p12 ou .pfx que você está importando não é a certa. Tente de novo com a senha que definiu ao criar a chave.

Minha chave .jks não importa

Só dá para importar PKCS12 (.p12 ou .pfx). Converta o arquivo antigo em um computador com keytool -importkeystore e importe o resultado.

O botão Compilar está desativado

Você escolheu uma compilação de release e ainda não há uma chave de release. Crie uma ou importe a que já usa.

O R8 falha em um celular com pouca memória

O R8 com Compose precisa de memória, até cerca de 335 MB em um Galaxy S24. Feche outros apps e tente de novo. Em um celular com pouca memória ainda pode falhar. Um APK de depuração, ou um release com isMinifyEnabled = false, não usa o R8.

Não consigo salvar em Downloads

No Android 9 não dá para salvar em Downloads a partir da tela do resultado. Use Compartilhar….

O APK não instala

O PocketCode não o instala. Abra o arquivo no app Arquivos e permita instalar de origens desconhecidas quando o Android pedir. Um AAB não pode ser instalado em um celular.

O celular está ficando sem espaço

Use Limpar cache de compilação em Configurações. A próxima compilação baixa as bibliotecas de novo.