ANDROID 9编程通俗演义
全新正版 极速发货
¥
57.79
6.5折
¥
89
全新
仅1件
作者牛搞
出版社清华大学出版社
ISBN9787302523932
出版时间2019-04
装帧平装
开本其他
定价89元
货号1201858544
上书时间2024-11-30
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
软件开发从业15年编程实战经验,流媒体技术专家,高性能服务器专家。CSDN知名博主。现为IOS、Adroid、C++不错培训讲师。
目录
章 配置Android开发环境1
1.1 下载Android Studio1
1.2 安装Android Studio2
1.3 配置Android SDK4
1.4 四原则6
第2章 个App8
2.1 创建个App8
2.2 运行App12
2.2.1 在真实设备上调试13
2.2.2 配置虚拟机15
2.2.3 启动App18
2.2.4 x86虚拟机加速19
2.2.5 App的样子21
2.3 工程里面有什么22
第3章 UI资源与Layout24
3.1 Layout24
3.2 改动Layout27
3.2.1 添加图像资源30
3.2.2 显示自己的图像32
3.2.3 XML小解35
3.2.4 Layout源码解释36
3.3 排版姿方法之ConstraintLayout37
3.3.1 ConstraintLayout的原理38
3.3.2 子控件在ConstraintLayout中居左或居右39
3.3.3 子控件在ConstraintLayout中横向居中40
3.3.4 子控件在ConstraintLayout中居中偏左41
3.3.5 子控件A在子控件B的上面42
3.3.6 子控件A与子控件B左边对齐43
3.3.7 设置子控件的宽和高44
3.3.8 子控件的宽和高保持一定比例45
3.4 排版方法之RelativeLayout48
3.4.1 把ConstraintLayout改为RelativeLayout49
3.4.2 左右对齐与居中51
3.4.3 充满整个父控件52
3.4.4 兄弟之间相对排53
3.4.5 dp是什么55
3.4.6 使用RelativeLayout设计登录页面56
3.5 让内容“滚”63
3.5.1 添加ScrollView作为最外层容器63
3.5.2 改正在ScrollView下的排版66
3.6 添加新的Layout资源70
第4章 各种Layout控件72
4.1 FrameLayout72
4.2 LinearLayout72
4.2.1 纵向LinearLayout中子控件横向居中74
4.2.2 子控件均匀分布75
4.2.3 子控件按比例分布76
4.2.4 用LinearLayout实现登录界面77
4.3 GridLayout79
4.4 TableLayout80
第5章 代码操作控件81
5.1 在Activity中创建界面81
5.1.1 类R82
5.1.2 Activity的父类82
5.1.3 四大组件82
5.2 在代码中操作控件83
5.2.1 获取View84
5.2.2 响应View的事件86
5.2.3 添加依赖库87
5.2.4 显示提示90
第6章 Activity导航93
6.1 创建注册页面93
6.2 启动注册页面94
6.3 设计注册页面98
6.4 响应注册按钮进行注册102
6.5 获取页面返回的数据103
6.5.1 避免常量重复出现105
6.5.2 日志输出106
6.5.3 将返回的数据设置到控件中107
6.6 Action Bar上的返回图标109
6.6.1 原生Action Bar与MaterailDesign Action Bar109
6.6.2 登录页面显示返回图标111
6.6.3 注册页面显示返回图标112
第7章 Theme113
第8章 Fragment115
8.1 弄巧成拙的Activity115
8.2 使用Fragment117
8.3 改造登录页面120
8.3.1 添加layout文件120
8.3.2 改变layout文件的内容121
8.3.3 添加Fragment类122
8.3.4 将Fragment放到Activity中126
8.3.5 创建注册Fragment126
8.3.6 显示RegisterFragment128
8.3.7 通过AppBar控制页面导航129
8.3.8 实现RegisterFragment的逻辑129
8.3.9 LoginFragment中读出用户名和密码131
8.3.10 Fragment的生命周期132
8.3.11 Fragment状态保存与恢复133
8.3.12 总结134
8.4 对话框138
8.4.1 创建子类138
8.4.2 显示对话框140
8.4.3 响应返回键141
8.4.4 取消输入控件的焦点142
第9章 菜单143
9.1 添加菜单资源144
9.2 重写onCreateOptionsMenu()147
9.3 嵌套菜单148
9.4 菜单项分组150
9.5 响应菜单项150
9.6 其他菜单类型152
0章 动画153
10.1 动画原理153
10.2 三种动画154
10.3 View动画155
10.3.1 绕着中心转156
10.3.2 不要反向转157
10.3.3 举一反三158
10.3.4 动画组158
10.4 属性动画159
10.4.1 旋转动画159
10.4.2 动画组160
10.5 动画资源164
10.6 Layout动画167
10.6.1 向Layout控件添加子控件167
10.6.2 ViewGroup168
10.6.3 设置排版动画169
10.7 转场动画171
10.7.1 使用默认转场动画171
10.7.2 自定义转场动画172
1章 自定义控件176
11.1 创建一个Custom View177
11.2 Custom View类179
11.2.1 构造方法179
11.2.2 onDraw()方法180
11.2.3 init()方法182
11.2.4 自定义属性184
11.2.5 作画186
11.3 创建圆形图像控件188
11.3.1 将Drawable转成Bitmap191
11.3.2 变换矩阵192
11.3.3 自定义属性的改动193
11.3.4 类的所有代码195
2章 RecyclerView200
12.1 基本用法200
12.2 显示多条简单数据201
12.2.1 添加新页面201
12.2.2 创建Adapter子类203
12.2.3 设置RecyclerView205
12.2.4 用集合保存数据206
12.3 让子控件复杂起来207
12.3.1 创建条目的Layout资源208
12.3.2 应用条目Layout资源210
12.3.3 明显区分每一行212
12.3.4 创建音乐信息类214
12.3.5 使用音乐信息类215
12.4 增删改217
12.4.1 增加一条217
12.4.2 其他操作219
12.5 局部刷新219
12.6 运行效率优化220
12.7 响应item选择221
12.8 显示不同类型的行223
12.8.1 添加新Item数据类224
12.8.2 添加Item Layout225
12.8.3 创建新的ViewHolder类226
12.8.4 区分不同的View Type227
3章 模仿QQApp界面230
13.1 创建新的Android项目230
13.2 设计登录页面230
13.2.1 创建登录Fragment230
13.2.2 设计登录界面232
13.2.3 UI代码233
13.2.4 显示登录历史236
13.2.5 设计历史菜单项240
13.2.6 实现显示历史的代码241
13.2.7 selector资源243
13.2.8 layer_list资源244
13.2.9 定制控件背景245
13.2.10 动画显示菜单246
13.2.11 让菜单消失247
13.2.12 响应选中菜单项248
13.3 QQ主页面设计250
13.3.1 设置导航栏254
13.3.2 设置Tab栏255
13.3.3 改变Tab Item图标258
13.3.4 为ViewPager添加内容259
13.3.5 ViewPager与TabLayout联动261
13.3.6 在Tab Item中显示图像263
13.3.7 禁止ViewPager滑动翻页266
13.3.8 创建“消息”页267
13.3.9 显示气泡菜单274
13.3.10 抽屉效果293
13.3.11 创建“联系人”页308
13.3.12 创建“动态”页328
13.3.13 实现搜索功能329
4章 实现聊天界面339
14.1 实现原理分析339
14.2 创建聊天Activity340
14.2.1 activity_chat.xml340
14.2.2 类ChatActivity342
14.2.3 显示消息的layout344
14.3 启动ChatActivity346
14.4 模拟聊天347
5章 多线程349
15.1 线程与进程的概念349
15.2 创建线程350
15.3 创建线程的另一种方法352
15.4 多个线程操作同一个对象353
15.5 单线程中异步执行356
15.6 多线程间同步执行357
15.7 在其他线程中操作界面358
15.8 HandlerThread360
15.9 线程的退出361
6章 网络通信363
16.1 网络基础知识363
16.1.1 IP地址与域名363
16.1.2 TCP与UDP364
16.1.3 HTTP协议364
16.2 Android HTTP通信365
16.3 使用“异步任务”369
16.3.1 定义异步任务类369
16.3.2 使用异步任务类370
16.3.3 完善异步任务类371
16.3.4 异步任务的退出378
16.4 使用OkHttp进行网络通信380
16.4.1 使用OkHttp下载图像381
16.4.2 创建Web服务端383
16.4.3 使用OkHttp下载数据385
16.4.4 JSON转对象387
16.4.5 使用OkHttp上传文件388
16.5 使用Retrofit进行网络通信391
16.5.1 加入Retrofit的依赖项391
16.5.2 用Retrofit下载文本392
16.5.3 用Retrofit下载图像393
16.5.4 用Retrofit上传图像394
7章 异步调用库RxJava397
17.1 小试牛刀397
17.2 精简发送代码400
17.3 精简接收代码401
17.4 RxJava与Lamda402
17.5 map与flatmap404
17.6 并行map405
17.7 RxJava与Retrofit合体406
17.8 RxJava Retrofit合体并行执行407
8章 实现聊天功能409
18.1 改进登录功能411
18.1.1 制定统一的数据返回结构411
18.1.2 向ChatService中添加方法413
18.1.3 登录请求414
18.1.4 保存自己的信息417
18.1.5 防止按钮重复点击418
18.1.6 显示进度条418
18.2 获取联系人421
18.2.1 修改Retrofit接口422
18.2.2 RxJava定时器422
18.2.3 获取并显示联系人423
18.2.4 出错重试425
18.2.5 停止网络连接425
18.3 发出聊天消息427
18.3.1 定义承载消息的类427
18.3.2 在接口中添加方法428
18.3.3 在ChatActivity中初始化Retrofit429
18.3.4 上传消息429
18.3.5 失败重传431
18.4 获取聊天消息431
18.4.1 为ChatService增加方法431
18.4.2 发出请求431
内容摘要
本书严格参考Android 9官方开发文档的逻辑,全面讲解Android开发中的各种技术,章节内容循序渐进,精心安排,翔实全面,且又通俗易懂,既不是术语的罗列,也不是不知所云的翻译。
本书分为18章,内容包括配置Android 9开发环境、个App、UI资源与Layout、各种Layout控件、代码操作控件、Activity导航、Theme、Fragment、菜单、动画、自定义控件、RecyclerView、模仿QQApp界面、实现聊天界面、多线程、网络通信、异步调用库RxJava、实现聊天功能等。
本书适合Android编程初学者、Android应用开发人员,也适合高等院校和培训学校相关专业的师生教学参考。
主编推荐
Android App开发是当前很热门的工作之一。Android系统开源、免费,应用面广,从手机到穿戴设备,从智能家居到汽车导航,Android已经渗透到工业生产、生活的方方面面。总体来说当前Android开发人才需求很大,学习Android开发就业面广,薪资提升快。本书作者有十五年软件开发实战经验,三年以上IT实训教学经验,深入了解各种技术、架构、设计模式。本文对Android开发技术力求以通俗易懂的语言进行透彻讲解,让读者阅读此文不吃力且收获良多。
精彩内容
自从iOS横空出世,移动应用开发持续火爆,人才需求量节节攀升,开发人员的薪资也勇攀高峰。但是,随着一批跨平台移动开发框架(如基于JavaScript的PhoneGap 、React Native,基于.Net的Xarmain等)的出现,企业对iOS与Android原生开发的需求量下降,其实大家在招聘网站上就可以感受到相关职位的减少。然而,所谓的跨平台移动开发其实是个大坑!原因很简单:没有一个操作系统愿意与其他的系统兼容、统一。比如Android与iOS,即使它们在不停地互相学习,功能越来越相似,但是它们的开发语言、SDK、API等不论在哪个层面都绝不兼容。所以当使用跨平台框架开发同时兼容iOS和Android的App时,就会踩到很多坑。更悲催的是,一旦某个操作系统升级了,你使用的框架可能马上会出现兼容性问题,你可以等待框架开发者把这个问题修正,但不知何年何月,实在等不了,你只能自己修正问题,于是你需要对这个框架的底层很熟悉,并且还要同时熟悉iOS与Android的原生开发,也就是说,你买了一个复杂的工具,你需要用它做两样不同的产品,你既需要学习如何使用这个工具,还要学习这两个产品的制作流程,还要学会修理和改进这个工具,有点恐怖啊!当然这可以煅练你的能力,让你成为牛人中的牛人,但是这会拖延开发进度,你的老板能接受吗?
最近出现了很多反思这些框架的声音,而且已经有国外公司放弃React Native的事件发生,同时我在各技术群中感受到Android和iOS开发的招聘数量比过去两年有明显的增加,这都说明大家正在回归原生开发。当然我不是在完全否定跨平台开发框架,它们有它们的适应场景,比如一个电子商城App,只提供商品展示、拍照、收藏、购物等常见功能,跨平台框架是完全能胜任的,但问题是,你依然需要熟悉原生开发,才能用好跨平台开发框架!本书讲的就是Android原生开发的故事,情节跌宕起伏,一波三折,相信你会喜欢。
作者心声
如何才能轻松学会一门开发技术? 估计这个问题很多人都思考过,因为学技术或者说研究技术真的很难!(是不是说出了大家的心声?)大家应该都有感受:真正掌握一门开发技术其实需要很长时间。即使你是一只长期浸淫各种技术的“千年老妖”,给你一门陌生的技术,你还是会感受到入门的痛苦,你虽然了解各种模式、玩过各种知识,但是你就是无法在短时间内真正参透它。
为什么会这样? 原因很简单:技术本来就是复杂的!但大家经常会听到有人说,某某开发很简单,怎样怎样做就行了,随便学学就会了……这种鬼话,谁信谁上当!因为你真正动手使用它时,发现几乎一步一个坑!实际存在这样一个规律:仅学习如何使用一门技术而不真正搞懂其原理,你是不会用这门技术的,那个说简单的人,因为他已经完全掌握了这项技术,但他忘了他入门时所花费的脑力、时间以及经受的痛苦。
我说技术本来就复杂,可能有人不服,但我相信你仔细思考之后,就会同意这个观点。一项技术可能用一句话就能说清楚它的用途或概括它的原理,但当你真正运用它时,你就会发现里面隐藏了无数的细节,而且它还依赖很多其他的技术,你要一步步跨越这些沟沟坎坎,填平你的技术洼地,才能俘获它。
但是,学习技术难,把技术用文字讲明白更难!我到现在也没读到能让我轻轻松松看明白一门技术的书。尤其对于基础差的人来说,他们喜欢凑热闹买很多“技术名著”,但最终发现能看懂的内容寥寥无几!
为什么技术书藉都那么晦涩难懂呢? 我想有三方面的主要原因:一是技术黑话(就是术语)太多;二是没有为读者补齐知识差距,作者只在自己的高度上讲啊讲,读者可能跟你隔着一层天;三是太多概括和抽象,把人整得云里雾里。
所以,我尝试改变技术书藉中的这些问题,写一本老少皆宜、童叟无欺、雅俗共赏的书,为大家讲明白一门复杂而庞大的技术:Android开发。本书对读者的知识基础也仅要求会用Java语言,希望大家读起来轻轻松松。在书中作者尽量以通俗的语言讲述各种概念,每个技术点都以具体的案例引出,尽量不劳您费神思考。本书中还配了大量的截图,就是希望读者即使不动手操作,也能学个八九不离十。
本书的定位是Android开发入门,但是其中也涉及很多不错的技术内容和热门第三方库,比如多线程、RxJava、网络通信、Retrofit、前后台结合等,所以绝不仅仅适合没有基础的人。本书也适合那些未接触Android开发的其他领域的高手们,如果他们要快速了解Android开发的方方面面,这本书绝对是非常好的选择。
本书以App实例开发驱动,带领读者一步步完成一个仿QQApp的应用,保证让读者轻松搞懂每种技术的用途,并体验到每种技术的使用模式。本书紧跟Andriod SDK的更新脚步,所有例子都可在Android 9开发环境下编译和运行。
代码下载
本书中的示例都配有源码,地址分别是:
Android起步+RecyclerView:https://gitee.com/nnn/AndFirstStep/repository/archive/master.zip
QQApp:https://gitee.com/nnn/QQApp/repository/archive/master.zip
QQApp后台:https://gitee.com/nnn/QQAppServer/repository/archive/master.zip
联系作者
作者在IT开发领域工作近20年,由于对技术的爱好,一直没有脱离开发一线。近几年转向IT教学方向,一直致力于解决教学中的痛点与难点,总结IT学习的规律,并创建“被动式IT教学法”,能在降低教师工作量的同时有效提高学生学习效果。限于作者的水平,书中难免存在疏漏之处,还望各位读者批评指正。
最后,感谢各位朋友的大力帮助,此书的顺利面世离不开各位朋友的共同努力!
著 者
2019年2月
— 没有更多了 —
以下为对购买帮助不大的评价