Matrix Battery 介绍和使用

App 耗电问题是一个影响用户体验,甚至影响 app 使用率的一个重要的性能问题。相比 Crash、Anr,耗电排查是一个需要综合各种因素来最终确定问题所在的复杂流程。同时又因为耗电受影响的范围大、不同手机衡量标准又不太统一导致该问题一直是一个令人头痛的疑难杂症。

本文通过介绍耗电基本知识和 Matrix Battery 的基本使用,来总结下面对耗电问题应该如何排查和定位

Read More

Share Comments

Matrix io 介绍和使用

IO-Canary

参考 Matrix IO-Canary 功能,实现对主线程操作 io、重复读相同文件、读写文件 buffer 过小的代码动态检测

Read More

Share Comments

代码覆盖率统计——集成 Jacoco

代码覆盖率

代码覆盖率是软件测试中一个重要的评价指标。主要是指程序运行过程中,被执行到的代码在总代码中的占比程度,现在有很多插件可以实现这个功能,应用比较广的就是 jacoco。

代码覆盖率从测试方式上有两个方向可以进行:

  • 单元测试(白盒测试)
  • 功能测试(黑盒测试)

下面在 Android 工程中,分别用 Jacoco 来实现这两个方向的代码覆盖率统计:

Read More

Share Comments

Native Crash 日志分析

本文是上一篇《Native Crash 捕获原理》的姊妹篇,主要介绍如何分析 Native Crash 日志,以及常见的 Native Crash 类型

Read More

Share Comments

Native Crash 捕获原理

本文主要介绍 Native Crash 捕获原理

Read More

Share Comments

跨进程通信 Bridge 建立

本文介绍了 Android 跨进程通信的原理,并对 Hermes 的源码进行分析。

先简单总结下:Hermes 也是通过 AIDL 的方式来最终实现跨进程通信,通信的内容是 Gson。其中用到的了动态代理技术
后面再详细分析下为什么要用到动态代理

Read More

Share Comments

Matrix TraceCanary 源码分析

本文主要介绍 Matrix 的 Trace 部分,主要涉及帧率、ANR、慢函数、启动耗时的检测逻辑。

Read More

Share Comments

ConstraintLayout 高级用法介绍

本文介绍了部分 ConstraintLayout 2.0 新增的 api,同时介绍了一下 ConstraintLayout 中不太常用的方法,方便以后查阅。

Read More

Share Comments