安卓组件学习笔记

安卓组件

1 Android中的组件

  1. 两种Hello World

继承Activity,实现OnCreate()

四大组件:

  1. Activity内容展示, 与用户互动
  2. Service后台长期运行
  3. BroadcastReceiver 接受信息,主动做出处理
  4. Content Provider 应用数据的管理与共享

2 intent类型:

两种

  1. 显式Intent:知道组件名,只有一个组件可以处理

  2. 隐式Intent:声明执行的常规操作,运行多个应用来响应;

    ps:启动Service ,使用显式的Intent

3 intent匹配规则

隐式Intent匹配规则三个维度

  1. action 匹配规则:
  2. Category匹配规则
  3. data 匹配规则

调试intent的技巧:am命令发送intent来启动activity

语法:adb shell am start a、t、d、e、n

4 intent 的信息传递

基础类型:

java的八种基本类型+String引用类型+CharSequence

复杂对象两种:

  1. Serializable:序列化, 将对象转化为可储存,只需要实现Serializable接口
  2. Parcelabe : 不同组件之间, 性能更优, 内存间数据传输,需要自定义打包解包,优先选用

5 Activity生命周期管理

按下返回键:

  1. 启动应用onCreate-onStart-onResume
  2. 按下返回onPuse- Onstope- onDestrov
  3. 重启启动onCreate-onStart-onResume

按下Home键,Configuration改变(屏幕旋转,字体大小改变,语言变化, 键盘显示隐藏,切换字体、主题)

会出现重新启动onDestroy,onCreat

6 提升进入界面的速度

测试时间方法:adb shell am start -W[packageName]/[PackageName.MainActivity]

应用启动关键流程:

  1. 开始, Zygote创建进程--创建初始类Applicat--创建Acitivity--onCreate--配置主题信息--onStart--onResume--Measure/layout--显式

    优化的策略

    1. 耗时任务异步处理(onCreate(),onResume())
    2. 布局优化
      1. 减少布局层次去除冗余
      2. merge标签
      3. 自定义组件
      4. Viewstub
    3. 不可视图延迟加载
      1. 资源分开初始化
      2. addView
      3. 页面分开加载

7 service生命周期管理

后台长时间执行运行操作,不需要提供界面

启动方式

  1. bindService (组件与服务进行交互,发送请求)
  2. startService
    1. 服务启动后可以无限期运行
    2. 启动服务的组件已经被销毁了也不受影响

8 绑定Service

三种方式参考点

  1. 扩展Binder类(用用程序私有,客户端运行一个进程

    1. 服务端提供客户端可调用

    2. 扩展返回服务实例

  2. Messenger(不同进程间的通信,每次处理一个请求

    1. 客户端使用ibinder将message实例化,
    2. message对象向服务发命令
  3. AIDL文件(不同进程间, 服务每次处理多个请求

    1. Android接口定义语言
    2. 将对象解析为可识别的方式

9 接收器的注册

BroadcastReceiver用来响应系统范围内的广播事件的组件

事件----》AMS发送广播-----》APP(BroadcastReceiver)启动服务

两种注册方式:

  1. 静态注册 AndroidManifest.xml中声明
    1. Activity
    2. Service
    3. BroadcastReceiver
    4. ContentProvider
  2. 动态注册Context的子类中添加(BroadcastReceiver)

比较:静态注册常驻型,程序关闭亦可激活,动态注册非常驻,注册和注销需要成对出现。

10 广播的发送

无序广播:发送接受者内容相同,接受者不受到影响

有序广播:先到优先级高的接受者, 接受者可以停止广播,优先级可以获得经过处理的信息;

BroadcastReceiver 生命周期管理

从调用开始,到OnReceiver执行结束;

Android 教程

系统架构:

调试

通过单击工具栏上的按钮, Debug 'All Tests' 菜单命令,或者按 Shift+F9 快捷键,启动程序的调试模式

  • 快捷键 F8 单步执行程序。
  • 快捷键 F7 单步执行程序,遇到方法时进入。
  • 快捷键 Alt+F9 运行到光标处。

Activity声明周期,运行机制

‘参考书籍:《第一行代码》《Android 群英传》

Android Studio应用开发实战详解

猜你喜欢

转载自www.cnblogs.com/liguo-wang/p/11183286.html