【转】推荐--《Android深入浅出》----不错

原文网址:http://www.cnblogs.com/plokmju/p/Android_Book.html

推荐--《Android深入浅出》



基本信息

  • 书名:Android深入浅出
  • 作者:张旸 著
  • 页数: 661
  • 出版社: 机械工业出版社; 第1版 (2014年4月17日)
  • 语种: 简体中文
  • ASIN: B00JR3P8X0
  • 品牌: 北京华章图文信息有限公司

  

推荐理由   

  以前一直在博客园发表Android相关的技术博客,经过一年多的精心准备,《Android深入浅出》一书终于出版。这是一本基于Android 4.x SDK,用其来开发Android应用。本书不仅能让你掌握Android应用开发所需要具备的基本知识,还会对Android 4.x开始的一些新特性做详细的介绍。本书由浅入深,从Android环境的搭建,到每个Android组件的原理以及使用都做了非常详尽的讲解,非常适合初学者进行系统的学习。同时,本书的内容也十分丰富,可以当做Android开发人员的参考手册来使用。

  本书主要是写给对Android感兴趣的开发人员,为了使他们能够更快速的理解Android的组件以及原理,在本书的内容中,均为对应章节的内容提供了充分的示例程序。这些示例程序首先将教您如何使用Android的内容,然后解释其工作原理。本书将帮助读者从最基本的Android组件的使用以及原理入手,使读者充分理解Android SDK的底层架构与运行原理。但是Android开发是一个宏大的主题,任何一本都不可能面面俱到的介绍有关Android开发的全部内容,可我相信通过对本书的通读,将有充分的知识储备应对任何与Android开发相关的技术难点。

 

前言-主要内容

  本书涵盖了使用Android SDK进行Android开发的基本概念,共分为19个章节。

  “第一章 Android应用开发概述”介绍了Android系统的发展历史以及现如今的状况,并介绍了Android的系统结构以及Dalvik VM与JVM的区别和Android系统的优势,最后简单介绍了Android应用开发涉及到的几个基本组件。

  “第二章 第一个Android应用程序”介绍了如何搭载Android的开发环境,以及如何使用Android SDK提供的工具协助Android的开发,最后将以一个简单的HelloWord应用讲解Android项目的目录结构。

  “第三章 Android的UI编程”介绍了AndroidUI编程所涉及到的内容,包括在Android下如何进行UI编程、几种UI布局的使用、SDK中包含的UI组件的基本使用等等。

  “第四章 事件处理机制”介绍了Android应用开发的事件处理机制,其中包括Android下基于监听和基于回调两种事件处理机制的详细内容,最后还简单讲解了Android系统设置被改变后如何进行相应。

  “第五章 深入理解Activity”介绍了Android四大组件之一的Activity,Activity主要用于承载UI组件,该章中涉及到Activity的使用以及配置、Activity的生命周期、Activity状态的保存与恢复、Activity的回退栈以及Activity的启动模式,最后还简单的对Fragment这个Android的新特性做了详细的介绍。

  “第六章 Intent和IntentFilter”介绍了如何在Android中使用Intent开启一个新的组件或者传递一段信息,并且详细介绍了Intent各个属性的具体含义,以及如何使用IntentFilter这个意图过滤器。最后以几个简单的示例讲解如何使用Intent调用系统应用协助工作,帮助读者更好的理解Intent和IntentFilter的工作原理。

  “第七章 消息通知”介绍了在Android下如何将一段信息提示给用户知晓,其中涉及到Toast消息提示以及Notification消息提示。

  “第八章 菜单”介绍了Android下菜单的使用,并在最后详细介绍了ActionBar这个Android的新特性。

  “第九章 对话框”介绍了Android下如何使用对话框,其中涉及到对对话框的基本内容的讲解,以及警告对话框、进度对话框的基本使用。

  “第十章 日志与测试”介绍了在Android下如何使用在应用运行的时候,实时的输入日志信息,以及如何使用JUnitTest这个单元测试框架,对Android应用程序进行白盒测试。

  “第十一章 数据持久化”介绍了在Android应用程序中保存或存储数据。其中涉及到SharedPreferences保存配置信息、内部存储、外部存储、缓存存储以及SQLite这个轻量级的文件型数据库的使用。

  “第十二章 Android的网络访问”介绍了Android应用程序如何与Web服务器进行交互,并简单介绍了与Web服务器交互传递的数据解析,其中包括常用的JSON和XML的解析。

  “第十三章 Android的多线程”介绍了如何在Android应用程序中使用多线程的内容,其中涉及到一些多线程的内容、异步任务(AsyncTask)以及Handler的知识。

  “第十四章 服务(Service)”介绍了Android四大组件之一的Service组件,在其中详细介绍了Service的基础内容,包括Service的使用、Service的配置、Service的分类以及Service使用过程中的一些注意事项。最后还详细的介绍了如何在进程间调用服务,AIDL服务的使用。

  “第十五章 内容提供者(ContentProvider)”介绍了Android四大组件之一的ContentProvider组件,其中包括ContentProvider的基本内容,以及如何使用ContentProvider暴露出应用程序的数据,并且如何使用ContentObserver调用其它应用程序暴露出来的数据。最后还在ContentProvider的基础上讲解了装载机(Loader)这个Android新特性的内容。

  “第十六章 广播接收器(BroadcastReceiver)”介绍了Android四大组件之一的BroadcastReceiver组件,其中包括BroadcastReceiver的分类、如何注册BroadcastReceiver、如何发送一个广播,最后介绍了如何拦截系统事件的广播。

  “第十七章 图形与图像处理”介绍了Android应用中如何处理图形与图像的内容,其中包括图片资源的使用、对现有的图片进行绘图、变换等操作。最后还讲解了Android对动画效果的支持。

  “第十八章 多媒体应用开发”介绍了如何在Android应用中使用多媒体的内容,其中包括如何播放一段音频、视频,如何使用相机获取照片以及如何录制一段音频或者视频。

  “第十九章 Android应用的资源”介绍了如何使用Android应用程序中定义的一些资源文件,其中包括资源的类型以及访问方式的介绍,以及各项资源的详细使用。

 

