欢迎来到中国铁道出版社有限公司官网!
$itImage.title$

Android系统软件开发(底层)

书      号:9787113207182

丛  书 名:“十二五”高等职业教育计算机类专业规划教材

作      者:夏德洲 张明

译      者:

开      本:16开

装      帧:平装

正文语种:

出  版 社:中国铁道出版社有限公司

定      价:32

  • 内容简介

    本书是一本介绍Android系统核心及系统级应用的技术用书,主要目标是让读者更加深入地理解Android系统,让开发过程更高效。目前企业对Android人才的需求主要在应用开发和底层系统开发两个方面,企业最紧缺的是兼具两者能力的系统开发工程师。本书共分为9章,先介绍了Android底层的架构和Android的启动过程;然后介绍Android的系统编译和移植;接下来介绍Android的JNI和HAL层,这是Android系统级应用开发的核心内容;最后通过两个实例LelHAL和SensorHAL对代码进行详细分析,让读者更加深入地理解Android底层系统开发。本书适合作为高职高专院校嵌入式技术与应用专业、移动互联应用技术专业的教材,也可供中等职业技术学校使用。
  • 前言

    Android 是Google 公司于2007 年11 月发布的一个基于Linux 内核的开源嵌
    入式操作系统。经过几年的发展,市场份额迅速壮大,现已跃居全球第一。与此
    同时,随着行业的发展,Android研发工程师日益成为IT市场的紧缺人才。目前
    国内的Android开发主要以应用开发为主,主要分为两类:(1)企业开发应用;(2)
    开发通用应用以及游戏开发。第一类开发者一般身处规模较大的公司,这些公司
    主要为自有品牌或其他品牌设计手机/平板电脑的总体方案。除了根据需求对系统
    进行定制外,更多的工作在于为这些系统编写定制的应用。第二类开发者,一般
    处于创业型公司或者是独立开发者。
    近几年各大专院校纷纷开设移动互联应用技术专业,但是在专业教学过程中
    都面临教材难觅、教材内容更新滞后等问题。虽然目前市场上的Android 开发书
    籍比较多,但几乎都是针对Android 应用层的开发。而作为一名合格的Android
    开发工程师,还要了解Android的工作机制,这就涉及Android的架构;再往下,
    就是操作系统层级了,这里应该对Linux 操作系统进行学习,熟悉其内核和运行
    原理,熟悉ARM 体系架构及常用指令,并熟悉Android 的JNI 和HAL,掌握其
    移植方法。针对以上需求我们编写了本教材。
    本书从Android底层原理开始讲起,结合真实的案例向读者详细介绍Android
    内核、Android 系统移植、Android JNI 调用和HAL 框架开发流程。全书分为9
    章,依次讲解Android 源代码的下载、编译,Android 的启动流程、HAL 层深入
    分析等,重点介绍了与Android 开发相关的底层知识,并对Android 源代码进行
    了剖析。
    本书由湖北工业职业技术学院信息与智能工程系夏德洲、张明担任主编并统
    稿,朱波任副主编。感谢唐攀无私地提供了很多帮助,Google公司大学合作部的
    朱爱民经理也对本书提供了技术和资金上的支持,在此表示衷心的感谢。
    由于时间仓促,本书可能存在一些不妥之处,请读者见谅并欢迎读者批评
    指正。
    编 者
    2015年8月
  • 目录

    第1 章 概述............................................................................................................ 1
    1.1 Android 操作系统介绍................................................................................................... 1
    1.2 Android 软件架构介绍................................................................................................... 2
    1.3 Android 子系统介绍....................................................................................................... 3
    1.4 Android 应用程序开发过程........................................................................................... 4
    小结............................................................................................................................... ....... 5
    习题............................................................................................................................... ....... 5
    第2 章 Android 源码开发环境搭建.......................................................................... 6
    2.1 搭建主机虚拟机环境.................................................................................................... 6
    2.1.1 VMware Workstation 介绍................................................................................... 6
    2.1.2 安装VMware Workstation 虚拟机软件............................................................... 7
    2.1.3 安装Ubuntu 操作系统........................................................................................ 9
    2.1.4 VMware 网络配置............................................................................................. 15
    2.1.5 VMware 与主机数据共享.................................................................................. 18
    2.1.6 VMware 添加新硬件......................................................................................... 20
    2.2 搭建L inux 编译环境................................................................................................... 22
    2.2.1 建立Ubuntu 编译环境...................................................................................... 23
    2.2.2 JDK 安装.......................................................................................................... 23
    2.2.3 安装Android 编译工具.................................................................................... 25
    2.2.4 下载Android 源码............................................................................................ 25
    2.2.5 下载Linux 内核源码........................................................................................ 26
    2.3 编译Android 源码....................................................................................................... 26
    2.3.1 Android 源码目录结构..................................................................................... 27
    2.3.2 编译Android..................................................................................................... 30
    2.3.3 编译Linux 内核................................................................................................ 33
    2.4 搭建A ndroid SDK 开发环境........................................................................................ 34
    2.4.1 下载、安装Eclipse .......................................................................................... 34
    2.4.2 安装ADT 插件................................................................................................. 34
    2.4.3 下载、配置Android SDK 工具包..................................................................... 37
    2.4.4 下载Android SDK 平台.................................................................................... 38
    2.4.5 通过Android SDK Manager 创建模拟器........................................................... 38
    2.4.6 应用程序Framework 源码级调试..................................................................... 39
    2.5 定制Android 模拟器.................................................................................................... 45
    2.6 实训:Android 4.0 开发环境搭建及源码编译............................................................ 47
    目 录 CONTENTS
    2
    Android 系统软件开发(底层)
    小结............................................................................................................................... ...... 57
    习题............................................................................................................................... ...... 57
    第3 章 Android 系统的启动.................................................................................59
    3.1 Android init 进程启动.................................................................................................. 59
    3.2 Android 本地守护进程................................................................................................. 65
    3.2.1 ueventd 进程..................................................................................................... 66
    3.2.2 adbd 进程.......................................................................................................... 67
    3.2.3 servicemanager 进程.......................................................................................... 67
    3.2.4 vold 进程........................................................................................................... 68
    3.2.5 ril-daemon 进程................................................................................................ 68
    3.2.6 surfaceflinger 进程............................................................................................ 68
    3.3 zygote 守护进程与system_server 进程......................................................................... 69
    3.3.1 zygote 守护进程的启动..................................................................................... 69
    3.3.2 zygoteInit 类的功能与system_server 进程的创建............................................. 73
    3.3.3 system_server 进程的运行................................................................................ 76
    3.3.4 HOME 桌面的启动........................................................................................... 82
    3.4 实训:通过Init.rc 脚本开机启动Android 应用程序.................................................. 84
    小结............................................................................................................................... ...... 86
    习题............................................................................................................................... ...... 86
    第4 章 Android 编译系统与定制Android 平台系统.................................................87
    4.1 Android 编译系统......................................................................................................... 87
    4.1.1 Android 编译系统介绍...................................................................................... 87
    4.1.2 Android.mk 文件............................................................................................... 88
    4.2 实训:编译HelloWorld 应用程序............................................................................... 91
    4.3 定制Android 平台系统................................................................................................ 93
    4.3.1 添加新产品编译项........................................................................................... 93
    4.3.2 定制产品的意义及定制要点............................................................................ 99
    4.4 实训:定制开机界面................................................................................................. 100
    4.5 实训:定制开机文字................................................................................................. 104
    4.6 实训:定制系统开机动画......................................................................................... 106
    小结............................................................................................................................... .... 109
    习题............................................................................................................................... .... 110
    第5 章 JNI 机制..................................................................................................111
    5.1 JNI 概述..................................................................................................................... 111
    5.2 JNI 原理..................................................................................................................... 112
    5.3 JNI 中的数据传递...................................................................................................... 114
    5.3.1 JNI 基本类型.................................................................................................. 114
    5.3.2 JNI 引用类型.................................................................................................. 115
    5.4 Java 访问本地方法..................................................................................................... 116
    3
    目录
    5.5 JNI 访问Java 成员..................................................................................................... 117
    5.5.1 取得Java 属性ID 和方法ID.......................................................................... 118
    5.5.2 JNI 类型签名.................................................................................................. 120
    5.5.3 JNI 操作Java 属性和方法.............................................................................. 121
    5.5.4 在本地代码中创建J ava 对象......................................................................... 123
    5.5.5 Java 数组在本地代码中的处理...................................................................... 124
    5.6 局部引用与全局引用................................................................................................ 126
    5.6.1 局部引用........................................................................................................ 127
    5.6.2 全局引用........................................................................................................ 128
    5.6.3 在Java 环境中保存JNI 对象......................................................................... 128
    5.7 本地方法的注册........................................................................................................ 129
    5.7.1 JNI_OnLoad 方法............................................................................................ 129
    5.7.2 RegisterNatives 方法....................................................................................... 130
    5.8 实训:JNI 调用实训.................................................................................................. 133
    小结............................................................................................................................... ... 139
    习题............................................................................................................................... ... 140
    第6 章 Android 的对象管理................................................................................ 141
    6.1 智能指针.................................................................................................................... 141
    6.2 轻量级指针................................................................................................................ 142
    6.3 RefBase 类.................................................................................................................. 145
    6.4 弱引用指针wp........................................................................................................... 150
    6.5 智能指针的示例........................................................................................................ 153
    小结............................................................................................................................... ... 154
    习题............................................................................................................................... ... 154
    第7 章 Binder 通信............................................................................................. 155
    7.1 Android 进程空间与Binder 机制............................................................................... 155
    7.1.1 Android的Binder机制..................................................................................... 156
    7.1.2 面向对象的Binder IPC ..................................................................................... 157
    7.2 Binder 框架分析........................................................................................................ 158
    7.2.1 Binder Driver................................................................................................... 158
    7.2.2 Open Binder Driver.......................................................................................... 159
    7.2.3 ServiceManager 与实名Binder ........................................................................ 161
    7.3 Android Binder 协议................................................................................................... 162
    7.3.1 BINDER_WRITE_READ 之写操作................................................................. 163
    7.3.2 BINDER_WRITE_READ 之从Binder 读出数据............................................. 164
    7.3.3 struct binder_transaction_data:收发数据包结构............................................... 165
    小结............................................................................................................................... ... 167
    习题............................................................................................................................... ... 167
    4
    Android 系统软件开发(底层)
    第8 章 Android HAL 硬件抽象层.........................................................................168
    8.1 Android HAL 介绍...................................................................................................... 168
    8.1.1 HAL 存在的原因............................................................................................ 169
    8.1.2 Module 架构.................................................................................................... 169
    8.1.3 新的HAL 架构............................................................................................... 170
    8.2 HAL Stub 构架........................................................................................................... 171
    8.2.1 HAL Stub 框架分析......................................................................................... 171
    8.2.2 HAL Stub 注册................................................................................................ 172
    8.2.3 HAL Stub 操作................................................................................................ 174
    8.3 Led HAL 实例............................................................................................................ 177
    8.3.1 Led HAL 框架................................................................................................. 177
    8.3.2 LED HAL 代码架构........................................................................................ 179
    8.3.3 LED Demo 代码分析....................................................................................... 180
    8.3.4 LedService 代码分析....................................................................................... 181
    8.3.5 Led 本地服务代码分析................................................................................... 183
    8.3.6 LED HAL 深入理解........................................................................................ 188
    8.4 实训:基于Android 4.0 平板的LED 灯控制............................................................ 188
    小结............................................................................................................................... .... 192
    习题............................................................................................................................... .... 192
    第9 章 HAL 硬件抽象层进阶Sensor HAL 实例....................................................193
    9.1 Android Sensor 架构................................................................................................... 193
    9.1.1 Android Sensor 框架........................................................................................ 193
    9.1.2 Android Sensor 工作流程................................................................................ 194
    9.2 Sensor HAL 应用程序................................................................................................. 198
    9.2.1 Sensor HAL 应用程序..................................................................................... 198
    9.2.2 Android Manager 机制..................................................................................... 198
    9.2.3 获得Sensor 系统服务..................................................................................... 200
    9.3 SensorManager ............................................................................................................ 203
    9.3.1 本地SensorManager 创建................................................................................ 203
    9.3.2 获得SensorService 服务.................................................................................. 207
    9.3.3 获得SensorService 监听及事件捕获............................................................... 210
    9.3.4 本地封装类SensorDevice ............................................................................... 213
    9.4 Sensor HAL 回顾........................................................................................................ 217
    9.5 实训:SensorDemo 的编译......................................................................................... 218
    小结............................................................................................................................... .... 219
    习题............................................................................................................................... .... 219
  • 作者介绍

    主要著译者顺序姓名学历职称学科专长通讯地址1 夏德洲 本科副教授 计算机 工作单位湖北工业职业技术学院 邮政编码 电话 2 张明本科 讲师 计算机工作单位湖北工业职业技术学院 邮政编码 电话 3 工作单位 邮政编码 电话 审校者(主审者) 学历 工作单位 邮政编码 电话 职称 工作单位 邮政编码 电话 夏德洲介绍:培训经历: 2010-06-13~21:教育部新世纪教学研究所中德国内高职教师进修项目培训班(跨专业的教学论与方法论第一期) 2011-01-18~22:香港理工大学工业中心职业教育实践教学研修班2012-06-29~07-13:澳大利亚新南威尔士州(New South Wales)西南悉尼TAFE学院培训学习科研成果: 1.2008年7月负责的《数据库技术与应用》被省教育厅评为省级精品课程,课程负责人(鄂教高函〔2008〕24号) 2.2009年6月负责的《网络工程设计与实施》被省教育厅评为省级精品课程,课程负责人(鄂教高〔2009〕12号) 3.2010年4月带领的计算机信息管理专业教学团队被省教育厅评为湖北省高等学校教学团队,团队带头人(鄂教高〔2010〕5号) 4. 2013年12月负责的“计算机信息管理”专业被省教育厅授予湖北省高等职业教育重点专业称号,专业带头人(鄂教职成〔2013〕21号)张明介绍:培训经历: 2008-07:高等学校骨干教师高级研修班(天津中德职业技术学院) 2010-07:嵌入式系统设计(华清远见嵌入式学院) 2011-01:香港理工大学工业中心职业教育实践教学研修班 2011-07:嵌入式系统设计(清华大学)科研成果: 2014-12:《全国高职院校物联网专业教学资源库》项目(教育部) 2010-04:《十堰联通基于GoogleMaps通信基站信息管理系统设计》论文(十堰职业技术学院学报) 2011-10:《基于AJAX和XML的无线通信基站查询系统设计》论文(价值工程)2013-04
  • 编辑推荐

  • 书评书荐

  • 附件下载

图书推荐