线程通信
RxJava(笔者每次复习都看这篇文章)
RxJava2用法(非常详细)
RxJava原理
RxJava 是一个响应式编程框架,采用观察者设计模式,非常好的异步操作。
进程
- IPC通信Binder
AIDL
序列化
匿名共享内存
Binder机制
1.说说你对Android多进程开发的认识?
点击查看答案
2.Android中进程间通信的方式有哪些?
点击查看答案
3.什么是AIDL?如何创建一个AIDL。
什么是AIDL: AIDL允许定义一个编程的接口来作为客户端和服务端通信的桥梁,AIDL定义了客户端和服务端的编程标准,在Android里边一个进程无法直接访问另一个进程的内存信息,但是要访问的话,我们就需要把他们的设备分解成操作系统能认识的基本数据类型。使用AIDL必须要跨进程,所以通讯起来非常耗内存和系统资源,因此,没有必要处处用AIDL,那么什么时候用AIDL呢,通过IPC机制不同的程序访问你的服务,并且服务要处理多线程的时候才有必要使用AIDL,如果你只是想通过IPC机制要不同的程序访问你的服务的时候,实现Binder就可以了;如果只想通过IPC机制,但是不想控制多线程,实现Messanger就可以了,Binder和Messanger都是在单线程中完成的。
如何创建一个AIDL
- lowmemorykiller
Android LowMemoryKiller原理分析 - 进程的优先级
1、前台进程:即当前正在前台运行的进程,说明用户当前正在与通过该进程与系统进行交互,所以该进程为最重要的进程,除非系统的内容已经到不堪重负的情况,否则系统是不会将改进程终止的。
2、可见进程:一般还是显示在屏幕中,但是用户并没有直接与之进行交互,该进程对用户来说同样是非常重要的进程,除非为了保证前台进程的正常运行,否则Android系统一般是不会将该进程终止的。
3、服务进程:便是拥有Service进程,该进程一般是在后台为用户服务的。一般情况下,Android系统是不会将其中断的,除非系统的内容以及达到崩溃的边缘,必须通过释放该进程才能保证前台进程的正常运行时,才可能将其终止。
4、后台进程:一般对用户的作用不大,缺少该进程并不会影响用户对系统的体验。所以如果系统需要终止某个进程才能保证系统正常运行,那么会有非常大的几率将该进程终止。
5、空进程:对用户没有任何作用的进程,该进程一般是为缓存机制服务的,当系统需要终止某个进程保证系统的正常服务时,会首先将该进程终止。
View体系
- 自定义控件
事件分发机制
点击查看答案
- 滑动冲突
- 滑动、嵌套滑动
自定义动画
点击查看答案
lottie动画解析
绘制
点击查看答案
- measure
- layout
- draw requestLayout和invalidate()区别
Android消息机制
点击查看答案
[January 1, 2016] Android消息机制3-Handler(实战)
[December 27, 2015] Android消息机制2-Handler(Native层)
[December 26, 2015] Android消息机制1-Handler(Java层)