当前位置:首页 > 工业技术
Android开发完全讲义
Android开发完全讲义

Android开发完全讲义PDF电子书下载

工业技术

  • 电子书积分:17 积分如何计算积分?
  • 作 者:李宁著
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2015
  • ISBN:9787517036630
  • 页数:596 页
图书介绍:Android经典专著升级版。全面介绍Android的应用开发技术。主要内容包括Android入门,第一个Android程序,Android应用程序架构,建立用户接口,控件详解,View事件分发机制,移动存储解决方案 ,App之间的通信,服务(Service),网络技术,多媒体技术,Fragment,ActionBar,Android 5.X新特性:质感主题,Android 5.X新特性:阴影和视图裁剪,Android 5.X新特性:列表和卡片控件,Android 5.X新特性:Drawable资源,其他Android 5.X新特性,2D动画,OpenGL ES编程,媒体特效API,资源、国际化与自适应,访问Android手机的硬件,NDK 技术,蓝牙技术,有趣的Android技术,Android App性能调优,内存泄露检测,项目实战:超级手电筒,项目实战:基于XMPP的IM客户端。本书适合:有一定的Java基础,想通过Android进入移动开发领域的读者;已经有一定的Android开发经验,想进一步提高Android开发能力的读者;想将本书作为Android的参考手册,随时随地查阅
《Android开发完全讲义》目录
标签:讲义 开发

第1章 Android入门 1

1.1 Android的基本概念 1

1.1.1 Android简介 2

1.1.2 Android的系统构架 3

1.2 Android开发环境的搭建 4

1.2.1 开发Android程序需要些什么 4

1.2.2 安装Android SDK 5

1.2.3 安装Eclipse插件ADT 7

1.2.4 创建AVD 8

1.2.5 启动Android模拟器 10

1.2.6 让Android模拟器飞(X86加速) 11

1.2.7 测试Android开发环境是否安装成功 12

1.3 Android SDK中的常用命令行工具 14

1.3.1 启动和关闭ADB服务(adb start-server和adb kill-server) 14

1.3.2 查询当前模拟器/设备的实例(adb devices) 14

1.3.3 安装、卸载和运行程序(adb install、adbuninstall和am) 14

1.3.4 PC与模拟器或真机交换文件(adb pull和adbpush) 15

1.3.5 Shell命令 15

1.3.6 创建、删除和浏览AVD设备(android) 16

1.3.7 获取Android版本对应的ID 17

1.3.8 创建SD卡 17

1.4 Android的学习资源 17

1.5 GooglePlay 18

1.6 小结 18

第2章 第一个Android程序 19

2.1 编写用于显示当前日期和时间的程序 19

2.1.1 新建一个Android工程 19

2.1.2 界面控件的布局 20

2.1.3 编写实际代码 20

2.2 调试程序 22

2.3 签名和发布应用程序 23

2.3.1 使用命令行方式进行签名 23

2.3.2 使用ADT插件方式进行签名 24

2.4 DDMS透视图 25

2.5 小结 26

第3章 Android应用程序架构 27

3.1 Android应用程序中的资源 27

3.1.1 资源存放在哪里 27

3.1.2 资源的种类 28

3.1.3 资源的基本使用方法 28

3.2 Android的应用程序组件 29

3.2.1 活动(Activity)组件 29

3.2.2 服务(Service)组件 30

3.2.3 广播接收者(Broadcast receivers)组件 30

3.2.4 内容提供者(Content providers)组件 31

3.3 AndroidManifest.xml文件的结构 31

3.4 小结 32

第4章 建立用户接口 33

4.1 建立、配置和使用Activity 33

4.1.1 建立和配置Activity 33

4.1.2 Activity的生命周期 35

4.1.3 Activity生命周期的演示 37

4.2 视图(View) 40

4.2.1 视图简介 40

4.2.2 使用XML布局文件控制视图 40

4.2.3 在代码中控制视图 42

4.2.4 混合使用XML布局文件和代码来控制视图 43

4.2.5 定制控件(Widget)的三种方式 45

4.2.6 定制控件——带图像的TextView 46

4.2.7 定制控件——带文本标签的EditText 49

