Flutter desenvolvimento misto-Android

Por que Flutter?

 
older_crossed_platform.png

Estrutura e aplicação de vibração

Estrutura e Código Fonte

Quadro geral
 
flutter_struct_base.jpg
Código fonte
 
flutter_struct_function.png

Portanto, a partir da análise acima, podemos ver que, para não haver diferença na plataforma de Flutter, o Google realizou principalmente trabalhos de adaptação na parte PlatForm Integration e Dart: UI.

Estrutura do APK (aplicativo Android)

Descompactamos uma versão do pacote APK de desenvolvimento misto para explorar quais alterações ocorreram no pacote após a adição do Flutter e quais são os efeitos correspondentes dessas alterações.

 
flutter._apk_change_graffle.png

O ponto de mudança pode ser visto claramente a partir da marca na imagem acima

  • Alteração 1

    Não marcado na figura, mas acredito que a maioria dos desenvolvedores deve adivinhar que o código da Integração PlatForm (FutterActivity, FlutterApplication, FlutterView etc.) é inserido em dex

  • Alteração 2

    Os 4 arquivos em ativos, todos instruções de braço

    • isolate_snapshot_data / isolate_snapshot_instr

      Compilação AOT correspondente ao nosso código Flutter, usada para criar um novo isolado

    • vm_snapshot_data / vm_snapshot_instr

      Usado para inicializar a Dart VM, fornecer serviços como runTime, gc, etc.

    Como essa parte do conteúdo é compilada e gerada por gen_snapshot e armazenada no diretório de dados do aplicativo,

    Oferece a possibilidade de futuras atualizações dinâmicas.

  • Alteração 3

    O pacote ICU Dart Language fornece informações de dados relacionadas ao idioma.

  • Alteração 4

camada Flutter Código do motor

Modo misto de vibração

Acredito que, para a maioria dos aplicativos, o custo de reconstruir um aplicativo do zero seja bastante alto; portanto, o desenvolvimento híbrido se tornou sua primeira escolha para experimentar o Flutter.

Modo ocioso de peixe

Coexistência de dupla ramificação (modo Flutter e modo autônomo)

Modo autônomo: desenvolvimento nativo puro ou modo de empacotamento de plataforma

Modo Flutter: O desenvolvimento de funções relacionadas ao flutter, geração de biblioteca, compilação e depuração são todos os processos definidos pelo Flutter.

  • Vantagem

No modo autônomo, desenvolvedores nativos puros e plataformas de empacotamento desconhecem o Flutter. Nesse caso, o código relacionado ao Flutter pode ser considerado como um arquivo de biblioteca de terceiros comum.

  • Preparação

    Esclareça a dependência do Flutter no modo Independente e extraia-os em uma biblioteca aar.

  • Etapas de desenvolvimento

    1. Desenvolva funções relacionadas à vibração no modo Flutter.
    2. Empacote o código em uma biblioteca aar e faça o upload para o repositório para controle de versão.
    3. Alterne a ramificação para o modo Independente e modifique os números de versão dos pacotes dependentes relacionados.

    Obviamente, esse método encontrará muitos outros problemas no processo de desenvolvimento real, como escrever scripts da biblioteca aar em processos complexos, como sincronização de código em dois modos.

Modo Google

Quão alto é o desenvolvimento do modo híbrido com o Flutter, o Google criou um Wiki especificamente para esse problema e atualizou 42 versões por 4 meses.

Criar modo Flutter Module
1.1.1 Alternar ramo de vibração

Se usado diretamente

$ cd some / path / 
$ flutter cria -t módulo my_flutter

  

Ocorrerá um erro que o módulo de comando não pode ser identificado.Encontre o motivo e descubra que nossa ramificação de clone padrão é a versão beta do flutter e não suporta o comando do módulo, portanto, primeiro é necessário

canal de 
vibração canal de 
vibração atualização de vibração mestre

  

Alterne a ramificação para mestre e execute a operação de atualização.

1.1.2 Criar um modelo de módulo Flutter
flutter create -t ​​module flutter_module

  

Neste momento, você verá um novo flutter_module adicionado ao projeto, que contém .android, .ios e os principais arquivos include_flutter.groovy

1.1.3 Adicionar Flutter a um projeto existente
  • Adicione settings.gradle no diretório raiz do projeto android

  • include ': app' // assumiu o conteúdo existente 
    setBinding (new Binding ([gradle: this])) // new assessment 
    (new File (// new 
      settingsDir.parentFile, // new 
      'flutter_module / .android / include_flutter.groovy' // novo 
    ))
    

      

  • Adicione dependências no build.gradle do aplicativo

  • dependências { 
      projeto de implementação (': flutter')
    

     

1.1.4 Em resumo

Simplificando, o Google estabeleceu uma cadeia de dependência lógica para o módulo Insert Flutter, com a premissa de manter os custos de manutenção e desenvolvimento.

flutter_module / .android / include_flutter.groovy -> 
flutter_module / .android / Flutter / build.gradle -> 
$ flutterRoot / packages / flutter_tools / gradle / flutter.gradle

  

Use o comando flutter && em $ flutterRoot / packages / flutter_tools / lib /

Comando $ AndroidRoot / build-tools / buildToolsVersion / android 的 android

Conclua a operação de empacotamento no modo de desenvolvimento misto.



Autor: Guia de Programação Flutter
link: https: //www.jianshu.com/p/48daeb72c44c

Acho que você gosta

Origin www.cnblogs.com/wjw334/p/12693178.html
Recomendado
Clasificación