- Android系统启动-SystemServer下篇 - Gityuan博客 | 袁辉辉的Android博客
- Binder系列3-启动ServiceManager - Gityuan博客 | 袁辉辉的Android博客
- 理解Android进程创建流程 - Gityuan博客 | 袁辉辉的Android博客
再来看看守护进程(也就是进程名一般以d为后缀,比如logd,此处d是指daemon的简称), 下面介绍部分守护进程:
4.2 系统稳定性系列
Android系统稳定性主要是异常崩溃(crash)和执行超时(timeout),:
- 理解Android ANR的触发原理
- Input系统-ANR原理分析 - Gityuan博客 | 袁辉辉的Android博客
- 理解Android ANR的信息收集过程
- 解读Java进程的Trace文件 - Gityuan博客 | 袁辉辉的Android博客
- Native进程之Trace原理 - Gityuan博客 | 袁辉辉的Android博客
- WatchDog工作原理 - Gityuan博客 | 袁辉辉的Android博客
- 理解Android Crash处理流程
- 理解Native Crash处理流程
- global reference限制策略
4.3 Android进程系列
进程/线程是操作系统的魂,各种服务、组件、子系统都是依附于具体的进程实体。深入理解进程机制对于掌握Android系统整体架构和运转机制是非常有必要的,是系统工程师的基本功,下面列举进程相关的文章:
- 理解Android进程创建流程 - Gityuan博客 | 袁辉辉的Android博客
- 理解杀进程的实现原理 - Gityuan博客 | 袁辉辉的Android博客
- Android四大组件与进程启动的关系 - Gityuan博客 | 袁辉辉的Android博客
- Android进程绝杀技–forceStop - Gityuan博客 | 袁辉辉的Android博客
- 理解Android线程创建流程 - Gityuan博客 | 袁辉辉的Android博客
- 彻底理解Android Binder通信架构
- 进程的Binder线程池工作过程 - Gityuan博客 | 袁辉辉的Android博客
- Android进程生命周期与ADJ - Gityuan博客 | 袁辉辉的Android博客
- Android LowMemoryKiller原理分析
- 进程优先级 - Gityuan博客 | 袁辉辉的Android博客
- Android进程调度之adj算法 - Gityuan博客 | 袁辉辉的Android博客
- 进程篇-进程整理 - Gityuan博客 | 袁辉辉的Android博客
4.4 四大组件系列
对于App来说,Android应用的四大组件Activity,Service,Broadcast Receiver, Content Provider最为核心,接下分别展开介绍:
- startActivity启动过程分析 - Gityuan博客 | 袁辉辉的Android博客
- 简述Activity生命周期 - Gityuan博客 | 袁辉辉的Android博客
- startService启动过程分析 - Gityuan博客 | 袁辉辉的Android博客
- bindService启动过程分析 - Gityuan博客 | 袁辉辉的Android博客
- 彻底理解Android Binder通信架构
- Android Broadcast广播机制分析
- 理解ContentProvider原理 - Gityuan博客 | 袁辉辉的Android博客
- ContentProvider引用计数 - Gityuan博客 | 袁辉辉的Android博客
- Activity与Service生命周期 - Gityuan博客 | 袁辉辉的Android博客
- 简述Activity与Window关系 - Gityuan博客 | 袁辉辉的Android博客
- 四大组件之综述 - Gityuan博客 | 袁辉辉的Android博客
- 四大组件之ServiceRecord - Gityuan博客 | 袁辉辉的Android博客
- 四大组件之BroadcastRecord - Gityuan博客 | 袁辉辉的Android博客
- 四大组件之ContentProviderRecord - Gityuan博客 | 袁辉辉的Android博客
- 理解Android Context
- 理解Application创建过程 - Gityuan博客 | 袁辉辉的Android博客
- unbindService流程分析 - Gityuan博客 | 袁辉辉的Android博客
- 四大组件之ActivityRecord - Gityuan博客 | 袁辉辉的Android博客
- AMS总结(一) - Gityuan博客 | 袁辉辉的Android博客
4.5 图形系统系列
图形也是整个系统非常复杂且重要的一个系列,涉及WindowManager,SurfaceFlinger服务。
- WMS-启动过程 - Gityuan博客 | 袁辉辉的Android博客
- WMS-启动窗口(StartingWindow) - Gityuan博客 | 袁辉辉的Android博客
- 以Window视角来看startActivity - Gityuan博客 | 袁辉辉的Android博客
- Android图形系统概述 - Gityuan博客 | 袁辉辉的Android博客
- SurfaceFlinger启动篇 - Gityuan博客 | 袁辉辉的Android博客
- SurfaceFlinger绘图篇 - Gityuan博客 | 袁辉辉的Android博客
- Choreographer原理 - Gityuan博客 | 袁辉辉的Android博客
4.6 系统服务篇
再则就是在整个架构中有大量的服务,都是基于Binder来交互的,Android系统服务的注册过程也是在此之上的构建的。计划针对部分核心服务来重点分析:
- ActivityManagerService启动过程 - Gityuan博客 | 袁辉辉的Android博客
- Input系统-启动篇 - Gityuan博客 | 袁辉辉的Android博客
- Input系统-InputReader线程 - Gityuan博客 | 袁辉辉的Android博客
- Input系统-InputDispatcher线程 - Gityuan博客 | 袁辉辉的Android博客
- Input系统-UI线程 - Gityuan博客 | 袁辉辉的Android博客
- Input系统-事件处理全过程 - Gityuan博客 | 袁辉辉的Android博客
- Input系统-ANR原理分析 - Gityuan博客 | 袁辉辉的Android博客
- http://gityuan.com/2016/11/06/packagemanagerservice)
- Installd守护进程 - Gityuan博客 | 袁辉辉的Android博客)
- 理解AlarmManager机制 - Gityuan博客 | 袁辉辉的Android博客
- 理解JobScheduler机制 - Gityuan博客 | 袁辉辉的Android博客
- Android耗电统计算法 - Gityuan博客 | 袁辉辉的Android博客
- DropBoxManager启动篇 - Gityuan博客 | 袁辉辉的Android博客
- 多用户管理UserManager - Gityuan博客 | 袁辉辉的Android博客
- 更多系统服务,敬请期待
4.7 内存&&存储篇
-
内存篇
-
存储篇
-
Linux驱动篇
-
敬请期待
-
dalvik/art
4.8 工具篇
再来说说Android相关的一些常用命令和工具以及调试手段.
- 理解Android编译命令 - Gityuan博客 | 袁辉辉的Android博客
- 理解Android.bp - Gityuan博客 | 袁辉辉的Android博客
- 性能工具Systrace - Gityuan博客 | 袁辉辉的Android博客
- Android内存分析命令 - Gityuan博客 | 袁辉辉的Android博客
- ps进程命令 - Gityuan博客 | 袁辉辉的Android博客
- Am命令用法 - Gityuan博客 | 袁辉辉的Android博客
- Pm命令用法 - Gityuan博客 | 袁辉辉的Android博客
- 调试系列1:bugreport源码篇 - Gityuan博客 | 袁辉辉的Android博客
- 调试系列2:bugreport实战篇 - Gityuan博客 | 袁辉辉的Android博客
- dumpsys命令用法 - Gityuan博客 | 袁辉辉的Android博客
- Android logd日志原理
- 介绍gdb调试工具 - Gityuan博客 | 袁辉辉的Android博客
- 介绍addr2line调试命令 - Gityuan博客 | 袁辉辉的Android博客
4.9 实战篇
下面列举处理过的部分较为典型的案例,供大家参考
- Binder Driver缺陷导致定屏的案例
- 深度解读ArrayMap优势与缺陷 - Gityuan博客 | 袁辉辉的Android博客
- 数组越界导致系统重启的案例 - Gityuan博客 | 袁辉辉的Android博客
- 一行Log引发多线程并发问题的案例 - Gityuan博客 | 袁辉辉的Android博客
- 跑monkey压力测试过程的冻屏案例 - Gityuan博客 | 袁辉辉的Android博客
- 深度剖析APP保活案例 - Gityuan博客 | 袁辉辉的Android博客
五、结束语
Android系统之博大精深,包括Linux内核、Native、虚拟机、Framework,通过系统调用连通内核与用户空间,通过JNI打通用户空间的Java层和Native层,通过Binder、Socket、Handler等打通跨进程、跨线程的信息交换。只有真正阅读并理解系统核心架构的设计,解决问题和设计方案才能做到心中无剑胜有剑,才能做到知其然知其所以然。当修炼到此,恭喜你对系统有了更高一个层次的理解,正如太极剑法,忘记了所有招式,也就练成了太极剑法。
再回过头去看看那些API,看到的将不再是一行行代码、一个个接口的调用,而是各种信息的传递与交互工作,而是背后成千上万个小蝌蚪的动态执行流。记得《侠客行》里面的龙木二岛主终其一生也无法参透太玄经,石破天却短短数日练成绝世神功,究其根源是龙木二岛主以静态视角去解读太玄经,而石破天把墙壁的图案想象成无数游动的蝌蚪,最终成就绝世神功。一言以蔽之,程序代码是死的,系统运转是活的,要以动态视角去理解系统架构。
最后
题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等录播视频免费分享出来。
【Android学习PDF+学习视频+面试文档+知识点笔记】
【Android思维脑图(技能树)】
知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。
【Android进阶学习视频】、【全套Android面试秘籍】可以简信我【学习】查看免费领取方式!
希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展~
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
最后说一下我的学习路线
其实很简单就下面这张图,含概了Android所有需要学的知识点,一共8大板块:
- 架构师筑基必备技能
- Android框架体系架构(高级UI+FrameWork源码)
- 360°Androidapp全方位性能调优
- 设计思想解读开源框架
- NDK模块开发
- 移动架构师专题项目实战环节
- 移动架构师不可不学习微信小程序
- 混合开发的flutter
Android学习的资料
我呢,把上面八大板块的分支都系统的做了一份学习系统的资料和视频,大概就下面这些,我就不全部写出来了,不然太长了影响大家的阅读。
330页PDF Android学习核心笔记(内含上面8大板块)
Android学习的系统对应视频
总结
我希望通过我自己的学习方法来帮助大家去提升技术:
-
1、多看书、看源码和做项目,平时多种总结
-
2、不能停留在一些基本api的使用上,应该往更深层次的方向去研究,比如activity、view的内部运行机制,比如Android内存优化,比如aidl,比如JNI等,并不仅仅停留在会用,而要通过阅读源码,理解其实现原理
-
3、同时对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习
-
4、android的方向也很多,高级UI,移动架构师,数据结构与算法和音视频FFMpeg解码,如果你对其中一项比较感兴趣,就大胆的进阶吧!
希望大家多多点赞,转发,评论加关注,你们的支持就是我继续下去的动力!加油!
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
构与算法和音视频FFMpeg解码,如果你对其中一项比较感兴趣,就大胆的进阶吧!
希望大家多多点赞,转发,评论加关注,你们的支持就是我继续下去的动力!加油!
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-WuLuYwrr-1712621317728)]