最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

Android开发权威指南.李宁.扫描版下载

XAMPP下载 admin 757浏览 0评论

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。最早是为数码相机开发的系统。后来,支持手机的Android操作系统由Andy Rubin开发。2005年8月由Google 收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。

随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android是增长最快的操作系统,因其在3大操作系统中支持设备种类最丰富、数量最多,所以它也有着庞大的用户群,是发展最快的科技产品。
1. 为什么选择Java开发Android

学习Android开发,对每个新手都是一个很大的挑战,就好像在异国他乡学会生存一样。即使会说当地的语言,一开始也绝不会有在家的感觉,因为你不能完全理解周围人理解的东西。原有的知识储备在新环境下可能完全派不上用场。

Android有自己的语言文化——Java语言。那为什么选择Java呢?Java是一个跨平台语言,它不像C++那样需要重新进行编译。Java的运行效率虽然不佳,但是它的语法相对简单,其中的相对特性也能让一般程序员开发出比较稳定的程序。因为Java程序是运行在虚拟机上,这就为权限控制,崩溃隔离等问题打下了一个良好的基础,就算一个程序崩溃了,往往也只是应用闪退,不容易造成系统的整个崩溃。Java的使用人群范围较广,用户基数庞大。虽然C++的使用人群也不少,不过相对来说少一些。使用Java的开发者更容易转为Android开发者,这在一开始Android生态系统未能建立时,尤为重要。但仅掌握Java远远不够,还需要学习很多新的理论和技术知识来理清头绪,从而指引你穿越陌生的领域。

ev90(文未下载本书)

本书主要以Android训练营教学课程为基础,融合了几位作者多年的心得体会,是一本完全面向实战的Android编程权威指南。全书共36章,详细介绍了8个Android应用的开发过程。通过这些精心设计的应用,读者可掌握很多重要的理论知识和开发技巧,获得宝贵的开发经验。

本书已经升级到了第3版,并为大家介绍了一些新工具:constraintlayout(包括其编辑器)和数据绑定(data binding)。新增的几个章节,内容涉及单元测试、辅助功能(accessibility)、MVVM架构和应用本地化。书的末尾还介绍了Android的新运行时权限系统。此外,我们还进一步扩充了挑战练习和深入学习部分的内容,并修订了全书的一些不够完善的部分。

4. 阅读之前需要掌握哪些Java知识

使用本书,你需要熟悉Java语言,包括类、对象、接口、监听器、包、内部类、匿名内部类、泛型类等基本概念。如果对这些概念感到陌生,那么你很可能在翻到第二页时就已经无法再读下去了。对此,建议先放下本书,找本Java入门书看一看。市面上有很多优秀的Java入门书,你可以基于自己的编程经验及学习风格去挑选。如果你熟悉面向对象编程,但Java知识忘得差不多了,那么阅读本书应该不会有太大的问题。对于接口、匿名内部类等重要的Java语言点,我们会提供必要的简短回顾。建议在学习过程中手边备上一本Java参考书,方便查阅。

 

5. Android版本

主要针对当前广泛使用的各个系统版本(Android 4.4 至 Android 7.1)。虽然更老的系统版本仍有人在用,但对于大多数开发者来说,为这部分人开发应用就是个赔本的买卖。如果应用确实需要支持 Android 4.4 之前的系统版本,请参考本书第2版(Android 4.1及以上版本)和第1版(Android 2.3及以上版本)的相关内容。

Google还会不断地发布新版本的Android系统。请放心,Android支持向后兼容,即便有了新系统,本书所授知识也不会过时。而且,通过forums.bignerdranch.com论坛,我们也会不断跟踪Android开发新动向,及时为你提供开发指导和支持。

 

6. 内容概览

本书会教会你开发8个Android应用。有些应用很简单,一章即可讲完;有些则相对复杂。最复杂的一个应用跨越了11章。通过这些精心编排的应用,你能学到很多重要的理论知识和开发技巧,并获得最直接的开发经验。

•GeoQuiz

本书的第一个应用,通过它学习Android应用的基本组成、activity、界面布局(layout)以及显式intent。

•CriminalIntent

本书最复杂的应用,用来记录办公室同事的种种陋习。通过本应用学习fragment、master-detail用户界面、list-backed用户界面、菜单选项、相机调用、隐式intent等内容。

•BeatBox

通过这个可以震慑敌人的应用,继续深入学习fragment、媒体文件的播放与控制、主题以及drawable。

•NerdLauncher

通过个性化启动器的开发,深入学习intent以及任务的概念知识。

•PhotoGallery

