目录 应用程序基础Application Fundamentals 4 关键类 4 应用程序组件 5 激活组件:intent 7 关闭组件 7 manifest文件 8 Intent过滤器 8 Activity和任务 10 Affinity(吸引力)和新任务 11 加载模式 12 清理堆栈 13 启动任务 14 进程和线程 14 进程 15 线程 15 远程过程调用 15 线程安全方法 16 组件生命周期 17 Activity生命周期 17 调用父类 18 服务生命周期 21 广播接收器生命周期 22 进程与生命周期 22 用户界面User Interface 24 视图层次View Hierarchy 24 布局Layout 25 部件Widgets 26 用户界面事件UI Events 26 菜单Menus 26 高级话题Advanced Topics 27 适配器Adapter 27 风格与主题Styles and Themes 27 资源和资产Resources and Assets 28 资源引用Resource Reference 43 国际化和本地化Internationalization and Localization 43 意图和意图过滤器Intents and Intent Filters 43 意图过滤器Intent filters 47 通常情况Common cases 51 使用意图匹配Using intent matching 52 数据存储Data Storage 52 概览Storage quickview 52 ? 系统偏好:快速,轻量级存储 52 ? 文件:存储到设备内部或可移动闪存 52 ? 数据库:任意的结构化存储 52 ? 支持基于网络的存储 52 系统偏好Preferences 53 文件Files 54 数据库Databases 54 网络Network 55 内容提供器Content Providers 55 内容提供器的基础知识Content Provider Basic 55 查询一个内容提供器Querying a Content Provider 57 修改数据Modifying Data 61 创建一个内容提供器Creating a Content Provider 64 Content URI 总结 67 清单文件The AndroidManifest.xml File 68 清单文件结构Structure of the Manifest File 68 文件约定File Conventions 70 文件特性File Features 73 ### Android开发指南中文版——应用程序框架 #### 一、应用程序基础(Application Fundamentals) 在Android开发中,应用程序的基础架构包括以下几个核心部分: ##### 关键类 Android应用的核心是几个关键类: 1. **Activity**:负责处理用户交互并展示UI。 2. **Service**:在后台运行长时间的操作,而无需用户交互。 3. **BroadcastReceiver**:接收来自系统和其他应用的广播消息。 4. **ContentProvider**:用于存储和检索数据,并为其他应用提供访问接口。 5. **Intent**:用来传递消息和数据的媒介。 这些类构成了Android应用的基本骨架,开发者通过组合这些类来实现各种功能。 ##### 应用程序组件 应用程序组件是构成应用的基本单位,主要包括: - **Activity**:表示一个屏幕上的“活动”,例如一个显示文本的窗口。 - **Service**:在后台执行长时间运行的任务,如音乐播放等。 - **BroadcastReceiver**:接收系统和其他应用发送的广播。 - **ContentProvider**:存储和检索数据,提供统一的数据访问接口。 #### 二、激活组件:Intent **Intent**是一种消息对象,它允许你启动新的Activity或者服务,以及向BroadcastReceiver发送广播。Intent可以携带额外的数据,如字符串、布尔值等。Intent可以显式地指定目标组件,也可以隐式地通过Intent Filter来匹配目标组件。 #### 三、关闭组件 关闭组件可以通过finish()方法来完成。这会将Activity从当前任务栈中移除,如果Activity是当前正在运行的,则切换到任务栈中的上一个Activity。 #### 四、manifest文件 每个Android应用都有一个名为`AndroidManifest.xml`的文件,该文件描述了应用的元数据,包括应用名称、权限需求、组件定义等。它是应用的配置文件,用于声明组件、权限和应用的基本属性。 ##### Intent过滤器(Intent Filters) Intent过滤器允许组件根据Intent中包含的信息来决定是否响应。例如,一个Intent可能指明了希望启动一个能够处理特定类型数据的Activity,这时候Intent过滤器就发挥作用了。 #### 五、Activity和任务 **Activity**是Android应用中最基本的UI组件之一,它代表了一个屏幕中的“活动”。一个任务是由一系列Activity组成的栈,用户可以在这些Activity之间导航。 ##### Affinity(吸引力)和新任务 - **Affinity**是指将Activity关联到一个任务中的属性。具有相同affinity的Activity会被放置在同一任务中。 - 当用户启动一个新的Activity时,系统会根据Intent中的标志和Activity的affinity来决定是将Activity添加到现有任务还是创建一个新任务。 ##### 加载模式(Launch Modes) - **standard**:默认模式,每次启动Activity都会创建一个新的实例。 - **singleTop**:当Activity已经在任务栈的顶部时,不创建新的实例,而是复用现有的实例。 - **singleTask**:无论Activity在哪里,都只会创建一个实例。 - **singleInstance**:类似于singleTask,但该Activity总是位于自己的任务栈中。 ##### 清理堆栈 当Activity结束时,可以选择将其从任务栈中移除,这可以通过设置Intent的Flag来实现。 #### 六、启动任务 应用可以通过Intent来启动一个新的任务,这通常发生在用户点击一个应用图标或通过其他方式启动一个应用的时候。 #### 七、进程和线程 Android应用通常在一个进程中运行,这意味着所有的组件都在同一个地址空间内共享内存资源。线程则允许应用执行并发操作,从而提高效率。 ##### 远程过程调用(Remote Procedure Call) 在Android中,远程过程调用允许一个进程中的代码调用另一个进程中的代码,这主要通过Binder机制实现。 ##### 线程安全方法 由于Android应用可能在多线程环境中运行,因此确保线程安全性是非常重要的。开发者需要注意同步访问共享资源,避免竞态条件。 #### 八、组件生命周期 每个组件都有自己的生命周期,这决定了组件何时被创建、何时被销毁,以及何时被暂停或恢复。 ##### Activity生命周期 Activity的生命周期包括以下几个关键阶段: - **onCreate()**:首次创建Activity时调用。 - **onStart()**:Activity变为可见时调用。 - **onResume()**:Activity准备好接受用户输入时调用。 - **onPause()**:Activity即将失去焦点时调用。 - **onStop()**:Activity不再对用户可见时调用。 - **onDestroy()**:Activity被销毁前调用。 在Activity的生命周期中,还有一些其他的方法,如`onRestart()`、`onSaveInstanceState()`等,它们帮助开发者更好地管理Activity的状态转换。 ##### 调用父类 在覆盖Activity生命周期方法时,通常需要调用父类的同名方法以确保系统的正常行为。 ##### 服务生命周期 服务生命周期与Activity类似,但也有一些不同的方法,如`onBind()`、`onUnbind()`等,用于处理服务与客户端之间的绑定关系。 ##### 广播接收器生命周期 广播接收器没有固定的生命周期,它们只在接收到广播时被调用。 #### 九、用户界面(User Interface) Android应用的用户界面由多个视图(Views)组成,这些视图组织在一起形成视图层次结构(View Hierarchy)。 ##### 视图层次(View Hierarchy) 视图层次结构描述了视图如何组织在一起,形成了用户界面的结构。 ##### 布局(Layout) 布局是组织视图的方式,常见的布局包括LinearLayout、RelativeLayout等。布局定义了视图的位置和大小。 ##### 部件(Widgets) Widgets是视图的子类,它们提供了更复杂的用户界面元素,如按钮、编辑框等。 ##### 用户界面事件(UI Events) 用户界面事件包括触摸事件、键盘事件等。开发者可以通过监听这些事件来响应用户的操作。 ##### 菜单(Menus) 菜单是用户界面的一个重要组成部分,可以用来提供选项和命令。Android支持创建上下文菜单和选项菜单。 #### 十、高级话题(Advanced Topics) 除了基本的用户界面构建之外,Android还提供了一些高级特性来帮助开发者创建更复杂的应用。 ##### 适配器(Adapter) 适配器用于将数据集与列表视图或网格视图连接起来。例如,使用ArrayAdapter将数组数据填充到ListView中。 ##### 风格与主题(Styles and Themes) 风格和主题允许开发者为应用定义一致的外观和感觉。主题是一组样式设置,可以应用于整个应用或单个Activity。 ##### 资源和资产(Resources and Assets) 资源包括字符串、图像、布局文件等,它们存储在应用的资源目录中。资产则是一些原始文件,通常用于存储多媒体文件。 #### 十一、资源引用(Resource Reference) 资源引用是引用资源文件的一种方式,例如使用R.string.app_name来引用字符串资源。 #### 十二、国际化和本地化(Internationalization and Localization) 为了使应用适应不同的语言和地区,开发者需要支持国际化和本地化。这通常涉及到为不同地区提供不同的资源文件。 #### 十三、意图和意图过滤器(Intents and Intent Filters) 意图(Intent)用于在组件之间传递消息和数据,而意图过滤器(Intent Filters)则用于定义组件对哪些类型的Intent感兴趣。 #### 十四、数据存储(Data Storage) Android提供了多种方式来存储数据,包括文件存储、SharedPreferences、SQLite数据库以及网络存储。 ##### 系统偏好(System Preferences) 系统偏好是一种轻量级的数据存储方式,适用于保存简单的键值对数据。 ##### 文件(File) 文件存储是最基本的数据存储方式,可以将数据保存到设备的内部存储或外部存储中。 ##### 数据库(Database) SQLite数据库是一个轻量级的关系型数据库,适合存储结构化的数据。 ##### 网络(Network) 通过网络进行数据存储和传输,可以实现跨设备的数据共享。 #### 十五、内容提供器(Content Providers) 内容提供器是一种特殊的组件,用于管理应用的数据,并为其他应用提供访问接口。 ##### 内容提供器的基础知识(Content Provider Basics) 内容提供器通过URI来标识数据,支持基本的CRUD操作,即创建(Create)、读取(Read)、更新(Update)和删除(Delete)。 ##### 查询一个内容提供器(Querying a Content Provider) 开发者可以通过ContentResolver来查询内容提供器的数据,使用SQL-like的查询语法。 ##### 修改数据(Modifying Data) 内容提供器还支持通过ContentResolver来插入、更新或删除数据。 ##### 创建一个内容提供器(Creating a Content Provider) 创建内容提供器需要继承ContentProvider类,并实现其中的抽象方法。还需要在AndroidManifest.xml文件中声明这个内容提供器。 #### 十六、清单文件(The AndroidManifest.xml File) `AndroidManifest.xml`文件是应用的核心配置文件,它包含了应用的各种元数据。 ##### 清单文件结构 该文件定义了应用的基本信息,如包名、权限、Activity、Service等组件的声明。 ##### 文件约定(File Conventions) 文件约定包括命名规则、XML结构等。 ##### 文件特性(File Features) 文件特性涉及到了如何通过AndroidManifest.xml来控制应用的行为,比如设置最低API级别、定义自定义权限等。 以上就是Android开发中应用程序框架的一些关键概念和技术要点。这些基础知识对于理解和构建高质量的Android应用至关重要。






