4.2.8 定制控件——可更换表盘的指针时钟 52

4.3 使用AlertDialog类创建对话框 57

4.3.1 AlertDialog类简介 57

4.3.2 “确认/取消”对话框 58

4.3.3 创建询问是否删除文件的“确认/取消”对话框 58

4.3.4 带3个按钮的对话框 60

4.3.5 创建“覆盖/忽略/取消”对话框 60

4.3.6 简单列表对话框 61

4.3.7 单选列表对话框 61

4.3.8 多选列表对话框 62

4.3.9 创建3种选择省份的列表对话框 62

4.3.10 水平进度对话框和圆形进度对话框 67

4.3.11 水平进度对话框和圆形进度对话框演示 68

4.3.12 自定义对话框 71

4.3.13 创建登录对话框 71

4.3.14 用Activity托管对话框 73

4.3.15 创建悬浮对话框和触摸任何位置都可以关闭的对话框 74

4.4 Toast和Notification 77

4.4.1 用Toast显示提示信息框 77

4.4.2 Notification与状态栏信息 78

4.5 布局 81

4.5.1 框架布局(FrameLayout) 81

4.5.2 霓虹灯效果的TextView 81

4.5.3 线性布局(LinearLayout) 83

4.5.4 利用LinearLayout将按钮放在屏幕的四角和中心位置 85

4.5.5 相对布局(RelativeLayout) 86

4.5.6 利用RelativeLayout实现梅花效果的布局 86

4.5.7 表格布局(TableLayout) 87

4.5.8 计算器按钮的布局 88

4.5.9 绝对布局(AbsoluteLayout) 88

4.5.10 查看apk文件中的布局 89

4.6 小结 89

第5章 控件详解 90

5.1 显示和编辑文本的控件 91

5.1.1 显示文本的控件:TextView 91

5.1.2 在TextView中显示URL及不同字体大小、不同颜色的文本 93

5.1.3 带边框的TextView 94

5.1.4 设置TextView控件的行间距 97

5.1.5 输入文本的控件:EditText 98

5.1.6 在EditText中输入特定的字符 99

5.1.7 按Enter键显示EditText 100

5.1.8 自动完成输入内容的控件:AutoCompleteTextView 101

5.2 按钮与复选框控件 102

5.2.1 普通按钮控件:Button 103

5.2.2 异形(圆形、五角星、螺旋形和箭头)按钮 103

5.2.3 图像按钮控件:ImageButton 105

5.2.4 同时显示图像和文字的按钮 105

5.2.5 选项按钮控件:RadioButton 106

5.2.6 开关状态按钮控件:ToggleButton 107

5.2.7 复选框控件:CheckBox 108

5.2.8 利用XML布局文件动态创建CheckBox 108

5.3 日期与时间控件 110

5.3.1 输入日期的控件:DatePicker 110

5.3.2 输入时间的控件:TimePicker 110

5.3.3 DatePicker、TimePicker与TextView同步显示日期和时间 111

5.3.4 显示时钟的控件:AnalogClock和DigitalClock 112

5.4 进度条控件 112

5.4.1 进度条控件:ProgressBar 113

5.4.2 拖动条控件:SeekBar 114

5.4.3 改变ProgressBar和SeekBar的颜色 115

5.4.4 评分控件:RatingBar 116

5.5 其他重要控件 118

5.5.1 显示图像的控件:ImageView 118

5.5.2 可显示图像指定区域的ImageView控件 119

5.5.3 动态缩放和旋转图像 119

5.5.4 列表控件:ListView 121

5.5.5 可以单选和多选的ListView 123

5.5.6 动态添加、删除ListView列表项 125

5.5.7 改变ListView列表项选中状态的背景颜色 128

5.5.8 封装ListView的Activity:ListActivity 129

5.5.9 使用SimpleAdapter建立复杂的列表项 130

5.5.10 给应用程序评分 131

5.5.11 可展开的列表控件:ExpandableListView 133

5.5.12 下拉列表控件:Spinner 136

5.5.13 垂直滚动视图控件:ScrollView 137

5.5.14 水平滚动视图控件:HorizontalScrollView 138

