Quantcast
Channel: Gityuan
Browsing index pages (119 articles)
↧

字节跳动为什么选用Flutter:并非跨平台终极之选,但它可能是不一样的未来

2018 年 12 月 ,Google 宣布 Flutter 1.0 版本正式发布。截至目前, Flutter 在 Github 上已获得 88000+ 的关注和 11000+ 的 Fork ,其发展速度相当惊人,是今年移动端最火热的开发框架之一。Flutter 大火背后的原因是什么?为什么越来越多的企业和开发者会选择使用 Flutter?Flutter 会成为跨平台开发的终极之选吗?我认为“...

View Article


ServiceIsolate工作原理

一、概述在前面文章深入理解Dart虚拟机启动中,有讲到Dart虚拟机中有一个比较重要的isolate,创建的isolate名为”vm-service”,运行在独立的线程,也就是ServiceIsolate,这是用于系统调试相关功能的一个isolate,提供虚拟机相关服务, 比如hot...

View Article


Article 0

一、概述在前面文章深入理解Dart虚拟机启动中,有讲到Dart虚拟机中有一个比较重要的isolate,创建的isolate名为”vm-service”,运行在独立的线程,也就是ServiceIsolate,这是用于系统调试相关功能的一个isolate,提供虚拟机相关服务, 比如hot...

View Article

Image may be NSFW.
Clik here to view.

彻底掌握Timeline原理(一)

一、概述1.1 Timeline事件总览1.2 C++层Timeline用法1.2.1 C++同步事件#include "flutter/fml/trace_event.h" #define TRACE_EVENT0(category_group, name) #define TRACE_EVENT1(category_group, name, arg1_name, arg1_val)...

View Article

Image may be NSFW.
Clik here to view.

Dart虚拟机运行原理

