Notícia

Desenvolvendo para Android 11 e 12 com Delphi 11 Alexandria

O Android 11 está sendo lançado na maioria dos novos telefones, mas o Android 12 foi lançado para dispositivos Pixel em todos os lugares. Participe deste webinar para ver o que mudou nessas versões mais recentes do Android e veja algumas práticas recomendadas para o desenvolvimento do Android com dicas para direcionar as versões mais recentes do sistema operacional mais popular.

Ver ou fazer download do Apresentações Google

Participação no mercado mundial de sistemas operacionais para desktops, celulares e tablets

android-01-2631846-2

https://gs.statcounter.com/os-market-share/desktop-mobile-tablet/worldwide/#monthly-200901-202201

Participação de mercado de fabricantes de dispositivos móveis em todo o mundo (janeiro de 2020 a janeiro de 2022)

android-02-1282266-2

https://gs.statcounter.com/vendor-market-share/mobile/worldwide/#monthly-202001-202202

Participação de mercado de fabricantes de dispositivos móveis em todo o mundo (janeiro de 2022)

android-03-5514738-2

https://gs.statcounter.com/vendor-market-share/mobile/worldwide/#monthly-202001-202202

Android vs iOS Market Share em todo o mundo (janeiro de 2020 – janeiro de 2022)

android-04-9694559-2

https://gs.statcounter.com/vendor-market-share/mobile/worldwide/#monthly-202001-202202

Participação no mercado mundial da versão móvel do Android (janeiro de 2020 a janeiro de 2022)

android-05-3367558-2

https://gs.statcounter.com/android-version-market-share/mobile/worldwide/#monthly-202001-202201

Versão móvel do Android – Market Share em todo o mundo (janeiro de 2022)

android-06-3847722-2

O Android 11 é o líder atual ( as versões 9 a 11 representam 76,4%)

  • Android 12 lançado em 4 de outubro de 2021
  • Android 11 lançado em 8 de setembro de 2020
  • Android 10 lançado em 3 de setembro de 2019
  • Android 9 lançado em 6 de agosto de 2018
  • Android 12 = API 31
  • Android 11 = API 30
  • Android 10 = API 29
  • Android 9 = API 28 (torta)

https://gs.statcounter.com/android-version-market-share/mobile/worldwide/#monthly-202001-202201

Requisitos de segurança e desempenho do Android Play

  • A cada ano, o requisito targetSdkVersion avançará. Dentro de um ano após cada Android
  • lançamento, novos aplicativos e atualizações de aplicativos precisarão segmentar o nível de API atualizado ou superior.
  • Novembro de 2021:
    • API de destino nível 30 (Android 11)
    • Publique com o formato Android App Bundle.
  • Obrigatório pelo Google Play Console
  • Consulte o guia de migração da API para outras alterações: developer.android.com/distribute/best-practices/develop/target-sdk

Mudanças do Android no Delphi 11

android-14-1711493-2

*** – link

docwiki.embarcadero.com/RADStudio/Alexandria/en/What%27s_New

Suporte para Android 12?

android-07-6407549-2

Atualizando projetos Android existentes

● Abra uma compilação de projeto Android com uma versão mais antiga.
● Navegue até a janela encaixável Projetos.
● Selecione Android de 32 bits como plataforma de destino ativa.
● Clique com o botão direito do mouse no nó Bibliotecas.
● Clique em Reverter arquivos do sistema para padrão.
● Personalize com bibliotecas de terceiros, etc.
● Repita para Android-64.

Atualizando suas ferramentas do Android

  • Delphi opcionalmente instala o Android SDK 25.2.5 e atualiza durante a instalação
  • Adicione o ADB ao seu caminho:
    • C:UsuáriosDocumentos PúblicosEmbarcaderoStudio22.0CatálogoRepositórioAndroidSDK-2525-22.0.42600.6491platform-tools
  • Adicione SDKManager ao seu caminho:
    • C:UsuáriosDocumentos PúblicosEmbarcaderoStudio22.0CatálogoRepositórioAndroidSDK-2525-22.0.42600.6491toolsbin
  • Corre:
    • adb kill server
    • SDKManager —atualização
    • versão adb
  • Se você receber um erro “.android/repositories.cfg não pôde ser carregado”.
    • Verifique se você tem uma pasta .android em seu diretório de usuário
    • Crie um arquivo repositories.cfg vazio
  • Versão mais recente (em fevereiro de 2022)
    • Android Debug Bridge versão 1.0.41
    • Versão 32.0.0-8006631

Depuração sem fio

  • Adicionado no Android 11 (API 30)
  • Entre no modo de desenvolvedor no Android (toque em “Build Number” sete vezes)
  • Ativar depuração sem fio
    • Opções do desenvolvedor -> Depuração sem fio
    • Toque em “Emparelhar dispositivo com código de emparelhamento”
    • Marque “Sempre permitir nesta rede” e pressione “Permitir” quando solicitado.
  • Do Windows CMD
    • adb start-server
    • adb pair [ip]:[port] (da caixa de diálogo de emparelhamento)
    • [código de emparelhamento]
    • adb connect [ip]:[port] (da tela de depuração sem fio)
  • Atualizar dispositivos no IDE