5.5.15 可垂直和水平滚动的视图 138

5.5.16 网格视图控件:GridView 139

5.5.17 可循环显示和切换图像的控件:Gallery和ImageSwitcher 140

5.6 小结 142

第6章 View事件分发机制 143

6.1 事件分发的始作俑者 143

6.2 View类中的事件分发引擎 144

6.3 ViewGroup类的事件分发引擎 146

6.4 通过代码验证View事件分发机制 148

6.4.1 实现一个派生自Button的类 148

6.4.2 实现布局 149

6.4.3 实现主窗口类 149

6.5 单击事件(onClick)是如何被触发的 152

6.6 Activity中的dispatchTouchEvent方法 154

6.7 小结 157

第7章 移动存储解决方案 158

7.1 最简单的数据存储方式:SharedPreferences 158

7.1.1 使用SharedPreferences存取数据 158

7.1.2 数据的存储位置和格式 160

7.1.3 存取复杂类型的数据 161

7.1.4 设置数据文件的访问权限 163

7.1.5 可以保存设置的Activity:PreferenceActivity 165

7.2 文件的存储 168

7.2.1 openFileOutput和openFileInput方法 168

7.2.2 SD卡文件浏览器 169

7.2.3 存取SD卡中的图像 173

7.2.4 SAX引擎读取XML文件的原理 175

7.2.5 将XML数据转换成Java对象 175

7.3 SQLite数据库 178

7.3.1 SQLite数据库管理工具 178

7.3.2 创建数据库和表 179

7.3.3 模糊查询 181

7.3.4 分页显示记录 181

7.3.5 事务 181

7.4 在Android中使用SQLite数据库 182

7.4.1 SQLiteOpenHelper类与自动升级数据库 182

7.4.2 SimpleCursorAdapter类与数据绑定 183

7.4.3 带照片的联系人管理系统 185

7.4.4 将数据库与应用程序一起发布 188

7.4.5 英文词典 189

7.5 持久化数据库引擎(db4o) 192

7.5.1 什么是db4o 192

7.5.2 下载和安装db4o 193

7.5.3 创建和打开数据库 193

7.5.4 向数据库中插入Java对象 194

7.5.5 从数据库中查询Java对象 195

7.5.6 高级数据查询 195

7.5.7 更新数据库中的Java对象 196

7.5.8 删除数据库中的Java对象 196

7.6 小结 196

第8章 App之间的通信 197

8.1 Intent与Activity 197

8.1.1 用Intent启动Activity,并在Activity之间传递数据 197

8.1.2 调用其他应用程序中的Activity(拨打电话、浏览网页、发E-mail等) 200

8.1.3 定制自己的ActivityAction 204

8.1.4 将电子词典的查询功能共享成一个ActivityAction 205

8.2 接收和发送广播 207

8.2.1 接收系统广播 208

8.2.2 开机可自动运行的程序 208

8.2.3 收到短信了,该做点什么 209

8.2.4 显示手机电池的当前电量 211

8.2.5 在自己的应用程序中发送广播 212

8.2.6 接收联系人系统中发送的添加联系人广播 213

8.3 小结 214

第9章 服务(Service) 215

9.1 Service起步 215

9.1.1 Service的生命周期 215

9.1.2 绑定Activity和Service 218

9.2 系统服务 220

9.2.1 获得系统服务 220

9.2.2 监听手机来电 221

9.2.3 来电黑名单 222

9.2.4 在模拟器上模拟重力感应 223

9.2.5 手机翻转静音 225

9.3 时间服务 227

9.3.1 计时器:Chronometer 227

9.3.2 预约时间Handler 229

9.3.3 定时器Timer 230

9.3.4 在线程中更新GUI组件 232

9.3.5 全局定时器AlarmManager 234

9.3.6 定时更换壁纸 234

9.3.7 多次定时提醒 237

9.4 跨进程访问(AIDL服务) 239

9.4.1 什么是AIDL服务 240

9.4.2 建立AIDL服务的步骤 240

9.4.3 建立AIDL服务 240

9.4.4 传递复杂数据的AIDL服务 243

9.5 小结 248

第10章 网络技术 249

