android 艺术开发探索 读书笔记(1-3章)
### Android艺术开发探索读书笔记(1-3章) #### 概述 《Android艺术开发探索》一书深入探讨了Android应用开发的核心技术和实践方法。本书第1至3章重点介绍了Activity生命周期、启动模式以及Android IPC机制等内容。这些知识点对于理解和掌握Android应用的行为模式及其与其他组件之间的交互方式至关重要。 #### Activity生命周期 1. **生命周期方法**: - `onCreate()`: 当Activity被创建时调用,是初始化资源和布局的好时机。 - `onStart()`: 当Activity变为用户可见时调用。 - `onResume()`: 当Activity获得焦点并准备好接收用户输入时调用。 - `onPause()`: 当Activity失去焦点但仍可见时调用。 - `onStop()`: 当Activity对用户不可见时调用。 - `onDestroy()`: 当Activity被销毁前调用。 2. **状态对应关系**: - `onCreate()` 和 `onDestroy()` 相对应。 - `onStart()` 和 `onStop()` 相对应。 - `onResume()` 和 `onPause()` 相对应。 3. **保存和恢复实例状态**: - 使用 `onSaveInstanceState()` 方法保存Activity的状态数据到`Bundle`对象中。 - 在Activity重新创建时,可以通过 `onRestoreInstanceState()` 方法恢复之前保存的数据。 4. **配置更改**: - 为了防止Activity在配置更改(如屏幕旋转)时被销毁并重建,可以在清单文件中为Activity设置 `android:configChanges` 属性,例如:`android:configChanges="orientation|keyboardHidden|screenSize"`。 5. **特殊方法**: - 当Activity因异常而终止时,可能会回调特定方法处理相关情况。 #### 启动模式 1. **标准模式 (Standard)**: - 每次启动Activity时都会创建一个新的实例,并压入任务栈中。 2. **栈顶复用模式 (SingleTop)**: - 如果目标Activity已经在栈顶,则直接复用而不创建新实例;此时会调用 `onNewIntent()` 方法而不是 `onCreate()` 或 `onStart()`。 3. **栈内复用模式 (SingleTask)**: - 如果目标Activity已存在于任务栈中,则将该Activity提升到栈顶并复用;如果不存在,则创建新实例。 - 通过 `taskAffinity` 属性指定Activity所在的任务栈名称,如果为空则默认为应用的包名。 4. **单实例模式 (SingleInstance)**: - Activity始终位于一个独立的任务栈中,且在整个系统中仅存在一个实例。 - 通常用于实现单例模式或全局设置页面等场景。 #### Android IPC机制 1. **简介**: - Android IPC(Inter-Process Communication)是指不同进程之间进行通信和数据交换的技术。 - 主要支持的方式包括:`AIDL`、`Messenger`、`ContentProvider` 和 `Socket` 等。 2. **Binder**: - 是Android中实现IPC的基础技术之一。 - 它作为客户端和服务端之间通信的媒介,允许不同进程中的对象进行交互。 - 在实现 `Service` 和 `AIDL` 时经常用到。 3. **多进程实现**: - 可以为四大组件指定 `android:process` 属性来运行在不同的进程中。 - 例如,在 `<service>` 标签中设置 `android:process=":core"` 表示此服务运行在名为 `:core` 的进程中。 4. **Intent Filter**: - 用于定义Activity或其他组件如何响应特定的意图(Intent)。 - 包括 `Action`、`Category` 和 `Data` 三个组成部分。 - 示例: ```xml <intent-filter> <action android:name="com.renlei.action.ACTION_TEST1"/> <action android:name="com.renlei.action.ACTION_TEST2"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="com.renlei.category.test"/> <data android:scheme="renlei" android:host="blog.csdn.net"/> <data android:scheme="file" android:host="www.mi.com"/> </intent-filter> ``` 5. **检查进程**: - 可以通过命令行工具 `adb shell ps | grep com.xiaomi.smarthome` 来查看进程信息。 通过以上知识点的学习,开发者可以更深入地理解Android应用程序的工作原理,从而编写出更加高效、稳定的程序。此外,掌握这些核心概念也有助于解决实际开发中遇到的各种问题,提高应用程序的质量和用户体验。
剩余32页未读,继续阅读
- 粉丝: 19
- 资源: 40
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip
- (源码)基于计算机系统原理与Arduino技术的学习平台.zip
- (源码)基于SSM框架的大学消息通知系统服务端.zip
- (源码)基于Java Servlet的学生信息管理系统.zip
- (源码)基于Qt和AVR的FestosMechatronics系统终端.zip
- (源码)基于Java的DVD管理系统.zip