目录

《Android深入浅出》... 1

1       Android应用开发概述... 9

1.1             Android发展史与现状... 9

1.2             Android的系统架构与特性... 10

1.2.1         Android系统架构... 10

1.2.2         Dalvik VM和JVM的区别... 12

1.2.3         Android系统平台的优势... 13

1.3             Android应用的基本组件... 14

1.3.1         活动(Activity)... 14

1.3.2         服务(Service)... 15

1.3.3         广播接收器(BroadcastReceiver)... 15

1.3.4         内容提供者(ContentProvider)... 15

1.3.5         意图(Intent)... 16

1.4             小结... 16

2       第一个Android应用程序... 16

2.1             搭载Android的开发环境... 16

2.1.1         安装Eclipse和ADT. 16

2.1.2         下载其它版本的Android SDK. 18

2.2             创建模拟器(AVD)... 21

2.3             Android版的HelloWord. 25

2.4             Android项目结构分析... 29

2.4.1         Android项目的目录结构... 29

2.4.2         自动生成的R.java. 31

2.4.3         清单文件AndroidManifest.xml 31

2.5             DDMS调试环境... 33

2.6             小结... 35

3       Android的UI编程... 36

3.1             UI概述... 36

3.2             使用UI组件... 37

3.2.1         UI的常用属性及方法... 37

3.2.2         XML布局文件定义UI组件... 38

3.2.3         Java代码动态定义UI组件... 40

3.3             UI布局... 42

3.3.1         布局基类(ViewGroup)... 42

3.3.2         线性布局(LinearLayout)... 43

3.3.3         帧布局(FrameLayout)... 45

3.3.4         相对布局(RelativeLayout)... 47

3.3.5         表格布局(TableLayout)... 49

3.3.6         绝对布局(AbsoluteLayout)... 51

3.4             基本UI组件... 53

3.4.1         文本框(TextView)... 53

3.4.2         编辑框(EditText)... 61

3.4.3         按钮(Button)... 68

3.4.4         单选、复选按钮(RadioButton、CheckBox)... 75

3.4.5         开关按钮(ToggleButton、Switch)... 82

3.4.6         进度条组件(ProgressBar)... 85

3.4.7         日期、时间相关组件... 96

3.4.8         图像控件(ImageView)... 104

3.5             高级UI组件... 107

3.5.1         数据适配器(Adapter)浅析... 107

3.5.2         自动完成文本框(AutoCompleteTextView)... 109

3.5.3         列表选择组件(Spinner)... 113

3.5.4         列表视图(ListView)... 121

3.5.5         网格视图组件(GridView)... 128

3.5.6         滚动视图组件(ScrollView)... 135

3.5.7         图片切换器(ImageSwitcher)... 137