10.1 可装载网络数据的控件 249

10.1.1 装载网络数据的原理 250

10.1.2 将网络图像装载到ListView控件中 250

10.1.3 Google图像画廊(Gallery) 253

10.2 WebView控件 257

10.2.1 用WebView控件浏览网页 257

10.2.2 手机浏览器 258

10.2.3 用WebView控件装载HTML代码 259

10.2.4 将英文词典整合到Web页中(JavaScript调用Java方法) 260

10.3 访问HTTP资源 262

10.3.1 提交HTTP GET和HTTP POST请求 262

10.3.2 HttpURLConnection类 265

10.3.3 上传文件 265

10.3.4 远程Apk安装器 268

10.3.5 调用WebService 270

10.3.6 通过WebService查询产品信息 271

10.4 Intemet地址 275

10.4.1 Internet地址概述 275

10.4.2 创建InetAddress对象 276

10.4.3 判断IP地址类型 278

10.5 客户端Socket 279

10.5.1 Socket类基础 280

10.5.2 多种连接服务端的方式 282

10.5.3 客户端Socket的超时 283

10.5.4 Socket类的getter和setter方法 283

10.5.5 Socket的异常 289

10.6 服务端Socket 290

10.6.1 创建ServerSocket对象 290

10.6.2 设置请求队列的长度 291

10.6.3 绑定IP地址 292

10.6.4 默认构造方法的使用 292

10.6.5 读取和发送数据 293

10.6.6 关闭连接 294

10.7 小结 294

第11章 多媒体技术 295

11.1 图形 295

11.1.1 图形绘制基础 296

11.1.2 绘制基本的图形和文本 298

11.1.3 绘制位图 301

11.1.4 用两种方式绘制位图 302

11.1.5 设置颜色的透明度 303

11.1.6 可任意改变透明度的位图 303

11.1.7 旋转图像 304

11.1.8 旋转动画 305

11.1.9 扭曲图像 306

11.1.10 按圆形轨迹扭曲图像 307

11.1.11 拉伸图像 310

11.1.12 拉伸图像演示 310

11.1.13 路径 312

11.1.14 沿着路径绘制文本 316

11.1.15 可在图像上绘制图形的画板 318

11.2 音频和视频 323

11.2.1 使用MediaPlayer播放MP3文件 323

11.2.2 使用MediaRecorder录音 324

11.2.3 使用VideoView播放视频 325

11.2.4 使用SurfaceView播放视频 326

11.3 小结 327

第12章 Fragment 328

12.1 什么是Fragment 328

12.2 Fragment的设计原则 330

12.3 Fragment初步 331

12.3.1 Fragment的使用方法 331

12.3.2 实例:一个简单的FragmentApP 331

12.4 Fragment的生命周期 335

12.4.1 生命周期详解 335

12.4.2 实例:Fragment生命周期演示 340

12.5 动态创建Fragment 343

12.6 Fragment与Activity之间的交互 346

12.7 回退栈 348

12.8 小结 350

第13章 ActionBar 351

13.1 ActionBar简介 351

13.2 ActionBar基础 352

13.2.1 隐藏/显示ActionBar 352

13.2.2 Action按钮 354

13.3 应用程序图标导航 357

13.4 收缩和展开Action View 358

13.5 导航标签 361

13.6 下拉导航列表 366

13.7 小结 368

第14章 Android 5.x新特性:质感主题 369

14.1 使用不同的质感主题 369

14.2 修改质感主题的默认属性值 371

14.3 小结 372

第15章 Android 5.x新特性:阴影和视图裁剪 373

15.1 阴影 373

15.1.1 高度和Z轴的位置 373

15.1.2 带有阴影的拖动效果 376

15.2 视图裁剪 377

15.3 小结 379

第16章 Android 5.x新特性:列表和卡片控件 380

16.1 RecyclerView控件简介 380

16.2 用RecyclerView控件实现垂直列表效果 381

16.2.1 建立Model 381

16.2.2 定制列表项的分隔条 382

16.2.3 实现Adapter类 383

16.2.4 如何使用RecyclerView控件 385

16.2.5 用RecyclerView控件实现增加和删除列表项的效果 386

