《国外计算机科学教材系列 Android大学教程》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)戴特尔著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2015
  • ISBN:9787121266898
  • 页数:543 页
图书介绍:本书是美国知名编程类系列教材中针对 Android 系统下进行应用开发而编写的一本入门级教材, 并结合了Java编程语言的基础及重要概念的讲解。全书以“应用驱动的方法”为基础, 详细讲解了数个完整的 Android 应用的开发过程。 书中有关Java编程语言的内容包括:Java应用简介,类、对象、方法和字符串,控制语句,方法,数组,类和对象,继承与多态,异常处理,GUI组件和事件处理。每章都提供了大量的自测题、习题和项目练习,方便读者巩固所学知识。

第1章 Android简介 1

1.1 简介 1

1.2 Android——世界领先的移动操作系统 2

1.3 Android的特点 2

1.4 Android操作系统 5

1.4.1 Android 2.2 (Froyo) 5

1.4.2 Android 2.3 (Gingerbread) 5

1.4.3 Android 3.0~3.2 (Honeycomb) 6

1.4.4 Android 4.0~4.0.4 (Ice Cream Sandwich) 6

1.4.5 Android 4.1 ~4.3 (Jelly Bean) 7

1.4.6 Android 4.4 (KitKat) 7

1.5 从Google Play下载应用 8

1.6 包 9

1.7 Android软件开发工具集(SDK) 10

1.8 面向对象编程:简短回顾 11

1.8.1 汽车作为对象 12

1.8.2 方法与类 12

1.8.3 实例化 12

1.8.4 复用 12

1.8.5 消息与方法调用 12

1.8.6 属性与实例变量 13

1.8.7 封装 13

1.8.8 继承 13

1.8.9 面向对象的分析与设计(OOAD) 13

1.9 在AVD中测试Doodlz应用 13

1.9.1 在Nexus 4 AVD中运行Doodlz 应用 14

1.9.2 在Tablet AVD中运行Doodlz应用 19

1.9.3 在Android设备上运行Doodlz应用 19

1.10 创建好的Android应用 21

1.11 Android开发资源 22

1.12 小结 23

自测题 23

自测题答案 24

练习题 24

第2章 Welcome应用 26

2.1 简介 26

2.2 技术概览 27

2.2.1 Android开发人员工具IDE 27

2.2.2 文本视图和图像视图 27

2.2.3 应用的资源 27

2.2.4 辅助性 28

2.2.5 国际化 28

2.3 创建应用 28

2.3.1 启动Android开发人员工具IDE 28

2.3.2 创建新工程 28

2.3.3 New Android Application对话框 28

2.3.4 配置工程 30

2.3.5 配置启动图标 30

2.3.6 Create Activity步骤 31

2.3.7 Blank Activity步骤 31

2.4 Android Developer Tools窗口 33

2.4.1 Package Explorer窗口 33

2.4.2 编辑器窗口 34

2.4.3 Outline窗口 34

2.4.4 应用的资源文件 34

2.4.5 Graphical Layout编辑器 34

2.4.6 默认GUI 35

2.5 用Graphical Layout编辑器构建应用的GUI 35

2.5.1 给工程添加图像 36

2.5.2 更改RelativeLayout和TextView的Id属性 36

2.5.3 配置TextView 37

2.5.4 添加ImageView,显示图像 40

2.6 运行Welcome应用 41

2.7 为应用增加辅助功能 42

2.8 使应用国际化 43

2.9 小结 46

自测题 47

自测题答案 47

练习题 47

第3章 Tip Calculator应用 49

3.1 简介 49

3.2 测试驱动的Tip Calculator应用 50

3.3 技术概览 51

3.3.1 Activity类 51

3.3.2 Activity类的生命周期方法 51

3.3.3 利用GridLayout和LinearLayout安排视图 52

3.3.4 利用Graphical Layout编辑器和Outline、Properties窗口创建并定制GUI 52

3.3.5 格式化数字,表示本地货币和百分比字符串 53

3.3.6 实现TextWatcher接口,处理EditText中的文本变化 53

3.3.7 实现OnSeekBarChangeListener接口,处理SeekBar中的滑块位置变化 53

3.3.8 AndroidManifest.xml 53

