深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
AMS扮演以下几个重要的角色:
1.应用程序生命周期管理:AMS负责跟踪和管理应用程序的生命周期,包括启动、暂停、停止和销毁应用程序的Activity。它确保每个Activity按照正确的顺序进行启动和销毁,以及在系统资源不足时进行适当的回收和释放。
2.任务栈管理:AMS负责管理应用程序的任务栈,它维护了当前打开的Activity的顺序和状态。AMS可以根据需要创建新任务栈,将Activity放入特定的任务栈中,并处理任务栈的切换和回退。
3.Activity生命周期回调:AMS通过调用Activity的生命周期方法(如onCreate,onStart,onResume等)向应用程序发送生命周期事件。这使得开发人员可以在适当的时机执行相关的操作,如保存和恢复用户界面状态,管理网络连接等。
4.任务间切换和应用程序交互:AMS负责处理应用程序之间的交互和切换。例如,当用户从一个应用程序切换到另一个应用程序时,AMS负责启动目标应用程序的相应Activity,并将新的任务栈放在前台,以供用户进行操作。
比如在Activity的启动流程中,AMS就是组件管理调度中心,什么都不干,但什么都管!Android系统从开机到桌面,再到APP启动的完整流程,AMS无所不在……
AMS在Android中起到了关键的作用,确保应用程序的正确运行和管理,以及提供良好的用户体验。
当我们深刻了解Android启动流程与AMS特性之后,就可以解决项目开发中的很多问题,比如:屏幕适配、自定义View和ViewGroup、APK加固、热修复、组件化路由、皮肤换肤、插件化、leakCanary内存问题分析、Hilt注入、Jetpack原理、Glide原理、RXJava原理、launchModel、权限验证、四大组件……等相关逻辑和代码
深刻了解之后能帮助Android开发者更加灵活的进行项目开发。
AMS本身是比较复杂的,很多工作多年的Android开发也不太明白AMS的作用。
- AMS是如何启动的?
- 如何理解startActivity的流程?
- 我们是如何应用AMS的核心原理?
- ……
我们需要去探索的问题还有很多,比如我们在开发中遇到的跳转问题、栈的管理问题、ANR问题等等都是与AMS对四大组件的管理息息相关,只有掌握了AMS,才能更加高效的开发出优质的app。
为帮助大家解除这类问题的困扰,这边搜阅了大量的素材,整理了一下的 Android Framework 核心知识点手册,里面记录了:有Handler、Binder、AMS、WMS、PMS、事件分发机制、UI绘制……等等,几乎把更Framework相关的知识点全都记录在册了
《Framework 核心知识点汇总手册》:https://qr18.cn/AQpN4J
Handler 机制实现原理部分:
1.宏观理论分析与Message源码分析
2.MessageQueue的源码分析
3.Looper的源码分析
4.handler的源码分析
5.总结
Binder 原理:
1.学习Binder前必须要了解的知识点
2.ServiceManager中的Binder机制
3.系统服务的注册过程
4.ServiceManager的启动过程
5.系统服务的获取过程
6.Java Binder的初始化
7.Java Binder中系统服务的注册过程
Zygote :
- Android系统的启动过程及Zygote的启动过程
- 应用进程的启动过程
AMS源码分析 :
- Activity生命周期管理
- onActivityResult执行过程
- AMS中Activity栈管理详解
深入PMS源码:
1.PMS的启动过程和执行流程
2.APK的安装和卸载源码分析
3.PMS中intent-filter的匹配架构
WMS:
1.WMS的诞生
2.WMS的重要成员和Window的添加过程
3.Window的删除过程
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
topics/618636735)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!