Pular para o conteúdo
CrossFly é 100% open sourceSiga no GitHub
CrossFlyCrossFly
Começar

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.scale reflete o DPI; como você usa Relative/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 Relative para 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?