Android 🤖
Rodar
gradlew :android:installDebug
O AndroidLauncher (um AndroidApplication) cria o Main via getMain(canStart) →
new Main(canStart, getCommandline()).
⚠️ Início atrasado por permissões
No Android, você normalmente não sobe a UI de imediato — pede permissões primeiro. O padrão:
// no launcher: canStart = false → a UI NÃO sobe ainda
initializeForView(getMain(false), config);
// … após o usuário conceder as permissões (callback) …
main.startApp(true); // agora sim, sobe a UI (delayed = true)
Assim, câmera/GPS/Bluetooth já estão autorizados quando a primeira tela aparece (ver Cap. 4 §4.2).
Manifesto e permissões
Declare no AndroidManifest.xml as permissões dos recursos que usa (câmera, localização, Bluetooth) —
e peça em runtime antes do startApp(true).
Status bar e densidade
- A status bar é considerada no layout (
DeviceConfig.statusbarHeight). - Densidade:
Screen.scalereflete o DPI; como você usaRelative/frações, a UI já se adapta.
Botão Voltar
O botão físico Voltar é capturado pela app (por padrão faz hide() da janela do topo — ver
A pilha de janelas).
Empacotamento
As libs nativas .so (incl. crossfly-lib) são empacotadas por ABI. Assinatura/AAB e upload na Play
Store: Build e distribuição.
Boas práticas
- Peça permissões antes de
startApp(true)(início atrasado) — evita telas quebradas. - Teste em densidades/telas variadas; confie no
Relativepara adaptar.
Erros comuns
- Subir a UI (
canStart=true) e só então pedir permissão (recurso indisponível na 1ª tela). - Esquecer a permissão no
AndroidManifest.xml(o pedido runtime falha silenciosamente).
Veja também
Esta página foi útil?Obrigado pelo feedback!