Android常用组件|青训营笔记

155 阅读2分钟

Android常用组件|青训营笔记

这是我参与「第四届青训营」笔记创作活动的的第2天

01.基础组件

1.1 Activity

前台交互、程序入口、界面容器

基本用法:注册 -> 布局 -> 绑定

生命周期:

  1. onCreate()
  2. onStart()
  3. onResume()
  4. onPause()
  5. onStop()
  6. onRestart()
  7. onDestory()
  8. onSaveInstanceState()
  9. onRestoreInstanceState()

打开页面 1 -> 2 -> 3 关闭页面 4 -> 5 -> 6 销毁 3 -> 4 -> 8 -> 5 -> 6 重建 1 -> 2 -> 9 -> 3

常见场景: 启动推出场景、部分遮挡、完全遮挡、配置变更、后台回收

启动模式:

standard(允许重复), singleTop(不允许连续重复), singleTask(不允许同个栈内重复), singleInstance(整个系统不允许重复)

1.2 界面组件(Fragment)

解决页面碎片化问题、速度快(轻量级页面容器)

基本用法:静态绑定、动态绑定

生命周期:

  1. onAttach()
  2. onCreateView()
  3. onActivityCreated()
  4. onDestroyView()
  5. onDetach()

常用场景:

  1. 启动
  2. 退出
  3. 部分遮盖
  4. 部分遮挡恢复
  5. 完全覆盖
  6. 完全遮挡恢复

与Activity交互: 组件获取、数据传递

1.3 服务组件(Service)

基本用法:注册 -> 创建 -> 加载

生命周期:

onStart() onBind() onCreate() onDestroy()

与Acitivity通信

1.4 广播组件(Broadcast)

静态广播(注册、创建、接受、发送)、动态广播

1.5 数据组件(ContentProvider)

基本用法: 生产者:注册、属性、创建、方法 消费者:声明、使用、方法

1.6 意图组件(Intent)

  1. Context.startActivity(intent)
  2. Context.startService(intent)
  3. Context.sendBroadcast(intent)

基本用法:显式Intent、隐式Intent

系统能力:电话、短信、网页、邮件、地图、拍照、设置、市场

02.通信组件

2.1 Handler(线程通信

基本用法:创建、构造Message、发送、处理

原理:消息队列

2.2 Binder(进程通信

相较于Socket,效率较高

Linux进程隔离,无法共享内存

基本用法: 服务端:定义AIDL文件、实现接口,编写service、提供实体类 客户端:拿到AIDL协议文件,绑定service

原理:匿名共享内存,Binder驱动,ServiceManager