- 博客(12)
- 收藏
- 关注

原创 ConcurrentModifcationException 的 what、why、how
ConcurrentModifcationException、Fast-Fail、快速失败检查机制、List并发操作
2024-04-03 10:43:23
1785
1

原创 为什么匿名内部类会持有外部类对象?
发现了吗,java编译器构建了一个名为Outer$1的类去实现、继承匿名内部类对应的类,并构建了一个有参构造器,入参规则是:外部类对象 + 匿名内部类使用到的外部类中的成员变量(上面用到了外部类的字符串,构造的有参构造器就会增加这个String的参数)答案是延时任务对象是通过匿名内部类构建的,其拥有外部类对象,这就让Activity退出后,GC释放不了Activity对象所占用的内存块,引发内存泄漏。可以看到,我们在构建Inner对象时,是通过无参构造器构建的,不会将外部类对象传入静态内部类的情况。
2024-02-23 18:25:50
1570

原创 Handler 泄漏场景、解决方案、深入理解
是的话,结果会是什么,会造成什么问题?手机内存是有限的,供我们应用可使用的对象更是少之又少,那问题就来了,我们平时打开的Activity、Fragment、以及其他new出来的对象,都是需要占用内存的,当这些对象不需要用到时,这些对象占用的内存是怎么回收以便重新分配给新new的对象的?”的跟对象作为起始节点集,以这些节点为开始,根据引用关系向下搜索,搜索走过的路径称为“引用链”,不在引用链内的对象是不可达的,允许被GC回收(此时并不是非死不可,有兴趣的可以度娘查一下GC对象的自救)为什么移除了就可以呢?
2024-02-23 12:30:02
1874
原创 Apk瘦身脚本 - res资源可用性检查
在一些大一点的项目,Lint在执行之后会Run很长时间,且只是给你找出问题点。在瘦身时可能存在一定量的res需要剔除,用Lint检查起来就会相对慢一些,且有些Code删除之后我们也需要重新检查其是否有引用哪些layout、drawable等,这些也是可以一并检查删除的。Lint可以帮我们检索项目中可能存在错误的地方,平时功能代码写完后,也建议大家用其检查一下代码,帮助我们提高代码的健壮性。下面是脚本代码,实现起来相对简单暴力,直接放在Android项目下运行即可。
2024-04-01 18:12:19
220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人