¥25.00
作品简介
本书如何才能写出贴近Android设计理念、能够更加高效和可靠运行的Android应用?通过Android的源代码去了解其底层实现细节是最重要的方法之一!然而,Android系统太过于庞大,源代码实现复杂,学习的技术门槛和时间成本都很高。有没有一种方法既能帮助开发者深入理解Android应用开发,又能不被底层大量的实现细节所羁绊,迅速掌握编写高质量Android应用所需的知识?《Android开发精要》针对这个问题给出了完美的答案!它从Android繁杂的源代码中抽取出了Android开发的“精华”和“要点”,剥离了大量琐碎的底层实现细节,进行了高度概括和总结,不仅能帮助开发者迅速从宏观上理解整个Android系统的设计理念,而且能帮助开发者迅速从微观上掌握核心知识点的原理,从而编写出高质量的Android应用。
范怀宇:资深Android开发工程师,毕业于清华大学,从事移动开发多年,对Android系统有颇为深入的研究,开发经验十分丰富。曾就职于网易有道,负责完成了有道词典Android版、网易掌上邮Android版、网易八方Android版等项目的开发工作,现就职于豌豆实验室 ,负责豌豆荚2.0版本的设计和开发。
作品目录
前言
为什么要写这本书
本书主要内容
本书特色
本书面向的读者
如何阅读本书
资源及勘误
致谢
第1章 Android的系统架构
1.1 Android系统架构概况
1.1.1 应用层
1.1.2 框架层
1.1.3 运行时
1.1.4 核心类库
1.1.5 硬件抽象层和Linux内核
1.2 Android的核心功能模块
1.2.1 界面框架
1.2.2 数据存储
1.2.3 网络通信
1.2.4 地理信息
1.2.5 图形和多媒体处理
1.2.6 外部设备
1.2.7 特色功能模块
1.3 Android的架构特征和设计思想
1.3.1 平台开放性
1.3.2 基于组件的应用设计
1.3.3 基于网络服务的平台
1.4 小结
第2章 Android源代码的下载和编译
2.1 Android源代码的获取和编译
2.1.1 环境搭建
2.1.2 源代码获取
2.1.3 源代码的编译
2.2 Android源代码结构
2.2.1 框架层源代码目录frameworks
2.2.2 应用层源代码目录packages
2.2.3 其他源代码目录
2.3 Android源代码的阅读和编辑
2.3.1 用Eclipse阅读源代码
2.3.2 反馈Bug
2.3.3 提交修改
2.4 小结
第3章 Android组件模型解析
3.1 基于Mashup的应用设计
3.1.1 Android中的Mashup
3.1.2 基于Mashup的Android应用模型
3.1.3 基于Mashup的应用架构特征
3.2 界面组件Activity解析
3.2.1 界面组件的功能和特征
3.2.2 界面组件的开发
3.2.3 界面组件的数据结构
3.3 服务组件Service解析
3.3.1 服务组件的功能和特征
3.3.2 服务组件的开发和使用
3.3.3 服务组件的进程间通信模型
3.4 触发器组件Broadcast Receiver解析
3.4.1 触发器组件的功能和特征
3.4.2 触发器组件的使用
3.4.3 广播事件的发送
3.5 数据源组件Content Provider解析
3.5.1 数据源组件的定位和操作
3.5.2 数据源组件的开发
3.5.3 数据源组件的实现细节
3.6 应用配置文件解析
3.6.1 权限配置
3.6.2 环境配置
3.6.3 应用和组件配置
3.7 小结
第4章 Android的Intent机制
4.1 Intent对象的作用和构成
4.1.1 Intent对象的作用
4.1.2 Intent对象的构成
4.1.3 Intent对象解析
4.1.4 Intent Filter对象
4.2 意图匹配
4.2.1 意图匹配的算法流程
4.2.2 匹配组件的选择
4.2.3 意图匹配的优化
4.3 意图机制的应用
4.3.1 意图机制在界面组件中的应用
4.3.2 意图机制在服务组件中的应用
4.3.3 意图机制在触发器组件中的应用
4.4 小结
第5章 组件生命周期解析
5.1 应用进程模型
5.1.1 应用、组件和进程
5.1.2 组件的应用进程配置
5.2 应用进程托管
5.2.1 为什么需要进程托管
5.2.2 进程优先级
5.2.3 进程回收算法
5.2.4 进程的强行终止
5.2.5 掌控进程的优先级
5.3 组件的生命周期模型
5.3.1 界面组件的生命周期
5.3.2 服务组件的生命周期
5.3.3 触发器组件的生命周期
5.3.4 数据源组件的生命周期
5.3.5 应用环境的生命周期
5.4 任务和界面组件栈
5.4.1 界面组件的运行模式
5.4.2 组件的任务黏度
5.4.3 实际应用中的任务控制
5.5 小结
第6章 组件间的数据传输
6.1 利用Intent对象进行数据传输
6.1.1 利用Intent对象回传数据
6.1.2 利用Intent对象传递数据的优缺点
6.2 利用文件进行数据共享
6.2.1 利用文件进行数据共享的实现
6.2.2 利用文件进行数据共享的优缺点
6.3 利用应用环境的全局数据共享
6.3.1 利用应用环境对象共享数据的实现
6.3.2 利用应用环境对象共享数据的优缺点
6.4 利用组件共享数据
6.4.1 利用数据源组件共享数据
6.4.2 利用服务组件共享数据
6.5 小结
第7章 Android控件解析
7.1 Android的控件框架
7.1.1 Android控件构成
7.1.2 Android交互事件传输
7.1.3 Android控件属性
7.1.4 控件的丈量和绘制
7.2 Android的窗口机制
7.2.1 窗口机制的基本原理
7.2.2 界面组件和窗口
7.2.3 对话框
7.2.4 弹出窗口
7.3 Android的基本控件介绍
7.3.1 文本控件
7.3.2 图像控件
7.3.3 Surface控件
7.3.4 Layout控件
7.3.5 适配器控件
7.3.6 选项卡控件
7.3.7 浏览器控件
7.4 自定义控件
7.4.1 控件的定制
7.4.2 复合控件
7.4.3 自绘控件
7.5 Android界面新发展
7.5.1 动作栏
7.5.2 界面片段
7.5.3 重新定制选项卡
7.5.4 交互界面的适配
7.6 小结
第8章 应用资源
8.1 Android应用资源体系
8.1.1 Android的应用资源构成
8.1.2 应用资源的适配
8.1.3 应用资源的动态匹配
8.2 应用资源的调用
8.2.1 应用资源的编译和R类
8.2.2 应用资源的管理
8.2.3 使用应用资源
8.3 应用资源的类型
8.3.1 界面和样式
8.3.2 字符串和常量
8.3.3 图像、图形和动画
8.3.4 其他资源文件
8.4 小结
第9章 数据存储
9.1 Android的文件系统
9.1.1 Android的目录结构
9.1.2 Android的应用数据存储
9.1.3 Android的文件操作
9.2 使用设置文件
9.2.1 设置文件的存储和使用
9.2.2 设置界面组件
9.3 使用数据库
9.3.1 Android数据库实现
9.3.2 Android数据库的使用
9.4 存储在云端
9.4.1 云端存储的架构
9.4.2 云端存储的使用
9.5 小结
第10章 网络通信
10.1 Web通信
10.1.1 基于HTTP的网络连接
10.1.2 联网方式的选择
10.1.3 WiFi的管理
10.2 蓝牙
10.2.1 Android的蓝牙实现
10.2.2 基于蓝牙的通信
10.3 近场通信
10.3.1 基于NFC的识别和通信
10.3.2 基于NFC的点对点通信
10.4 基于WiFi连接的P2P通信
10.4.1 Android 4.0的P2P连接实现
10.4.2 使用Socket进行数据传输
10.5 小结
第11章 地理信息服务
11.1 Android的定位服务
11.1.1 定位服务框架
11.1.2 位置信息源
11.1.3 定位选择
11.1.4 定位实例
11.2 Android的地址服务
11.2.1 地址服务的框架
11.2.2 使用地址服务
11.3 Android的地图服务
11.3.1 使用地图
11.3.2 其他使用地图服务的方式
11.4 小结
第12章 多媒体处理
12.1 Android的图像处理
12.1.1 图像的表示
12.1.2 图像的读取和输出
12.1.3 图像的呈现
12.1.4 图像的管理
12.2 Android的音视频处理
12.2.1 Android音视频的支持框架
12.2.2 Android音视频的播放
12.2.3 Android音视频的录制
12.3 Android中相机的使用
12.4 小结
第13章 其他重要模块
13.1 通话和短信
13.1.1 Android的通话和短信框架
13.1.2 通话的处理
13.1.3 短信的发送和接收
13.2 App Widget的使用和实现
13.2.1 Android的App Widget框架
13.2.2 App Widget的界面构造和Remote Views
13.2.3 App Widget的事件处理和Pending Intent
13.3 Android的应用内搜索
13.3.1 Android应用内搜索实现框架
13.3.2 为应用定制搜索功能
13.3.3 全局搜索功能
13.4 Android的全局通知机制
13.4.1 全局通知的类型和实现
13.4.2 Toast的使用
13.4.3 状态栏通知
13.5 Android联系人处理
13.5.1 Android联系人数据存储框架
13.5.2 Android联系人操作
13.6 小结
载入中
热门划线
Dalvik没有沿用传统的Java二进制码(Java Bytecode)作为其一次编译的中间文件,而是应用了新的二进制码格式文件.dex。在Android应用的编译过程中,它会先生成若干个.class文件,然后统一转换成一个.dex文件。在转换过程中,Android会对部分.class文件中的指令做转义,使用Dalvik特有的指令集OpCodes来替换,以提高执行效率。同时,.dex会整合多个.class文件中的重复信息,并对冗余部分做全局的优化和调整,合并重复的常量定义,以节约常量池耗费的空间。这使得最终得到的.dex文件通常会比将.class文件压缩打包得出的.jar文件更精简。4 人
而对于开发者而言,框架层最直观的体现就是SDK,它通过一系列的Java功能模块,来实现应用所需的功能。SDK的设计决定了上层应用的开发模式、开发效率及能够实现的功能范畴。因此,对于开发者而言,关注SDK的变迁是一件很有必要的事情,SDK每个新版本的诞生,都意味着一些老的接口会被调整或抛弃,另一些新的接口和功能火热出炉。开发者不但要查看和关注那些被修改的接口,来检查应用的兼容性,并采取相应的策略去适应这些变化,更重要的是,开发者还要追踪新提供的接口,寻找改进应用的机会,甚至是寻求开发新应用的可能。2 人
Android的每个交互界面都由一棵控件树构成。控件树中的控件(Widget)对象皆派生自android.view.View类,而其中非子节点的控件都派生自android.view.ViewGroup类,可称之为容器控件。2 人
编写一个个独立的组件,然后通过配置文件对每个组件的需求和能力进行描述,Android系统会统一调度这些组件2 人
与界面组件的通信连接,需要通过Intent(android.content.Intent)对象来建立;而与数据源组件的通信,则通过URI地址来定位并搭建连接通路。2 人
C/S和B/S2 人
MIME type2 人
Android的每个应用进程都有一个应用环境对象(Application Context)。小数据量的共享数据可以通过它来进行存储,从而避免因数据在界面组件间连续传递而增加的额外开销和复杂性。2 人
系统会提前将资源文件进行预编译,同时生成与应用中的资源相对应的R类。2 人
Activity.setContentView方法,可以将相关资源信息设置到界面的内容区域中。2 人
大家都喜欢
高效前端:Web高效编程与优化实践
42.50元μC/OS-III源码分析笔记
30.00元SQL Server 2014从入门到精通
29.28元Maven应用实战
24.50元云数据中心网络与SDN
57.50元