Tutorial 5 - Adaptar para móvel: Android¶
Agora, vamos pegar na nossa aplicação e implantá-la como uma aplicação Android.
O processo de implementação de uma aplicação no Android é muito semelhante ao processo de implementação como uma aplicação de ambiente de trabalho. O Briefcase lida com a instalação de dependências para o Android, incluindo o SDK do Android, o emulador de Android e um compilador Java.
Criar uma aplicação Android e compilá-la¶
Primeiro, execute o comando create. Isto descarrega um modelo de aplicação
Android e adiciona seu código Python a ele.
(beeware-venv) $ briefcase create android
[helloworld] A gerar modelo de aplicação...
A usar modelo de aplicação: https://github.com/beeware/briefcase-android-gradle-template.git, ramificação v0.3.18
...
[helloworld] A instalar pacote de suporte...
Nenhum pacote de suporte necessário.
[helloworld] A instalar o código da aplicação...
A instalar src/helloworld... concluído
[helloworld] A instalar os requisitos...
A gravar ficheiro de requisitos... concluído
[helloworld] A instalar recursos da aplicação...
...
[helloworld] A remover conteúdo desnecessário da aplicação...
A remover conteúdo desnecessário do pacote da aplicação... concluído
[helloworld] Criado build/helloworld/android/gradle
(beeware-venv) $ briefcase create android
[helloworld] A gerar modelo de aplicação...
A usar modelo de aplicação: https://github.com/beeware/briefcase-android-gradle-template.git, ramificação v0.3.18
...
[helloworld] A instalar pacote de suporte...
Nenhum pacote de suporte necessário.
[helloworld] A instalar o código da aplicação...
A instalar src/helloworld... concluído
[helloworld] A instalar os requisitos...
A gravar ficheiro de requisitos... concluído
[helloworld] A instalar recursos da aplicação...
...
[helloworld] A remover conteúdo desnecessário da aplicação...
A remover conteúdo desnecessário do pacote da aplicação... concluído
[helloworld] Criado build/helloworld/android/gradle
(beeware-venv) C:\...>briefcase create android
[helloworld] A gerar modelo de aplicação...
A usar modelo de aplicação: https://github.com/beeware/briefcase-android-gradle-template.git, ramificação v0.3.18
...
[helloworld] A instalar pacote de suporte...
Nenhum pacote de suporte necessário.
[helloworld] A instalar o código da aplicação...
A instalar src/helloworld... concluído
[helloworld] A instalar os requisitos...
A gravar ficheiro de requisitos... concluído
[helloworld] A instalar recursos da aplicação...
...
[helloworld] A remover conteúdo desnecessário da aplicação...
A remover conteúdo desnecessário do pacote da aplicação... concluído
[helloworld] Criado build\helloworld\android\gradle
Quando corre o briefcase create android pela primeira vez, o Briefcase faz
descarrega o Java JDK e do Android SDK. O tamanho dos ficheiros e o tempo de
descarga podem ser consideráveis; isso pode demorar um pouco (10 minutos ou
mais, dependendo da velocidade da sua ligação à Internet). Quando a descarga
estiver concluída, será solicitado a ver e aceitar a licença do Android SDK do
Google. Há um número de licenças que também tem de aceitar - vá inserindo y no
aviso para ver e aceitar cada um dos acordos de licença necessários.
Assim que isto estiver concluído, vamos ter um diretório
build\helloworld\android\gradle no nosso projeto, que vai conter um projeto
Android com uma configuração de compilação do Gradle. Esse projeto vai conter o
código da sua aplicação e um pacote de suporte que contém o interpretador
Python.
Então podemos usar o comando build do Briefcase para compilar isto num
ficheiro de aplicação APK para Android.
(beeware-venv) $ briefcase build android
[helloworld] A atualizar metadados da aplicação...
A configurar o módulo principal... concluído
[helloworld] A compilar APK do Android...
A iniciar um Daemon do Gradle
...
COMPILAÇÃO BEM-SUCEDIDA em 1m 1s
28 tarefas executáveis: 17 executadas, 11 atualizadas
A compilar... concluído
[helloworld] Compilado build/helloworld/android/gradle/app/build/outputs/apk/debug/app-debug.apk
(beeware-venv) $ briefcase build android
[helloworld] A atualizar metadados da aplicação...
A configurar o módulo principal... concluído
[helloworld] A compilar APK do Android...
A iniciar um Daemon do Gradle
...
COMPILAÇÃO BEM-SUCEDIDA em 1m 1s
28 tarefas executáveis: 17 executadas, 11 atualizadas
A compilar... concluído
[helloworld] Compilado build/helloworld/android/gradle/app/build/outputs/apk/debug/app-debug.apk
(beeware-venv) C:\...>briefcase build android
[helloworld] A atualizar metadados da aplicação...
A configurar o módulo principal... concluído
[helloworld] A compilar APK para Android...
A iniciar um Daemon do Gradle
...
COMPILAÇÃO BEM-SUCEDIDA em 1m 1s
28 tarefas executáveis: 17 executadas, 11 atualizadas
A compilar... concluído
[helloworld] Compilado build\helloworld\android\gradle\app\build\outputs\apk\debug\app-debug.apk
O Gradle pode parecer travado
Durante o passo briefcase build android, o Gradle (a ferramenta de compilação
da plataforma Android) vai escrever CONFIGURING: 100% e vai parecer que não
está a fazer nada. Não se preocupe, ela não está bloqueada - está a descarregar
mais componentes do Android SDK. Dependendo da velocidade da sua ligação à
Internet, isto pode levar mais 10 minutos (ou mais). Esse atraso só deve ocorrer
na primeira vez em que corre o build; as ferramentas são armazenadas em cache
e, na próxima compilação, são usadas as versões armazenadas em cache.
Executar a aplicação num dispositivo virtual¶
Agora estamos prontos para executar nossa aplicação. Pode usar o comando run
do Briefcase para executar a aplicação num dispositivo Android. Vamos começar
por executar num emulador de Android.
Para executar a sua aplicação, execute briefcase run android. Ao fazer isso,
vai ser-lhe mostrada uma lista de dispositivos nos quais pode executar a
aplicação. O último item será sempre uma opção para criar um novo emulador de
Android.
(beeware-venv) $ briefcase run android
Selecione o dispositivo:
1) Criar um novo emulador de Android
>
(beeware-venv) $ briefcase run android
Selecione o dispositivo:
1) Criar um novo emulador de Android
>
(beeware-venv) C:\...>briefcase run android
Selecione o dispositivo:
1) Criar um novo emulador de Android
>
Agora podemos escolher o nosso dispositivo desejado. Selecione a opção "Criar um
nono emulado de Android" e aceite a opção predefinida para o nome do dispositivo
(beePhone).
O run do Briefcase vai inicializar automaticamente o dispositivo virtual.
Quando o dispositivo está a arrancar, verá o logotipo do Android:

