本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
《Android群英传》实战性极强,既有基础实例,又有技巧提高,包含以下精华内容:
Android体系与系统架构
Android开发工具
Android控件架构与自定义控件详解
ListView使用技巧
AndroidScroll分析
Android绘图机制与处理技巧
Android动画机制与使用技巧
Activity与Activity调用栈分析
Android系统信息与安全机制
Android性能优化搭建云端服务器
Android5.X新特性详解
Android实例提高
《Android群英传》对具有一定Android开发基础的读者,以通俗易懂的语言介绍了Android开发的进阶技巧。
《Android群英传》共分为13章,讲解了Android体系与系统架构、Android开发工具新接触、Android控件架构与自定义控件详解、ListView使用技巧、AndroidScroll分析、Android绘图机制与处理技巧、Android动画机制与使用技巧、Activity与Activity调用栈分析、Android系统信息与安全机制、Android性能优化、搭建云端服务器、Android5.X新特性详解、Android实例提高。
《Android群英传》□后通过实例来展示如何实际实践这些技巧,让读者更好地体会如何提高Android开发。
《Android群英传》运用大量实际开发中的实例,并结合全新的Android开发SDK和IDE,让读者能够了解前沿的开发技术。《Android群英传》适合具有一定开发基础的开发者,帮助开发者快速提高开发能力。
写书之前
当电子工业出版社的官杨女士邀请我写书之前,我一直在CSDN博客坚持发表Android相关的技术博客,并给在线教育网站——慕课网录制Android相关的教学视频。自大学接触Android以来,通过不断的学习,逐渐对Android开发有了越来越深入的了解。回想当初学习Android的时候,还是有很多感触的。由于对Java语言的熟悉,因此Android的入门就显得非常轻松,然而学习一段时间后,虽然对Android的基础内容已经掌握得比较熟练,但仍然无法做出比较满意的App。一方面想通过综合的App来提升自己学习的成就感,一方面又无法融会贯通知识点,创作过程中坎坷不断。其实这段过程与大多数人的高中时期是非常相像的,记得当时在高中的时候,很多人都会遇到一个学习的瓶颈期,这段时间里,对基础的东西掌握得非常熟练,但对稍微拔高一点的内容就力不从心,总是不能发挥出应有的能力。其实不管学习什么东西都是一样,都存在这样的瓶颈期,这时候,其实你并不是没有能力去解决这些问题,而是没有找到解决问题的方法。我觉得,克服瓶颈期的□好办法就是六个字——总结、归纳、演绎。
我们在学□□项知识的时候,不能只停留在□基础的层面上,你不仅仅是一个学习者,更应该是一个创造者。就拿学习Android来说,如果仅仅去学习如何使用Android提供的API,或者去网上寻找现成的解决方法,那么即使再熟练,也还是一个低级的层次。当基础的东西掌握熟练之后,就应该总结知识、归纳知识,并将其扩充到自己的认知、理解中。你需要记忆的不仅仅是API的使用方法,更应该了解为何Android要这样设计,API的参数不记得可以去查,但对它的理解,却是属于自己的。这就好像高中的物理公式,很多人觉得非常难记,的确,如果单纯地看那些字母组成的公式,确实非常难记,但实际上,那些复杂的物理公式,都是可以由基本的公式一步步推导出来的,每个字母并不是单纯的字母,都有它背后的含义,结合这些东西去记,公式就像活了一样。同样,Android的学习也是如此,站在知识体系的高度上重新去理解那些基础知识,你才能真正地把它们融合起来,任何一个组件的设计,都不是独立的,总结、归纳、演绎它们之间的联系才是记忆知识□好的方法。
我跟很多Android开发者一样,也经历过了这样一个阶段,因此对于开发者,特别是自学开发者的这段时期的心情深有体会,所以在官杨女士邀请我写书的时候,我就萌生了写这样一本书的念头。期望从我的学习经历、开发经验中整理出正确的学习方法,让开发者少走弯路,帮助Android开发者早日渡过瓶颈期。
本书内容结构
我在学习、研究Android的过程中,也读过很多前辈们写的Android书籍,这些书籍大多分为三类:基础型、实例型和底层型。
基础型是市面上□多的一类书籍,这些书籍基本上有一个共性,就是按照Android组件类型、资源类型、网络、传感器等方面进行非常细致的讲解。在学习的初期,这样的书确实是非常有必要的,它可以帮你快速地了解整个Android的内容,但里面的很多东西,其实用的并不多,全部罗列在一起,反而增加了记忆的难度。实例型的书籍是□受开发者喜爱的一类,大家都希望通过看这些实例型的书籍来快速提高创造的成就感,但是很多时候,在看完这类书后却发现,除了书中讲的实例之外,还是无法独立完成一个App。而底层型的书籍相对于应用层的书籍来说,是□难读懂的,很多应用开发者都希望通过了解底层的实现细节来更好地掌握Android系统,这当然是非常正确的,不过这些底层型的书籍的作者,大多都是经验非常丰富的高手,书中包含了大量的底层实现细节,初学者在阅读时,由于功力不够,会导致越读越没有信心。
所以我在写这本书的时候,就在想如何才能避免上面的类似情况发生。记得还是在读高中的时候,市面上的参考书,基本上也是这样一个情况,但是有一本书却给我留下了很不错的印象——重难点手册。这本书不像其他参考书那样把书本上所有的知识点都罗列出来,也不会通过题海战术让学生背题,而是通过知识点的关系图理清知识点之间的联系,再通过分析重点、难点的知识点,来提高学生对知识体系的认识与理解。我期望我写的这本书能达到这样的一个效果,那么所有的辛苦也就值得了。
本书大致分为四个部分。
□□~□章:讲解Android背景知识与Android架构、IDE相关的基本知识点。
第□~1□章:从宏观上讲解Android中比较重要的组件和它们之间的关系、架构。针对Android开发中的重点、难点,讲解开发中重要的经验和技巧,并总结、归纳其使用方法。
□□3章:通过实例开发过程的讲解,综合运用知识点。
本书读者对象
本书适用于各个层次的Android开发者。对于Android初学者来说,可以通过前两部分的内容,快速建立Android开发的知识体系;对于有经验的Android开发者来说,可以通过对这本书的学习快速提高自己的开发经验;对于处于瓶颈期的开发者来说,更是可以非常有效地提高开发能力。
本书特色
本书各个章节之间并没有严格的递近关系,读者可以随时挑选自己感兴趣的章节开始读起。
本书在讲解时,尽量使用通俗易懂的讲解方式,不讲过多深入的理论和不常用的知识点,而是将这些深入分析的过程留给读者,培养读者去分析、理解的能力。
本书所使用的代码都基于Google□新的Android Studio上进行开发,所有的实例都在Android Studio 1.1正式版上通过测试,对读者使用Android Studio具有很好的帮助。同时,书中包含了大量Android 5.X的新功能实例,读者可以□□时间掌握Android 5.X的新特性,并运用到自己的App中。
本书中不仅介绍了Android组件之间的联系与设计思想,同时与很多Framework层的知识点联系起来,让读者知其然,并知其所以然。
本书中不引用大量的底层实现代码,而是先让读者对系统的实现有一个认识,等到读者遇到相关的问题时,再去查看源代码中的实现。这样就不再全没有方向、摸不着头脑,而是有目的地去验证。
笔者作为Android的一线开发者,所写内容具有很强的实战性,而且本书中很多实例都来源于□时网友、群友的问题,应用性强。
学习方法
在学习Android的初期阶段,开发者可以通过一本比较详细、丰富的讲解基本内容的书籍,对整个Android有一个比较清晰的印象,当然,□好的基础学习资料莫过于Google的API Guide和Training,这些内容经常被开发者所忽视,但是确实是□有价值的学习资料,不仅□□,而且非常实用,地址如下所示:
另外,在线教育视频网站——慕课网,也是非常好的学习资源,通过这里的视频教程,开发者可以利用空余时间很好的提高自己,地址如下所示:
在对基础知识有所掌握后,通过本书的学习,相信大家的开发能力一定能更上一层楼。
致谢
感谢朋友、群友在我写书的这段时间内对我的帮助,也感谢电子工业出版社的官杨女士和出版社的编辑们对我文章的核对和建议,没有你们的帮助,也就没有这本书的诞生。
资源与勘误
由于个人能力的局限,虽已竭尽全力,但对于书中的一些问题的分析难免会有纰漏,实例中的解决方法可能也不是尽善尽美,敬请读者海涵,并希望读者朋友能将发现的问题及时向我反馈,我将感激不尽。书中的代码、实例,都会上传到Github代码分享□台供大家frok、下载。同时,本书的勘误与读者的反馈内容都将在我的个人博客上不断更新。
□□章 Android体系与系统架构 1
1.1 Google生态系统 □
1.□ Android系统架构 □
1.□.1 Linux 3
1.□.□ Dalvik与ART 3
1.□.3 Framework 3
1.□.4 Standard libraries 4
1.□.5 Application 4
1.3 Android App组件架构 4
1.3.1 Android四大组件如何协同工作 5
1.3.□ 应用运行上下文对象 5
1.4 Android系统源代码目录与系统目录 6
1.4.1 Android系统源代码目录 6
1.4.□ Android系统目录 8
1.4.3 Android App文件目录 11
第□章 Android开发工具新接触 13
□.1 Android开发IDE介绍 14
□.1.1 Android Studio初体验 14
□.1.□ Android Studio配置 15
□.□ Android Studio高级使用技巧 19
□.□.1 更新SDK □0
□.□.□ Android Studio常用界面 □1
□.□.3 导入Android Studio工程 □3
□.3 ADB命令使用技巧 □4
□.3.1 ADB基础 □4
□.3.□ ADB常用命令 □5
□.3.3 ADB命令来源 □9
□.4 模拟器使用与配置 □9
第3章 Android控件架构与自定义控件详解 3□
3.1 Android控件架构 33
3.□ View的测量 34
3.3 View的绘制 37
3.4 ViewGroup的测量 38
3.5 ViewGroup的绘制 39
3.6 自定义View 39
3.6.1 对现有控件进行拓展 40
3.6.□ 创建复合控件 43
3.6.3 重写View来实现全新的控件 51
3.7 自定义ViewGroup 54
3.8 事件拦截机制分析 59
第4章 ListView使用技巧 65
4.1 ListView常用优化技巧 66
4.1.1 使用ViewHolder模式提高效率 66
4.1.□ 设置项目间分隔线 68
4.1.3 隐藏ListView的滚动条 68
4.1.4 取消ListView的Item点击效果 68
4.1.5 设置ListView需要显示在第几项 69
4.1.6 动态修改ListView 69
4.1.7 遍历ListView中的所有Item 71
4.1.8 处理空ListView 71
4.1.9 ListView滑动监听 7□
4.□ ListView常用拓展 74
4.□.1 具有弹性的ListView 75
4.□.□ 自动显示、隐藏布局的ListView 76
4.□.3 聊天ListView 79
4.□.4 动态改变ListView布局 85
第5章 Android Scroll分析 87
5.1 滑动效果是如何产生的 88
5.1.1 Android坐标系 88
5.1.□ 视图坐标系 88
5.1.3 触控事件――MotionEvent 89
5.□ 实现滑动的七种方法 91
5.□.1 layout方法 9□
5.□.□ offsetLeftAndRight()与offsetTopAndBottom() 93
5.□.3 LayoutParams 93
5.□.4 scrollTo与scrollBy 94
5.□.5 Scroller 96
5.□.6 属性动画 98
5.□.7 ViewDragHelper 98
第6章 Android绘图机制与处理技巧 106
6.1 屏幕的尺寸信息 107
6.1.1 屏幕参数 107
6.1.□ 系统屏幕密度 107
6.1.3 独立像素密度dp 107
6.1.4 单位转换 108
6.□ □D绘图基础 110
6.3 Android XML绘图 113
6.3.1 Bitmap 113
6.3.□ Shape 113
6.3.3 Layer 115
6.3.4 Selector 116
6.4 Android绘图技巧 117
6.4.1 Canvas 117
6.4.□ Layer图层 1□1
6.5 Android图像处理之色彩特效处理 1□□
6.5.1 色彩矩阵分析 1□□
6.5.□ Android颜色矩阵――ColorMatrix 1□8
6.5.3 常用图像颜色矩阵处理效果 131
6.5.4 像素点分析 134
6.5.5 常用图像像素点处理效果 135
6.6 Android图像处理之图形特效处理 137
6.6.1 Android变形矩阵――Matrix 137
6.6.□ 像素块分析 14□
6.7 Android图像处理之画笔特效处理 145
6.7.1 PorterDuffXfermode 145
6.7.□ Shader 149
6.7.3 PathEffect 153
6.8 View之孪生兄弟――SurfaceView 155
6.8.1 SurfaceView与View的区别 155
6.8.□ SurfaceView的使用 156
6.8.3 SurfaceView实例 159
第7章 Android动画机制与使用技巧 16□
7.1 Android View动画框架 163
7.1.1 透明度动画 163
7.1.□ 旋转动画 163
7.1.3 位移动画 164
7.1.4 缩放动画 164
7.1.5 动画集合 164
7.□ Android属性动画分析 165
7.□.1 ObjectAnimator 166
7.□.□ PropertyValuesHolder 168
7.□.3 ValueAnimator 168
7.□.4 动画事件的监听 168
7.□.5 AnimatorSet 169
7.□.6 在XML中使用属性动画 170
7.□.7 View的animate方法 170
7.3 Android布局动画 171
7.4 Interpolators(插值器) 171
7.5 自定义动画 17□
7.6 Android 5.X SVG矢量动画机制 175
7.6.1 <path>标签 175
7.6.□ SVG常用指令 176
7.6.3 SVG编辑器 177
7.6.4 Android中使用SVG 177
7.6.5 SVG动画实例 181
7.7 Android动画特效 188
7.7.1 灵动菜单 188
7.7.□ 计时器动画 190
7.7.3 下拉展开动画 191
第8章 Activity与Activity调用栈分析 195
8.1 Activity 196
8.1.1 起源 196
8.1.□ Activity形态 196
8.1.3 生命周期 196
8.□ Android任务栈简介 □00
8.3 AndroidMainifest启动模式 □00
8.3.1 standard □01
8.3.□ singleTop □01
8.3.3 singleTask □01
8.3.4 singleInstance □0□
8.4 Intent Flag启动模式 □03
8.5 清空任务栈 □03
8.6 Activity任务栈使用 □04
第9章 Android系统信息与安全机制 □05
9.1 Android系统信息获取 □06
9.1.1 android.os.Build □06
9.1.□ SystemProperty □07
9.1.3 Android系统信息实例 □08
9.□ Android Apk应用信息获取之PackageManager □09
9.□.1 PackageManager □10
9.3 Android Apk应用信息获取之ActivityManager □15
9.4 解析Packages.xml获取系统信息 □18
9.5 Android安全机制 □□0
9.5.1 Android安全机制简介 □□0
9.5.□ Android系统安全隐患 □□□
9.5.3 Android Apk反编译 □□3
9.5.4 Android Apk加密 □□6
□□0章 Android性能优化 □□7
10.1 布局优化 □□8
10.1.1 Android UI渲染机制 □□8
10.1.□ 避免Overdraw □□9
10.1.3 优化布局层级 □□9
10.1.4 避免嵌套过多用布局 □□9
10.1.5 Hierarchy Viewer □34
10.□ 内存优化 □36
10.□.1 什么是内存 □36
10.□.□ 获取Android系统内存信息 □37
10.□.3 内存回收 □38
10.□.4 内存优化实例 □38
10.3 Lint工具 □40
10.4 使用Android Studio的Memory Monitor工具 □40
10.5 使用TraceView工具优化App性能 □41
10.5.1 生成TraceView日志的两种方法 □41
10.5.□ 打开TraceView日志 □4□
10.5.3 分析TraceView日志 □4□
10.6 使用MAT工具分析App内存状态 □44
10.6.1 生成HPROF文件 □44
10.6.□ 分析HPROF文件 □45
10.7 使用Dumpsys命令分析系统状态 □47
□□1章 搭建云端服务器 □48
11.1 移动后端服务介绍 □49
11.□ 使用Bmob创建移动后端服务 □50
11.□.1 数据服务 □51
11.□.□ 推送服务 □54
□□□章 Android 5.X新特性详解 □57
1□.1 Android 5.X UI设计初步 □58
1□.1.1 材料的形态模拟 □58
1□.1.□ 更加真实的动画 □58
1□.1.3 大色块的使用 □59
1□.□ Material Design主题 □60
1□.3 Palette □61
1□.4 视图与阴影 □63
1□.5 Tinting和Clipping □65
1□.5.1 Tinting(着色) □65
1□.5.□ Clipping(裁剪) □67
1□.6 列表与卡片 □69
1□.6.1 RecyclerView □69
1□.6.□ CardView □75
1□.7 Activity过渡动画 □76
1□.8 Material Design 动画效果 □83
1□.8.1 Ripple效果 □83
1□.8.□ Circular Reveal □85
1□.8.3 View state changes Animation □88
1□.9 Toolbar □93
1□.10 Notification □96
1□.10.1 基本的Notification □97
1□.10.□ 折叠式Notification □98
1□.10.3 悬挂式Notification 300
1□.10.4 显示等级的Notification 301
□□3章 Android实例提高 303
13.1 移动迷宫――拼图游戏 304
13.1.1 准备工作 305
13.1.□ 初始界面 307
13.1.3 拼图界面 31□
13.1.4 效果预览与功能进阶 3□4
13.□ 魔幻矩阵――□048 3□5
13.□.1 □048概述 3□5
13.□.□ □048游戏分析 3□6
13.□.3 □048初始化工作 3□7
13.□.4 小方块设计 3□8
13.□.5 全局设置 330
13.□.6 游戏面板设计 33□
13.□.7 主程序设计 340
13.□.8 功能进阶 341
13.3 实战经验总结 34□
徐宜生,曾就职于上海TCL通讯,从事Alcatel(阿尔卡特)Android手机系统的定制工作,目前就职于上海沪江网Android开发部RD项目组,负责沪江App的功能预研。真正的一线开发人员。活跃在CSDN技术博客的年轻工程师,荣获CSDN认证专家,文章风格幽默风趣,单篇文章有上万的阅读量,深受年轻程序员的喜爱。在慕课网上开设课程,有数万名学员听课,参与讨论。