一、Dart虚拟机1.1 引言Dart VM是一种虚拟机,为高级编程语言Dart提供执行环境,但这并意味着Dart在D虚拟机上执行时,总是采用解释执行或者JIT编译。 例如还可以使用Dart虚拟机的AOT管道将Dart代码编译为机器代码,然后运行在Dart虚拟机的精简版环境,称之为预编译运行时(precompiled...

View Article


Image may be NSFW.
Clik here to view.

Flutter机器码生成gen_snapshot

一、概述书接上文源码解读Flutter run机制的第四节 flutter build aot命令将dart源码编译成AOT产物,其主要工作为前端编译器frontend_server和机器码生成,本文再来介绍机器码生成的工作原理。1.1 GenSnapshot命令GenSnapshot.run具体命令根据前面的封装,针对Android和iOS平台各有不同:1.1.1 针对Android平台//...

View Article

Image may be NSFW.
Clik here to view.

Flutter前端编译frontend_server

一、概述书接上文源码解读Flutter run机制的第四节 flutter build aot命令将dart源码编译成AOT产物,其主要工作为前端编译器frontend_server和机器码生成,本文先介绍前端编译器frontend_server的工作原理。1.1 frontend_server命令KernelCompiler.compile()过程等价于如下命令://...

View Article

Image may be NSFW.
Clik here to view.

源码解读Flutter run机制

一、解读flutter run命令1.1 初识flutter run1.1.1 IDE运行编写完flutter代码后,一定离不开运行flutter应用。比如Android Studio可点击如下按钮来执行该命令默认是采用debug模式,如果需要运行release模式,可以在IDE选择中的Run->Configurations的Additional...

View Article


源码解读Flutter tools机制

一、Flutter tools命令1.1 概述开发Flutter应用过程,经常会用过Flutter命令,比如flutter run可用于安装并运行Flutter应用,flutter build可用于构建产物,相信有不少人会好奇flutter命令背后的原理。 对于flutter命令的起点位于flutter...

View Article


Image may be NSFW.
Clik here to view.

源码解读Flutter AOT产物编译原理

一、概述书接上文源码解读Flutter run机制的第四节 flutter build aot命令将dart源码编译成AOT产物,其主要工作为如下两个过程:上文[小节4.3.1]中 frontend_server命令,前端编译器生成kernel文件上文[小节4.5.1]中 GenSnapshot命令,编译成AOT二进制产物BuildAotCommand.runCommand()...

View Article

解读Dart虚拟机的参数列表

一、概述在third_party/dart/runtime/vm/flag_list.h定义了Dart虚拟机中所有标志的列表,标志分为以下几大类别:Product标记:可以在任何部署模式中设置,包括Product模式Release标志:通常可用的标志,除Product模式以外Precompile标志:通常可用的标志,除Product模式或已预编译的运行时以外Debug标志:只能在启用C++断言的VM...

View Article

搭建Flutter Framework开发环境

一、相关依赖Linux,Mac OS X或者Windowsgit:用于源码的版本控制;ssh client:用于Github的认证;IDE: 带有Flutter插件的Android Studio,这是官方推荐的旗舰IDE;Python: 很多工具都需要用到Python,比如gclient;Android platform tools:可使用如下命令来安装 Mac: brew cask install...

View Article

Image may be NSFW.
Clik here to view.

搭建Flutter Engine源码编译环境

一、准备环境1.1 准备OS:MacOS同时支持Android和iOS的交叉编译功能,Linux只支持Android产物的交叉编译;git:用于源码的版本控制;ssh client:用于Github的认证;IDE: 带有Flutter插件的Android Studio,这是官方推荐的旗舰IDE;depot_tools:内含gclient命令;Python:...

View Article


Image may be NSFW.
Clik here to view.

源码解读Flutter run机制

一、概述flutter run执行过程的日志可大致知道该过程至少包括gradle构建APK以及安装APK的流程。相信有不少人会好奇flutter命令背后的原理,这里就以[小节二]中flutter run命令为起点展开,flutter run 命令对应 RunCommand,该命令执行过程中包括以下4个部分组成:[小节三] flutter build apk 命令对应...

View Article

Image may be NSFW.
Clik here to view.

源码解读Flutter tools机制

一、概述开发Flutter应用过程,经常会用过Flutter命令,比如flutter run可用于安装并运行Flutter应用,flutter build可用于构建产物,相信有不少人会好奇flutter命令背后的原理。例如:flutter命令的起点位于flutter sdk中路径/flutter/bin/flutter的shell程序。二、flutter tool命令2.1 flutter...

View Article


搭建Flutter Framework开发环境

一、相关依赖Linux,Mac OS X或者Windowsgit:用于源码的版本控制;ssh client:用于Github的认证;IDE: 带有Flutter插件的Android Studio,这是官方推荐的旗舰IDE;Python: 很多工具都需要用到Python,比如gclient;Android platform tools:可使用如下命令来安装 Mac: brew cask install...

View Article

Image may be NSFW.
Clik here to view.

搭建Flutter Engine源码编译环境

一、准备环境1.1 准备OS:MacOS同时支持Android和iOS的交叉编译功能,Linux只支持Android产物的交叉编译;git:用于源码的版本控制;ssh client:用于Github的认证;IDE: 带有Flutter插件的Android Studio,这是官方推荐的旗舰IDE;depot_tools:内含gclient命令;Python:...

View Article


Image may be NSFW.
Clik here to view.

深入理解Flutter的Platform Channel机制

基于Flutter 1.5,从源码视角来深入剖析flutter的channel,相关源码目录见文末附录一、概述Flutter 官方提供了一种 Platform Channel 的方案,用于 Dart 和平台之间相互通信。核心原理:Flutter应用通过Platform Channel将传递的数据编码成消息的形式,跨线程发送到该应用所在的宿主(Android或iOS);宿主接收到Platform...

View Article

Image may be NSFW.
Clik here to view.

深入理解Flutter的Isolate创建过程

基于Flutter 1.5,从源码视角来深入剖析flutter的isolate机制,相关源码目录见文末附录一、概述Root isolate负责UI渲染以及用户交互操作,需要及时响应,当存在耗时操作,则必须创建新的isolate,否则UI渲染会被阻塞。 创建isolate的方法便是Isolate.spawn(),本文将从源码角度来讲解该方法的核心工作机制。1.1...

View Article

Image may be NSFW.
Clik here to view.

深入理解Flutter异步Future机制

基于Flutter...

View Article
Browsing index pages (119 articles)