3.4 构建应用的GUI 54

3.4.1 GridLayout简介 54

3.4.2 创建TipCalculator工程 55

3.4.3 改成GridLayout布局 56

3.4.4 添加TextView、EditText、SeekBar和LinearLayout 56

3.4.5 定制视图,完成设计 58

3.5 为应用增加功能性 61

3.6 AndroidManifest.xml 67

3.7 小结 68

自测题 69

自测题答案 69

练习题 70

第4章 Twitter Searches应用 72

4.1 简介 73

4.2 测试驱动的应用 73

4.2.1 导入应用并运行 73

4.2.2 添加一个搜索 74

4.2.3 查看Twitter搜索的结果 75

4.2.4 编辑搜索 75

4.2.5 共享搜索结果 76

4.2.6 删除搜索记录 76

4.2.7 滚动浏览保存的搜索记录 77

4.3 技术概览 78

4.3.1 ListView 78

4.3.2 ListActivity 78

4.3.3 定制ListActivity的布局 78

4.3.4 ImageButton 78

4.3.5 SharedPreferences 78

4.3.6 启动其他Activity的Intent 79

4.3.7 AlertDialog 79

4.3.8 AndroidManifest.xml 80

4.4 构建应用的GUI 80

4.4.1 创建工程 80

4.4.2 activity_main.xml概览 81

4.4.3 添加GridLayout和组件 82

4.4.4 Graphical Layout编辑器工具栏 85

4.4.5 ListView项的布局:list_item.xml 86

4.5 构建MainActivity类 87

4.5.1 package声明和import声明 88

4.5.2 扩展ListActivity 89

4.5.3 MainActivity类的字段 89

4.5.4 重写Activity方法onCreate 90

4.5.5 实现saveButton的OnClickListener 接口,保存新搜索或更新后的搜索的匿名内部类 91

4.5.6 addTaggedSearch方法 93

4.5.7 实现ListView的OnItemClickListener接口,显示搜索结果的匿名内部类 94

4.5.8 实现ListView的OnItemLongClick Listener接口,共享、编辑或删除搜索的匿名内部类 95

4.5.9 shareSearch方法 97

4.5.10 deleteSearch方法 98

4.6 AndroidManifest.xml 99

4.7 小结 99

自测题 100

自测题答案 100

练习题 100

工程练习题 101

高级工程练习题 101

第5章 Flag Quiz应用 103

5.1 简介 104

5.2 测试驱动的Flag Quiz应用 105

5.2.1 导入应用并运行 105

5.2.2 配置Flag Quiz应用 105

5.2.3 运行Flag Quiz应用 106

5.3 技术概览 108

5.3.1 菜单 108

5.3.2 Fragment 108

5.3.3 Fragment生命周期方法 109

5.3.4 管理Fragment 109

5.3.5 首选项 109

5.3.6 assets文件夹 109

5.3.7 资源文件夹 110

5.3.8 支持不同屏幕尺寸和分辨率 110

5.3.9 确定屏幕尺寸 111

5.3.10 用于显示消息的Toast 111

5.3.11 使用Handler在未来执行一个 Runnable对象 111

5.3.12 将动画用于View 111

5.3.13 为异常消息做日志 111

5.3.14 使用显式Intent启动同一个应用中的另一个Activity 111

5.3.15 Java数据结构 112

5.4 构建应用的GUI和资源文件 112

5.4.1 创建工程 112

5.4.2 strings.xml与格式化字符串资源 112

5.4.3 arrays.xml 113

5.4.4 colors.xml 114

5.4.5 dimens.xml 114

5.4.6 activity_settings.xml布局 115

5.4.7 用于纵向设备的activity_main.xml 布局 115

5.4.8 fragment_quiz.xml布局 115

5.4.9 用于横向设备的activity_main.xml布局 117

5.4.10 确定应用设置的 preferences.xml 118

5.4.11 创建国旗飘扬动画 119

5.5 MainActivity类 120

5.5.1 package声明、import声明与字段 120

5.5.2 重写Activity方法onCreate 121

5.5.3 重写Activity方法onStart 122

5.5.4 重写Activity方法 onCreateOptionsMenu 123

5.5.5 重写Activity方法 onOptionsItemSelected 123

