初识 Android
=========
“同学们,给大家介绍一下,我是你们未来一年的移动互联网开发讲师”,我在大三的时候,这是我和 Android 第一次交流,当时的课讲实话,我没听,一点都没有,只是知道了有个东西叫 Android 开发。还是和大多数人一样,做着自己喜欢的事情。
我们专业并不是和移动开发相关的,这点大部分 Android 开发者都比我有优势,是什么时候我与 Android 就结缘了呢?接着往下看。
结缘 Android
=========
大三学了一年 Android,大四就面临就业。当然,我本专业找个工作还是不难的,摆在我面前有两条路,第一是现在实习,然后直接步入社会。
第二条路就是考研,可能骨子里就有不安分的因子吧,我没有选择继续深究学业,如果走下去,现在看到的风景可能也会不同,其实人在走什么路的时候,在你一开始选择的时候,就已经确定好了的,不管是好事还是坏事,正确的还是不对的,都会在将来与你的某一个选择相呼应。
深入 Android
=========
其实我与 Android 这个行业,就像是谈恋爱一样,总是在不经意间出现在你眼前,充满巧合但是也是命中注定。当时正值 Android 风口,在我以一个过来人的眼光来看的话,当时确实抓到了这一机遇,去了学校推荐的一个培训机构,花了一年时间,正式入门。
从入门到熟练,其实花了我不少时间,因为不是科班出身,所以就只是勉勉强强达到了一个能用的标准,其实我说个实话,他们好像都看不起半路出身的培训 Androider,归根结底还是技术不到位,可以不信,这些东西经历过的自然懂,我是怎么摆脱培训机构出身的 Androider 的呢?
首先,我认为最重要的一点是对技术的热情。在这两年的时间里,我始终保持着对Android开发的热情。无论遇到什么困难,我都会努力去解决,从不轻言放弃。这种热情激发了我不断学习和进步的动力,让我在面对挑战时更加坚定。
其次,我非常注重实践。在学习Android开发的过程中,我不仅阅读了大量的书籍和文章,还积极参与实际项目。通过实践,我不仅巩固了所学的知识,还学会了如何将理论运用到实际中,提高了自己的编程能力。
此外,我还非常注重与他人的交流和学习。在这两年里,我加入了很多技术论坛和社群,与其他开发者交流心得,分享经验。这样的交流让我受益匪浅,不仅拓宽了我的视野,还让我从别人的经验中学习到了很多实用的技巧。
培训本来没有错,错的只是我们在培训机构学到的只是一点操作技巧,只是知其然,并不知其所以然,师傅领进门,修行看个人。
无论行业里有多么看不起你是培训出身的,只要你技术硬就没人能说什么。
而且大部分人也没有这种想法,只是很多培训出身的过去了,人家帮你结果自身又不努力,这才导致现在培训班出身的名声不好。
你如果有一定工作经验且想快速提升自己,我分享一份Android Framework学习指南助你了解 Android 系统纷繁复杂的底层知识。
由于文章内容比较多,篇幅有限,资料已经被整理成了PDF文档,有需要《Android Framework进阶学习指南》
《Android Framework 开发揭秘》
第一章 系统启动流程分析
● 第一节 Android启动概览
● 第二节 init.rc解析
● 第三节 Zygote
● 面试题
第二章 Binder解析
● 第一节 宏观认识Binder
● 第二节 binder的jni方法注册
● 第三节 binder驱动
● 第四节 数据结构
● 第五节 启动service_manager
● 第六节 获取service_manager
● 第七节 addService流程
● 第八节 Binder面试题全解析
第三章 Handler解析
● 第一节 源码分析
● 第二节 难点问题
● 第三节 Handler常见面试题
第四章 AMS解析
● 第一节 引言
● 第二节 Android架构
● 第三节 通信方式
● 第四节 系统启动系列
● 第五节 AMS
● 第六节 AMS面试题解析
第五章 WMS解析
● 第一节Activity与Window相关概念
● 第二节 Android窗口管理服务WindowManagerService计算Activity窗口大
● 第三节Android窗口管理服务WindowManagerService对窗口的组织方式分析
● 第四节 Android窗口管理服务WindowManagerService对输入法窗口(Input
● 第五节 Android窗口管理服务WindowManagerService对壁纸窗口(Wallpap
● 第六节Android窗口管理服务WindowManagerService计算窗口Z轴位置的过程分析
● 第七节Android窗口管理服务WindowManagerService显示Activity组件的启
● 第八节Android窗口管理服务WindowManagerService切换Activity窗口(A
● 第九节 Android窗口管理服务WindowManagerService显示窗口动画的原理分析
第六章 Surface源码解析
● 第一节 创建流程及软硬件绘制
● 第二节 双缓冲及SurfaceView解析
● 第三节 Android图形系统综述
第七章 基于Android12.0的SurfaceFlinger 源码解析
● 第一节 应用建立和SurfaceFlinger的沟通桥梁
● 第二节 SurfaceFlinger的启动和消息队列处理机制
● 第三节 SurfaceFlinger 之 VSync(上)
● 第四节 SurfaceFlinger之VSync(中)
● 第五节 SurfaceFlinger之VSync(下)
第八章 PKMS源码解析
● 第一节 PKMS调用方式
● 第二节 PKMS启动过程分析
● 第三节 APK的扫描
● 第四节 APK的安装
● 第五节 PKMS之权限扫描
● 第六节 静默安装
● 第七节 requestPermissions源码流程解析
● 第八节 PKMS面试题
第九章 InputManagerService源码解析
● 第一节 Android Input输入事件处理流程(1)
● 第二节 Android Input输入事件处理流程(2)
● 第三节 Android Input输入事件处理流程(3)
第十章 DisplayManagerService源码解析
● 第一节 DisplayManagerService启动
● 第二节 DisplayAdapter和DisplayDevice的创建
● 第三节 DMS部分亮灭屏流程
● 第四节 亮度调节
● 第五节 Proximity Sensor灭屏原理
● 第六节 Logical Display和Physical Display配置的更新