zoukankan      html  css  js  c++  java
  • Android开发权威指南(第2版)新书发布


    《Android 开发权威指南(第二版)》是畅销书《Android开发权威指南》的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45 章精彩内容供读者学习。  《Android开发权威指南(第二版)》全面介绍了Android应用开发的各种技术,主要内容包括Android的四大应 用程序组件(Activity、Service、Content Provider和Broadcast Receiver)、布局、菜单、控件、资源和本地化、可视化UI设计、对话框、Toast和通知栏(Notification)、Fragment、 ActionBar、拖放技术、数据存储技术、Android支持的各种组件技术、通信技术(蓝牙、NFC、网络等)、异步装载、推送技术、多媒体、2D 绘图技术、OpenGL ES、桌面小部件、动态壁纸、短信和彩信、传感器、GPS、谷歌地图、人机交互、输入法开发、Android NDK开发、测试驱动开发、性能优化等。  《Android开发权威指南(第二版)》并不局限于介绍Android的各种理论知识,而是从“实战”的角 度介绍开发技术。《Android开发权威指南(第二版)》的所有示例都是精心设计的,足以使读者对当前讲解的理论知识驾轻就熟。这些示例中的很多例子都 源于真实的项目,读者可以对这些示例的源程序稍加改动就可用于自己的项目中。《Android开发权威指南(第二版)》除了为每一个知识点提供完整的示例 外,最后还提供了两个完整的项目:笑脸连连看和NFC侠。这两个项目极具参考价值,尤其是NFC侠,是笔者维护的一个开源项目,用于在不支持NFC的手机 或Android模拟器上开发和测试NFC应用。读者可以关注我的Blog(http://blog.csdn.net/nokiaguy)来获得NFC 侠以及本书的最新信息。  《Android开发权威指南(第二版)》适合有一定Java基础的读者阅读,如果读者已经掌握了Java的基本语法,那么 《Android开发权威指南(第二版)》将会成为您的首选和枕边书,您将从书中获得更多有价值的Android开发技术。

    【1】亚马逊

    【2】当当网

    【3】京东商城

    【4】互动网

    【5】淘宝网

     

    目 录


    第1章 初识Android平台 1
    1.1 Android简介 1
    1.2 Android的制胜法宝 2
    1.3 Android的版本发展历程 3
    1.3.1 Android 1.5(纸杯蛋糕) 3
    1.3.2 Android 1.6(甜甜圈) 4
    1.3.3 Android 2.1(松饼) 4
    1.3.4 Android 2.2(冻酸奶) 5
    1.3.5 Android 2.3(姜饼) 5
    1.3.6 Android 3.0(蜂巢) 6
    1.3.7 Android 4.0(冰激凌三明治) 6
    1.3.8 Android 4.1/4.2(果冻豆) 7
    1.4 Android的系统架构 8
    1.5 小结 9

    第2章 搭建Android开发和测试环境 10
    2.1 搭建Android开发环境需要些什么 10
    2.2 安装Java开发环境 10
    2.2.1 安装JDK 11
    2.2.2 安装和配置Eclipse 11
    2.3 安装Android开发环境 12
    2.3.1 下载和安装Android SDK 13
    2.3.2 下载和安装Android NDK 13
    2.3.3 安装和配置Eclipse插件:ADT 14
    2.4 配置Android测试环境 15
    2.4.1 建立Android虚拟设备(AVD) 15
    2.4.2 启动Android模拟器 16
    2.4.3 安装真机测试环境 17
    2.5 小结 18

    第3章 第一个Android应用程序 19
    3.1 从第一个Android程序中可以学到什么 19
    3.2 建立Android工程 19
    3.3 Android工程的结构 21
    3.4 在窗口上放两个按钮 22
    3.5 编写窗口类 23
    3.6 修改字符串资源 24
    3.7 运行Android应用程序 25
    3.8 调试Android应用程序 27
    3.9 签名Android应用程序 27
    3.10 小结 29

    第4章 Android应用程序架构 30
    4.1 Android应用程序中的资源 30
    4.1.1 资源存放在哪里 30
    4.1.2 资源的基本使用方法 30
    4.2 Android的应用程序组件 32
    4.2.1 窗口(Activity)组件 32
    4.2.2 服务(Service)组件 32
    4.2.3 广播接收者(Broadcast receivers)组件 33
    4.2.4 内容提供者(Content Provider)组件 33
    4.3 AndroidManifest.xml文件的结构 33
    4.4 小结 34

    第5章 窗口(Activity)与视图(View) 35
    5.1 声明和使用Activity 35
    5.1.1 Activity的基本用法 35
    5.1.2 同时适合手机和平板电脑的窗口风格 38
    5.2 Activity的生命周期 40
    5.3 窗口的常用事件 43
    5.3.1 设置窗口标题事件(onTitleChanged) 44
    5.3.2 键盘按下和抬起事件(onKeyDown和onKeyUp) 45
    5.3.3 任意情况下捕捉键盘事件(dispatchKeyEvent) 48
    5.3.4 回退事件(onBackPressed) 49
    5.3.5 按键长按事件(onKeyLongPress) 50
    5.3.6 屏幕触摸事件(onTouchEvent) 50
    5.3.7 窗口获得焦点事件(onWindowFocusChanged) 51
    5.4 在不同Activity之间传递数据 52
    5.4.1 使用Intent传递数据 53
    5.4.2 使用静态变量传递数据 54
    5.4.3 使用剪贴板传递数据 55
    5.4.4 使用全局对象传递数据 57
    5.5 从Activity返回数据 59
    5.6 视图(View) 61
    5.6.1 视图简介 61
    5.6.2 使用XML布局文件定义视图 61
    5.6.3 在代码中控制视图 62
    5.7 显示系统窗口 64
    5.7.1 直接拨号 65
    5.7.2 将电话号传入拨号程序 65
    5.7.3 调用拨号程序 65
    5.7.4 浏览网页 65
    5.7.5 查看联系人 66
    5.7.6 显示系统设置界面(设置主界面、Wi-Fi设置界面) 66
    5.7.7 启动处理音频的程序 66
    5.7.8 回到Home窗口(相当于按Home键) 66
    5.8 与Activity相关的技巧与特效 67
    5.8.1 全屏显示(隐藏标题栏和状态栏) 67
    5.8.2 定制窗口标题栏 71
    5.8.3 为程序添加Splash 75
    5.8.4 改变窗口大小、位置和透明度 76
    5.8.5 按两次关闭窗口 79
    5.8.6 关闭所有的窗口 79
    5.8.7 窗口截屏 80
    5.9 小结 82

    第6章 Intent与Intent Filter 83
    6.1 Android系统的信使:Intent 83
    6.2 Intent对象 84
    6.2.1 Intent对象可以封装和传递哪些信息 84
    6.2.2 组件名(Component name) 84
    6.2.3 动作(Action) 85
    6.2.4 种类(Category) 86
    6.2.5 数据(Data) 87
    6.2.6 附加数据(Extra) 88
    6.2.7 标志(Flags) 89
    6.3 显式和隐式访问窗口 89
    6.4 跨应用程序访问窗口 90
    6.5 Android系统的过滤机制大揭秘 96
    6.5.1 过滤条件的设置 96
    6.5.2 过滤器的筛选规则 97
    6.5.3 示例:过滤机制应用演示 101
    6.6 Android源代码与过滤器 104
    6.6.1 系统内置程序有哪些窗口可以利用 104
    6.6.2 显示计算器(Calculator) 105
    6.6.3 用浏览器(Browser)显示网页 106
    6.6.4 拨打电话(Phone)与授权 108
    6.7 获取第三方程序中可调用的窗口 109
    6.8 传递附加数据(Extra) 111
    6.9 解析数据 113
    6.10 小结 114

    第7章 窗口(Activity)高级技术 115
    7.1 Activity XML属性详解 115
    7.1.1 设置Activity的基本信息 115
    7.1.2 屏幕方向切换(android:screenOrientation) 117
    7.1.3 阻止Activity销毁和重建(android:configChanges) 119
    7.1.4 允许Activity被实例化(android:enabled) 123
    7.1.5 在最近应用列表中显示(android:excludeFromRecents) 124
    7.1.6 允许其他程序访问当前窗口(android:exported) 124
    7.1.7 硬件加速(android:hardwareAccelerated) 125
    7.1.8 在多进程中创建窗口实例(android:multiprocess) 125
    7.1.9 无法返回的Activity(android:noHistory) 125
    7.1.10 指定要返回的窗口(android:parentActivityName) 126
    7.1.11 使窗口受到权限的保护(android:permission) 126
    7.1.12 改变窗口所在的进程(android:process) 127
    7.1.13 不保存窗口的状态(android:stateNotNeeded) 129
    7.1.14 窗口的主题(android:theme) 129
    7.1.15 扩展窗口UI(android:uiOptions) 129
    7.1.16 设置输入法显示模式(android:windowSoftInputMode) 130
    7.2 深入探索Activity从创建到销毁的过程 130
    7.2.1 任务(Task)与回退栈(Back Stack) 131
    7.2.2 保存窗口(Activity)状态 133
    7.2.3 管理任务和回退栈 134
    7.2.4 Activity的4种创建模式 135
    7.2.5 用Java代码设置窗口创建模式 141
    7.2.6 窗口的乾坤大挪移(affinity) 144
    7.2.7 销毁不再使用的窗口 147
    7.3 Activity的别名 149
    7.4 小结 151

    第8章 布局 152
    8.1  Android的五大布局 152
    8.1.1 框架布局(FrameLayout) 152
    8.1.2 线性布局(LinearLayout) 154
    8.1.3 相对布局(RelativeLayout) 158
    8.1.4 表格布局(TableLayout) 159
    8.1.5 绝对布局(AbsoluteLayout) 160
    8.2 属性资源与Android命名空间 160
    8.3 布局属性 162
    8.4 布局高级技术 163
    8.4.1 布局别名 163
    8.4.2 重用布局 164
    8.4.3 优化布局 166
    8.4.4 动态装载布局 167
    8.4.5 动态设置布局属性 169
    8.4.6 从右到左布局(RTL Layout) 169
    8.5 小结 170

    第9章 菜单 171
    9.1 菜单的基本用法 171
    9.1.1 创建选项菜单(Options Menu) 171
    9.1.2 关联Activity 173
    9.1.3 响应菜单的单击动作 173
    9.1.4 动态添加、修改和删除选项菜单 174
    9.1.5 带复选框和选项按钮的子菜单 175
    9.1.6 上下文菜单 176
    9.1.7 菜单事件 177
    9.1.8 从菜单资源中装载菜单 177
    9.2 菜单特效 177
    9.2.1 自定义菜单 178
    9.2.2 模拟UCWeb菜单效果 180
    9.3 小结 184

    第10章 Android的资源详解(一) 185
    10.1 创建资源 185
    10.1.1 手工创建资源文件 185
    10.1.2 用ADT模板创建本地化图标资源 186
    10.1.3 用ADT模板创建XML文件资源 188
    10.2 使用资源 188
    10.2.1 生成资源类文件(R.java) 188
    10.2.2 从XML文件中访问资源 190
    10.2.3 使用Java代码访问资源 191
    10.2.4 Java反射技术与枚举资源 192
    10.3 字符串(String)资源 193
    10.3.1 普通字符串 193
    10.3.2 字符串数组 194
    10.3.3 复数字符串 194
    10.3.4 在字符串中使用引号 195
    10.3.5 用占位符格式化字符串 195
    10.3.6 用HTML标签格式化字符串资源 195
    10.4 值(values)资源 196
    10.4.1 整数(Integer)资源 196
    10.4.2 尺寸(Dimension)资源 197
    10.4.3 布尔(Boolean)资源 198
    10.4.4 颜色(Color)资源 198
    10.4.5 ID资源 199
    10.4.6 整数数组(Integer-Array)资源 200
    10.4.7 类型数组(Typed-Array)资源 200
    10.5 菜单(menu)资源 200
    10.6 图像(drawable)资源 203
    10.6.1 普通图像资源 203
    10.6.2 XML图像资源 204
    10.6.3 Nine-Patch图像资源 204
    10.6.4 XML Nine-Patch图像资源 205
    10.6.5 图层(Layer)资源 205
    10.6.6 图像状态(State)资源 206
    10.6.7 图像级别(Level)资源 207
    10.6.8 淡入淡出(Cross-fade)资源 208
    10.6.9 嵌入(Inset)图像资源 210
    10.6.10 剪切(Clip)图像资源 210
    10.6.11 外形(Shape)资源 211
    10.7 小结 212

    第11章 Android的资源详解(二) 213
    11.1 动画资源 213
    11.1.1 属性(Property)动画 213
    11.1.2 帧(Frame)动画 215
    11.1.3 移动补间(TranslateTween)动画 217
    11.1.4 循环向右移动的EditText与上下弹跳的球 218
    11.1.5 缩放补间(Scale Tween)动画 220
    11.1.6 跳动的心 221
    11.1.7 旋转补间(Rotate Tween)动画 222
    11.1.8 旋转的星系 222
    11.1.9 透明度补间(Alpha Tween)动画 223
    11.1.10 投掷炸弹 224
    11.1.11 震动渲染器(Shake Interpolator) 226
    11.1.12 自定义渲染器(Interpolator) 227
    11.2 风格(Style)资源与主题(Theme) 229
    11.3 小结 232

    第12章 资源的本地化 233
    12.1 建立本地化的资源目录 233
    12.2 资源目录的命名规则 237
    12.3 建立别名资源 237
    12.3.1 图像别名资源 237
    12.3.2 布局别名资源 238
    12.3.3 字符串别名资源 238
    12.3.4 其他简单值别名资源 238
    12.4 资源目录的优先级 238
    12.5 屏幕适配 239
    12.5.1 屏幕适配要考虑的因素 239
    12.5.2 适配不同屏幕可以采用的规则 241
    12.5.3 屏幕尺寸和屏幕密度 241
    12.5.4 位置、尺寸和字体应使用屏幕密度单位 244
    12.5.5 与屏幕适配有关的标识符 244
    12.5.6 影响屏幕适配的重要因素:布局和图像 245
    12.5.7 典型的屏幕适配案例 246
    12.5.8 在Google Play上限制屏幕尺寸和屏幕密度 247
    12.5.9 在Android模拟器上测试各种屏幕尺寸和密度 248
    12.6 小结 248

    第13章 Android的控件详解(一) 249
    13.1 显示文本的控件(TextView) 249
    13.1.1 显示富文本(URL、不同大小、字体、颜色的文本) 250
    13.1.2 用标签在TextView控件上显示图像 252
    13.1.3 单击链接弹出Activity 254
    13.1.4 为指定文本添加背景 256
    13.2 编辑文本的控件(EditText) 258
    13.2.1 像QQ一样输入表情图像 259
    13.2.2 在EditText中输入特定的字符 260
    13.2.3 AutoCompleteTextView(自动完成输入内容的控件) 261
    13.3 按钮(Button)和复选框(Checkbox)控件 263
    13.3.1 Button(普通按钮控件) 263
    13.3.2 图文混排的按钮 265
    13.3.3 ImageButton(图像按钮控件) 266
    13.3.4 RadioButton(选项按钮控件) 267
    13.3.5 ToggleButton(开关状态按钮控件) 267
    13.3.6 CheckBox(复选框控件) 268
    13.4 图像控件(ImageView) 270
    13.4.1 ImageView控件的基本用法 270
    13.4.2 显示指定区域的图像 270
    13.4.3 缩放和旋转图像 272
    13.5 时间与日期控件 273
    13.5.1 DatePicker(输入日期的控件) 273
    13.5.2 TimePicker(输入时间的控件) 274
    13.5.3 DatePicker、TimePicker与TextView同步显示日期和时间 274
    13.5.4 AnalogClock和DigitalClock(显示时钟的控件) 275
    13.6 小结 275

    第14章 Android的控件详解(二) 276
    14.1 进度条控件 276
    14.1.1 ProgressBar(进度条控件) 276
    14.1.2 SeekBar(拖动条控件) 278
    14.1.3 设置ProgressBar和SeekBar的颜色及背景图 278
    14.1.4 RatingBar(评分控件) 281
    14.2 列表控件 282
    14.2.1 ListView(普通列表控件) 282
    14.2.2 为ListView列表项添加复选框和选项按钮 285
    14.2.3 对列表项进行增、删、改操作 286
    14.2.4 改变列表项的背景色 290
    14.2.5 ListActivity(封装ListView的Activity) 290
    14.2.6 ExpandableListView(可扩展的列表控件) 291
    14.2.7 Spinner(下拉列表控件) 293
    14.3 GridView(网格控件) 296
    14.4 TabHost(标签控件) 298
    14.5 ViewStub(惰性装载控件) 299
    14.6 小结 300

    第15章 可视化UI设计 301
    15.1 拖放控件 301
    15.2 设置视图属性 303
    15.3 预览各种屏幕尺寸 303
    15.4 语言和地区的本地化测试 304
    15.5 其他可视化功能 304
    15.6 小结 305

    第16章 对话框、Toast与通知栏(Notification) 306
    16.1 对话框 306
    16.1.1 带2个按钮(确认/取消)的对话框 306
    16.1.2 带3个按钮(覆盖/忽略/取消)的对话框 307
    16.1.3 简单列表对话框 308
    16.1.4 单选列表对话框 309
    16.1.5 多选列表对话框 311
    16.1.6 进度对话框 312
    16.1.7 登录对话框 315
    16.1.8 使用Activity托管对话框 316
    16.2 Toast 318
    16.3 通知(Notification) 319
    16.3.1 在状态栏上显示通知信息 319
    16.3.2 永久存在的Notification 322
    16.3.3 自定义Notification 323
    16.4 小结 324

    第17章 封装UI和代码利器——Fragment 325
    17.1 Fragment简介 325
    17.2 什么时候使用Fragment 326
    17.3 按照Fragment设计原则编写程序 328
    17.4 Fragment的生命周期 332
    17.5 创建Fragment 341
    17.5.1 通过XML布局文件创建Fragment 341
    17.5.2 通过Java代码创建Fragment 342
    17.5.3 创建无UI的Fragment 344
    17.5.4 在低版本Android中使用Fragment(Support Library) 345
    17.6 Activity与Fragment之间的交互 346
    17.6.1 Fragment与Activity之间的交互 346
    17.6.2 Fragment的回调机制 348
    17.7 Fragment状态的持久化 351
    17.8 Fragment与回退栈(导航) 355
    17.9 FragmentManager与FragmentTransaction 357
    17.9.1 管理Fragment事务 357
    17.9.2 查找Fragment 357
    17.9.3 跟踪回退栈状态 358
    17.9.4 恢复历史状态 358
    17.9.5 管理Fragment的状态 359
    17.9.6 添加、删除和替换Fragment 359
    17.9.7 分离(Detach)与附加(Attach)Fragment 360
    17.9.8 显示和隐藏Fragment 361
    17.10 Fragment扩展 361
    17.10.1 ListFragment 361
    17.10.2 DialogFragment 363
    17.10.3 其他Fragment扩展类 366
    17.11 Fragment模板源代码分析 366
    17.12 小结 368

    第18章 动作栏——ActionBar 369
    18.1 ActionBar简介 369
    18.2 ActionBar基础 370
    18.2.1 隐藏/显示ActionBar 370
    18.2.2 添加和响应Action按钮 372
    18.3可上下两分的ActionBar 374
    18.4 应用程序图标导航 376
    18.5 收缩和展开Action View 377
    18.6 ActionProvider 380
    18.6.1 分享信息(ShareActionProvider) 380
    18.6.2 定制ActionProvider 382
    18.7 导航标签 384
    18.8 下拉导航列表 388
    18.9 小结 390

    第19章 Android的拖放技术 391
    19.1 Android中的拖放操作 391
    19.2 拖放状态与拖放处理 391
    19.3 拖动阴影 392
    19.4 示例:拖动复制图像 393
    19.5 小结 395

    第20章 数据存储解决方案 396
    20.1 读写key-value对:SharedPreferences 396
    20.2 文件流操作 397
    20.2.1 openFileOutput和openFileInput方法 398
    20.2.2 读写SD卡中的文件 399
    20.3 读写JSON格式的数据 400
    20.4 SQLite数据库 404
    20.4.1 SQLite数据库管理工具 404
    20.4.2 SQLiteOpenHelper类与自动升级数据库 405
    20.4.3 数据绑定与SimpleCursorAdapter类 406
    20.4.4 操作SD卡上的数据库 409
    20.4.5 将数据库与应用程序一起发布 410
    20.4.6 内存数据库 411
    20.5 小结 412

    第21章 内容提供者(Content Provider) 413
    21.1 Content Provider的作用 413
    21.2 获得系统数据 413
    21.2.1 读取联系人信息 414
    21.2.2 查看收件箱的短信 415
    21.3 自定义Content Provider 417
    21.3.1 查询城市信息 417
    21.3.2 为Content Provider添加访问权限 422
    21.4 如何查找系统提供的Content Provider 423
    21.5 小结 425

    第22章 广播接收器(Broadcast Receiver) 426
    22.1 什么是广播 426
    22.2 接收系统广播 427
    22.2.1 短信拦截 427
    22.2.2 用代码注册广播接收器 429
    22.2.3 广播接收器的优先级 429
    22.2.4 来去电拦截 430
    22.2.5 截获屏幕休眠与唤醒 432
    22.2.6 开机自动运行 433
    22.2.7 显示手机电池的当前电量 434
    22.3 发送广播 434
    22.4 小结 435

    第23章 服务(Service) 436
    23.1 Service基础 436
    23.1.1 Service的生命周期 436
    23.1.2 开机启动Service 438
    23.2 跨进程访问(AIDL服务) 439
    23.2.1 什么是AIDL服务 439
    23.2.2 建立AIDL服务的步骤 439
    23.2.3 创建和调用AIDL服务 440
    23.2.4 传递复杂数据的AIDL服务 442
    23.2.5 AIDL与来去电自动挂断 445
    23.3 小结 447

    第24章 Android的组件开发 448
    24.1 Android支持哪些组件开发方式 448
    24.2 引用jar文件 449
    24.3 跨工程引用 450
    24.4 引用NDK Library 451
    24.5 动态引用APK文件 451
    24.6 动静结合的组件 453
    24.7 脚本类型组件(JavaScript)与WebView控件 453
    24.8 如何确定动态组件是否安装 457
    24.9 升级动态组件 459
    24.10 小结 461

    第25章 Android的蓝牙开发技术 462
    25.1 蓝牙简介 462
    25.2 打开和关闭蓝牙设备 462
    25.3 搜索蓝牙设备 463
    25.4 蓝牙数据传输 465
    25.5 蓝牙通信一定需要UUID吗 467
    25.6 小结 467

    第26章 近距离无线通信——NFC技术 468
    26.1 NFC简介 468
    26.2 NFC、蓝牙和红外之间的差异 469
    26.3 NFC技术的未来前景 470
    26.4 Android中的NFC技术 471
    26.4.1 NDEF与非NDEF数据 471
    26.4.2 NFC的三重过滤机制 471
    26.4.3 开启Android的NFC功能 472
    26.4.4 编写NFC程序的基本步骤 473
    26.5 测试NFC程序需要的设备 474
    26.6 让Android手机自动运行程序 475
    26.6.1 向NFC标签写入数据的基本步骤 475
    26.6.2 向NFC标签写入启动Android应用程序的消息 476
    26.7 让Android手机自动打开网页 483
    26.8 读写NFC标签中的文本 485
    26.8.1 实现读写文本数据应用的基本思路 485
    26.8.2 如何将NFC标签变成NDEF文本格式 485
    26.8.3 NDEF文本格式解析 486
    26.8.4 实现读写文本数据的Android应用程序 490
    26.9 读写NFC标签中的Uri 496
    26.9.1 NDEF Uri格式解析 496
    26.9.2 实现读写Uri的Android应用程序 499
    26.10 利用NFC标签支持的数据格式进行过滤 502
    26.11 处理任意NFC标签 504
    26.12 读写非NDEF格式的数据 505
    26.13 Android Beam技术与数据交互 507
    26.13.1 传递NDEF消息 507
    26.13.2 传输文件 511
    26.14 小结 513

    第27章 Android的网络开发技术 514
    27.1 提交HTTP GET和HTTP POST请求 514
    27.2 HttpURLConnection类 516
    27.3 上传文件 517
    27.4 下载管理(DownloadManager) 519
    27.5 Wi-Fi Direct 524
    27.5.1 Wi-Fi Direct API的核心部分 524
    27.5.2 创建监听Wi-Fi Direct动作的广播接收器 524
    27.5.3 注册广播接收器 525
    27.5.4 发现Wi-Fi Direct设备 526
    27.5.5 连接Wi-Fi Direct设备 526
    27.5.6 数据传输 527
    27.6 Internet电话(SIP) 528
    27.6.1 使用SIP的要求和限制 528
    27.6.2 配置Android版SIP电话 528
    27.6.3 创建SipManager 529
    27.6.4 注册SIP服务器 529
    27.6.5 开始打电话 530
    27.6.6 接听电话 530
    27.7 小结 531

    第28章 并发与定时器 532
    28.1 Handler 532
    28.1.1 更新UI 532
    28.1.2 延迟执行 535
    28.2 定时器 537
    28.2.1 单秒循环的定时器:Chronometer 537
    28.2.2 任意时间间隔的定时器:Timer 538
    28.2.3 全局定时器:AlarmManager 539
    28.3 AsyncTask 541
    28.4 小结 543

    第29章 异步装载(Loader) 544
    29.1 Loader简介 544
    29.2 Loader的核心类/接口 544
    29.3 如何使用Loader 545
    29.3.1 创建/重用Loader 545
    29.3.2 遗弃旧的数据 546
    29.3.3 LoaderManager与方法回调 546
    29.3.4 创建Loader对象(onCreateLoader) 547
    29.3.5 完成数据装载(onLoadFinished) 547
    29.3.6 Loader被重置(onLoaderReset) 548
    29.4 异步装载联系人(CursorLoader的应用) 548
    29.5 小结 552

    第30章 Android推送技术 553
    30.1 IOS的推送方案 553
    30.2 Windows Phone的推送方案 554
    30.3 Android的推送方案 554
    30.4 第三方推送服务:极光推送 556
    30.5 自己搭建推送服务器:AndroidPN 557
    30.6 小结 558

    第31章 Android的多媒体开发技术 559
    31.1 音频 559
    31.1.1 音频播放 559
    31.1.2 录制音频 561
    31.2 视频 563
    31.2.1 播放视频 563
    31.2.2 录制视频 564
    31.3 相机 565
    31.3.1 调用系统的拍照功能 565
    31.3.2 自定义拍照功能 566
    31.4 铃声 570
    31.5 小结 572

    第32章 Android的2D绘图 573
    32.1 绘制基本的图形 573
    32.1.1 绘制像素点 573
    32.1.2 绘制直线 574
    32.1.3 绘制圆形 574
    32.1.4 绘制圆弧 574
    32.1.5 绘制文本 575
    32.1.6 示例:绘制基本的图形和文本 575
    32.2 绘制位图 578
    32.2.1 绘制Bitmap对象 578
    32.2.2 使用Drawable.draw方法绘制位图 579
    32.2.3 示例:用两种方式绘制位图 579
    32.3 设置图像的透明度 580
    32.4 旋转图像 581
    32.5 小结 583

    第33章 3D绘图之OpenGL ES 584
    33.1 OpenGL ES简介 584
    33.2 在3D空间中绘图 585
    33.2.1 要绘制3D图形了,第一步要做什么 585
    33.2.2 定义顶点 587
    33.2.3 绘制三角形 588
    33.2.4 三角形合并法绘制矩形 590
    33.2.5 顶点法绘制矩形 592
    33.2.6 顶点的选取顺序 592
    33.2.7 索引法绘制矩形 593
    33.2.8 基于OpenGL ES的动画原理 594
    33.2.9 旋转的矩形 594
    33.3 视图 595
    33.3.1 有趣的比喻:照相机拍照 596
    33.3.2 模型变换:立方体旋转 597
    33.3.3 用gluLookAt方法变换视图 599
    33.4 颜色 600
    33.5 小结 602

    第34章 Android的桌面上的“尤物” 603
    34.1 窗口小部件(App Widget) 603
    34.1.1 在Android桌面上添加App Widget 603
    34.1.2 开发App Widget的步骤 603
    34.1.3 数字时钟 605
    34.1.4 AppWidgetProvider类 607
    34.1.5 向App Widget添加配置窗口 608
    34.1.6 可以选择风格的数字时钟 608
    34.2 动态壁纸(随机变换的圆圈) 612
    34.3 小结 618

    第35章 Android中的短信(SMS)与彩信(MMS)开发技术 619
    35.1 通过系统程序发短信 619
    35.2 直接发送短信 619
    35.3 保存短信发送记录 620
    35.4 监听短信和彩信 621
    35.5 显示视频缩略图 622
    35.6 彩信内容与SMIL协议 624
    35.7 小结 631

    第36章 Android的传感器开发技术 632
    36.1 如何使用传感器 632
    36.2 加速度传感器(Accelerometer) 635
    36.3 重力传感器(Gravity) 635
    36.4 光线传感器(Light) 636
    36.5 陀螺仪传感器(Gyroscope) 636
    36.5 方向传感器(Orientation) 637
    36.6 其他传感器 638
    36.7 小结 638

    第37章 Android的全球定位系统(GPS) 639
    37.1 GPS的核心API 639
    37.2 获取位置提供者(LocationProvider) 641
    37.2.1 获取所有可用的LocationProvider 641
    37.2.2 根据名称获取LocationProvider 642
    37.2.3 根据条件(Criteria)获取LocationProvider 642
    37.3 实时获取GPS定位数据 643
    37.4 测量地球上任意两点之间的距离 645
    37.5 邻近警告 646
    37.6 小结 647

    第38章 谷歌地图(Google Map)开发应用 648
    38.1 Google Map的跨平台解决方案:Maps JavaScript API v3 648
    38.2 Google Map的显示与定位 648
    38.3 在Google Map上插入图像标志 651
    38.4 插入多个图像标志 653
    38.5 带阴影的位置坐标信息 653
    38.6 地图与Java交互 655
    38.7 小结 657

    第39章 Android中的人机交互设计 658
    39.1 手势(Gesture) 658
    39.1.1 创建手势文件 658
    39.1.2 通过手势输入字符串 658
    39.1.3 通过手势调用程序 660
    39.1.4 编写自己的手势创建器 661
    39.2 多点触摸与放大/缩小操作 662
    39.3 语音识别 664
    39.4 让手机说话(TTS) 665
    39.5 小结 666

    第40章 Android中的输入法开发 667
    40.1 Android输入法简介 667
    40.2 控制输入法 668
    40.3 输入法实战 669
    40.3.1 实现输入法的步骤 669
    40.3.2 编写输入法程序 669
    40.3.3 输入法服务的生命周期 672
    40.3.4 预输入文本 672
    40.3.5 输入法设置 673
    40.4 小结 673

    第41章 Android NDK开发 674
    41.1 Android NDK简介 674
    41.2 安装、配置和测试NDK开发环境 674
    41.2.1 系统和软件要求 675
    41.2.2 下载和安装Android NDK 675
    41.2.3 下载和安装Cygwin 675
    41.2.4 配置Android NDK的开发环境 677
    41.3 利用NDK Samples学习NDK开发 678
    41.3.1 编译NDK Samples 678
    41.3.2 NDK程序的结构与命名规则 678
    41.4 Android NDK配置文件详解 679
    41.4.1 Android NDK定义的变量 680
    41.4.2 Android NDK定义的函数 680
    41.4.3 描述模块的变量 681
    41.4.4 配置Application.mk文件 682
    41.5 第一个NDK示例:字母的大小写转换 682
    41.5.1 编写NDK程序 682
    41.5.2 编写调用NDK函数的Java程序 684
    41.5.3 在Eclipse中开发和编译NDK程序 684
    41.6 NDK程序读取Java字段值 686
    41.7 小结 687

    第42章 Android的测试驱动开发(TDD) 688
    42.1 JUnit测试框架 688
    42.2 测试Activity 688
    42.3 测试Content Provider 691
    42.4 测试Service 692
    42.5 测试普通类 692
    42.6 小结 693

    第43章 Android应用的性能优化 694
    43.1 性能优化的基础知识 694
    43.2 编写Java程序的最优化原则 695
    43.2.1 用静态工厂方法代替构造方法 695
    43.2.2 避免创建重复的对象 695
    43.2.3 防止内存泄漏 697
    43.2.4 返回零长度的集合而不是null 697
    43.2.5 通过接口引用对象 698
    43.3 避免ANR 698
    43.4 执行时间测试 699
    43.5 内存消耗测试 700
    43.6 测试性能的工具:traceview 701
    43.7 小结 702

    第44章 游戏项目实战:笑脸连连看 703
    44.1 游戏玩法 703
    44.2 准备图像素材 703
    44.3 实现主界面 704
    44.4 随机生成连连看图像 705
    44.5 选中两个相同图像后消失 705
    44.6 用定时器限制游戏时间 706
    44.7 小结 707

    第45章 开源项目实战:NFC侠(NFCMan) 708
    45.1 什么是NFCMan 708
    45.2 用Android模拟器和非NFC设备测试NFC应用 709
    45.3 NFCMan的实现原理 711
    45.4 实现服务端程序(NFCMan) 711
    45.4.1 可视化SWT开发环境 712
    45.4.2 创建NFC标签 712
    45.4.3 描述虚拟NFC标签的NFCTag类 714
    45.4.4 保证虚拟NFC标签的全局唯一 715
    45.4.5 显示与保存虚拟NFC标签 716
    45.4.6 装载已经存在的虚拟NFC标签 719
    45.4.7 开启服务 720
    45.4.8 处理客户端请求 721
    45.4.9 保证虚拟Android设备全局唯一 723
    45.4.10 描述虚拟Android设备 724
    45.4.11 添加虚拟Android设备 725
    45.4.12 异常处理机制 727
    45.5 客户端与服务端之间的数据管道(NFCManService) 728
    45.5.1 与NFCMan交互(Socket方式) 728
    45.5.2 与ANFCMan交互(广播方式) 732
    45.6 客户端Library(ANFCMan) 733
    45.6.1 ANFCMan的数据结构和异常类 733
    45.6.2 ANFCMan的入口类 734
    45.6.3 模拟检测到NFC标签的广播接收器 734
    45.6.4 同时处理物理NFC标签和虚拟NFC标签的窗口 735
    45.7 测试ANFCMan(TestANFCMan) 738
    45.8 小结 739

     
     
  • 相关阅读:
    Vulkan Tutorial 06 逻辑设备与队列
    Vulkan Tutorial 05 物理设备与队列簇
    过滤器Filter(2)
    Filter过滤器(1)
    Java-Web监听器
    Filter案例
    <context:annotation-config/>
    @Autowired 和 @Resource
    Hibernate各种主键生成策略与配置详解
    eclipse新建workspace使用之前workspace的个性配置
  • 原文地址:https://www.cnblogs.com/nokiaguy/p/3304407.html
Copyright © 2011-2022 走看看