Por que Flutter?
Estrutura e aplicação de vibração
Estrutura e Código Fonte
Quadro geral
Código fonte
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.
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
- Desenvolva funções relacionadas à vibração no modo Flutter.
- Empacote o código em uma biblioteca aar e faça o upload para o repositório para controle de versão.
- 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