3.5.8         惰性装载组件 (ViewStub) 141

3.5.9         网络视图(WebView)... 145

3.6             小结... 149

4       事件处理机制... 149

4.1             Android的事件处理机制... 149

4.2             基于监听器的事件处理... 150

4.2.1         基于监听器的事件处理模型... 150

4.2.2         内部类实现事件监听器... 152

4.2.3         外部类实现事件监听器... 153

4.2.4         Activity本身作为事件监听器... 154

4.2.5         匿名内部类作为事件监听器... 155

4.2.6         使用XML属性设置事件处理器... 157

4.3             基于回调的事件处理... 158

4.3.1         回调机制... 159

4.3.2         基于回调的事件传播... 160

4.4             响应系统设置事件... 162

4.4.1         Configuration简介... 162

4.4.2         监听系统设置的更改... 163

4.5             小结... 165

5       深入理解Activity. 166

5.1             Activity基础... 166

5.1.1         Activity简介... 166

5.1.2         配置Activity. 168

5.1.3         启动和关闭一个Activity. 169

5.1.4         从新启动的Activity中返回数据... 170

5.1.5         在Activity间使用Bundle传递数据... 174

5.2             Activity的生命周期... 175

5.2.1         Activity生命周期基础... 175

5.2.2         Activity生命周期转换过程... 177

5.2.3         Activity生命周期简单应用... 180

5.3             保存Activity的状态... 182

5.3.1         Activity的状态保存简介... 182

5.3.2         状态保存与恢复的时机... 183

5.3.3         onSaveInstanceState()方法的默认实现... 186

5.4             任务(Task)与回退栈(Back Stack)... 187

5.4.1         Activity的任务(Task)... 187

5.4.2         Activity的回退栈(Back Stack)... 188

5.5             Activity的启动模式(launchMode)... 188

5.5.1         标准模式(standard)... 188

5.5.2         单顶模式(singleTop)... 189

5.5.3         单任务模式(singleTask)... 190

5.5.4         单例模式(singleInstance)... 190

5.5.5         动态设置启动模式... 191

5.6             Fragment. 191

5.6.1         Fragment简介... 191

5.6.2         Fragment的设计理念... 192

5.6.3         创建一个Fragment. 192

5.6.4         Fragment的生命周期... 195

5.6.5         管理Fragment. 197

5.6.6         在Fragment中交互... 200

5.6.7         Fragement向下兼容... 203

5.7             小结... 203

6       Intent和IntentFilter. 204

6.1             Intent和IntentFilter简介... 204

6.2             Intent的分类... 205

6.3             一个Intent的基本组成与配置... 206

6.3.1         Component Name. 206

6.3.2         Action. 208

6.3.3         Category. 209

6.3.4         Data. 212

6.3.5         Extra. 213

6.3.6         Flag. 213

6.4             意图过滤器(IntentFilter)... 214

6.5             使用Intent启动系统内置应用... 214

6.5.1         向拨号器传递号码... 215

6.5.2         直接拨打电话... 216

6.5.3         展示联系人列表... 216

6.5.4         编辑短信... 217

6.5.5         启动浏览器访问网页... 218

6.5.6         返回系统HOME桌面... 219

6.6             小结... 220

7       消息通知... 220

7.1             使用Toast提示消息... 221

7.1.1         使用Toast提示简单消息... 221

7.1.2         使用Toast提示定制消息... 222

7.2             使用Notification提示消息... 223

7.2.1         Notification的基础内容... 223

7.2.2         更新与移除Notification. 225

7.2.3         响应Notification. 225

7.2.4         Notification的显示风格... 227

7.2.5         进度条样式的Notification. 230

7.2.6         定制Notification样式... 233

7.2.7         Notification的提示响应... 234

7.3             小结... 235

8       菜单... 235

8.1             选项菜单(OptionMenu)... 235

8.1.1         选项菜单基础... 235

8.1.2         处理选项菜单的点击事件... 237

8.1.3         在运行时更新菜单项... 239

8.2             使用XML定义一个菜单... 239

8.3             上下文菜单(ContextMenu)... 242

8.4             活动模式(ActionMode)... 245

8.5             弹出菜单(PupopMenu)... 248

8.6             功能栏(ActionBar)... 250

8.6.1         ActionBar简介... 250

8.6.2         添加移除ActionBar. 250

8.6.3         添加Action Items. 251

8.6.4         响应Action Items的选择... 253

8.6.5         通过ActionBar图标来导航... 254

