概述
Android四大组件: Activity,Service,BroadCast,ContentProvider
其他常用基础组件:Fragment,Intent 等
见下图:
Activity 的几种启动模式见:Android Activity的四种启动模式
Activity 如果在旋转等config变化时,不想重新创建activity,可以在程序清单中配置
android:configChanges="orientation|screenSize"等
Intent
Intent 是Android 组件之间,应用之间通信的最重要的结构,可以说Android 的四大组件的通信全都是通过Intent来实现的。
- 先看一下Android 系统提供的Intent 实现
- Intent 打开Activity 的方式
- 显式:
setComponent 或者setClass 指定具体的类 - 隐式
Action
Data
Category
Type
Component
Extra
Flag等
系统会根据各个应用的AndroidManifest.xml 中注册的activity的intent-filter 来调度匹配。
- 显式:
通信组件
Handler 线程间通信;
Binder进程间通信, 一次内存拷贝发生在发送进程的用户空间copy_from_user,从用户空间拷贝到内核空间,接收进程直接mmap映射到这一块匿名内存就完成数据的获取。
View 的onTouchEvent
onClick 是在Action_Up时执行;
onLongClick 是在Action_down 时埋下的,如果满足长按时间,就会调用回调;在up的时候去清除长按。