5.5.6 实现OnSharedPreferenceChangeListener的匿名内部类 124

5.6 QuizFragment类 125

5.6.1 package声明和import声明 125

5.6.2 字段 126

5.6.3 重写Fragment方法 onCreateView 127

5.6.4 updateGuessRows方法 128

5.6.5 updateRegions方法 129

5.6.6 resetQuiz方法 129

5.6.7 loadNextFlag方法 130

5.6.8 getCountryName方法 132

5.6.9 实现OnClickListener的匿名内部类 132

5.6.10 disableButtons方法 134

5.7 SettingsFragment类 134

5.8 SettingsActivity类 135

5.9 AndroidManifest.xml 135

5.10 小结 136

自测题 137

自测题答案 137

练习题 137

工程练习题 138

第6章 Cannon Game应用 140

6.1 简介 140

6.2 测试驱动的Cannon Game应用 142

6.3 技术概览 142

6.3.1 将定制的View与布局绑定 142

6.3.2 使用raw资源文件夹 142

6.3.3 Activity和Fragment的生命周期方法 142

6.3.4 重写View方法onTouchEvent 143

6.3.5 用SoundPool和AudioManager添加声音 143

6.3.6 用Thread、SurfaceView和SurfaceHolder实现逐帧动画 143

6.3.7 简单的冲突检测 144

6.3.8 用Paint和Canvas绘制图形 144

6.4 构建应用的GUI和资源文件 144

6.4.1 创建工程 144

6.4.2 strings.xml 145

6.4.3 fragment_game.xml 145

6.4.4 activity_main.xml 145

6.4.5 为应用添加声音 146

6.5 管理线端点的Line类 146

6.6 Activity的MainActivity子类 147

6.7 Fragment的CannonGameFragment子类 147

6.8 View的CannonView子类 148

6.8.1 package声明和import声明 148

6.8.2 常量与实例变量 148

6.8.3 构造方法 150

6.8.4 重写View方法onSizeChanged 152

6.8.5 newGame方法 153

6.8.6 updatePositions方法 153

6.8.7 fireCannonball方法 156

6.8.8 alignCannon方法 157

6.8.9 drawGameElements方法 157

6.8.10 showGameOverDialog方法 159

6.8.11 stopGame方法和releaseResources方法 160

6.8.12 实现SurfaceHolder.Callback方法 160

6.8.13 重写View方法onTouchEvent 161

6.8.14 CannonThread:使用Thread实现游戏的循环 161

6.9 小结 163

自测题 163

自测题答案 164

练习题 164

第7章 Doodlz应用 167

7.1 简介 167

7.2 技术概览 168

7.2.1 使用SensorManager监听加速计事件 168

7.2.2 定制的DialogFragment 168

7.2.3 用Canvas和Bitmap画图 169

7.2.4 处理多点触事件并在Path中保存线信息 169

7.2.5 Android 4.4 的沉浸模式 169

7.2.6 GestureDetector与SimpleOnGestureListener 169

7.2.7 将绘制的图像保存到设备的图片库中 170

7.2.8 Android 4.4 的打印功能及Android Support Library的PrintHelper类 170

7.3 构建应用的GUI和资源文件 170

7.3.1 创建工程 170

7.3.2 strings.xml 171

7.3.3 dimens.xml 171

7.3.4 DoodleFragment的菜单 171

7.3.5 MainActivity的activity_main.xml布局 172

7.3.6 DoodleFragment的fragment_doodle.xml布局 173

7.3.7 ColorDialogFragment的fragment_color.xml布局 173

7.3.8 LineWidthDialogFragment的fragment line_width.xml布局 175

7.3.9 增加EraseImageDialogFragment类 176

7.4 MainActivity类 176

7.5 DoodleFragment类 177

7.6 DoodleView类 182

7.7 ColorDialogFragment类 192

7.8 LineWidthDialogFragment类 195

7.9 EraseImageDialogFragment类 197

7.10 小结 199

自测题 199

自测题答案 200

练习题 200

第8章 Address Book应用 202

8.1 简介 202

8.2 测试驱动的Address Book应用 205

8.3 技术概览 205

8.3.1 用FragmentTransaction显示Fragment 205

8.3.2 在Fragment与宿主Activity之间交换数据 206