通过开发从Flickr网站下载并显示照片的客户端应用,学习Android服务、多线程、网络内容获取服务等知识。

•DragAndDraw

一个简单的画图应用,通过它学习触摸手势事件处理以及创建个性化视图等知识。

•Sunset

一个漂亮的日落动画应用,通过它学习Android动画知识。

•Locatr

查询当前位置的Flickr图片并显示在地图上的应用。借此应用学习如何使用定位服务和地图。

7. 练习题?有

大部分章末都配有练习题。可借此机会学以致用,查阅官方文档,锻炼独立解决问题的能力。强烈建议你完成这些挑战练习。在练习过程中,尝试另辟蹊径,探索自己独特的学习之路。这有助于巩固所学知识,增强未来开发应用的信心。

 

8.

图书目录

第1章 Android开发初体验  1

1.1 Android 开发基础  2

1.2 创建Android项目  2

1.3 Android Studio使用导航  6

1.4 用户界面设计  6

1.5 从布局XML到视图对象  13

1.6 组件的实际应用  16

1.7 创建提示消息  19

1.8 使用模拟器运行应用  21

1.9 深入学习:Android编译过程  23

1.10 关于挑战练习  25

1.11 挑战练习:定制toast消息  25

第2章 Android与MVC设计模式  26

2.1 创建新类  26

2.2 Android与MVC设计模式  29

2.3 更新视图层  31

2.4 更新控制器层  33

2.5 在物理设备上运行应用  37

2.6 添加图标资源  38

2.7 挑战练习:为TextView添加监听器  42

2.8 挑战练习:添加后退按钮  42

2.9 挑战练习:从按钮到图标按钮  42

 

第3章 activity的生命周期  45

3.1 日志跟踪理解activity生命周期  46

3.2 设备旋转与activity生命周期  52

3.3 保存数据以应对设备旋转  56

3.4 再探activity生命周期  58

3.5 深入学习:activity内存清理现状  59

3.6 深入学习:日志记录的级别与方法  60

3.7 挑战练习:禁止一题多答  61

3.8 挑战练习:评分  61

 

第4章 Android应用的调试  62

4.1 异常与栈跟踪  63

4.2  Android特有的调试工具  70

4.3 挑战练习:探索布局检查器  72

4.4 挑战练习:探索内存分配跟踪  72

 

第5章 第二个activity 74

5.1 创建第二个activity  75

5.2 启动activity  81

5.3 activity间的数据传递  83

5.4 activity的使用与管理  91

5.5 挑战练习:堵住漏洞  93

 

第6章 Android SDK版本与兼容  94

6.1 Android SDK版本  94

6.2 Android编程与兼容性问题  95

6.3 使用Android开发者文档  100

6.4 挑战练习:报告编译版本  101

6.5 挑战练习:限制作弊次数  102

 

第7章 UI fragment与fragment管理器  103

7.1 UI 设计的灵活性需求  104

7.2 引入fragment104

7.3 着手开发CriminalIntent  105

7.4 托管UI fragment  112

7.5 创建UI fragment  115

7.6 向FragmentManager添加UI fragment  122

7.7 采用fragment的应用架构  126

7.8 深入学习:fragment与支持库  127

7.9 深入学习:为什么优先使用支持库版fragment  128

 

第8章 使用RecyclerView显示列表  129

8.1 升级CriminalIntent应用的模型层  130

8.2 使用抽象activity托管fragment  132

8.3  RecyclerView、ViewHolder和Adapter  137

8.4 绑定列表项  145

8.5 响应点击  147

8.6 深入学习:ListView和GridView  148

8.7 深入学习:单例  148

8.8 挑战练习:RecyclerViewViewType  149

 

第9章 使用布局与组件创建用户界面  150

9.1 使用图形布局工具  151

9.2 引入ConstraintLayout  151

9.3 深入学习布局属性  163

9.4 图形布局工具使用小结  167

9.5 挑战练习:日期格式化  167

 

第10章 使用fragment argument 168

10.1 从fragment中启动activity 168

10.2  fragment argument  172

10.3 刷新显示列表项  174

10.4 通过fragment获取返回结果  176

10.5 深入学习:为何要用fragment argument  177

10.6 挑战练习:实现高效的RecyclerView刷新  178

10.7 挑战练习:优化CrimeLab的表现  178

 

第11章 使用ViewPager 179

11.1 创建CrimePagerActivity  180

11.2  FragmentStatePagerAdapter与FragmentPagerAdapter 184

11.3 深入学习:ViewPager的工作原理  186

11.4 深入学习:以代码的方式创建视图  187

11.5 挑战练习:恢复CrimeFragment的边距  187

