- 博客(9)
- 收藏
- 关注
原创 kotlin协程常见四个错误
Kotlin 协程(Coroutines)是 Kotlin 语言中的一种轻量级并发编程工具,旨在简化异步编程和并发任务的处理。正确使用协程能够帮助我们更优雅和快速的实现线程切换和处理并发问题。然后,如果使用不恰当,就会降低任务处理效率,获取引发非预期的问题。本篇文章将会通过一些隐藏在代码里的危险案例,找出这些隐蔽的错误。在直接给出结论之前,希望读者先试着先思考一下问题所在,并尝试解决。
2024-08-18 22:18:53
1076
原创 AMS进程管理--ADJ篇
上一篇文章将基于Android 12的AMS进程管理中LRU算法进行了分析,得到的结论是根据进程状态(是否存在activity和service)去调整mLruProcessServiceStart和mLruProcessActivityStart两个指针的位置,维护活动的列表中3个区域里各自进程排序。答案当然不是,这就是今天我们介绍的ADJ算法。同样的,android12后,在AMS中的算法源码被委托给了OomAdjuster类,它的主要职责就是计算进程的oom_adj值,也就是优先级。
2024-06-10 10:25:27
1898
原创 AMS进程管理--LRU篇
核心在于根据进程状态(是否存在activity和service)去调整mLruProcessServiceStart和mLruProcessActivityStart两个指针的位置,维护活动的列表中3个区域里各自进程优先级。
2024-06-09 14:51:05
519
2
原创 屏幕适配基础
屏幕适配基础之前有做过一些项目,用到的屏幕适配就是洪洋推荐的,根据分辨率,生成多套xml文件,不同分辨率对应不同xml布局,这样大概能覆盖80%的主流屏幕,一旦找不到对应的分辨率就GG。我也想过一个解决方法,对找不到对应分辨率的屏幕就加入默认一套xml。
2017-09-28 17:52:35
316
原创 Fragment坑之Can not perform this action after onSaveInstanceState
该情况一般发生在当前Activity等,系统会调用onSaveInstanceState()帮你保存当前Activity的状态、数据等,直到再回到该Activity之前(onResume()之前),你执行Fragment事务,就会抛出该异常!(一般是其他Activity的回调让当前页面执行事务的情况,会引发该问题)。曾在项目管理我的应用栏,三个按钮控制我的,更新,卸载栏,分别跳转不同fragmen
2017-05-14 11:30:47
722
原创 int和Integer有什么区别
为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型。栗子:public class Test { public static void main(String[] args) { Integer f1 = 100, f2 = 100, f3 = 150, f4 = 150; System.out.pri
2017-03-29 14:29:55
283
转载 Java设计模式
设计模式是每个程序员的必修课,这里将23种模式整理在一起,想学习这方面知识的朋友们有福了,呵呵。Singleton Pattern(单例模式):Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。)
2016-05-13 20:21:54
295
原创 android学习之旅--BaseAdapter细节
AS调试的时候,发现BaseAdapter中的getView方法并没有回调,开始怀疑是不是该方法中不能打印日志,后来发现当adapter中getCount返回值为0,就不会调用该方法。于是排错得到结果。
2016-03-26 08:52:25
318
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人