zoukankan      html  css  js  c++  java
  • 安卓组件学习笔记

    安卓组件

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

  • 相关阅读:
    ubuntu下文件安装与卸载
    webkit中的JavaScriptCore部分
    ubuntu 显示文件夹中的隐藏文件
    C语言中的fscanf函数
    test
    Use SandCastle to generate help document automatically.
    XElement Getting OuterXML and InnerXML
    XUACompatible meta 用法
    Adobe Dreamweaver CS5.5 中文版 下载 注册码
    The Difference Between jQuery’s .bind(), .live(), and .delegate()
  • 原文地址:https://www.cnblogs.com/liguo-wang/p/11183286.html
Copyright © 2011-2022 走看看