8.6.6         添加Action View.. 255

8.6.7         添加一个ActionProvider. 258

8.6.8         添加Tab导航... 260

8.6.9         添加一个下拉式导航... 265

8.6.10       ActionBar的样式... 267

8.7             小结... 268

9       对话框... 268

9.1             对话框(Dialog)... 268

9.2             警告对话框(AlertDialog)... 268

9.2.1         AlertDialog基础... 268

9.2.2         为AlertDialog增加按钮... 270

9.2.3         列表形式的AlertDialog. 272

9.2.4         单选列表的AlertDialog. 273

9.2.5         多选列表的AlertDialog. 275

9.2.6         自定义布局AlertDialog. 277

9.3             进度对话框(ProgressDialog)... 278

9.3.1         循环滚动的进度对话框... 279

9.3.2         有刻度的进度对话框... 280

9.4             小结... 281

10              日志与测试... 282

10.1          日志(Log)... 282

10.1.1       日志简介... 282

10.1.2       LogCat与Log Filter. 282

10.1.3       System日志... 285

10.2          单元测试(JUnit Test)... 286

10.2.1       编写业务逻辑方法与测试用例... 286

10.2.2       在清单文件中添加对JUnite支持... 287

10.2.3       执行测试用例方法... 289

10.3          小结... 292

11              数据持久化... 292

11.1          共享参数(SharedPreferences)... 293

11.1.1       得到SharedPreferences并读取数据... 293

11.1.2       向SharedPreferences中写入数据... 294

11.1.3       SharedPreferences的保存方式... 296

11.1.4       读写其它应用程序的SharedPreferences. 297

11.2          文件存储(File Storage)... 300

11.2.1       FileInputStream和FileOutputStream.. 300

11.2.2       内部存储(Internal Storage)... 301

11.2.3       缓存(cache)... 306

11.2.4       外部存储(External Storage)... 309

11.3          SQLite数据库(SQLite Database)... 313

11.3.1       Android中的SQLite. 313

11.3.2       创建与维护SQLite数据库... 313

11.3.3       SQL语句实现增删改查(CRUD)... 315

11.3.4       SQLiteDatabase封装的方法实现增删改查... 321

11.3.5       SQLite的事务... 329

11.4          小结... 330

12              Android的网络访问... 330

12.1          HTTP协议简介... 330

12.2          使用URL访问网络资源... 331

12.2.1       HttpURLConnection简介... 331

12.2.2       使用HttpURLConnection实现 GET请求... 332

12.2.3       使用HttpURLConnection实现POST请求... 335

12.3          使用HttpClient访问网络... 339

12.3.1       HttpClient简介... 339

12.3.2       使用DefaultHttpClient. 340

12.3.3       使用AndroidDefaultHttpClient. 343

12.4          解析XML格式数据... 347

12.4.1       XML简介... 347

12.4.2       使用SAX解析XML. 347

12.4.3       使用XMLPULL解析XML. 353

12.4.4       使用DOM解析XML. 357

12.5          解析JSON格式数据... 361

12.5.1       JSON简介... 361

12.5.2       org.json解析JSON.. 362

12.6          小结... 369

13              Android的多线程... 370

13.1          Android的进程与线程关系... 370

13.1.1       Android的进程... 370

13.1.2       Android的线程... 371

13.2          异步任务(AsyncTask)... 374

13.3          Handler. 378

13.3.1       Handler简介... 378

13.3.2       Handler的Post方式... 379

13.3.3       Handler的Message方式... 383

13.3.4       Handler的原理... 389

13.4          多线程图文混排示例... 394

13.5          小结... 399

14              服务(Service)... 399

14.1          服务(Service)基础... 400

14.1.1       服务(Service)简介... 400

14.1.2       服务在清单文件中的配置... 400

14.1.3       Service的开发步骤... 401

14.1.4       启动服务(Start Service)... 401

14.1.5       绑定服务(Bind Service)... 404

14.1.6       Service生命周期详解... 409

14.1.7       Service类型选用... 410

14.2          Service的一些高级内容... 411

14.2.1       Service与Thread的区别... 411

14.2.2       意图服务(IntentService)... 411

14.2.3       前台服务(Foreground Service)... 414

14.2.4       当服务被系统以外回收时... 417

14.2.5       不被销毁的服务... 418

14.3          绑定服务的信息交互详解... 418

14.3.1       使用IBinder接口进行数据交互... 419

14.3.2       使用Messenger类进行数据交互... 422

