展开全部

主编推荐语

国内首本定制Android ROM分析著作,深入剖析源代码。

内容简介

国内第一本详细分析定制Android ROM的著作,详细分析了Android系统应用的源代码,使读者可以更深入了解Android内部应用是如何做到其他程序无法做到的事,并且从这些源代码中可以获得很多对开发应用程序有益的帮助。

目录

  • 封面
  • 目录
  • 扉页
  • 版权
  • 前言
  • 第1章 学习前的准备工作
  • 1.1 安装和配置JDK
  • 1.2 安装和配置Android 开发环境
  • 1.3 官方Android 源代码
  • 1.3.1 下载 Android源代码
  • 1.3.2 编译 Android源代码
  • 1.4 官方Linux内核源代码
  • 1.4.1 Linux 内核支持的 Android设备
  • 1.4.2 下载 Linux 内核源代码
  • 1.4.3 查看 Linux 内核的分支
  • 1.4.4 看看 Google 公司的人在做什么
  • 1.4.5 获取 Linux 内核的配置文件
  • 1.4.6 安装交叉编译器
  • 1.4.7 编译 Linux 内核源代码
  • 1.5 Cyanogenmod(CM)源代码
  • 1.5.1 什么是 CM
  • 1.5.2 CM支持哪些 Android 设备
  • 1.5.3 与Android 设备对应的 Codename 和 CM版本
  • 1.5.4 下载 CM Android 源代码
  • 1.5.5 下载经过 CM 适配的 Linux 内核源代码
  • 1.5.6 编译 Android源代码生成 Recovery ROM
  • 1.5.7 单独编译 CM Linux 内核源代码
  • 1.5.8 刷机!刷机!
  • 1.5.9 下载现成的 CM ROM
  • 1.6 小结
  • 第2章 提取ROOT 权限
  • 2.1 什么是ROM
  • 2.2 ROM 的种类
  • 2.3 刷官方的ROM
  • 2.3.1 下载官方的 ROM
  • 2.3.2 用无人值守方式刷 ROM
  • 2.3.3 分别刷 ROM 包含的各种镜像文件
  • 2.4 Android 手机获取ROOT 权限的必要性
  • 2.5 提取ROOT权限的原理
  • 2.6 用极客的方式提取ROOT权限
  • 2.6.1 提取 ROOT 权限的步骤
  • 2.6.2 需要一个很酷的 recovery
  • 2.6.3 su命令源代码分析
  • 2.6.4 制作第一个 Recovery 刷机包(编写 updater-script脚本文件)
  • 2.6.5 首次通过 DIY 方式提取 ROOT权限
  • 2.6.6 上传 Android应用到/system/app 目录
  • 2.7 小结
  • 第3章 Root 权限的安全屏障
  • 3.1 通过su提取Root权限的安全隐患
  • 3.2 Android 应用申请Root 权限
  • 3.3 Superuser.apk 为什么不见了
  • 3.4 申请Root权限为什么失灵了
  • 3.5 CMROM 如何为Root 权限增加安全屏障
  • 3.6 ADBShell 动作管理命令(am)
  • 3.6.1 显示窗口(Activity)
  • 3.6.2 发送广播(Broadcast)
  • 3.6.3 开始服务(Service)
  • 3.7 su 实现原理及源代码分析
  • 3.7.1 su进行 Root 授权的处理流程
  • 3.7.2 初始化调用者数据
  • 3.7.3 初始化路径
  • 3.7.4 动态宏定义
  • 3.7.5 检测数据库
  • 3.7.6 创建 LocalSocket 服务
  • 3.7.7 显示“Root 授权”窗口
  • 3.7.8 等待 Superuser 连接 LocalSocket 服务
  • 3.7.9 向Superuser 传输调用者信息
  • 3.7.10 接收用户选择的“Root 授权”策略
  • 3.7.11 允许和拒绝“Root 授权”
  • 3.8 Superuser 的实现原理与源代码分析
  • 3.8.1 “Root 授权”警告窗口的处理流程
  • 3.8.2 设置“Root 授权”窗口的控件
  • 3.8.3 获取“Root 授权”持续时间
  • 3.8.4 处理“Root 授权”策略
  • 3.8.5 读取 Su 协议数据
  • 3.8.6 获取和设置“调用者”信息
  • 3.9 小结
  • 第4章 ROM 定制
  • 4.1 刷机的那些事
  • 4.1.1 Android 刷机的本质
  • 4.1.2 制作 ROM 的不同层次
  • 4.1.3 为什么要刷机
  • 4.1.4 刷机带来的风险及其预防措施
  • 4.2 在官方ROM 的基础上定制各种镜像
  • 4.2.1 修改系统镜像(system.img)
  • 4.2.2 定制开机动画
  • 4.2.3 用户数据镜像(userdata.img)
  • 4.2.4 内存磁盘镜像(ramdisk.img)
  • 4.2.5 Linux 内核镜像(boot.img)
  • 4.2.6 制作已经有 ROOT权限的 ROM
  • 4.2.7 Recovery 镜像(recovery.img)
  • 4.2.8 缓存镜像(cache.img)
  • 4.2.9 制作完美的 Bootloader ROM
  • 4.3 直接从CM源代码制作ROM
  • 4.3.1 制作 Bootloader ROM
  • 4.3.2 制作 Recovery ROM
  • 4.4 Edify 语言
  • 4.4.1 Edify 语言概述
  • 4.4.2 测试 Edify 脚本(updater-script)
  • 4.4.3 Edify 函数详解
  • 4.4.4 Edify 语言的实现原理
  • 4.5 集成GoogleServicesFramework 和GooglePlay
  • 4.6 在CMROM中集成第三方APK 程序
  • 4.6.1 为什么不能直接复制 APK 和ODEX 文件
  • 4.6.2 校验 odex 文件需要依赖哪些 Library
  • 4.6.3 合并 APK 和 ODEX 文件
  • 4.7 小结
  • 第5章 Recovery 深度分析与定制
  • 5.1 什么是Recovery
  • 5.2 ClockworkmodRecovery 源代码解析
  • 5.2.1 如何分析 Recovery 源代码
  • 5.2.2 显示主菜单
  • 5.2.3 切换不同的菜单项
  • 5.2.4 选择菜单项
  • 5.3 Recovery支持的各种操作
  • 5.3.1 重启和关闭 Android 设备
  • 5.3.2 从SD 卡刷 ROM
  • 5.3.3 使用 sideload模式刷 ROM
  • 5.3.4 清除指定文件系统中的数据
  • 5.3.5 备份与恢复
  • 5.3.6 挂载(mount)、卸载(umount)和格式化(format)文件系统
  • 5.4 添加自己的Recovery 菜单项
  • 5.5 汉化Recovery
  • 5.5.1 汉化 Recovery的原理和步骤
  • 5.5.2 初始化字体
  • 5.5.3 绘制中文字符
  • 5.6 小结
  • 第6章 Android 系统应用的开发与测试
  • 6.1 什么是Android 系统应用
  • 6.2 为什么要研究Android 系统应用
  • 6.3 如何编写Android系统应用
  • 6.4 分析第一个Android 系统应用:计算器
  • 6.4.1 计算器应用(Calculator)的基本结构
  • 6.4.2 编译、测试和调试 Calculator
  • 6.4.3 允许其他 Android 应用通过 Calculator计算表达式
  • 6.5 小结
  • 第7章 安装与卸载应用程序(PackageInstaller)
  • 7.1 分析源代码的第一步应该做什么
  • 7.2 寻找PackageInstaller 的突破口
  • 7.3 安装和卸载Android 应用的全部方式
  • 7.4 安装Android 应用前的校验
  • 7.4.1 安装 Android应用的初始化工作
  • 7.4.2 显示校验窗口
  • 7.4.3 获取 Android应用的权限列表
  • 7.5 开始安装应用程序
  • 7.5.1 PackageInstaller 的安装原理
  • 7.5.2 静默安装 Android 应用
  • 7.6 卸载Android 应用
  • 7.6.1 PackageInstaller 卸载 Android 应用前的确认
  • 7.6.2 卸载 Android应用的原理
  • 7.6.3 静默卸载 Android 应用
  • 7.7 小结
  • 第8章 系统设置(一)
  • 8.1 为系统设置添加新功能
  • 8.1.1 系统设置的编译与权限
  • 8.1.2 修改开机动画
  • 8.1.3 寻找 Settings的入口点
  • 8.1.4 为Settings 添加新的功能项
  • 8.1.5 迁移修改开机动画的窗口类
  • 8.2 Wi-Fi
  • 8.2.1 如何为设置项添加 Switch 控件
  • 8.2.2 为“修改开机动画”设置项添加 Switch控件
  • 8.2.3 “关闭/打开”Wi-Fi
  • 8.2.4 系统信息与 SQLite 的 WAL 模式
  • 8.2.5 禁止飞行模式下单独开启 Wi-Fi
  • 8.2.6 系统设置内容提供者(Settings Content Provider)
  • 8.2.7 用广播方式设置 Switch 控件的状态
  • 8.2.8 搜索可用热点
  • 8.2.9 热点对象(AccessPoint)
  • 8.2.10 获取可用热点的各种状态
  • 8.2.11 连接可用热点
  • 8.3 蓝牙
  • 8.3.1 “关闭/打开”蓝牙
  • 8.3.2 蓝牙的本地状态
  • 8.3.3 蓝牙设置的架构与实现
  • 8.3.4 “允许/禁止”当前蓝牙设备被搜索到
  • 8.4 流量使用情况
  • 8.5 小结
  • 第9章 系统设置(二)
  • 9.1 声音
  • 9.1.1 调整音量
  • 9.1.2 响铃模式
  • 9.1.3 手机铃声
  • 9.1.4 渐强铃声
  • 9.2 显示
  • 9.2.1 调整屏幕亮度
  • 9.2.2 壁纸设置(动态扩展)
  • 9.2.3 屏幕休眠设置
  • 9.3 存储
  • 9.3.1 添加设置项
  • 9.3.2 检测存储空间
  • 9.4 语言与输入法
  • 9.4.1 改变当前语言
  • 9.4.2 设置当前的输入法
  • 9.4.3 扩展输入法
  • 9.5 开发者选项
  • 9.5.1 Root 授权
  • 9.5.2 启动 USB 调试
  • 9.5.3 启动网络 ADB 调试
  • 9.6 关于手机
  • 9.6.1 手机的状态信息
  • 9.6.2 手机的其他信息
  • 9.6.3 在线更新(OTA)
  • 9.7 小结
  • 第10章 系统设置内容提供者(SettingsProvider)
  • 10.1 系统设置数据库创建与升级
  • 10.2 读写系统设置的数据(settings.db)
  • 10.3 系统设置数据的备份和恢复
  • 10.4 小结
  • 第11章 电话与联系人
  • 11.1 拨号应用
  • 11.1.1 实现拨号盘 UI
  • 11.1.2 显示与删除电话号
  • 11.1.3 用拨号盘输入电话号
  • 11.1.4 播放和停止按键提示音
  • 11.1.5 拨打电话
  • 11.1.6 电话号到底是如何拨出的
  • 11.2 通话记录管理
  • 11.3 联系人管理
  • 11.3.1 初始化联系人列表
  • 11.3.2 获取经常呼叫的联系人
  • 11.3.3 获取所有的联系人
  • 11.3.4 来电黑名单
  • 11.4 小结
  • 第12章 短信和彩信管理
  • 12.1 显示会话列表
  • 12.1.1 主窗口类 ConversationList 和跨应用程序调用
  • 12.1.2 会话列表适配器(ConversationListAdapter)
  • 12.1.3 异步查询会话信息
  • 12.2 删除会话
  • 12.3 发送短信
  • 12.3.1 显示发送短信窗口
  • 12.3.2 发送短信
  • 12.3.3 监听发送短信状态
  • 12.4 监听短信的收发
  • 12.4.1 处理收发短信广播的流程
  • 12.4.2 处理接收短信广播
  • 12.4.3 处理发送短信广播
  • 12.5 浏览当前会话
  • 12.6 小结
  • 第13章 AndroidHome 应用:Launcher2(一)
  • 13.1 Launcher2的那些事
  • 13.2 初始化LauncherHomeUI
  • 13.2.1 Launcher2 的主布局文件(launcher.xml)
  • 13.2.2 初始化 Android 桌面
  • 13.2.3 全局对象 LauncherApplication
  • 13.2.4 初始化桌面 UI 控制器
  • 13.2.5 装载桌面 UI 视图
  • 13.2.6 任务装载器(LoaderTask)
  • 13.3 装载和绑定Workspace
  • 13.3.1 根据不同类型装载桌面视图
  • 13.3.2 装载默认的桌面 UI 数据
  • 13.3.3 添加默认桌面 UI 数据的若干方法
  • 13.3.4 从favorites表中提取和分类桌面 UI 数据
  • 13.3.5 绑定 Workspace
  • 13.3.6 回调方法
  • 13.3.7 绑定前的清理工作
  • 13.3.8 在Android 桌面上添加各种 UI 视图
  • 13.3.9 如何将快捷方式和文件夹添加到 Android 桌面上
  • 13.3.10 如何将 AppWidget 添加到 Android 桌面上
  • 13.4 装载和绑定Android 应用
  • 13.4.1 装载和绑定 Android 应用的时机
  • 13.4.2 一体化装载和绑定 Android 应用
  • 13.4.3 隐藏和显示指定的 Android 应用
  • 13.4.4 隐藏和显示系统和普通 Android 应用
  • 13.4.5 仅绑定 Android 应用
  • 13.5 小结
  • 第14章 AndroidHome 应用:Launcher2(二)
  • 14.1 Android桌面
  • 14.1.1 桌面布局(CellLayout)
  • 14.1.2 工作空间(Workspace)
  • 14.1.3 底座(Hotseat)
  • 14.1.4 桌面左右滑动(DragLayer)
  • 14.2 桌面UI
  • 14.2.1 搜索框
  • 14.2.2 拖放目标区域
  • 14.2.3 删除快捷方式和卸载 Android 应用
  • 14.2.4 编辑快捷方式
  • 14.2.5 查看快捷方式和 AppWidget 的应用信息
  • 14.3 文件夹(Folder)
  • 14.3.1 文件夹的创建过程
  • 14.3.2 将快捷方式拖入文件夹
  • 14.3.3 将快捷方式从文件夹中拖出
  • 14.3.4 显示文件夹中的快捷方式列表
  • 14.4 应用程序列表
  • 14.5 壁纸设置
  • 14.5.1 壁纸选择器
  • 14.5.2 壁纸设置与壁纸图像来源
  • 14.6 广播接收器
  • 14.6.1 安装快捷方式(InstallShortcutReceiver)
  • 14.6.2 卸载快捷方式(UninstallShortcutReceiver)
  • 14.6.3 回复默认桌面(PreloadReceiver)
  • 14.7 内容提供者(LauncherProvider)
  • 14.8 小结
  • 第15章 近场通信(NFC)的实现原理
  • 15.1 处理NFCNDEF消息的服务
  • 15.2 处理NFC消息的回调接口
  • 15.3 调用处理NFC 消息的窗口(Activity)
  • 15.4 手持设备与蓝牙传输
  • 15.5 继续尝试其他处理NFC消息的可能性
  • 15.6 通过蓝牙传递Uri
  • 15.7 小结
  • 光盘下载链接
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

人民邮电出版社

人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。