发表于2024-12-22
本书的作者是CSDN知名的专家博主,乐于分享自己的开发经验,书里的知识点都是初学者应该掌握的重点和难点,这本书是Android初学者向高级工程师进阶的必备利器!
《Android开发艺术探索》是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。《Android开发艺术探索》从三个方面来组织内容。一,介绍Android开发者不容易掌握的一些知识点;第二,结合Android源代码和应用层开发过程,融会贯通,介绍一些比较深入的知识点;第三,介绍一些核心技术和Android的性能优化思想。
《Android开发艺术探索》侧重于Android知识的体系化和系统工作机制的分析,通过《Android开发艺术探索》的学习可以极大地提高开发者的Android技术水平,从而更加高效地成为高级开发者。而对于高级开发者来说,仍然可以从《Android开发艺术探索》的知识体系中获益。
任玉刚,百度公司Android资深工程师,硕士毕业于中国科学技术大学,在CSDN发表多篇高质量的技术文章并广获好评,并多次在GitHub上提交开源项目,先后在腾讯、创新工场和百度从事Android开发,目前在百度公司参与百度手机卫士的开发工作。
第1章 Activity的生命周期和启动模式 / 1
1.1 Activity的生命周期全面分析 / 1
1.1.1 典型情况下的生命周期分析 / 2
1.1.2 异常情况下的生命周期分析 / 8
1.2 Activity的启动模式 / 16
1.2.1 Activity的LaunchMode / 16
1.2.2 Activity的Flags / 27
1.3 IntentFilter的匹配规则 / 28
第2章 IPC机制 / 35
2.1 Android IPC简介 / 35
2.2 Android中的多进程模式 / 36
2.2.1 开启多进程模式 / 36
2.2.2 多进程模式的运行机制 / 39
2.3 IPC基础概念介绍 / 42
2.3.1 Serializable接口 / 42
2.3.2 Parcelable接口 / 45
2.3.3 Binder / 47
2.4 Android中的IPC方式 / 61
2.4.1 使用Bundle / 61
2.4.2 使用文件共享 / 62
2.4.3 使用Messenger / 65
2.4.4 使用AIDL / 71
2.4.5 使用ContentProvider / 91
2.4.6 使用Socket / 103
2.5 Binder连接池 / 112
2.6 选用合适的IPC方式 / 121
第3章 View的事件体系 / 122
3.1 View基础知识 / 122
3.1.1 什么是View / 123
3.1.2 View的位置参数 / 123
3.1.3 MotionEvent和TouchSlop / 125
3.1.4 VelocityTracker、GestureDetector和Scroller / 126
3.2 View的滑动 / 129
3.2.1 使用scrollTo/scrollBy / 129
3.2.2 使用动画 / 131
3.2.3 改变布局参数 / 133
3.2.4 各种滑动方式的对比 / 133
3.3 弹性滑动 / 135
3.3.1 使用Scroller / 136
3.3.2 通过动画 / 138
3.3.3 使用延时策略 / 139
3.4 View的事件分发机制 / 140
3.4.1 点击事件的传递规则 / 140
3.4.2 事件分发的源码解析 / 144
3.5 View的滑动冲突 / 154
3.5.1 常见的滑动冲突场景 / 155
3.5.2 滑动冲突的处理规则 / 156
3.5.3 滑动冲突的解决方式 / 157
第4章 View的工作原理 / 174
4.1 初识ViewRoot和DecorView / 174
4.2 理解MeasureSpec / 177
4.2.1 MeasureSpec / 177
4.2.2 MeasureSpec和LayoutParams的对应关系 / 178
4.3 View的工作流程 / 183
4.3.1 measure过程 / 183
4.3.2 layout过程 / 193
4.3.3 draw过程 / 197
4.4 自定义View / 199
4.4.1 自定义View的分类 / 200
4.4.2 自定义View须知 / 201
4.4.3 自定义View示例 / 202
4.4.4 自定义View的思想 / 217
第5章 理解RemoteViews / 218
5.1 RemoteViews的应用 / 218
5.1.1 RemoteViews在通知栏上的应用 / 219
5.1.2 RemoteViews在桌面小部件上的应用 / 221
5.1.3 PendingIntent概述 / 228
5.2 RemoteViews的内部机制 / 230
5.3 RemoteViews的意义 / 239
第6章 Android的Drawable / 243
6.1 Drawable简介 / 243
6.2 Drawable的分类 / 244
6.2.1 BitmapDrawable / 244
6.2.2 ShapeDrawable / 247
6.2.3 LayerDrawable / 251
6.2.4 StateListDrawable / 253
6.2.5 LevelListDrawable / 255
6.2.6 TransitionDrawable / 256
6.2.7 InsetDrawable / 257
6.2.8 ScaleDrawable / 258
6.2.9 ClipDrawable / 260
6.3 自定义Drawable / 262
第7章 Android动画深入分析 / 265
7.1 View动画 / 265
7.1.1 View动画的种类 / 265
7.1.2 自定义View动画 / 270
7.1.3 帧动画 / 272
7.2 View动画的特殊使用场景 / 273
7.2.1 LayoutAnimation / 273
7.2.2 Activity的切换效果 / 275
7.3 属性动画 / 276
7.3.1 使用属性动画 / 276
7.3.2 理解插值器和估值器 / 280
7.3.3 属性动画的监听器 / 282
7.3.4 对任意属性做动画 / 282
7.3.5 属性动画的工作原理 / 288
7.4 使用动画的注意事项 / 292
第8章 理解Window和WindowManager / 294
8.1 Window和WindowManager / 294
8.2 Window的内部机制 / 297
8.2.1 Window的添加过程 / 298
8.2.2 Window的删除过程 / 301
8.2.3 Window的更新过程 / 303
8.3 Window的创建过程 / 304
8.3.1 Activity的Window创建过程 / 304
8.3.2 Dialog的Window创建过程 / 308
8.3.3 Toast的Window创建过程 / 311
第9章 四大组件的工作过程 / 316
9.1 四大组件的运行状态 / 316
9.2 Activity的工作过程 / 318
9.3 Service的工作过程 / 336
9.3.1 Service的启动过程 / 336
9.3.2 Service的绑定过程 / 344
9.4 BroadcastReceiver的工作过程 / 352
9.4.1 广播的注册过程 / 353
9.4.2 广播的发送和接收过程 / 356
9.5 ContentProvider的工作过程 / 362
第10章 Android的消息机制 / 372
10.1 Android的消息机制概述 / 373
10.2 Android的消息机制分析 / 375
10.2.1 ThreadLocal的工作原理 / 375
10.2.2 消息队列的工作原理 / 380
10.2.3 Looper的工作原理 / 383
10.2.4 Handler的工作原理 / 385
10.3 主线程的消息循环 / 389
第11章 Android的线程和线程池 / 391
11.1 主线程和子线程 / 392
11.2 Android中的线程形态 / 392
11.2.1 AsyncTask / 392
11.2.2 AsyncTask的工作原理 / 395
11.2.3 HandlerThread / 402
11.2.4 IntentService / 403
11.3 Android中的线程池 / 406
11.3.1 ThreadPoolExecutor / 407
11.3.2 线程池的分类 / 410
第12章 Bitmap的加载和Cache / 413
12.1 Bitmap的高效加载 / 414
12.2 Android中的缓存策略 / 417
12.2.1 LruCache / 418
12.2.2 DiskLruCache / 419
12.2.3 ImageLoader的实现 / 424
12.3 ImageLoader的使用 / 441
12.3.1 照片墙效果 / 441
12.3.2 优化列表的卡顿现象 / 446
第13章 综合技术 / 448
13.1 使用CrashHandler来获取应用的crash信息 / 449
13.2 使用multidex来解决方法数越界 / 455
13.3 Android的动态加载技术 / 463
13.4 反编译初步 / 469
13.4.1 使用dex2jar和jd-gui反编译apk / 470
13.4.2 使用apktool对apk进行二次打包 / 470
第14章 JNI和NDK编程 / 473
14.1 JNI的开发流程 / 474
14.2 NDK的开发流程 / 478
14.3 JNI的数据类型和类型签名 / 484
14.4 JNI调用Java方法的流程 / 486
第15章 Android性能优化 / 489
15.1 Android的性能优化方法 / 490
15.1.1 布局优化 / 490
15.1.2 绘制优化 / 493
15.1.3 内存泄露优化 / 493
15.1.4 响应速度优化和ANR日志分析 / 496
15.1.5 ListView和Bitmap优化 / 501
15.1.6 线程优化 / 501
15.1.7 一些性能优化建议 / 501
15.2 内存泄露分析之MAT工具 / 502
15.3 提高程序的可维护性 / 506
从目前的形势来看,Android开发相当火热,但是高级Android开发人才却比较少,当然在国内,不仅仅是Android,其他技术岗位同样面临这个问题。试想下,如果有一本书能够切实有效地提高开发者的技术水平,那该多好啊!纵观市场上的Android书籍,很多都是入门类书籍,还有一些Android源码分析、系统移植、驱动开发、逆向工程等系统底层类书籍。入门类书籍是目前图书市场中的中坚力量,它们在帮助开发者入门的过程中起到了非常重要的作用,但开发者若想进一步提高技术水平,还需要阅读更深入的书籍。底层书籍包括源码分析、驱动开发、逆向工程等书籍,它们从底层或者某一个特殊的角度来深入地分析Android,这是很值得称赞和学习的,通过这些书可以极大地提高开发者底层或者相关领域的技术水平。但美中不足的是,系统底层书籍比较偏理论,部分开发者阅读起来可能会有点晦涩难懂。更重要的一点,由于它们往往侧重原理和底层机制,导致它们不能直接为应用层开发服务,毕竟绝大多数Android开发岗位都是应用层开发。由于阅读底层类书籍一般只能够加深对底层的认识,而在应用层开发中,还是不能形成直接有效的战斗力,这中间是需要转化过程的。但是,由于部分开发者缺乏相应的技术功底,导致无法完成这个转化过程。
可以发现,目前市场上既能够极大地提高开发者的应用层技术经验,又能够将上层和系统底层的运行机制结合起来的书籍还是比较少的。对企业来说,在业务上有很强的技术能力,同时对Android底层也有一定理解的开发人员,是企业比较青睐的技术高手。为了完成这一愿望,笔者写了这本书。通过对本书的深入学习,开发者既能够极大地提高应用层的开发能力,又能够对Android系统的运行机制有一定的理解,但如果要深入理解Android的底层机制,仍然需要查看相关源码分析的书籍。
本书适合各类开发者阅读,对于初、中级开发者来说,可以通过本书更加高效地达到高级开发者的技术水平。而对于高级开发者,仍然可以从本书的知识体系中获益。本书的书名之所以采用艺术这个词,这是因为在笔者眼中,代码写到极致就是一种艺术。
本文内容
本书共15章,所讲述的内容均基于Android 5.0系统。
第1章介绍Activity的生命周期和启动模式以及IntentFilter的匹配规则。
第2章介绍Android中常见的IPC机制,多进程的运行模式和一些常见的进程间通信方式,包括Messenger、AIDL、Binder以及ContentProvider等,同时还介绍Binder连接池的概念。
第3章介绍View的事件体系,并对View的基础知识、滑动以及弹性滑动做详细的介绍,同时还深入分析滑动冲突的原因以及解决方法。
第4章介绍View的工作原理,首先介绍ViewRoot、DecorView、MeasureSpec等View相关的底层概念,然后详细分析View的测量、布局和绘制三大流程,最后介绍自定义View的分类以及实现思想。
第5章讲述一个不常见的概念RemoteViews,分别描述RemoteViews在通知栏和桌面小部件中的使用场景,同时还详细介绍PendingIntent,最后深入分析RemoteViews的内部机制并探索性地指出RemoteViews在Android中存在的意义。
第6章对Android的Drawable做一个全面性的介绍,除此之外还讲解自定义Drawable的方法。
第7章对Android中的动画做一个全面深入的分析,包含View动画和属性动画。
第8章讲述Window和WindowManager,首先分析Window的内部工作原理,包括Window的添加、更新和删除,其次分析Activity、Dialog等类型的Window对象的创建过程。
第9章深入分析Android中四大组件的工作过程,主要包括四大组件的运行状态以及它们主要的工作过程,比如启动、绑定、广播的发送和接收等。
第10章深入分析Android的消息机制,其中涉及的概念有Handler、Looper、MessageQueue以及ThreadLocal,此外还分析主线程的消息循环模型。
第11章讲述Android的线程和线程池,首先介绍AsyncTask、HandlerThread、IntentService以及ThreadPoolExecutor的使用方法,然后分析它们的工作原理。
第12章讲述的主题是Bitmap的加载和缓存机制,首先讲述高效加载图片的方式,接着介绍LruCache和DiskLruCache的使用方法,最后通过一个ImageLoader的实例来将它们综合起来。
第13章是综合技术,讲述一些很重要但是不太常见的技术方案,它们是CrashHandler、multidex、插件化以及反编译。
第14章的主题是JNI和NDK编程,介绍使用JNI和Android NDK编程的方法。
第15章介绍Android的性能优化方法,比如常见的布局优化、绘制优化、内存泄露优化等,除此之外还介绍分析ANR和内存泄露的方法,最后探讨如何提高程序的可维护性这一话题。
通过这15章的学习,可以让初、中级开发者的技术水平和把控能力提升一个档次,最终成为高级开发者。
本书特色
本书定位为进阶类图书,不会对一些基础知识从头说起,或者说每一章节都不涵盖各种入门知识,但是在向高级知识点过渡的时候,会稍微提及一下基础知识从而做到平滑过渡。开发者在掌握入门知识以后,通过本书可以极大地提高应用层开发的技术水平,同时还可以理解一定的Android底层运行机制,并且能够将它们进行升华从而更好地为应用层开发服务。除了这些,开发者还可以掌握一些核心技术和性能优化思想,本书涉及的知识,都是一个合格的高级工程师所必须掌握的。简单地说,本书的目的就是让初、中级开发者更有针对性地掌握高级工程师所应该掌握的技术,能够让初、中级开发者按照正确的道路快速地成长为高级工程师。
致谢
感谢本书的策划编辑陈晓猛,他的高效率是本书得以及时出版的一个重要原因;感谢我的妻子对我写书的支持,接近1年的写书时光是她一直陪伴在我身边;感谢百度手机卫士这款产品,它是本书的技术源泉;感谢和我一起奋斗的同事们,和你们在一起工作的时光,我不仅提高了技术水平而且还真正感受到了 Android开发艺术探索 下载 mobi epub pdf txt 电子书 格式
Android开发艺术探索 下载 mobi pdf epub txt 电子书 格式 2024
Android开发艺术探索 下载 mobi epub pdf 电子书活动期间买的很实惠,京东自营,值得信赖。
评分还哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
评分还哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
评分学习。。。。。。。。。。
评分虽然是618过节期间,但是物流还说一如既往地快,做活动优惠力度很大,很划算
评分看了书收获颇多,书是正版的,字体印刷清晰,发货送货速度快!很满意!
评分挺好的。配合在线练习效果更佳。可能真的要取代java了
评分嗯技术人员必备的书籍,建议大家都买一本,真的是活到老学到老啊!!!
评分哈哈还哈哈哈哈哈哈哈哈哈哈哈
Android开发艺术探索 mobi epub pdf txt 电子书 格式下载 2024