Matrix TraceCanary源码分析

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

查看更多

分享到 评论

ConstraintLayout 高级用法介绍

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

查看更多

分享到 评论

ANR 触发原理

Input超时机制

input的超时检测机制跟service、broadcast、provider截然不同,为了更好的理解input过程先来介绍两个重要线程的相关工作:

查看更多

分享到 评论

RecyclerView inflate优化

背景

本文是在工作中对App启动耗时中页面展现耗时的一个优化,特意记录优化方案和遇到的问题。
主要是针对首页Recyclerview itemview的一个优化,减少itemview inflate耗时,从而减少onCreateViewHolder耗时,最终减少页面展现的耗时

查看更多

分享到 评论

SP源码阅读和其导致ANR原因分析

背景

本文是在看了字节的这篇文章: 剖析 SharedPreference apply 引起的 ANR 问题,发现很多原理不太清楚,特意根据源码总结一下,避免网上的人云亦云

查看更多

分享到 评论

Java内存分配策略

java的内存分配策略

1、Java 程序运行时的内存分配策略有三种:

(1) 静态分配
(2) 栈式分配
(3) 堆式分配

查看更多

分享到 评论

Android Binder机制分析(三)

背景

上篇文章分析到了Binder机制,同时介绍了Android Framework层系统服务的binder使用。本篇文章分析下Binder的底层实现,以及为什么Binder只需要一次内存拷贝。

查看更多

分享到 评论

android场景实现AOP编程

我在很早之前就了解过面向切面(AOP)的编程思想,比如AspectJ 实现简单的切面编程,不过都快忘了 :(。本文是想探究AOP在Android环境中的使用,补全Android开发者的技能树。

常见的AOP编程框架有AspectJ、 Cglib,Hibernate 和 Spring 等等,而这些目前流行的AOP框架绝大多数底层实现都是直接或间接地通过 ASM 来实现字节码操作,本文重点就来介绍一下ASM。

查看更多

分享到 评论