书籍作者:郭霖 | ISBN:9787115524836 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:6382 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
《第一行代码 Android 第3版》被Android开发者誉为“Android学习第一书”。全书系统全面、循序渐进地介绍了Android软件开发的必备知识、经验和技巧。
《第一行代码 Android 第3版》基于Android 10.0对第2版进行了全面更新,不仅将所有知识点都在Android 10.0系统上进行了重新适配,同时加入Kotlin语言的全面讲解,使用Kotlin对全书代码进行重写,而且还介绍了新系统特性以及Jetpack架构组件的使用,使本书更加实用。
《第一行代码 Android 第3版》内容通俗易懂,由浅入深,既是Android初学者的入门必备,也是Android开发者的进阶首要选择。
郭霖,Android开发工程师。从事Android开发工作9年,有着丰富的项目实战经验,负责及参与开发过多款移动应用与游戏,同时还是多个开源项目的作者,对Android系统架构及应用层开发有着深入的理解。
2013年3月开始,在CSDN上发表Android技术相关博文,很快获得了大量网友的好评。目前博客访问量已超过1000万次,评论超过10000条。荣获CSDN认证专家,并连续多年被评选为CSDN年度博客之星。
1. CSDN知名博主郭霖新作,基于Android 10全面升级,使用Kotlin语言进行讲解,Android开发者入门常备
2. 前两版累计销售25万册,Android开发者广为推荐
3. 赠送源代码、思维导图和PPT教学课件
第3版的主要变化
首先是编程语言上的改变,本书前两版都是使用Java 作为应用程序的开发语言,而第3 版使用了Kotlin,这是目前Google 公司推荐我们使用的开发语言。
本书的前两版中也没有涉及过语言方面的讲解,默认读者是有Java 语言基础的。而第3 版中对Kotlin 语言进行了非常全面的讲解,不需要读者有任何Kotlin 语言的基础。
另外,本书第1 版是基于Android 4.x 系统的,第2 版是基于Android 7.0 系统的,现在第3版基于Android 10.0 系统。其中囊括了新系统中的诸多知识点,包括Android 8.0 系统中引入的通知渠道和应用图标适配、Android 9.0 系统中引入的明文网络传输限制适配、Android 10.0 系统中引入的深色主题模式等。
除此之外,第3 版还加入了两个实战项目以及Retrofit、协程、Jetpack、MVVM等全新知识点的讲解,内容也非常地充实。
第 1章 开始启程——你的第 一行
Android代码 1
1.1 了解全貌,Android王国简介 2
1.1.1 Android系统架构 2
1.1.2 Android已发布的版本 3
1.1.3 Android应用开发特色 4
1.2 手把手带你搭建开发环境 5
1.2.1 准备所需要的工具 5
1.2.2 搭建开发环境 5
1.3 创建你的第 一个Android项目 9
1.3.1 创建HelloWorld项目 9
1.3.2 启动模拟器 11
1.3.3 运行HelloWorld 14
1.3.4 分析你的第 一个Android程序 15
1.3.5 详解项目中的资源 20
1.3.6 详解build.gradle文件 22
1.4 前行必备:掌握日志工具的使用 25
1.4.1 使用Android的日志工具Log 25
1.4.2 为什么使用Log而不使用println() 26
1.5 小结与点评 28
第 2章 探究新语言,快速入门Kotlin
编程 30
2.1 Kotlin语言简介 31
2.2 如何运行Kotlin代码 32
2.3 编程之本:变量和函数 35
2.3.1 变量 35
2.3.2 函数 37
2.4 程序的逻辑控制 41
2.4.1 if条件语句 41
2.4.2 when条件语句 42
2.4.3 循环语句 45
2.5 面向对象编程 48
2.5.1 类与对象 49
2.5.2 继承与构造函数 50
2.5.3 接口 55
2.5.4 数据类与单例类 58
2.6 Lambda编程 61
2.6.1 集合的创建与遍历 61
2.6.2 集合的函数式API 65
2.6.3 Java函数式API的使用 69
2.7 空指针检查 71
2.7.1 可空类型系统 72
2.7.2 判空辅助工具 73
2.8 Kotlin中的小魔术 77
2.8.1 字符串内嵌表达式 77
2.8.2 函数的参数默认值 78
2.9 小结与点评 81
第3章 先从看得到的入手,探究
Activity 82
3.1 Activity是什么 82
3.2 Activity的基本用法 82
3.2.1 手动创建Activity 83
3.2.2 创建和加载布局 85
3.2.3 在AndroidManifest文件中
注册 88
3.2.4 在Activity中使用Toast 90
3.2.5 在Activity中使用Menu 92
3.2.6 销毁一个Activity 96
3.3 使用Intent在Activity之间穿梭 96
3.3.1 使用显式Intent 96
3.3.2 使用隐式Intent 99
3.3.3 更多隐式Intent的用法 101
3.3.4 向下一个Activity传递数据 105
3.3.5 返回数据给上一个Activity 106
3.4 Activity的生命周期 108
3.4.1 返回栈 108
3.4.2 Activity状态 109
3.4.3 Activity的生存期 110
3.4.4 体验Activity的生命周期 111
3.4.5 Activity被回收了怎么办 117
3.5 Activity的启动模式 118
3.5.1 standard 119
3.5.2 singleTop 120
3.5.3 singleTask 122
3.5.4 singleInstance 123
3.6 Activity的最佳实践 126
3.6.1 知晓当前是在哪一个Activity 126
3.6.2 随时随地退出程序 127
3.6.3 启动Activity的最佳写法 129
3.7 Kotlin课堂:标准函数和静态方法 130
3.7.1 标准函数with、run和apply 130
3.7.2 定义静态方法 133
3.8 小结与点评 137
第4章 软件也要拼脸蛋,UI开发的
点点滴滴 138
4.1 该如何编写程序界面 138
4.2 常用控件的使用方法 139
4.2.1 TextView 139
4.2.2 Button 142
4.2.3 EditText 144
4.2.4 ImageView 149
4.2.5 ProgressBar 151
4.2.6 AlertDialog 154
4.3 详解3种基本布局 156
4.3.1 LinearLayout 156
4.3.2 RelativeLayout 163
4.3.3 FrameLayout 166
4.4 系统控件不够用?创建自定义控件 169
4.4.1 引入布局 169
4.4.2 创建自定义控件 172
4.5 最常用和最难用的控件:ListView 174
4.5.1 ListView的简单用法 174
4.5.2 定制ListView的界面 176
4.5.3 提升ListView的运行效率 179
4.5.4 ListView的点击事件 180
4.6 更强大的滚动控件:RecyclerView 182
4.6.1 RecyclerView的基本用法 183
4.6.2 实现横向滚动和瀑布流布局 186
4.6.3 RecyclerView的点击事件 191
4.7 编写界面的最佳实践 193
4.7.1 制作9-Patch图片 193
4.7.2 编写精美的聊天界面 196
4.8 Kotlin课堂:延迟初始化和密封类 201
4.8.1 对变量延迟初始化 201
4.8.2 使用密封类优化代码 204
4.9 小结与点评 206
第5章 手机平板要兼顾,探究
Fragment 207
5.1 Fragment是什么 207
5.2 Fragment的使用方式 209
5.2.1 Fragment的简单用法 210
5.2.2 动态添加Fragment 212
5.2.3 在Fragment中实现返回栈 215
5.2.4 Fragment和Activity之间的
交互 216
5.3 Fragment的生命周期 217
5.3.1 Fragment的状态和回调 217
5.3.2 体验Fragment的生命周期 219
5.4 动态加载布局的技巧 221
5.4.1 使用限定符 221
5.4.2 使用最小宽度限定符 224
5.5 Fragment的最佳实践:一个简易
版的新闻应用 225
5.6 Kotlin课堂:扩展函数和运算符
重载 234
5.6.1 大有用途的扩展函数 234
5.6.2 有趣的运算符重载 236
5.7 小结与点评 240
第6章 全局大喇叭,详解广播机制 242
6.1 广播机制简介 242
6.2 接收系统广播 243
6.2.1 动态注册监听时间变化 243
6.2.2 静态注册实现开机启动 245
6.3 发送自定义广播 249
6.3.1 发送标准广播 249
6.3.2 发送有序广播 252
6.4 广播的最佳实践:实现强制下线功能 255
6.5 Kotlin课堂:高阶函数详解 261
6.5.1 定义高阶函数 261
6.5.2 内联函数的作用 265
6.5.3 noinline与crossinline 268
6.6 Git时间:初识版本控制工具 271
6.6.1 安装Git 271
6.6.2 创建代码仓库 272
6.6.3 提交本地代码 274
6.7 小结与点评 274
第7章 数据存储全方案,详解
持久化技术 275
7.1 持久化技术简介 275
7.2 文件存储 276
7.2.1 将数据存储到文件中 276
7.2.2 从文件中读取数据 279
7.3 SharedPreferences存储 281
7.3.1 将数据存储到SharedPre-
ferences中 282
7.3.2 从SharedPreferences中读取
数据 284
7.3.3 实现记住密码功能 285
7.4 SQLite数据库存储 288
7.4.1 创建数据库 289
7.4.2 升级数据库 295
7.4.3 添加数据 297
7.4.4 更新数据 300
7.4.5 删除数据 302
7.4.6 查询数据 304
7.4.7 使用SQL操作数据库 307
7.5 SQLite数据库的最佳实践 307
7.5.1 使用事务 308
7.5.2 升级数据库的最佳写法 309
7.6 Kotlin课堂:高阶函数的应用 312
7.6.1 简化SharedPreferences的用法 312
7.6.2 简化ContentValues的用法 314
7.7 小结与点评 317
第8章 跨程序共享数据,探究ContentProvider 318
8.1 ContentProvider简介 318
8.2 运行时权限 319
8.2.1 Android权限机制详解 319
8.2.2 在程序运行时申请权限 322
8.3 访问其他程序中的数据 326
8.3.1 ContentResolver的基本用法 326
8.3.2 读取系统联系人 329
8.4 创建自己的ContentProvider 332
8.4.1 创建ContentProvider的步骤 332
8.4.2 实现跨程序数据共享 336
8.5 Kotlin课堂:泛型和委托 345
8.5.1 泛型的基本用法 345
8.5.2 类委托和委托属性 347
8.5.3 实现一个自己的lazy函数 350
8.6 小结与点评 352
第9章 丰富你的程序,运用手机
多媒体 353
9.1 将程序运行到手机上 353
9.2 使用通知 355
9.2.1 创建通知渠道 355
9.2.2 通知的基本用法 357
9.2.3 通知的进阶技巧 362
9.3 调用摄像头和相册 367
9.3.1 调用摄像头拍照 367
9.3.2 从相册中选择图片 371
9.4 播放多媒体文件 374
9.4.1 播放音频 374
9.4.2 播放视频 377
9.5 Kotlin课堂:使用infix函数构建
更可读的语法 381
9.6 Git时间:版本控制工具进阶 383
9.6.1 忽略文件 384
9.6.2 查看修改内容 385
9.6.3 撤销未提交的修改 387
9.6.4 查看提交记录 388
9.7 小结与点评 389
第 10章 后台默默的劳动者,探究
Service 390
10.1 Service是什么 390
10.2 Android多线程编程 391
10.2.1 线程的基本用法 391
10.2.2 在子线程中更新UI 392
10.2.3 解析异步消息处理机制 395
10.2.4 使用AsyncTask 396
10.3 Service的基本用法 399
10.3.1 定义一个Service 399
10.3.2 启动和停止Service 401
10.3.3 Activity和Service进行
通信 404
10.4 Service的生命周期 408
10.5 Service的更多技巧 408
10.5.1 使用前台Service 409
10.5.2 使用IntentService 411
10.6 Kotlin课堂:泛型的高级特性 415
10.6.1 对泛型进行实化 415
10.6.2 泛型实化的应用 417
10.6.3 泛型的协变 418
10.6.3 泛型的逆变 422
10.7 小结与点评 425
第 11章 看看精彩的世界,使用网络
技术 427
11.1 WebView的用法 427
11.2 使用HTTP访问网络 429
11.2.1 使用HttpURLConnection 430
11.2.2 使用OkHttp 433
11.3 解析XML格式数据 436
11.3.1 Pull解析方式 438
11.3.2 SAX解析方式 441
11.4 解析JSON格式数据 444
11.4.1 使用JSONObject 445
11.4.2 使用GSON 446
11.5 网络请求回调的实现方式 448
11.6 最好用的网络库:Retrofit 451
11.6.1 Retrofit的基本用法 452
11.6.2 处理复杂的接口地址类型 456
11.6.3 Retrofit构建器的最佳写法 459
11.7 Kotlin课堂:使用协程编写高效的
并发程序 461
11.7.1 协程的基本用法 461
11.7.2 更多的作用域构建器 467
11.7.3 使用协程简化回调的写法 471
11.8 小结与点评 474
第 12章 最佳的UI体验,Material
Design实战 475
12.1 什么是Material Design 475
12.2 Toolbar 476
12.3 滑动菜单 483
12.3.1 DrawerLayout 483
12.3.2 NavigationView 486
12.4 悬浮按钮和可交互提示 491
12.4.1 FloatingActionButton 491
12.4.2 Snackbar 494
12.4.3 CoordinatorLayout 496
12.5 卡片式布局 498
12.5.1 MaterialCardView 498
12.5.2 AppBarLayout 504
12.6 下拉刷新 507
12.7 可折叠式标题栏 510
12.7.1 CollapsingToolbarLayout 510
12.7.2 充分利用系统状态栏空间 519
12.8 Kotlin课堂:编写好用的工具方法 522
12.8.1 求N个数的最大最小值 522
12.8.2 简化Toast的用法 524
12.8.3 简化Snackbar的用法 526
12.9 Git时间:版本控制工具的高级
用法 528
12.9.1 分支的用法 528
12.9.2 与远程版本库协作 530
12.10 小结与点评 532
第 13章 高级程序开发组件,探究
Jetpack 533
13.1 Jetpack简介 533
13.2 ViewModel 534
13.2.1 ViewModel的基本用法 536
13.2.2 向ViewModel传递参数 539
13.3 Lifecycles 541
13.4 LiveData 545
13.4.1 LiveData的基本用法 545
13.4.2 map和switchMap 549
13.5 Room 554
13.5.1 使用Room进行増删改查 555
13.5.2 Room的数据库升级 562
13.6 WorkManager 565
13.6.1 WorkManager的基本用法 566
13.6.2 使用WorkManager处理
复杂的任务 568
13.7 Kotlin课堂:使用DSL构建专有的
语法结构 571
13.8 小结与点评 577
第 14章 继续进阶,你还应该掌握的
高级技巧 579
14.1 全局获取Context的技巧 579
14.2 使用Intent传递对象 582
14.2.1 Serializable方式 582
14.2.2 Parcelable方式 583
14.3 定制自己的日志工具 584
14.4 调试Android程序 586
14.5 深色主题 589
14.6 Kotlin课堂:Java与Kotlin代码
之间的转换 596
14.7 总结 600
第 15章 进入实战,开发一个天气
预报App 601
15.1 功能需求及技术可行性分析 601
15.2 Git时间:将代码托管到GitHub上 605
15.3 搭建MVVM项目架构 612
15.4 搜索全球城市数据 615
15.4.1 实现逻辑层代码 615
15.4.2 实现UI层代码 620
15.5 显示天气信息 626
15.5.1 实现逻辑层代码 626
15.5.2 实现UI层代码 631
15.5.3 记录选中的城市 645
15.6 手动刷新天气和切换城市 647
15.6.1 手动刷新天气 648
15.6.2 切换城市 650
15.7 制作App的图标 654
15.8 生成正式签名的APK文件 659
15.8.1 使用Android Studio生成 660
15.8.2 使用Gradle生成 663
15.9 你还可以做的事情 666
第 16章 编写并发布一个开源库,PermissionX 669
16.1 开发前的准备工作 669
16.2 实现PermissionX开源库 673
16.3 对开源库进行测试 678
16.4 将开源库发布到jcenter仓库 681
16.5 体验我们的成果 688
16.6 结束语 691
新书到了,第一时间买了,有签名。快递包装太随便了,新书都弯了,封面都留下了折痕
2020-04-02 00:46:48
很好的书,郭神的书一定要支持,真的很棒,抢到签名版,很开心?
2020-04-02 09:11:25
签名版好评
2020-04-01 08:39:21
第一行代码写的内容不错,通俗易懂。抢到签名版了。
2020-04-02 09:19:10
还不错
2020-04-01 21:59:22
学android的最新的好书强烈推荐
2020-04-02 00:21:58
郭大神的书当然要支持一下,从第一版就开始看了
2020-04-02 10:03:39
好书,17年买过第二版,今年买基于kotlin的第三版来巩固下
2020-04-02 01:29:45
物流很快,但有些折痕,应该是搬运时弄的。这是书啊,下手这么重
2020-04-02 13:51:10
不错的一本书,还是签名版的了。对于大神的书,质量是没有问题的。 担忧的是两种语法,会不会让我人格分裂,Java好好的能使用,再用kotlin实实现一遍,哈
2020-04-03 09:07:21
有关Java体系中所有《疯狂讲义》我都有翻过,Android算是其中最薄的一本了,但也有764页。这系列的书非常全面,涵盖几乎开发中所有需要用到的知识点。比如《疯狂Java》中,开篇就告诉你各种流程图的使用,还有文档的编写,面向对象中时不时贴出各种设计模式和源码,介绍数据库...
2017-01-17 02:20:56
当初我是在网上找"360悬浮窗口”的实现从而找到作者的CSDN博客的,结果一发不可收拾,把作者的博客内容全部读了一遍,学到了很多知识点(例如以前从来没用过的fragment, 悬浮窗口,小火箭,view的draw原理等),每篇博客的质量都相当高 这几天看到作者博客更新,发现作者写了...
2014-08-18 18:54:46
只要稍微负责一点的作者,不应该把一本书写成这样。该讲的地方大量内容没有讲,比如Android的绘图机制、动画过渡,这么必要的东西你都不讲。 相反,没有的、乱七八糟的内容,什么打怪升级啊,就胡乱扯了一大堆,另外再加上各种UI控件的深入定制也没有介绍,只是停留在简单示例...
2016-07-08 20:00:55
当你看这本书的时候,你以为你看调通了所谓的第一行代码,结果你会发现书中内容完全是入门,关键是入门的很多内容还没有讲清楚。 重要一点就是,书中知识点只挑一些网上已有的入门内容复制、粘贴一下,实际上真正有价值的东西就没有了。大家可以对比一下android官方开发文档的...
2016-07-03 23:52:39
这种书简直就是互联网上的东西,东抄抄西抄抄,基础的东西全是复制的,有没有作者自己的见解 ,看的云里雾里的,编程思维很陈旧,说实话,讲述的过程中忽略了太多的重要细节。 入门看《疯狂讲义》,讲得不错,尤其里面的例子,有很多中文注释,看起来更容易读懂代码。
2016-06-23 18:18:33
这本书就是个大忽悠,只适合会一点皮毛就大吹大擂的井底之蛙。学完这本书,仅仅能够画几个简单的页面,人家培训机构出来的学生,好歹做过几个像样的实战项目。光靠这本书去面试,拿得出手的只有那个烂大街的天气预报App,充其量是个初级菜鸟的水平。然而这书大言不惭号称读完以...
2018-07-22 12:17:30
通读一边书,感觉里面的内容都讲的不是很细,有些代码中的类和方法都是一笔带过,让人一头雾水,本书有个特点就是简单的知识点讲的都比较详细,但是后面复杂的知识点就是一笔带过。这本书我感觉更适合对安卓已经有一定了解的人来阅读,作为一种知识的巩固,如果仅仅是刚学完Jav...
2017-06-04 07:22:51
由于我现在在复习UI设计这一块所以一开始就从界面布局开始看的。不得不说内容少了点,虽然每个布局都要相应的案例,但所讲的知识也只是仅仅围绕着案例而已。像相对布局和表格布局里还有不少的属性都没有提到,另外作者只在线性布局和相对布局中用中文说明了一下,其余两个布局...
2016-06-27 14:32:54
想把这本书看明白真的太难了,当你看完这一章之后,你要抱着一大推的疑惑下一章,然后抱着更多的疑惑继续下去。如果你能忍受这种挫败感同时在兼具相当的记忆力(能记住之前毫无头绪的疑问),你可能会在几章之后(也就是上百页篇幅之后)发现你之前不懂的答案。 这本书很差,在...
2016-06-23 08:26:57
第一行代码里面讲的有些用法现在都不能使用了,知识点也没有更新,大多数原理机制并没有能够通俗易懂的进行深入叙述。 疯狂android讲义挺适合入门的人使用,讲解详细 由浅到深过渡 里面好多实例,是一本很实用的书。
2016-06-22 18:13:40