11.6 挑战练习:添加Jump to First按钮和Jump to Last按钮  188

 

第12章 对话框  189

12.1 创建DialogFragment 190

12.2  fragment 间的数据传递  196

12.3 挑战练习:更多对话框  205

12.4 挑战练习:实现响应式DialogFragment  205

 

第13章 工具栏  207

13.1    AppCompat 207

13.2 工具栏菜单  209

13.3 实现层级式导航  218

13.4 可选菜单项  219

13.5 深入学习:工具栏与操作栏  224

13.6 挑战练习:删除crime记录  224

13.7 挑战练习:复数字符串资源  224

13.8 挑战练习:用于RecyclerView的空视图  225

 

第14章 SQLite数据库  226

14.1 定义schema  226

14.2 创建初始数据库  227

14.3 修改CrimeLab 232

14.4 写入数据库  233

14.5 读取数据库  235

14.6 深入学习:数据库高级主题介绍  241

14.7 深入学习:应用上下文  241

14.8 挑战练习:删除crime记录  242

 

第15章 隐式intent 243

15.1 添加按钮组件  244

15.2 添加嫌疑人信息至模型层  244

15.3 使用格式化字符串  246

15.4 使用隐式intent  248

15.5 挑战练习:ShareCompat  256

15.6 挑战练习:又一个隐式intent  256

 

第16章 使用intent拍照  258

16.1 布置照片  258

16.2 文件存储  260

16.5 功能声明  268

16.6 挑战练习:优化照片显示  269

16.7 挑战练习:优化缩略图加载  269

 

第17章 双版面主从用户界面  270

17.1 增加布局灵活性  271

17.2  activity:fragment的托管者  276

17.3 深入学习:设备屏幕尺寸的确定  284

17.4 挑战练习:添加滑动删除功能  285

 

第18章 应用本地化  286

18.1 资源本地化. 286

18.2 配置修饰符  294

18.3 测试备选资源  298

18.4 挑战练习:日期本地化  298

 

第19章 Android辅助功能  299

19.1  TalkBack299

19.2 实现非文字型元素可读  303

19.3 提升辅助体验  305

19.4 深入学习:使用辅助功能扫描器  309

19.5 挑战练习:优化列表项  311

19.6 挑战练习:补全上下文信息  311

19.7 挑战练习:事件主动通知  311

 

第20章 数据绑定与MVVM 313

20.1 为何要用MVVM架构  314

20.2 创建BeatBox应用  314

20.3 导入assets  319

20.4 处理assets  321

20.5 使用assets  323

20.6 绑定数据  325

20.7 访问assets  332

20.8 深入学习:数据绑定再探  333

20.9 深入学习:为何使用assets  334

20.10 深入学习:什么是non-assets  334

 

第21章 音频播放与单元测试  335

21.1 创建SoundPool  335

21.2 加载音频文件  336

21.3 播放音频  337

21.4 添加测试依赖  338

21.5 创建测试类  339

21.6 实现测试类  341

21.7 编写测试方法  342

21.8 数据绑定回调  346

21.9 释放音频  346

21.10 设备旋转和对象保存  347

21.11 深入学习:是否保留fragment  351

21.12 深入学习:Espresso与整合测试  351

21.13 深入学习:虚拟对象与测试  352

21.14 挑战练习:播放进度控制  353

 

第22章 样式与主题  354

22.1 颜色资源  354

22.2 样式  355

22.3 主题  357

22.4 添加主题颜色  359

22.5 覆盖主题属性  361

22.6 修改按钮属性  364

22.7 深入学习:样式继承拾遗  367

22.8 深入学习:引用主题属性  367

 

第23章 XML drawable  368

23.1 统一按钮样式  368

23.2  shape drawable  369

23.3  state list drawable  371

23.4  layer list drawable  372

23.5 深入学习:为什么要用XML drawable  373

23.6 深入学习:使用mipmap图像  374

23.7 深入学习:使用9-patch图像  375

23.8 挑战练习:按钮主题. 379

 

第24章 深入学习intent和任务  380

24.1 创建NerdLauncher项目  380

24.2 解析隐式intent382

24.3 在运行时创建显式intent  386

24.4 任务与回退栈  388

24.5 使用NerdLauncher应用作为设备主屏幕  392

24.6 挑战练习:应用图标. 393

24.7 深入学习:进程与任务  393

24.8 深入学习:并发文档. 395

 

第25章 HTTP与后台任务  398

25.1 创建PhotoGallery应用  399

25.2 网络连接基本  401

25.3 使用AsyncTask 在后台线程上运行代码  403

