• 安卓组件学习笔记


    安卓组件

    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应用开发实战详解

  • 相关阅读:
    实战-百度云[大文件/文件夹]下载限制破解
    IOCP之客户端及消息传递
    IOCP简单实现
    Charles V4系列更新 | 绿色特别版 | 视频教程
    Charles 3.11.5 绿色特别版
    VC运行库合集2005/2008/2010/2012/2013/2015
    手游测试之《弱网测试》
    后端性能测试不可不知的二三事
    linux性能指标及分析工具
    Shell笔记-04
  • 原文地址:https://www.cnblogs.com/liguo-wang/p/11183286.html
Copyright © 2020-2023  润新知