- zengdanamy2013-10-29前一阵子在做android开发的时候下载的,不过没怎么用到
- yyhh9735086512014-05-19还可以 适合初学者
- ybyj13142013-04-24貌似帮助不是很大,还是谢谢了。
- ceabie2012-08-18哈,挺好,东西很详细,基本的东西都要,但缺少些高级应用
- 技术顽童2013-11-27说的有些空范,感谢共享。

- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 软件工程期末考试总复习题及答案.doc
- 有钱买不到刹车片.doc
- 《MATLAB程序设计教程(第二版)》第10章--MATLAB图形用户界面设计.ppt
- 国家技术创新计划项目管理实施情况汇总表(表格模板、DOC格式).doc
- SATWE-TAT-PMSAP程序中的内力调整.ppt
- 室内给水排水系统.doc
- 5t筑炉施工方案.doc
- 房地产前期策划.ppt
- 管道防腐及保温分项工程质量验收报告.doc
- 真空预压发处理软土地基施工方案(英文).doc
- 中小型机械操作工施工安全技术交底.doc
- 软件配置管理控制程序.doc
- 成套配电柜(Ⅱ)低压成套柜(屏、台).doc
- 如何快速提升组织智商(0001).doc
- 基于单片机的数字万用表方案设计书38235.doc
- 全现浇大模板多层住宅搂工程施工组织设计方案范本.doc