8.3.3 onSaveInstanceState方法 206

8.3.4 定义样式并将它们应用于GUI组件 206

8.3.5 为TextView指定背景 206

8.3.6 扩展ListFragment类,创建包含ListView的Fragment 206

8.3.7 操作SQLite数据库 206

8.3.8 在GUI线程之外用AsyncTask执行数据库操作 207

8.4 构建应用的GUI和资源文件 207

8.4.1 创建工程 207

8.4.2 创建应用的类 207

8.4.3 strings.xml 208

8.4.4 styles.xml 208

8.4.5 textview_border.xml 209

8.4.6 MainActivity的布局:activity_main.xml 209

8.4.7 DetailsFragment的布局:fragment_details.xml 210

8.4.8 AddEditFragment的布局:fragment_add_edit.xml 211

8.4.9 定义Fragment的菜单 212

8.5 MainActivity类 213

8.6 ContactListFragment类 218

8.7 AddEditFragment类 223

8.8 DetailsFragment类 228

8.9 DatabaseConnector实用工具类 234

8.10 小结 238

自测题 239

自测题答案 239

练习题 239

第9章 Google Play及应用的商业问题 241

9.1 简介 241

9.2 为发布应用做准备 242

9.2.1 测试应用 242

9.2.2 最终用户许可协议 242

9.2.3 图标与标签 242

9.2.4 为应用定义版本 243

9.2.5 为已付费应用提供访问控制授权 243

9.2.6 弄乱源代码 243

9.2.7 获取密钥,对应用进行数字签名 244

9.2.8 屏幕截图 244

9.2.9 用于推广应用的视频 245

9.3 为应用定价:免费或收费 245

9.3.1 付费应用 246

9.3.2 免费应用 246

9.4 通过应用内广告使应用货币化 247

9.5 货币化应用:通过应用内计费功能销售虚拟商品 247

9.6 注册Google Play 248

9.7 设置Google Wallet商家账号 249

9.8 将应用上载到Google Play 249

9.9 在应用里启动Play Store 251

9.10 管理Google Play中的应用 251

9.11 其他的Android应用市场 251

9.12 其他流行的移动应用平台 252

9.13 应用的市场推广 252

9.14 小结 255

与Deitel&Associates公司保持联系 256

自测题 256

自测题答案 256

练习题 257

附录AJ ava程序入门 258

A.1 简介 258

A.2 第一个Java程序:输出一行文本 258

A.3 修改第一个Java程序 261

A.4 用prinff显示文本 263

A.5 另一个Java程序:整数相加 264

A.6 内存概念 266

A.7 算术运算符 267

A.8 判断:相等运算符和关系运算符 270

A.9 小结 272

自测题 272

自测题答案 273

练习题 275

附录B 类、对象、方法和字符串简介 277

B.1 简介 277

B.2 声明带方法的类并实例化类的对象 277

B.3 声明带参数的方法 280

B.4 实例变量、set方法和get方法 282

B.5 基本类型与引用类型的对比 285

B.6 用构造方法初始化对象 286

B.7 浮点数与double类型 288

B.8 小结 291

自测题 292

自测题答案 292

练习题 293

附录C 控制语句 294

C.1 简介 294

C.2 算法 295

C.3 伪代码 295

C.4 控制结构 295

C.5 if单选择语句 296

C.6 if...else双选择语句 296

C.7 while循环语句 299

C.8 案例研究:计数器控制循环 299

C.9 案例研究:标记控制循环 302

C.10 案例研究:嵌套控制语句 306

C.11 复合赋值运算符 308

C.12 增量和减量运算符 309

C.13 基本类型 310

C.14 计数器控制循环的实质 310

C.15 for循环语句 311

C.16 使用for语句的例子 313

C.17 do…while循环语句 315

C.18 switch多选择语句 315

C.19 break与continue语句 321

C.20 逻辑运算符 321

C.21 小结 324

自测题(C.1 节~C.1 3节 ) 324

自测题(C.1 4节 ~C.2 0节 ) 325

自测题答案(C.1 节~C.1 3节 ) 326

自测题答案(C.1 4节 ~C.2 0节 ) 326

练习题(C.1 节~C.1 3节 ) 327