Formato do pacote de aplicativos Android

Permite que o Google Play use o modelo de serviço do aplicativo Dynamic Delivery para gerar APKs otimizados para cada dispositivo.

  • Projeto > Opções > Construindo > Compilador Delphi > Compilando
  • Gerar arquivo Android App Bundle (arm + arm64)

Após uma geração bem-sucedida do pacote de aplicativos, o IDE apresenta uma caixa de diálogo contendo o caminho do arquivo .aab.

Observação: você não pode executar ou depurar um App Bundle. Para depurar o aplicativo, você deve usar o formato de pacote .APK

docwiki.embarcadero.com/RADStudio/en/Submitting_Your_Android_App_to_Google_Play#Android_App_Bundle_Support

Novo modelo de permissão de tempo de execução do Android

  • Introduzido no Android 6.0 (API 23) Marshmallow
    • A biblioteca de suporte abrange versões anteriores do Android
  • Novo modelo agiliza o processo de atualização automática
    • Aprovação de permissões acionada no primeiro uso
    • Em vez de aprovar todas as permissões na instalação
  • Dá aos usuários finais mais controle sobre as permissões
    • Permissões individuais podem ser permitidas ou negadas por aplicativo e alteradas posteriormente
  • Gerenciado por meio de novos métodos de API do Android checkSelfPermission() e requestPermissions()

Mais informações developer.android.com/training/permissions/requesting

Caixa de diálogo de aprovação de permissões antigas

  • Durante a instalação todas as permissões são aceitas
  • O usuário não pode negar permissões individuais
  • Todas as permissões divulgadas no manifesto
  • Se as permissões forem alteradas, elas deverão ser aprovadas antes da atualização

Nova caixa de diálogo de aprovação de permissão

  • Na primeira vez que você solicitar a permissão individual, o usuário terá a opção de Negar ou Permitir
  • Se o usuário negar uma vez, o usuário poderá impedir que o aplicativo pergunte novamente
  • É importante quando e como você pergunta (mais sobre isso depois)
  • Todas as permissões ainda divulgadas no manifesto

Os usuários têm controle de permissão granular agora

android-10-7920934-2

Perigosovs.Normal Permissões

  • O usuário não é solicitadoNormalpermissões
    • Exemplos: Internet, Vibrar, Bluetooth, etc.
  • O usuário deve aprovarPerigosopermissões
    • Normalmente, envolvem privacidade ou custo potencial
    • Eles são agrupados em grupos de permissão:
      • Calendário, Call_Log, Câmera, Contatos, Localização, Microfone, Telefone, Sensores, SMS e Armazenamento
    • O usuário aprova um grupo inteiro
      • Por exemplo, enviar e receber SMS
  • O desenvolvedor ainda deve declarar e solicitar todas as permissões do SO no manifesto.

Mais informações developer.android.com/guide/topics/permissions/overview

Como pedir permissão – Delphi

android-09-5835008-2

Mais informações: docwiki.embarcadero.com/RADStudio/en/Android_Permission_Model

O serviço de permissão

Método IsPermissionConcedido

  • Membro de System.Permissions.TPermissionsService
    • function IsPermissionGranted(const APermission: string): Boolean;
  • Descubra se uma permissão está atualmente concedida ao aplicativo
    • Nunca assuma que ainda é concedido
  • Se não houver nenhum serviço de permissões de plataforma implementado para realmente fazer qualquer verificação, o padrão será responder que todas as permissões foram concedidas

Método IsEveryPermissionConcedido

Solicitar permissões

  • Membro de System.Permissions.TPermissionsService
    • procedimento RequestPermissions(
    • const APermissions: TArray<string>;
    • const AOnRequestPermissionsResult:
    • TRequestPermissionsResult[Event|Proc];
    • AOnDisplayRationale: TDisplayRationale[Event|Proc] = nil);
  • Solicitar uma ou mais permissões
  • Quaisquer permissões que não sejam concedidas no momento serão solicitadas.
  • De antemão, um raciocínio pode ser exibido para o usuário quando uma sequência de raciocínio foi definida para a permissão em questão, solicitando novamente uma permissão que foi negada anteriormente, uma rotina de exibição de raciocínio é passada
  • docwiki:Libraries/System.Permissions.TPermissionsService.RequestPermissions

TRequestPermissionsResult[Event|Proc]

Quando pedir permissões

android-11-5541305-2

Quando perguntar –CríticoPermissões

android-12-6122915-2

Quando perguntar –SecundárioPermissões

android-13-5454135-2

Outras práticas recomendadas

Mais Informações

Próximos passos

Atualize para o Delphi 11 hoje embarcadero.com/products/delphi


Coding Boot Camp

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Sobre o autor

Defensor do desenvolvedor chefe da Embarcadero Technologies.

Leave a Reply

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

IN THE ARTICLES