16.3 用RecyclerView控件实现画廊的效果 389

16.3.1 为画廊提供数据 390

16.3.2 自定义RecyclerView控件 391

16.3.3 让RecyclerView控件横屏显示 392

16.4 CardView控件 393

16.4.1 出现R$styleable没找到错误的原因 393

16.4.2 在布局文件中使用CardView 395

16.4.3 用Java代码来控制CardView控件 396

16.5 小结 398

第17章 Android 5.x新特性:Drawable资源 399

17.1 着色 399

17.2 矢量Drawable资源 400

17.3 矢量动画 402

17.3.1 指针会动的时钟 402

17.3.2 笑脸表情 404

17.4 Ripple Drawable资源 406

17.5 小结 409

第18章 其他Android 5.x新特性 410

18.1 以Immersive模式隐藏及显示状态栏和导航条 410

18.1.1 什么是Immersive模式 410

18.1.2 实现界面的布局 411

18.1.3 隐藏和显示 411

18.1.4 监听隐藏和显示状态 412

18.2 新的通知中心 412

18.3 续航与安全性 413

18.4 更多的新功能 414

18.5 小结 414

第19章 2D动画 415

19.1 帧(Frame)动画 415

19.1.1 AnimationDrawable与帧动画 416

19.1.2 通过帧动画方式播放GIF动画 417

19.1.3 播放帧动画的子集 420

19.2 补间(Tween)动画 422

19.2.1 移动补间动画 422

19.2.2 循环向右移动的EditText与上下弹跳的球 424

19.2.3 缩放补间动画 426

19.2.4 跳动的心 427

19.2.5 旋转补间动画 428

19.2.6 旋转的星系 429

19.2.7 透明度补间动画 430

19.2.8 投掷炸弹 431

19.2.9 振动效果 434

19.2.10 自定义动画渲染器(Interceptor) 434

19.2.11 以动画方式切换View的控件ViewFlipper 436

19.3 小结 437

第20章 OpenGL ES编程 438

20.1 OpenGLES简介 438

20.2 在3D空间中绘图 440

20.2.1 绘制3D图形的第一步 440

20.2.2 定义顶点 442

20.2.3 绘制三角形 443

20.2.4 三角形合并法绘制矩形 445

20.2.5 顶点法绘制矩形 447

20.2.6 顶点的选取顺序 448

20.2.7 索引法绘制矩形 449

20.2.8 基于OpenGLES的动画原理 450

20.2.9 旋转的矩形 450

20.3 视图 452

20.3.1 有趣的比喻:照相机拍照 453

20.3.2 模型变换:立方体旋转 454

20.3.3 用gluLookAt方法变换视图 457

20.4 颜色 458

20.5 小结 460

第21章 媒体特效API 461

21.1 实现主界面布局 461

21.2 初始化主界面 463

21.3 媒体特效API演示 464

21.3.1 Brightness特效 464

21.3.2 反差特效(Contrast) 464

21.3.3 Crossprocess特效 465

21.3.4 纪录片(Documentary)特效 465

21.3.5 双色调(Duotone)特效 465

21.3.6 鱼眼(Fish Eye)特效 465

21.3.7 垂直翻转特效 466

21.3.8 灰度特效 467

21.3.9 Lomoish特效 467

21.3.10 底片特效 467

21.3.11 色调特效 467

21.4 让特效生效 468

21.5 小结 468

第22章 资源、国际化与自适应 469

22.1 Android中的资源 470

22.1.1 Android怎么存储资源 470

22.1.2 资源的种类 470

22.1.3 资源文件的命名 471

22.2 定义和使用资源 471

22.2.1 使用系统资源 471

22.2.2 字符串(String)资源 473

22.2.3 数组(Array)资源 474

22.2.4 颜色(Color)资源 476

22.2.5 尺寸(Dimension)资源 477

22.2.6 类型(Style)资源 479

22.2.7 主题(Theme)资源 480

22.2.8 绘画(Drawable)资源 482

22.2.9 动画(Animation)资源 483

22.2.10 菜单(Menu)资源 483

22.2.11 布局(Layout)资源 486

