基础
智能指针
(1)用来解决C++指针存在的问题,如没有初始化、忘记delete、野指针。(2)对象A指向对象B,B的引用计数器mCount会加1,当不引用时,会减1,如果刚好为零,则删除对象B。(3)强引用和弱引用的区别,弱引用必须先升级为强引用才可以访问指向的目标对象,弱引用的主要使命就是解决循环引用的问题。(4)通常目标对象的父类是 RefBase ,这个类可以同时进行强弱引用的控制。
binder 机制
系统
线程
Android提供了四种常用的操作多线程的方式,分别是:
1. Handler+Thread
2. AsyncTask
3. ThreadPoolExecutor
4. IntentService
详细介绍:https://www.jianshu.com/p/2b634a7c49ec
定时器
定时器有三种:
java 提供的 Timer类:不太适用那些需要长时间在后台运用的定时任务。原因是,Android手机在长时间不操作的情况下,CPU会自动进入睡眠状态,这有可能导致Timer中的定时任务无法正常执行。
Alarm机制:具有唤醒CPU的功能。
Doze模式:(1)在Android6.0系统中引入,为解决后台服务泛滥、手机电量消耗过快的问题。(2)在屏幕关闭一段时间后(且没有接通电源),就睡进入Doze模式。在Doze模式下,系统会CPU、网络等活动限制,但系统不是一直处于Doze模式,会间歇性的退出Doze模式一小段时间,此时去完成同步操作。
四大组件
https://blog.csdn.net/gs344937933/article/details/82932958
六大布局
https://blog.csdn.net/gs344937933/article/details/82934418
五大存储
https://blog.csdn.net/gs344937933/article/details/82934670
进阶
OOM
ANR
常用框架
图片加载:Glide: https://www.jianshu.com/p/3d699bf007c7