Android framework成为热门就业方向,Android framework开发该如何入门学习?
Posted 沈页
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android framework成为热门就业方向,Android framework开发该如何入门学习?相关的知识,希望对你有一定的参考价值。
近年越来越多的android工程师开始关注Framework领域,伺机从应用开发深入到系统开发。但是,稍一了解就会发现,Android源码非常庞大,为使整个源码更易更新和维护,它纵向分层,横向模块化,设计非常精妙。
其维护的模块主要包括
ActivityManagerService;WindowManagerService;PackageManagerService;PowerManagerService;SurfaceFlinger;通信模块;多媒体模块等,多到眼花缭乱。而且一接触源码,发现得熟悉JNI、读得懂C++、理解Java虚拟机、Linux系统甚至汇编、指令集等等,可谓是困难重重。
Android Framework到底怎么学?成为了很多人当前迫在眉睫的问题。
入门篇:
把握整理流程最为重要。
比如Android系统启动流程,你先要知道启动电源–>加载引导程序BootLoader–>Linux内核启动–>init进程启动–>Zygote进程启动–>SystemServer进程启动–>Launcher启动。
然后再去了解其中的每一步的流程,比如Zygote启动流程就是,创建Java虚拟机并为Java虚拟机注册JNI方法,创建服务器端Socket,启动SystemServer进程。这个过程,可以不用太在意源码。
深入篇:
看源码,原则仍是先把握整体,再了解局部。这个场景下,所有的细节都是不重要的。
比如Activity的启动流程,你不用关心在AMS里面这里跳到那里是干什么,还有ActivityStack以及它的那个SuperXX跳来跳去是在干嘛,你只需了解:在Context里面,通过AMS的Client ActivityManagerNative发起Binder调用进入system_server进程,在AMS里面绕了一圈(处理Activity栈以及生命周期相关),然后通过IApplicationThread这个Binder调用回到App进程的Binder线程池,在线程池里面通过Handler发送Message到App主线程,最终通过ClassLoader加载Activity类,创建对象,回调对应的生命周期,整个过程结束。
千万别一行代码不漏地去查看,只见树木,不见森林,效果不见得好。
刚学习的时候肯定不知道哪些是影响不大的逻辑,所以你需要跟着书籍,博客,让前人带路;如果跟着他们的脚步走通了这条路,那你就自己独立走一遍,这时候你肯定会走丢,然后你跟踪、尝试,接着到达终点。
慢慢地,你自然就知道,哪些重要,哪些不重要。刚开始看系统源码,肯定一头雾水;万事开头难,在你觉得艰深晦涩的时候,硬着头皮也要看,不要放弃。第一次看可能只是对某些词混了个眼熟,但后面再读就会越来越轻松。
高级篇:
边看源码边思考,形成自己的理解。
学而不思则罔,思而不学则怠。带着问题去阅读源码,这里是什么意思?为什么需要这么做?这样的实现是优雅还是俗套?有没有更好地实现办法?如果我来写,我会怎么写?诸如此类,有了思考就有了自己的理解。
做笔记也是个不错的办法。
做笔记的重要性在于,它可以记下你自己在某个阶段自己的理解,当你更进一步的时候回头再看当初的理解,想想哪里是对的,哪里又有问题,这是一个相当有意思的过程。
我想每一个人在看自己之前写的代码,都会有在某个地方觉得自己是沙比的时候。根据你学习过程简单总结一下,这样你的元认知能力就得到了提升。
如何学习Framework
关于如何学习Android Framework开发知识,可以参考这份由字节大佬总结的《Android Framework 源码开发揭秘》,其中部分章节在某平台收藏达到1000+!今天在这里分享给大家。
第一章 系统启动流程分析
- 第一节 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对输入法窗口的管理分析
- 第五节 Android窗口管理服务WindowManagerService对壁纸窗口的管理分析
- …
第六章PKMS Android10.0 源码解读
- 第一节 前言 PKMS 是什么东西?
- 第二节 PKMS 概述信息
- 第三节 PKMS角色位置
- 第四节 PKMS 启动过程分析
- 第五节 APK的扫描
- 第七节 PMS之权限扫描
- 第八节 PackageManagerService大综合笔记
- …
小伙伴们如果有需要这份《Android Framework源码开发揭秘》,点击下方卡片即可【免费领取】,承诺100%免费
!
以上是关于Android framework成为热门就业方向,Android framework开发该如何入门学习?的主要内容,如果未能解决你的问题,请参考以下文章
10万字Android Framework最新开发解密,附Framework精编解析