| 
 新書推薦:
 
  《 
			精益医疗 医疗质量、患者服务与医院效益的协同增长之道 医院管理底层逻辑解析手册+新医改时代医院生存指
			》
 售價:HK$ 
			403
 
  《 
			怪谈百物语:魂手形 宫部美雪作品
			》
 售價:HK$ 
			296
 
  《 
			北境之王 白刃 奥斯瓦尔德与不列颠七国时代 魔戒 冰与火之歌 现实版  圣王 奥斯瓦尔德及其所处的不
			》
 售價:HK$ 
			551
 
  《 
			2025中国企业跨境并购年度报告
			》
 售價:HK$ 
			1760
 
  《 
			中国折纸动画
			》
 售價:HK$ 
			347
 
  《 
			如何了解一个人
			》
 售價:HK$ 
			352
 
  《 
			木石交响:日本古都与欧陆遗产的千年对话
			》
 售價:HK$ 
			407
 
  《 
			中小学生数学学习能力自我评估问题研究
			》
 售價:HK$ 
			408
 
 
 | 
         
          | 編輯推薦: |   
          | Google已经将Kotlin列为Android开发的*开发语言。Kotlin与Java无缝兼容,同时Kotlin作为一门新语言,其语法极其简洁精练,稍微熟悉之后,开发效率会有明显提升。本书严格参考Android 10官方开发文档,全面讲解利用Kotlin开发Android应用的各种技术,章节精心安排、循序渐进,内容准确、翔实、全面而又通俗易懂,绝不是术语的罗列,也绝不是不知所云的翻译。 |  
         
          | 內容簡介: |   
          | Google已经将Kotlin列为Android开发*开发语言。Kotlin与Java无缝兼容,同时Kotlin作为一门新语言,其语法极其简洁精练,稍微熟悉之后,开发效率立即会有明显提升。 本书分为20章,严格参考Android 10官方开发文档,全面讲解利用Kotlin开发Android应用的各种技术,章节精心安排、循序渐进,内容准确、翔实、全面而又通俗易懂,绝不是术语的罗列,也绝不是不知所云的翻译。
 本书既适合Android应用开发初学者、转向Kotlin编程的Android应用开发人员阅读,也适合高等院校和培训学校计算技术相关专业的师生参考。
 |  
         
          | 關於作者: |   
          | 牛搞,软件开发从业15年编程实战经验,流媒体技术专家,高性能服务器专家。CSDN知名博主。现为IOS、Adroid、C 高级培训讲师。著有图书《Android 9编程通俗演义》。 |  
         
          | 目錄: |   
          | 目录 第1章 Kotlin快速入门 1
 1.1 开发环境配置 1
 1.1.1 安装JDK 1
 1.1.2 安装IDE 2
 1.1.3 创建第一个Kotlin工程 3
 1.1.4 工程组织结构 5
 1.1.5 添加代码 6
 1.1.6 运行程序 6
 1.2 大道至简 8
 1.3 万变不离其宗 10
 1.4 新式语法特征 11
 1.5 Kotlin独特语法 17
 1.6 作用域函数 23
 1.6.1 let 24
 1.6.2 run 24
 1.6.3 apply 25
 1.6.4 also 25
 1.6.5 with 26
 1.7 新式语法特点总结 26
 第2章 Android系统简介 27
 第3章 Android开发环境搭建 29
 3.1 下载Android Studio 29
 3.2 安装Android Studio 30
 3.3 配置Android SDK 31
 3.4 四项原则 34
 第4章 第一个Kotlin App 35
 4.1 运行App 37
 4.1.1 在真实设备上调试 38
 4.1.2 配置虚拟机 40
 4.2 虚拟机加速 42
 4.2.1 在BIOS中开启虚拟化
 支持 43
 4.2.2 安装HAXM 43
 4.3 App的样子 44
 4.4 工程里面有什么 44
 第5章 UI资源与Layout 46
 5.1 Layout 46
 5.2 改动Layout 49
 5.2.1 添加图像资源 52
 5.2.2 文件或文件夹改名 53
 5.2.3 显示自己的图像 53
 5.2.4 XML小解 56
 5.2.5 Layout源码解释 57
 5.3 ConstraintLayout 58
 5.3.1 ConstraintLayout的原理 59
 5.3.2 子控件在ConstraintLayout
 中居左或居右 60
 5.3.3 子控件在ConstraintLayout
 中横向居中 61
 5.3.4 子控件在ConstraintLayout
 中居中偏左 62
 5.3.5 子控件A在子控件B的
 上面 62
 5.3.6 子控件A与子控件B左边
 对齐 63
 5.3.7 设置子控件的宽和高 64
 5.3.8 子控件的宽和高保持一定
 比例 65
 5.4 设计登录页面 67
 5.4.1 添加用户名输入控件 67
 5.4.2 添加密码输入控件 69
 5.4.3 添加登录按钮 70
 5.4.4 完成收工 70
 5.5 让内容滚动 72
 5.5.1 添加ScrollView作为最外层
 容器 73
 5.5.2 禁止旋转 75
 5.5.3 为横屏和竖屏分别创建Layout 76
 5.5.4 让内容居中 77
 5.6 添加新的Layout资源 77
 第6章 各种Layout控件 79
 6.1 FrameLayout 79
 6.2 LinearLayout 79
 6.2.1 纵向LinearLayout中子控件
 横向居中 80
 6.2.2 子控件均匀分布 81
 6.2.3 子控件按比例分布 81
 6.2.4 用LinearLayout实现登录
 界面 83
 6.3 GridLayout 85
 6.4 TableLayout 87
 第7章 操作控件 89
 7.1 在Activity中创建界面 89
 7.1.1 类R 90
 7.1.2 类Activity 90
 7.1.3 四大组件 90
 7.2 在代码中操作控件 91
 7.2.1 获取控件 91
 7.2.2 响应View的事件 93
 7.2.3 添加依赖库 93
 7.2.4 显示提示 95
 7.2.5 完成收工 97
 第8章 Activity导航 98
 8.1 创建注册页面 98
 8.2 启动注册页面 100
 8.2.1 修改页面标题 100
 8.2.2 MainActivity源码 101
 8.3 设计注册页面 102
 8.4 响应注册按钮进行注册 106
 8.5 获取页面返回的数据 107
 8.5.1 避免常量重复出现 108
 8.5.2 日志输出 110
 8.5.3 将返回的数据设置到
 控件中 111
 8.6 ActionBar上的返回图标 111
 8.6.1 原生Action Bar与MaterailDesign Action
 Bar 112
 8.6.2 登录页面显示返回图标 112
 8.6.3 注册页面显示返回图标 114
 8.7 ScrollView与软键盘 114
 8.8 源码 115
 8.8.1 MainActivity 115
 8.8.2 RegisterActivity.kt 117
 第9章 Theme 119
 第10章 Fragment 121
 10.1 弄巧成拙的Activity 121
 10.2 使用Fragment 123
 10.3 改造登录页面 125
 10.3.1 添加layout文件 125
 10.3.2 改变layout文件的
 内容 126
 10.3.3 添加Fragment类 126
 10.3.4 将Fragment放到
 Activity中 130
 10.3.5 创建注册Fragment 132
 10.3.6 显示RegisterFragment 133
 10.3.7 通过AppBar控制页面
 导航 133
 10.3.8 实现RegisterFragment的
 逻辑 134
 10.3.9 从LoginFragment中读出
 用户名和密码 136
 10.3.10 Fragment的生命周期 137
 10.3.11 Fragment状态保存与
 恢复 137
 10.3.12 总结 138
 10.4 对话框 141
 10.4.1 创建子类 142
 10.4.2 显示对话框 143
 10.4.3 响应返回键 144
 第11章 菜单 145
 11.1 添加菜单资源 145
 11.2 重写onCreateOptionsMenu 147
 11.3 嵌套菜单 148
 11.4 菜单项分组 149
 11.5 响应菜单项 150
 11.6 其他菜单类型 151
 第12章 动画 152
 12.1 动画原理 152
 12.2 三种动画 153
 12.3 视图动画 154
 12.3.1 绕着中心转 155
 12.3.2 不要反向转 155
 12.3.3 举一反三 156
 12.3.4 动画组 157
 12.4 属性动画 158
 12.4.1 旋转动画 158
 12.4.2 动画组 159
 12.5 动画资源 163
 12.6 Layout动画 165
 12.6.1 向Layout控件添加
 子控件 165
 12.6.2 ViewGroup 167
 12.6.3 设置排版动画 167
 12.7 转场动画 169
 12.7.1 使用默认转场动画 169
 12.7.2 自定义转场动画 169
 第13章 自定义控件 174
 13.1 创建一个Custom View 175
 13.2 Custom View类 176
 13.2.1 构造方法 176
 13.2.2 onDraw方法 177
 13.2.3 init方法 179
 13.2.4 自定义属性 182
 13.2.5 作画 184
 13.3 创建圆形图像控件 185
 13.3.1 将Drawable转成
 Bitmap 188
 13.3.2 变换矩阵 189
 13.3.3 自定义属性的改动 190
 13.3.4 类的所有代码 191
 第14章 RecyclerView 197
 14.1 基本用法 197
 14.2 显示多条简单数据 198
 14.2.1 添加新页面 198
 14.2.2 创建Adapter子类 200
 14.2.3 设置RecyclerView 202
 14.2.4 用集合保存数据 203
 14.3 让子控件复杂起来 204
 14.3.1 创建行Layout资源 204
 14.3.2 应用条目Layout资源 206
 14.3.3 明显区分每一行 207
 14.3.4 使用音乐信息类 209
 14.4 增删改 210
 14.4.1 增加一条数据 210
 14.4.2 其他操作 212
 14.5 局部刷新 212
 14.6 响应条目选择 213
 14.7 显示不同类型的行 214
 14.7.1 添加新条目数据类 214
 14.7.2 添加条目Layout 215
 14.7.3 创建新的ViewHolder
 类 216
 14.7.4 区分不同的View Type 216
 第15章 模仿QQ App界面 218
 15.1 创建新的Android项目 218
 15.2 设计登录页面 218
 15.2.1 创建登录Fragment 219
 15.2.2 设计登录界面 220
 15.2.3 UI代码 221
 15.2.4 显示登录历史 224
 15.2.5 设计历史菜单项 228
 15.2.6 实现显示历史的代码 229
 15.2.7 selector资源 229
 15.2.8 layer_list资源 230
 15.2.9 定制控件背景 231
 15.2.10 动画显示菜单 231
 15.2.11 让菜单消失 233
 15.2.12 响应选中菜单项 234
 15.3 QQ主页面设计 235
 15.3.1 设置导航栏 237
 15.3.2 设置Tab栏 239
 15.3.3 改变Tab Item图标 241
 15.3.4 为ViewPager添加
 内容 242
 15.3.5 ViewPager与TabLayout
 联动 245
 15.3.6 使用SpannableString显示
 图像 247
 15.3.7 禁止ViewPager滑动
 翻页 251
 15.3.8 创建消息页 252
 15.3.9 显示气泡菜单 258
 15.3.10 抽屉效果 271
 15.3.11 创建联系人页 286
 15.3.12 创建动态页 303
 15.3.13 实现搜索功能 304
 第16章 实现聊天界面 313
 16.1 原理分析 313
 16.2 创建聊天Activity 313
 16.2.1 activity_chat.xml 313
 16.2.2 类ChatActivity 316
 16.2.3 显示消息的Layout 318
 16.3 启动ChatActivity 320
 16.4 模拟聊天 321
 第17章 多线程 323
 17.1 线程与进程的概念 323
 17.2 创建线程 324
 17.3 创建线程的另一种方式 325
 17.4 多个线程操作同一个对象 326
 17.5 单线程中异步执行 329
 17.6 多线程间同步执行 330
 17.7 在其他线程中操作界面 330
 17.8 HandlerThread 333
 17.9 线程的退出 333
 第18章 网络通信 336
 18.1 网络基础知识 336
 18.1.1 IP地址与域名 336
 18.1.2 TCP与UDP 337
 18.1.3 HTTP协议 337
 18.2 Android HTTP通信 338
 18.3 使用异步任务 341
 18.3.1 定义异步任务类 341
 18.3.2 使用异步任务类 342
 18.3.3 完善异步任务类 344
 18.3.4 异步任务的退出 349
 18.4 使用OkHttp进行网络通信 351
 18.4.1 使用OkHttp下载图像 352
 18.4.2 创建Web服务端 354
 18.4.3 使用OkHttp下载数据 355
 18.4.4 JSON转对象 357
 18.4.5 使用OkHttp上传文件 358
 18.5 使用Retrofit进行网络通信 360
 18.5.1 加入Retrofit的依赖项 360
 18.5.2 用Retrofit下载文本 361
 18.5.3 用Retrofit下载图像 363
 18.5.4 用Retrofit上传图像 364
 第19章 异步调用库RxJava 366
 19.1 小试牛刀 366
 19.2 精简发送代码 369
 19.3 精简接收代码 370
 19.4 map与flatmap 371
 19.5 并行map 373
 19.6 RxJava与Retrofit合体 374
 19.7 RxJava Retrofit合体并行执行 376
 19.8 RxJava与Activity的配合 377
 第20章 实现聊天功能 378
 20.1 添加注册功能 378
 20.1.1 创建注册Activity 378
 20.1.2 设计注册页面 379
 20.1.3 显示Bottom Sheet 381
 20.1.4 拍照 384
 20.1.5 提交注册信息 392
 20.2 改进登录功能 399
 20.2.1 创建Retrofit相关实例 399
 20.2.2 添加Fragment回调
 接口 400
 20.2.3 发出登录请求 401
 20.2.4 保存自己的信息 403
 20.2.5 防止按钮重复单击 403
 20.2.6 显示进度条 404
 20.3 获取联系人 406
 20.3.1 修改Retrofit接口 407
 20.3.2 使用RxJava定时器 407
 20.3.3 添加Fragment回调
 接口 408
 20.3.4 获取并显示联系人 408
 20.3.5 出错重试 410
 20.3.6 停止网络连接 411
 20.4 发出聊天消息 413
 20.4.1 定义承载消息的类 413
 20.4.2 在接口中添加方法 414
 20.4.3 在ChatActivity中初始化Retrofit 414
 20.4.4 上传消息 415
 20.4.5 失败重传 416
 20.5 获取聊天消息 417
 20.5.1 为ChatService增加
 方法 417
 20.5.2 发出请求 417
 |  
         
          | 內容試閱: |   
          | 前言 写作背景
 2020年了,Android开发的热度怎么样了?学习它,对就业和薪资提升帮助大吗?我想这是大多数人最关心的问题。
 一门技术在职场中的需求热度,通过大型求职招聘网站可以很容易分析出结论。大体可以这样说,移动端开发作为软件生态的一部分,从来都有很强的需求。在2017年之前,Android原生开发曾一度进入低谷,因为很多团队都选择基于JavaScript的跨平台开发框架。但是,这些框架也存在一些先天缺陷,主要是由于Android与iOS的巨大差异造成的(这两大系统不可能统一,为了商业利益,必须互相制造壁垒)。事实已经证明了一点,跨平台开发始终绕不开原生开发。所以,2017年之后,Android原生开发重新被重视,甚至有国外公司完全回归了原生开发。当前,跨平台开发依然在迅速发展,但是始终绕不过原生开发,而且有些功能只能用原生开发实现。所以,要进行移动开发,必须学习原生开发!
 本书作者有15年以上软件开发实战经验、5年以上IT实训教学经验,深入了解各种技术、架构、设计模式,对IT教育有丰富的体验和深入的思考,对各种技术善于以通俗易懂的语言进行透彻讲解。
 本书导读
 本书是《Android 9编程通俗演义》的姊妹篇,作者在其基础上修正部分错误,改进多处设计,将开发语言由Java升级为Kotlin,紧紧追赶Google的步伐。
 我有一个梦想,让天下没有难学的技术!本书与《Android 9编程通俗演义》一书的写作风格一致:通俗易懂,具体直观,注重实践,以为读者节省脑细胞作为终极目标。
 我一直希望能写出一本让读者轻轻松松学编程的书,如果能把学习当作一种休闲方式,那该是多么美好的事情!当然了,众口难调,一本书的风格不可能满足所有人的口味。在本书创作中,作者已尽量做到照顾更多的人,尤其照顾基础差的人,并且尽量少说黑话,努力使它成为一部不那么反人类的作品,相信大部分人都很容易接受这种风格。因为从上一本书的读者反馈看来,效果很不错!
 本书应该怎么去阅读?答案就一句话:看就行了!
 如果你是一个勤快人,可以边看边跟着做;如果是一个懒人,那么仅仅停留在看上。你可以躺着看、坐着看、趴着看,最好不要走路看,因为对眼睛不好。
 本书翔实地讲述一个Android App的实现过程,并对很多基础知识进行了专门补齐。实现App的每一步都有截图,你不用写代码,也能看到结果。所以,阅读体验是很轻松的。
 本书从头至尾讲了一个故事:开发一个Android版高仿QQ App的故事。本书的内容结构是这样的:
 ? 第1章:Kotlin语言快速入门。
 ? 第2~4章:Android开发准备与初步体验。
 ? 第5~14章:Andorid基本功能与界面开发。
 ? 第15、16章:实现仿QQ App单机版。
 ? 第17~19章:Android多线程、网络开发。
 ? 第20章:实现仿QQ App网络聊天版。
 示例源码下载
 第14章之前讲解基础知识,示例项目为 FirstCotlinApp,其Git仓库地址是https:gitee.comnnnFirstCotlinApp.git。
 第15章和第16章的项目为无网络通信的仿QQApp,项目名为QQApp,其Git仓库地址为https:gitee.comnnnQQAppCotlin.git。
 第20章的项目为带网络通信功能的仿QQApp,是从QQAppCotlin改进而来的,因此项目名和包名皆与QQAppCotlin相同,其Git仓库地址为https:gitee.comnnnQQAppCotlinHttp.git。
 另外,为了模仿QQApp中的树状显示效果,作者还创建了一个开源项目RecyclerListTreeView,托管于GitHub,现已被多人用于商业项目。在本书中亦有对其用法的详细介绍,地址为https:github.comniugaoRecyclerListTreeView。
 对本书内容或各项目有任何疑问,可在gitee或GitHub中的项目仓库页面直接留言,也可在作者的CSDN博客https:blog.csdn.netniu_gao中留言。
 读者对象
 ? 了解Java语言,想学习Kotlin语言和Android开发的初学者
 ? 想快速了解Android开发模式的资深开发人士
 ? 有一定Android开发基础,想进一步提升实战能力的开发人员
 ? 需要工程教育实践案例的高校教师
 致谢
 首先感谢各位读者,你们的肯定给予我笔耕不辍的信心和动力!其次要感谢清华大学出版社夏毓彦编辑的大力支持和指导,让我可以专注于内容,充分体验作为作者的乐趣。再次感谢我的家人和朋友,是你们的鼓励与支持给了我动力。最后感谢我自己,耐住寂寞,坚持不辍,能为世人留下一两部作品,真的感觉人生没有虚度。
 牛 搞
 2020年3月
 |    |