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

背景

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

Read More

Share Comments

Java内存分配策略

java的内存分配策略

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

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

Read More

Share Comments

Android Binder机制分析(三)

背景

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

Read More

Share Comments

android场景实现AOP编程

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

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

Read More

Share Comments

移动view的几种方式总结

移动view的几种方式

使用View.layout(l, t, r, b)方法

Assign a size and position to a view and all of its descendants
这个方法是用来指定一个view和它所有的子view的尺寸和位置

Read More

Share Comments

自定义gradle插件

gradle和gradlew的区别

如果配置好了 gradle 环境变量后,就可以在cmd中使用gradle命令了
在cmd中输入: gradle -v

Read More

Share Comments

RecyclerView 缓存机制

RecyclerView 内存性能优越,这得益于它独特的缓存机制

由问题引入

  • 回收的是什么?复用什么?
  • 回收到哪里去?从哪里获得复用?
  • 什么时候回收?什么时候复用?

    Read More

Share Comments

ANR 总结与分析

ANR 分类

Android ANR问题分为三类:Input,Receiver,Service

在我们常见的APP开发中,主要遇到的都是Input超时问题,本文就详细分析下Input超时是如何产生以及如何排查

Read More

Share Comments