14.4          跨进程服务(AIDL服务)... 426

14.4.1       什么是AIDL. 426

14.4.2       如何定义一个AIDL. 427

14.4.3       AIDL做了是什么... 427

14.4.4       使用AIDL传递基本类型数据... 427

14.4.5       使用AIDL传递自定义对象... 432

14.5          小结... 445

15              内容提供者(ContentProvider)... 445

15.1          应用程序间的数据共享... 445

15.1.1       内容提供者(ContentProvider)简介... 446

15.1.2       Uri简介... 447

15.1.3       内容解析者(ContentResolver)简介... 448

15.2          使用ContentProvider向外提供数据示例... 448

15.3          操作系统应用的ContentProvider. 456

15.3.1       获取短信应用中的所有短信... 456

15.3.2       恢复短信信息到短信应用... 458

15.4          内容观察者(ContentObserver)... 459

15.4.1       使用内容观察者监听数据变化... 459

15.4.2       ContentObserver监听原理... 462

15.5          Loader(装载机)... 462

15.5.1       Loader简介... 462

15.5.2       Loader的API概述... 463

15.5.3       使用Loader示例... 464

15.6          小结... 469

16              广播接收者(BroadcastReceiver)... 469

16.1          BroadcastReceiver简介... 469

16.2          BroadcastReceiver分类... 470

16.3          注册广播接收者... 470

16.4          使用BroadcastReceiver的简单示例... 471

16.5          拦截系统广播... 473

16.5.1       系统中的广播(Broadcast)... 473

16.5.2       通过关键字拦截短信息... 473

16.5.3       实现IP拨号... 475

16.6          小结... 477

17              图形与图像处理... 477

17.1          图片的使用... 477

17.1.1       Drawable对象... 478

17.1.2       Bitmap和BitmapFactory. 478

17.1.3       图片加载引起的OOM问题... 479

17.1.4       操作图片的Exif信息... 482

17.2          绘图... 487

17.2.1       画布Canvas. 487

17.2.2       画笔Paint. 488

17.2.3       使用Canvas实现画图板... 488

17.3          图形特效处理... 493

17.3.1       使用Matrix控制图片变换... 493

17.3.2       使用ColorMatrix改变图片颜色... 498

17.4          逐帧动画FrameAnimation. 501

17.4.1       逐帧动画简介... 501

17.4.2       使用XML定义资源文件设置动画帧... 502

17.4.3       使用Java代码动态创建逐帧动画... 505

17.5          补间动画... 508

17.5.1       Animation简介... 508

17.5.2       AlphaAnimation控制透明度动画... 509

17.5.3       RotateAnimation控制旋转动画... 511

17.5.4       ScaleAnimation控制缩放动画... 513

17.5.5       TranslateAnimation控制位移动画... 515

17.5.6       AnimationSet控制组合动画... 516

17.5.7       Animation变化坐标点的参照类型... 519

17.5.8       Animation的Interpolator. 519

17.6          小结... 520

18              多媒体应用开发... 520

18.1          音频的播放... 520

18.1.1       使用MediaPlayer播放音频... 520

18.1.2       使用SoundPool播放音效... 532

18.2          视频的播放... 536

18.2.1       SurfaceView播放视频... 536

18.2.2       VideoView播放视频... 544

18.3          使用相机Camera拍照... 552

18.3.1       使用系统照相机拍照与摄像... 553

18.3.2       使用Camera拍照... 560

18.4          MediaRecorder录音录像... 566

18.4.1       MediaRecorder简介... 566

18.4.2       使用MediaRecorder录音... 569

18.4.3       使用MediaRecorder录制视频... 572

18.5          小结... 576

19              Android应用的资源... 576

19.1          资源的类型与访问方式... 576

19.1.1       资源的类型与存储方式... 577

19.1.2       使用资源... 577

19.2          使用简单的< resources…/>资源... 578

19.3          使用Drawable资源... 581

19.3.1       Bitmap资源... 581

19.3.2       LayerDrawable资源... 582

19.3.3       StateListDrawable资源... 584

19.3.4       ClipDrawable资源... 585

19.3.5       ShapeDrawable资源... 588

19.4          样式(Style)和主题(Theme)资源... 590

19.4.1       样式(Style)资源... 590

19.4.2       主题(Theme)资源... 592

19.5          使用原始资源... 593

19.6          总结... 594

posted on 2015-04-01 23:03  wi100sh  阅读(1908)  评论(0编辑  收藏  举报

导航