25.4 线程与主线程  405

25.5 从Flickr获取JSON数据  407

25.6 从AsyncTask回到主线程  413

25.7 清理AsyncTask416

25.8 深入学习:AsyncTask再探  416

25.9 深入学习:AsyncTask的替代方案  417

25.10 挑战练习:Gson418

25.11 挑战练习:分页  418

25.12 挑战练习:动态调整网格列  418

 

 

第26章 Looper、Handler和HandlerThread

26.1 配置RecyclerView以显示图片  420

26.2 批量下载缩略图  422

26.3 与主线程通信  423

26.4 创建并启动后台线程  424

26.5    Message与message handler 426

26.6 深入学习:AsyncTask与线程  436

26.7 深入学习:解决图片下载问题  436

26.8 深入学习:StrictMode437

26.9 挑战练习:预加载以及缓存  438

 

第27章 搜索  439

27.1 搜索Flickr网站  439

27.2 使用SearchView 443

27.3 使用shared preferences实现轻量级数据存储  447

27.4 优化应用  451

27.5 挑战练习:深度优化PhotoGallery应用  451

 

第28章 后台服务  452

28.1 创建IntentService 452

28.2 服务的作用  454

28.3 查找最新返回结果  456

28.4 使用AlarmManager延迟运行服务  458

28.5 控制定时器  462

28.6 通知信息  464

28.7 挑战练习:可穿戴设备上的通知  466

28.8 深入学习:服务之细节  467

28.9 深入学习:JobScheduler和JobService 469

28.10 挑战练习:在Lollipop设备上使用JobService 472

28.11 深入学习:sync adapter472

 

第29章 broadcast intent

29.1 普通intent和broadcast intent 474

29.2 接收系统broadcast:重启后唤醒  475

29.3 过滤前台通知消息  479

29.4  receiver与长时运行任务  488

29.5 深入学习:本地事件  488

29.6 深入学习:探测fragment的状态  490

 

第30章 网页浏览  492

30.1 最后一段Flickr数据  492

30.2 简单方式:隐式intent  494

30.3 较难方式:使用WebView  496

30.4 处理WebView的设备旋转问题  502

30.5 深入学习:注入JavaScript对象  502

30.6 深入学习:WebView 升级  503

30.7 挑战练习:使用后退键浏览历史网页  504

30.8 挑战练习:非HTTP链接支持  504

 

第31章 定制视图与触摸事件  505

31.1 创建DragAndDraw项目  505

31.2 创建定制视图  507

31.3 处理触摸事件  509

31.4  onDraw(.)方法内的图形绘制  513

31.5 挑战练习:设备旋转问题  515

31.6 挑战练习:旋转矩形框  515

 

第32章 属性动画  516

32.1 建立场景  516

32.2 简单属性动画  519

32.3 播放多个动画  525

32.4 深入学习:其他动画API 527

32.5 挑战练习  527

 

第33章 地理位置和Play服务  528

33.1 地理位置和定位类库  528

33.2 创建Locatr项目  529

33.3  Play服务定位和模拟器  530

33.4 创建Locatr应用  532

33.5 配置Google Play服务  534

33.6 使用Google Play服务  536

33.7 基于地理位置的Flickr搜索  538

33.8 获取定位数据  539

33.9 获取运行时权限  542

33.10 寻找并显示图片  546

33.11 挑战练习:权限使用理由  548

33.12 挑战练习:进度指示器  549

 

第34章 使用地图  550

34.1 导入Play地图服务库  550

34.2  Android上的地图服务  550

34.3 获取Maps API key 550

34.4 创建地图  552

34.5 获取更多地理位置数据  553

34.6 使用地图  556

34.7 深入学习:团队开发和API key 560

 

第35章 material design 562

35.1  material surface 562

35.2 动画工具  566

35.3 新的视图组件  571

35.4 深入学习material design 574

 

第36章 编后语  575

36.1 终极挑战  575

36.2 关于我们  575

36.3 致谢  576

说说

《Android编程权威指南(第3版)》不太适合完全零基础入门,它更适合作为你的第二本Android开发书,相信更多读者选择了《第一行代码》作为第一本书,而这本更多关注点是帮你上手项目实战。

Android开发权威指南.李宁.扫描版pdf百度网盘下载

链接:https://pan.baidu.com/s/1e9IV59ms8LpDm5SNH4RpIg
提取码:s9pw
复制这段内容后打开百度网盘手机App,操作更方便哦

转载请注明:XAMPP中文组官网 » Android开发权威指南.李宁.扫描版下载

您必须 登录 才能发表评论!