全网最全最通俗易懂的Android Framework知识点汇总,入门到精通,完全学会

您所在的位置:网站首页 安卓底层开发是什么软件 全网最全最通俗易懂的Android Framework知识点汇总,入门到精通,完全学会

全网最全最通俗易懂的Android Framework知识点汇总,入门到精通,完全学会

2024-07-13 20:18:58| 来源: 网络整理| 查看: 265

一、认识Framework层

Framework其实可以简单的理解为一些API的库房,android开发人员将一些基本功能实现,通过接口提供给上层调用,可以重复的调用我们可以称Framework层才真正是Java语言实现的层,在这层里定义的API都是用Java语言编写。但是又因为它包含了JNI的方法,JNI用C/C++编写接口,根据函数表查询调用核心库层里的底层方法,最终访问到Linux内核。那么Framework层的作用就有2个。

用Java语言编写一些规范化的模块封装成框架,供APP层开发者调用开发出具有特殊业务的手机应用。

用Java Native Interface调用core lib层的本地方法,JNI的库是在Dalvik虚拟机启动时加载进去的,Dalvik会直接去寻址这个JNI方法,然后去调用。

二,核心内容掌握程度

Android源码非常庞大,但设计很精妙。纵向分层,横向模块化,使得整个源码更易更新和维护。在手机厂商做framework的更倾向于说自己是做Android系统的,维护的模块主要包括ActivityManagerService、WindowManagerService、PackageManagerService、PowerManagerService、SurfaceFlinger、通信模块、多媒体模块等。Android系统良好的模块化设计使得各个模块负责人只需搞懂自己的模块就可以胜任工作。但是搞定自己的模块并不那么容易,对于新人一般要大概做半年才能掌握其精要,有的做了一年发现还有很多点没有掌握,这也是很常见的。

首先必须了解一些背景知识。1.Android系统采用C/S架构;2.绝大部分IPC通信采用Binder通信;3.核心Service大多运行在System_server进程;4.核心Service代码大部分都在frameworks/base/services目录下;5.别一上来就看Binder!!!6.别一开始看源码就钻牛角尖!!!

以下便是我的学习方法,不保证适合其他人,供参考。

1、首先,大概了解下该Service是干什么的。我会搜一些好的分析文章收藏起来,大概浏览下该Service为上层应用提供了什么功能?(这些文章并不会去挨个读,这跟绝大多数人习惯不一样,他们一般是一边看分析文章一边看源码)。在源码里找到源码文件,大概看下核心几个文件开头的注释,注释一般会说的非常清楚这个是干嘛的。(我用source insight看源码)

2、然后,可以尝试写一个小demo,方便调试Service内部方法或抓取系统日志来追踪代码流程。运行在system_server进程中的Java代码均可使用Android studio调试,当然必须是自己编译的image才行。MTK平台手机部分service是可以通过adb shell dumpsys XXX log XX来开启对应service的log

3、接着,从核心API调用入手,一步一步分析源码,理出一个从应用端到Service端,最后回到应用端的函数调用链。这条调用链必定很长很长,有非常多的分支,还会出现非常多的类,这个时候就要抓住主线不放,细枝末节可以不管。借助UML工具了,一般画两个图就够了,一个是类图,一个是时序图。画图要精简,只画重要的主线分支时序图和主要的类关系。这个步骤最难的是理出主线分支调用,切记钻牛角尖偏离目标任务,只需理出一个client–>service–>client的框架即可。将时序图画出来后,整个框架便构建出来了。(我用starUML工具)

4、然后,在上面的框架中必定有几个非常关键的函数,把它搞定。搞定方法就是一行一行读代码,读懂每一行并不容易,需要联系上下文进行理解。从重要函数中要理清service是如何管理target的,比如AMS是使用Stack和Task来管理Activity的,使用两个队列来处理广播,扮演连接者将client和目标ContentProvider建立起连接等。这个过程也是最花时间的,因为你需要从源码里面尽可能地还原作者的设计思想,还原的越彻底,理解的越透彻。一般我是一边理解一边用笔记记录自己的理解。(我用有道云笔记)

5、最后,整理出一篇笔记,方便以后回顾。在前面两步做完,图有了,分析也有了,稍微整理下便成了一篇文档。一般情况下是这样的,今天你理解的差不多了,一个月后你估计只记得大概个轮廓,细节全忘了,两个月后估计连轮廓都忘了。相信我,这时最管用的就是那两个图了,一看就能让你想起80%,所以我非常喜欢画类图和时序图。

而下面便是我自己整理出来的一份笔记资料。

首先给大家贴一个阿里P7大佬整理的Frmaework内核源码知识体系图,大家都知道一句话叫做方向不对,努力白费。希望大家可以根据下面这份系统的Android Framework学习路线图进行学习,这样建立的知识体系才够牢固!

在这里插入图片描述

学习规划

同时也给大家准备好了对应的Framework源码学习手册:大佬整理的《Android Framework内核源码》

本学习手册旨在通过实例和案例介绍 Android Framework 的核心概念和技术,从而帮助开发者更好地理解 Android 应用程序的设计和开发。

该手册适合具有一定 Android 应用开发经验的程序员,希望能通过深入学习 Android Framework 来帮助开发者更好地理解和掌握这一技术。

在这里插入图片描述

第一章 系统启动流程分析 第一节 Android启动概览第二节 init.rc解析第三节 Zygote第四节 面试题

图片

第二章 跨进程通信IPC解析 第一节 Sercice 还可以这么理解第二节 Binder基础第三节 Binder应用第四节 AIDL应用(上)第五节 AIDL应用(下)第六节 Messenger原理及应用第七节 服务端回调第八节 获取服务(IBinder)第九节 Binder面试题全解析

图片

第三章 Handler源码解析 第一节 源码分析第二节 难点问题第三节Handler常问面试题

图片

第四章 AMS 源码解析 第一节 引言第二节 Android架构第三节 通信方式第四节 系统启动系列第五节 AMS第六节 AMS 面试题解析

图片

第五章 WMS源码解析 第一节 WMS与activity启动流程第二节 WMS绘制原理第三节 WMS角色与实例化过程第四节 WMS工作原理…

图片

第六章 Surface源码解析 第一节 创建流程及软硬件绘制第二节 双缓冲及SurfaceView解析第三节 Android图形系统综述…

图片

第七章 基于Android12.0的SurfaceFlinger源码解析 第一节 应用建立和SurfaceFlinger的沟通桥梁第二节 SurfaceFlinger的启动和消息队列处理机制第三节 SurfaceFlinger 之 VSync(上)第四节 SurfaceFlinger之VSync(中)第五节 SurfaceFlinger之VSync(下)…

图片

第八章 PKMS源码解析

第一节 PKMS调用方式

第二节 PKMS启动过程分析

第三节 APK的扫描

第四节 APK的安装

第五节 PKMS之权限扫描

第六节 静默安装

第七节 requestPermissons源码流程解析

第八节 PKMS面试题

图片

第九章 InputManagerService源码解析 第一节 Android Input输入事件处理流程(1)第一节 Android Input输入事件处理流程(2)第一节 Android Input输入事件处理流程(3)

图片

第十章 DisplayManagerService源码解析 第一节 DisplayManagerService启动第二节 DisplayAdapter和DisplayDevice的创建第三节 DMS部分亮灭屏流程第四节 亮度调节第五节 Proximity Sensor灭屏原理第六节 Logical Display和Physical Display配置的更新

图片

有需要完整学习资料的朋友,可以扫描下方二维码免费领取!!!


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