Arranque do dispositivo virtual Android
Quando o dispositivo terminar a inicialização, o Briefcase vai instalar a sua aplicação no dispositivo. Verá brevemente um ecrã de lançamento:

Dispositivo virtual Android totalmente iniciado, no ecrã do lançador
A aplicação será então iniciada. Vai ver um ecrã inicial enquanto a aplicação arranca:

Ecrã inicial da aplicação
O emulador não arrancou!
O emulador de Android é um software complexo que depende de várias funcionalidades de hardware e do sistema operativo - funcionalidades que podem não estar disponíveis ou habilitadas em máquinas mais antigas. Se tiver alguma dificuldade em iniciar o emulador de Android, consulte a secção Requisitos e recomendações da documentação de desenvolvedor de Android.
Na primeira vez que a aplicação é iniciada, ela precisa de descompactar-se no dispositivo. Isso pode levar alguns segundos. Depois de descompactada, verá a versão para Android da nossa aplicação para ambiente de trabalho:

Aplicação de demonstração totalmente lançada
Se não conseguir ver a sua aplicação a ser lançada, talvez precise de verificar
o seu terminal onde executou o briefcase run e procurar mensagens de erro.
Enquanto a aplicação estiver em execução, vai ver muitas mensagens sendo transmitidas na consola. Esse é um fluxo de relatórios da aplicação a partir do emulador. Teclar Ctrl+C no terminal vai interromper as informações transmitidas na consola, mas não vai fechar o emulador. Isso serve para que possa testar novas alterações sem reiniciar o emulador.
No futuro, se quiser executar nesse dispositivo sem usar o menu, pode fornecer o
nome do emulador ao Briefcase, usando briefcase run android -d @beePhone para
executar diretamente no dispositivo virtual.
Executar a aplicação num dispositivo físico¶
Se tiver um telefone ou tablet Android físico, poderá liga-lo ao seu computador com um cabo USB, e depois usar o Briefcase para apontar ao seu dispositivo físico.
O Android exige que prepare o seu dispositivo antes que possa ser usado para desenvolvimento. Vai precisar fazer duas alterações nas opções do seu dispositivo:
- Ativar opções de desenvolvedor
- Ativar a depuração USB
Detalhes sobre como fazer estas alterações podem ser encontrados na documentação do desenvolvedor de Android.
Depois destes passos estarem concluídos, o seu dispositivo deverá aparecer na
lista de dispositivos disponíveis quando correr briefcase run android.
(beeware-venv) $ briefcase run android
Selecione o dispositivo:
1) Pixel 3a (94ZZY0LNE8)
2) @beePhone (emulador)
3) Criar um novo emulador de Android
>
(beeware-venv) $ briefcase run android
Selecione o dispositivo:
1) Pixel 3a (94ZZY0LNE8)
2) @beePhone (emulador)
3) Criar um novo emulador de Android
>
(beeware-venv) C:\...>briefcase run android
Selecione o dispositivo:
1) Pixel 3a (94ZZY0LNE8)
2) @beePhone (emulador)
3) Criar um novo emulador de Android
>
Aqui podemos ver um novo dispositivo físico com o seu número de série na lista
de implementação - neste caso, um Pixel 3a. No futuro, se quiser executar nesse
dispositivo sem usar o menu, poderá fornecer o número de série do telefone ao
Briefcase (nesse caso, briefcase run android -d 94ZZY0LNE8). Isto será
executado diretamente no dispositivo, sem mais comandos.
O meu dispositivo não aparece!
Se o seu dispositivo não aparecer nesta lista, ou não ativou a depuração USB, ou o dispositivo não está ligado!.
Se o seu dispositivo aparecer, mas estiver listado como "Dispositivo
desconhecido (não autorizado para desenvolvimento)", o modo de desenvolvedor não
foi ativado corretamente. Execute novamente os passos para ativar as opções de
desenvolvedor e
execute novamente briefcase run android.
Próximos passos¶
Agora temos uma aplicação no nosso telefone! Existe mais algum lugar onde possamos implementar uma aplicação BeeWare? Consulte o Tutorial 6 para descobrir…