本书将基于最新版的Android撰写,作者不仅有丰富的Android开发经验,而且也有这方面的专著出版,销量和评价都还不错。
全书以“基础理论+实战案例+高级技巧”为组织内容的结构,其中最出彩的部分是实战部分,全书以一个经典的综合案例——新浪微博客户端贯穿全书,以迭代的方式完整地重现了整个案例的开发过程,极具操作性,配合前后的基础理论和高级技巧,读者在实践的同时还能将理论知识融会贯通。全书主要内容一共分为三大部分:准备篇简明扼要地讲解了Android开发的基础知识,并为第二部分实战篇的内容打下了基础,将微博客户端的框架搭了起来,同时想起介绍了微博的API;实战篇以迭代的方式完整的重现了从微博客户端的架构到微博客户端的测试的整个过程,极具实战性,更重要的是展现了Android应用开发的流程和思想;高级篇讲解了网络通信、多线程、2D/3D动画、特殊输入和输出、性能优化等高级内容,使全书的内容得到了升华。
封面图
目录
- 前言
- 第一部分基础篇—Android开发基础
- 第1章Android应用开发基础 / 2
- 1.1Android的系统构架 / 2
- 1.2Android开发环境搭建 / 3
- 1.2.1安装JDK和配置Java开发环境 / 3
- 1.2.2安装Android SDK / 4
- 1.2.3安装Eclipse插件ADT / 6
- 1.3Android应用程序中的资源 / 7
- 1.4Android的应用程序组件 / 8
- 1.4.1Activity(Android的窗体) / 8
- 1.4.2Service(服务) / 9
- 1.4.3Broadcast Receiver(广播接收器) / 9
- 1.4.4Content Provider(内容提供者) / 10
- 1.5小结 / 10
- 第2章开发前的准备工作 / 11
- 2.1建立Android工程 / 11
- 2.2引用新浪微博SDK / 12
- 2.3引用第三方类库 / 12
- 2.4跨工程调试新浪微博SDK / 12
- 2.5异步访问API / 13
- 2.5.1使用SDK本身的异步功能 / 14
- 2.5.2为SDK自定义异步功能 / 15
- 2.6小结 / 18
- 第3章实现一个简单的微博客户端 / 19
- 3.1编写Android的服务 / 19
- 3.2让任何拍照软件都成为微博客户端 / 19
- 3.2.1可以监视目录文件的服务 / 20
- 3.2.2发布带图像的微博 / 23
- 3.3小结 / 25
- 第二部分实例篇—微博客户端开发
- 第4章微博客户端概况 / 28
- 4.1参考客户端 / 28
- 4.1.1新浪微博官方Android客户端 / 28
- 4.1.2网易微博官方Android客户端 / 30
- 4.1.3腾讯微博官方Android客户端 / 30
- 4.2功能模块展示 / 31
- 4.2.1登录 / 31
- 4.2.2账户管理 / 31
- 4.2.3微博列表 / 32
- 4.2.4私信列表 / 32
- 4.2.5撰写微博 / 32
- 4.2.6图像渲染 / 33
- 4.2.7转发、评论与收藏微博 / 33
- 4.2.8搜索微博和用户 / 33
- 4.3小结 / 34
- 第5章新浪微博API详解 / 35
- 5.1新浪微博API有哪些功能 / 35
- 5.2使用新浪微博API开发前的准备工作 / 36
- 5.2.1申请新浪微博应用程序 / 36
- 5.2.2访问和测试API / 37
- 5.2.3测试新浪微博SDK / 40
- 5.3身份认证 / 43
- 5.3.1Basic认证 / 43
- 5.3.2OAuth认证 / 44
- 5.4利用新浪微博SDK获取微博消息 / 46
- 5.4.1获取公共微博消息 / 46
- 5.4.2获取登录用户首页的微博消息 / 48
- 5.4.3获取当前用户发布的微博消息 / 50
- 5.4.4获取@提到我的微博消息 / 50
- 5.4.5获取当前用户的评论列表 / 51
- 5.4.6获取指定微博的评论列表 / 52
- 5.4.7获取微博的评论数和转发数 / 53
- 5.4.8获取用户相关消息 / 53
- 5.5更新微博及其相关内容 / 54
- 5.5.1发布文字微博 / 54
- 5.5.2发布图像微博 / 55
- 5.5.3评论微博 / 56
- 5.5.4回复评论 / 56
- 5.5.5转发微博 / 58
- 5.6新浪微博API的搜索功能 / 59
- 5.6.1搜索用户 / 59
- 5.6.2搜索微博 / 59
- 5.7小结 / 60
- 第6章用户登录与用户注册 / 61
- 6.1设计登录界面 / 61
- 6.1.1登录界面的布局 / 61
- 6.1.2登录界面的装载模式 / 63
- 6.2事件处理机制 / 64
- 6.2.1编写事件处理类 / 65
- 6.2.2扩展微博事件处理 / 66
- 6.3用户登录 / 69
- 6.3.1响应用户登录事件 / 69
- 6.3.2用户登录成功 / 70
- 6.3.3用户登录失败 / 71
- 6.4用户注册 / 72
- 6.5关注作者微博 / 72
- 6.6小结 / 72
- 第7章首页微博列表 / 73
- 7.1主界面设计 / 73
- 7.1.1主界面布局 / 73
- 7.1.2微博列表项布局 / 77
- 7.1.3装载主界面 / 78
- 7.2实现系统工具类 / 81
- 7.2.1NotificationProcess类(处理通知列表) / 81
- 7.2.2SystemDBService类(操作数据库) / 85
- 7.2.3HappyBlogConfig类(读写配置文件) / 87
- 7.2.4ProcessTasks类(处理返回数据) / 88
- 7.3系统初始化 / 90
- 7.3.1初始化SystemDBService对象 / 90
- 7.3.2为每个账号创建MyMicroBlogAsync对象 / 92
- 7.3.3初始化处理微博列表的对象 / 93
- 7.4装载首页微博数据 / 94
- 7.4.1显示微博数据 / 94
- 7.4.2装载头像和微博图像 / 96
- 7.5小结 / 99
- 第8章切换微博列表 / 100
- 8.1显示公共微博列表 / 100
- 8.2显示我的微博列表 / 104
- 8.3显示@提到我的微博列表 / 105
- 8.4刷新当前的微博列表 / 106
- 8.5小结 / 106
- 第9章显示其他列表信息 / 107
- 9.1显示我的所有评论列表 / 107
- 9.2显示我发出的评论列表 / 109
- 9.3显示我的收藏列表 / 110
- 9.4显示私信列表 / 111
- 9.5小结 / 113
- 第10章账号管理 / 114
- 10.1账号管理主界面 / 114
- 10.2添加账号 / 116
- 10.3删除账号 / 118
- 10.4设置主账号 / 118
- 10.5同步账号 / 119
- 10.6注销 / 119
- 10.7小结 / 121
- 第11章撰写和发布微博 / 122
- 11.1发布文字微博 / 122
- 11.2发布带图像的微博 / 124
- 11.2.1手机拍照 / 125
- 11.2.2从相册中获得图像 / 126
- 11.2.3删除图像 / 127
- 11.2.4发布图像微博 / 127
- 11.3微博的辅助输入工具 / 127
- 11.3.1语音录入 / 127
- 11.3.2插入表情 / 129
- 11.3.3插入话题 / 130
- 11.4小结 / 131
- 第12章处理微博与评论 / 132
- 12.1与微博相关的操作 / 132
- 12.1.1评论微博 / 132
- 12.1.2转发微博 / 135
- 12.1.3删除微博 / 137
- 12.1.4收藏微博 / 138
- 12.1.5以大图方式浏览微博图像 / 139
- 12.1.6图像另存为与图像分享 / 139
- 12.2查看微博的详细内容 / 146
- 12.3显示与回复评论 / 148
- 12.4小结 / 149
- 第13章图像特效 / 150
- 13.1图像特效主界面 / 150
- 13.2特效处理框架 / 150
- 13.2.1处理图像的接口 / 151
- 13.2.2如何处理图像 / 151
- 13.3选择图像区域 / 153
- 13.4图像特效详解 / 160
- 13.4.1灰度 / 160
- 13.4.2马赛克 / 165
- 13.4.3截图 / 168
- 13.4.4自由旋转 / 169
- 13.4.5恢复原始图像 / 170
- 13.5发布经过特效处理的图像微博 / 170
- 13.6小结 / 171
- 第14章搜索微博与搜索用户 / 173
- 14.1搜索界面布局 / 173
- 14.2实现JSON格式的搜索API / 174
- 14.3搜索微博 / 177
- 14.4搜索用户 / 178
- 14.5小结 / 181
- 第15章个性化设置 / 182
- 15.1设置主题 / 182
- 15.1.1主题目录列表 / 182
- 15.1.2主题图像 / 186
- 15.1.3设置主题背景图 / 192
- 15.2设置背景颜色和透明度 / 194
- 15.3设置文字颜色 / 198
- 15.4小结 / 204
- 第16章签名和发布微博客户端 / 205
- 16.1签名应用程序 / 205
- 16.1.1使用命令行方式进行签名 / 205
- 16.1.2使用ADT插件进行签名 / 206
- 16.2发布微博客户端 / 207
- 16.3小结 / 208
- 第三部分高级篇—Android SDK高级技术
- 第17章Android资源详解 / 210
- 17.1创建资源 / 210
- 17.2访问资源 / 211
- 17.2.1生成资源类文件 / 212
- 17.2.2从代码中访问资源 / 214
- 17.2.3从XML文件中访问资源 / 214
- 17.3在代码中存取资源 / 216
- 17.3.1存取简单资源 / 216
- 17.3.2存取对象资源 / 219
- 17.3.3处理配置变化 / 221
- 17.4本地化 / 222
- 17.4.1建立本地化的资源目录 / 222
- 17.4.2资源目录的命名规则 / 225
- 17.4.3建立别名资源 / 225
- 17.4.4资源目录的优先级 / 227
- 17.5资源类型 / 227
- 17.5.1字符串(String)资源 / 227
- 17.5.2布局(Layout)资源 / 230
- 17.5.3图像(Drawable)资源 / 232
- 17.5.4菜单(Menu)资源 / 242
- 17.5.5动画(Animation)资源 / 243
- 17.5.6风格(Style)资源 / 247
- 17.5.7其他资源 / 248
- 17.6小结 / 250
- 第18章电话、短信与联系人 / 251
- 18.1电话 / 251
- 18.1.1显示拨号界面 / 251
- 18.1.2直接拨打电话 / 251
- 18.1.3控制呼叫转移 / 252
- 18.1.4监听来/去电 / 254
- 18.1.5用程序控制接听和挂断动作 / 257
- 18.1.6获取通话记录 / 259
- 18.2短信和彩信 / 261
- 18.2.1通过系统程序发送短信 / 261
- 18.2.2直接发送短信 / 261
- 18.2.3保存短信发送记录 / 262
- 18.2.4监听短信 / 264
- 18.2.5发送彩信 / 265
- 18.2.6监听彩信 / 266
- 18.2.7显示视频缩略图 / 267
- 18.2.8彩信内容与SMIL协议 / 270
- 18.3联系人 / 280
- 18.3.1查看联系人的内容 / 281
- 18.3.2添加电话到联系人列表 / 282
- 18.3.3修改联系人信息 / 283
- 18.3.4删除联系人信息 / 284
- 18.4小结 / 284
- 第19章数据库 / 285
- 19.1SQLite数据库 / 285
- 19.1.1管理SQLite数据库 / 285
- 19.1.2SQLite数据库基本操作 / 286
- 19.1.3事务 / 288
- 19.1.4核心函数 / 289
- 19.1.5日期和时间函数 / 294
- 19.1.6聚合函数 / 297
- 19.2Android版的SQLite数据库 / 299
- 19.2.1操作数据库 / 299
- 19.2.2升级数据库 / 300
- 19.2.3数据绑定 / 302
- 19.3持久化数据库引擎db4o / 304
- 19.3.1什么是db4o / 304
- 19.3.2下载和安装db4o / 305
- 19.3.3创建和打开数据库 / 305
- 19.3.4操作Java对象 / 305
- 19.4小结 / 308
- 第20章蓝牙与Wi-Fi / 309
- 20.1蓝牙编程 / 309
- 20.1.1蓝牙简介 / 309
- 20.1.2控制蓝牙设备 / 310
- 20.1.3使蓝牙设备可被搜索到 / 311
- 20.1.4搜索蓝牙设备 / 313
- 20.1.5蓝牙设备之间的数据传输 / 316
- 20.2Wi-Fi编程 / 320
- 20.2.1控制Wi-Fi设备 / 320
- 20.2.2获取Wi-Fi信息 / 321
- 20.2.3客户端Socket / 323
- 20.2.4服务端Socket / 324
- 20.2.5移动版的Web服务器实例 / 324
- 20.2.6在手机客户端访问Web服务器 / 329
- 20.3小结 / 330
- 第21章第三方程序库 / 331
- 21.1GTalk客户端 / 331
- 21.1.1XMPP协议简介 / 331
- 21.1.2下载并安装asmack / 331
- 21.1.3登录GTalk服务器 / 332
- 21.1.4获取联系人信息 / 333
- 21.1.5监听联系人是否在线 / 335
- 21.1.6发送聊天消息 / 336
- 21.1.7接收聊天消息 / 337
- 21.2FTP客户端 / 337
- 21.2.1连接与断开FTP服务器 / 338
- 21.2.2获取与改变当前工作目录 / 339
- 21.2.3列出所有的文件和目录 / 339
- 21.2.4建立、重命名、删除指定目录 / 341
- 21.2.5上传、重命名、下载、删除指定文件 / 341
- 21.3绘制图表的程序库AChartEngine / 342
- 21.3.1曲线图 / 342
- 21.3.2条形图 / 346
- 21.3.3离散点图 / 346
- 21.3.4区域图 / 347
- 21.3.5饼图 / 349
- 21.4小结 / 349
- 第22章编译在Android中的应用 / 350
- 22.1JavaCC使用入门 / 350
- 22.1.1JavaCC下载和安装 / 351
- 22.1.2用JavaCC生成第一个分析器 / 351
- 22.2JavaCC语法 / 354
- 22.3JavaCC实战:计算器 / 355
- 22.3.1生成计算表达式的分析器源代码 / 355
- 22.3.2编写计算器的主程序 / 361
- 22.4小结 / 365
- 第23章Android SDK的2D绘图技术 / 366
- 23.1绘图基础 / 366
- 23.1.1绘制点 / 366
- 23.1.2绘制直线 / 368
- 23.1.3绘制三角形 / 368
- 23.1.4绘制矩形和菱形 / 369
- 23.1.5绘制圆、弧和椭圆 / 371
- 23.1.6绘制文字 / 372
- 23.2高级绘图技术 / 372
- 23.2.1在画布上旋转图像 / 373
- 23.2.2在EditText控件上绘制图像和文本 / 373
- 23.2.3制作动画效果 / 375
- 23.3绘图实战:电子罗盘 / 376
- 23.4SurfaceView类 / 378
- 23.5小结 / 380
- 第24章OpenGL ES绘图技术 / 381
- 24.1OpenGL ES简介 / 381
- 24.2构建OpenGL ES框架 / 381
- 24.3用OpenGL ES绘制2D图形 / 382
- 24.3.1三角形 / 382
- 24.3.2矩形 / 384
- 24.3.3为图形上色 / 385
- 24.4OpenGL ES实战:旋转立方体 / 387
- 24.4.1绘制立方体 / 387
- 24.4.2使立方体旋转起来 / 388
- 24.5小结 / 389
- 第25章性能优化 / 390
- 25.1性能优化的基础知识 / 390
- 25.2编写Java程序的最优化原则 / 391
- 25.2.1用静态工厂方法代替构造方法 / 391
- 25.2.2避免创建重复的对象 / 391
- 25.2.3防止内存泄漏 / 393
- 25.2.4接口只用于定义类型 / 394
- 25.2.5返回零长度的集合而不是null / 394
- 25.2.6通过接口引用对象 / 395
- 25.3避免ANR / 395
- 25.4性能检测 / 396
- 25.4.1执行时间测试 / 396
- 25.4.2内存消耗测试 / 398
- 25.4.3测试性能的工具traceview / 399
- 25.5小结 / 400
- 第26章Android 4.0新技术探索 / 401
- 26.1全新的Android,全新的体验 / 401
- 26.1.1开发环境 / 401
- 26.1.2模拟器 / 402
- 26.2Activity中的容器Fragment / 405
- 26.2.1Fragment的特点 / 405
- 26.2.2Fragment的生命周期 / 406
- 26.2.3显示对话框 / 410
- 26.2.4隐藏和显示Fragment / 412
- 26.2.5回退堆栈 / 415
- 26.3Android 4.0的新特性 / 416
- 26.3.1联系人提供者中的社会化API / 416
- 26.3.2高分辨率的联系人照片 / 417
- 26.3.3新的日历API / 417
- 26.3.4语音信箱 / 417
- 26.3.5多媒体API / 417
- 26.3.6人脸识别 / 418
- 26.3.7焦距和感光区域 / 418
- 26.3.8摄像头自动对焦 / 419
- 26.3.9Wi-Fi点对点连接 / 419
- 26.3.10高级的网络应用 / 419
- 26.3.11新增的设备传感器 / 420
- 26.3.12WebKit浏览器引擎 / 420
- 26.4Android 4.0实战:应用程序演示 / 420
- 26.5小结 / 421