练习题(C.1 4节 ~C.2 0节 ) 328

附录D 方法:深入探究 330

D.1 简介 330

D.2 Java中的程序模块 330

D.3 静态方法,静态字段和Math类 331

D.4 声明多参数方法 333

D.5 关于方法声明与使用的说明 335

D.6 方法调用栈与活动记录 336

D.7 实参提升与强制转换 336

D.8 Java API包 337

D.9 随机数生成方法简介 338

D.10 案例研究:机会游戏(引入枚举) 340

D.11 声明的作用域 343

D.12 方法重载 345

D.13 小结 347

自测题 348

自测题答案 349

练习题 350

附录E 数组和ArrayList 354

E.1 简介 354

E.2 数组 354

E.3 声明和创建数组 355

E.4 数组使用举例 356

E.5 案例研究:洗牌与发牌模拟 363

E.6 强化for语句 366

E.7 将数组传入方法 367

E.8 案例研究:GradeBook类用数组保存成绩 370

E.9 多维数组 374

E.10 案例研究:使用TwoDimensional数组的GradeBook类 377

E.11 Arrays类 382

E.12 集合和ArrayList类简介 384

E.13 小结 386

自测题 387

自测题答案 387

练习题 388

附录F 类与对象:深入探究 390

F.1 简介 390

F.2 Time类案例研究 390

F.3 控制对成员的访问 394

F.4 用this引用访问当前对象的成员 394

F.5 Time类案例研究:重载构造方法 396

F.6 默认构造方法与无实参构造方法 401

F.7 合成 401

F.8 枚举 404

F.9 垃圾回收 406

F.10 静态类成员 406

F.11 final实例变量 409

F.12 包 410

F.13 包访问 410

F.14 小结 411

自测题 411

自测题答案 411

练习题 411

附录G 面向对象编程:继承与多态 413

G.1 继承简介 413

G.2 超类与子类 414

G.3 protected成员 415

G.4 超类与子类的关系 416

G.5 Object类 432

G.6 多态简介 433

G.7 多态示例 434

G.8 演示多态行为 434

G.9 抽象类和方法 437

G.10 案例研究:使用多态的工资系统 438

G.11 final方法和final类 450

G.12 案例研究:创建和使用接口 451

G.13 Java API的公共接口 459

G.14 小结 460

自测题(G.1 节~G.5 节) 460

自测题(G.6 节~G.1 3节 ) 461

自测题答案(G.1 节~G.5 节) 461

自测题答案(G.6 节~G.1 3节 ) 461

练习题(G.1 节~G.5 节) 461

练习题(G.6 节~G.1 3节 ) 462

附录H 异常处理:深入探究 463

H.1 简介 463

H.2 示例:除数为0不用异常处理 463

H.3 示例:处理ArithmeticException 465

异常和InputMismatchException异常 465

H.4 何时使用异常处理 469

H.5 Java异常层次 469

H.6 finally语句块 471

H.7 栈解退和从异常对象获得信息 475

H.8 小结 477

自测题 477

自测题答案 478

练习题 478

附录I GUI组件与事件处理 480

I.1 简介 480

I.2 Nimbus外观 480

I.3 文本框与带嵌套类的事件处理介绍 481

I.4 常见的GUI事件类型与监听器接口 486

I.5 如何进行事件处理 487

I.6 JButton 488

I.7 JComboBox与用于事件处理的匿名内部类 491

I.8 适配器类 494

I.9 小结 494

自测题 495

自测题答案 495

练习题 495

附录J 其他的Java主题 496

J.1 简介 496

J.2 集合概述 497

J.3 基本类型的类型包装器类 497

J.4 Collection接口和Collections类 498

J.5 List 498

J.6 Collections方法 504

J.7 Queue接口 506

J.8 Set 506

J.9 Map 507

J.10 文件与流简介 509

J.11 File类 511

J.12 对象系列化简介 512

J.13 多线程简介 512

J.14 用Executor框架创建并执行线程 513

J.15 线程同步概述 516

J.16 并发集合概述 517

J.17 GUI与多线程 517

J.18 小结 522

自测题 523

自测题答案 523

练习题 523

附录K 运算符优先级表 525

附录L 基本类型 526

索引 527