区长

业精于勤,荒于嬉; 行成于思,毁于随


  • 首页

  • 分类

  • 标签

  • 归档

  • Sitemap

  • 关于

  • 搜索
close
区长

Flutter 如何更加准确地获取 FPS

发表于 2019-12-19 | 分类于 Flutter |

如果我们需要对比Flutter与Native的性能数据,那么我们就需要获取Flutter的一部分性能数据,FPS就是其中的一个衡量标准。

阅读全文 »
区长

Flutter Engine 产物归档与符号表备份

发表于 2019-12-12 | 分类于 Flutter |

自定义引擎编译完成后,我们需要将产物进行归档以备使用,同时为了定位到crash时发生的堆栈信息,我们需要将符号表进行备份,本文基于macOS环境下的v1.9.1产物,最新版的v1.12.13版本产物有所变化,有兴趣自行查看。Flutter官方提供的方式是基于Docker的方式,可以参考 flutter/engine/ci但是并没有提供Docker之外的工具用于产物归档和符号表备份。

阅读全文 »
区长

Flutter iOS 编译参数 -Oz 是负优化吗

发表于 2019-12-09 | 分类于 Flutter |

2019年11月23日,字节跳动团队在其Flutter沙龙上有一个专题,如何缩减接近 50% 的 Flutter 包体积,具体内容可以点击链接进行查看,其中有一点提到了优化 Engine 编译产物,通过修改编译参数-Os为-Oz达到缩减包大小的目的。

阅读全文 »
区长

Flutter Engine C++ 源码调试初探

发表于 2019-12-06 | 分类于 Flutter |

禁止转载,原文出处 https://fucknmb.com

在Flutter Engine的自定义过程中,难免会对其进行调试,所谓工欲善其事必先利其器。调试的手段有多种,一般以日志输出和断点调试为主。本篇文章主要介绍一下Android环境下使用LLDB对Flutter Engine C++部分源码进行调试,至于为什么不使用GDB,因为我没有用GDB成功过,环境搭建的过程中遇到的坑很多,需要耐心看完全文。此处为人肉防盗文, 原文出处 https://fucknmb.com

阅读全文 »
区长

获取并还原 Flutter Engine Crash 堆栈

发表于 2019-10-20 | 分类于 Flutter |

对于Flutter来说,大部分crash其实发生在flutter engine中,即libflutter.so中,也就是native crash,对于这部分异常的堆栈,我们要如何进行还原呢。

阅读全文 »
区长

治治这个 google 一年没修的 agp transform bug

发表于 2019-06-28 | 分类于 Android |

随着android gradle plugin(以下简称agp)版本的迭代,被google带进来的bug也越来越多。目前整体来看,agp 3.1.4是比较稳定的一个版本,其之后的版本多多少少都有点问题(如 agp3.2.0-3.5.0的版本R8,multidex都有问题等等),这篇文章主要介绍一下一个在2018年5月份被google带进来的bug以及如何修复它。该bug从agp 3.2.0开始存在,直到目前为止 agp 3.5.0 中依旧未修复该问题。该问题会直接影响编译速度,原本能够构建成功的一次增量构建,因为该问题,必须clean后再进行全量构建,浪费编译时间,进而降低开发效率。

这篇文章比较绕,可能会把你绕晕,如果把你绕晕了,你可以直接拉到最后面看开箱即用的解决方法。

阅读全文 »
区长

R8 踩坑记

发表于 2019-05-28 | 分类于 R8 |

前言

最近调研了下升级android gradle plugin的可行性,在调研过程中发现了R8的几个坑,记录下解决方法。

阅读全文 »
区长

Android Q BaseDexClassLoader 变动

发表于 2019-04-04 | 分类于 Android |

上一篇文章讲到一个有意思的地方,见 谈谈Android P行为变更与内联优化 文章说到,在Andorid Q上加载org.apache.http.legacy.boot.jar和Android P有点不同,Android P上是插入到App的PathClassLoader的pathList中的dexElements完成加载的,而Android Q上加载org.apache.http.legacy.boot.jar的却是一个独立的PathClassLoader对象,但是和App的PathClassLoader属于不同的ClassLoader实例,奇怪的是其父类都是BootClassLoader,根据双亲委托机制,这个类查找显得有点逆天,所以扒了下Android Q的源码,发现是BaseDexClassLoader里做了一点改动。

阅读全文 »
区长

谈谈 Android P 行为变更与内联优化

发表于 2019-04-03 | 分类于 Android |

最近遇到了几个问题,与Android P行为变更与内联优化相关,并且基本都是在OnePlus 5/5T/6/6T H2O 9.0.1上可复现。

阅读全文 »
区长

Flutter 动态化探索

发表于 2019-03-22 | 分类于 Flutter |

前言

Flutter 从某个版本开始,官方就已经支持了Android的动态下发,iOS由于苹果的限制,目前没有特别好的实现方式。现在master分支上最新的代码已经支持Android动态下发了,本篇文章基于v1.3.13。关于动态下发的相关代码可以见如下几个类:

  • ResourceUpdater.java
  • ResourceExtractor.java
  • FlutterMain.java
阅读全文 »
12…6下一页
区长

区长

Android Developer

54 日志
11 分类
94 标签
RSS
GitHub 知乎 微博
Links
  • 区长的CSDN
  • camnter
  • Dim
  • 轩辕布
  • mark禽
  • 魔法使kaedea
© 2017 - 2019 区长
由 Hexo 强力驱动
主题 - NexT.Pisces