22.2.12 属性(Attribute)资源 486

22.2.13 改进可显示图标的IconTextView控件 488

22.2.14 XML资源 490

22.2.15 RAW资源 491

22.2.16 ASSETS资源 492

22.3 国际化和资源自适应 492

22.3.1 对资源进行国际化 492

22.3.2 Locale与国际化 494

22.3.3 常用的资源配置 494

22.4 小结 495

第23章 访问Android手机的硬件 496

23.1 在手机上测试硬件 496

23.1.1 安装Android USB驱动 497

23.1.2 在手机上测试程序 498

23.1.3 在手机上调试程序 499

23.2 录音 500

23.3 控制手机摄像头(拍照) 500

23.3.1 调用系统的拍照功能 501

23.3.2 实现自己的拍照Activity 503

23.4 传感器在手机中的应用 507

23.4.1 在应用程序中使用传感器 507

23.4.2 电子罗盘 509

23.4.3 计步器 510

23.5 GPS与地图定位 511

23.5.1 Google地图 511

23.5.2 用GPS定位到当前位置 515

23.6 WIFI 516

23.7 小结 519

第24章 NDK技术 520

24.1 AndroidNDK简介 520

24.2 安装、配置和测试NDK开发环境 521

24.2.1 系统和软件要求 521

24.2.2 下载和安装AndroidNDK 522

24.2.3 下载和安装Cygwin 522

24.2.4 配置Android NDK的开发环境 525

24.2.5 编译和运行NDK自带的例子 526

24.3 AndroidNDK开发 528

24.3.1 JNI接口设计 528

24.3.2 编写Android NDK程序的步骤 529

24.3.3 将文件中的小写字母转换成大写字母(NDK版本) 529

24.3.4 配置Android.mk文件 532

24.3.5 AndroidNDK定义的变量 533

24.3.6 AndroidNDK定义的函数 533

24.3.7 描述模块的变量 534

24.3.8 配置Application.mk文件 535

24.4 小结 536

第25章 蓝牙技术 537

25.1 蓝牙简介 537

25.2 打开和关闭蓝牙设备 538

25.3 搜索蓝牙设备 539

25.4 蓝牙数据传输 541

25.5 蓝牙通信一定需要UUID吗 544

25.6 小结 545

第26章 有趣的Android技术 546

26.1 手势(Gesture) 546

26.1.1 创建手势文件 546

26.1.2 通过手势输入字符串 547

26.1.3 通过手势调用程序 549

26.1.4 编写自己的手势创建器 550

26.2 让手机说话(TTS) 551

26.3 动态壁纸 552

26.4 小结 559

第27章 Android App性能调优 560

27.1 刷新频率与丢帧 560

27.2 开发者选项与查看GPU负载 561

27.3 GPU渲染时间与性能调优 564

27.4 Overdraw与区域绘制 565

27.5 内存抖动与性能 566

27.6 小结 568

第28章 内存泄露检测 569

28.1 造成内存泄露的原因 569

28.1.1 非静态内嵌类 569

28.1.2 Handler要用静态变量或弱引用 570

28.1.3 线程引发的内存泄露 571

28.1.4 其他可能会造成内存泄露的情况 572

28.1.5 弱引用(WeakReference)和软引用(SoftReference) 572

28.2 内存泄露检测工具:Eclipse MAT 573

28.3 小结 576

第29章 项目实战:超级手电筒 577

29.1 手电筒APP简介 577

29.2 手电筒的架构 578

29.3 手电筒照明 579

29.3.1 手电筒的布局 579

29.3.2 通过代码调整控制区域位置 580

29.3.3 打开和关闭闪光灯 580

29.4 警告灯 581

29.5 发送莫尔斯密码 583

29.6 其他功能的实现 585

29.7 小结 585

第30章 项目实战:基于XMPP的IM客户端 586

30.1 XMPP简介 586

30.2 Openfire安装与配置 587

30.3 Spark的安装和使用 590

30.4 用户登录 591

30.5 获取好友信息 591

30.6 添加好友 594

30.7 发送聊天信息 594

30.8 接收聊天信息 595

30.9 其他功能 596

30.10 小结 596

返回顶部