一个Android应用层开发如何转型深入Android Framework?(安卓应用层开发)

作为一个工作了好几年的Android应用层开发者,准备在工作之余干一件事情,那就是分享一些Android系统知识,为什么决定要做这个呢,理由如下:

帮助更多人转型Android系统开发

不知何时起,单纯的Android应用层开发越来越少了,主流技术演变也越来越快,从之前的rxjava到如今的协程,从之前MVC到如今的MVVM,还有Flutter、Compose等技术,可以说是日新月异。 当我们在使用这些技术时,通常会犯一个毛病,那就是使用简单,深入困难。随便新技术,可能几天就上手了,但是没有深入理解,时间久了,就容易欠下许多技术债。

这里我提到了转到Android系统开发,也并非是一定的好方向,只是觉得可以多一条路而已,毕竟有很多相通之处。在Android系统中,涉及的知识更多,从充当基石的Linux到各种C 库的native层,再到我们熟悉的 Framework层,还包括虚拟机、驱动等,这里关联的知识非常多,更适合个人能力提升和沉淀。

在Android应用层开发进阶

这个说起来并非易事,可能在很多人的认知里,Android开发就是主要用来实现UI和交互,但是现在小程序和混合开发大行其道,真正留给Android开发的工作量可能会越来越少。

基本方向

Android系统的架构官方经典图献上:

一个Android应用层开发如何转型深入Android Framework?(安卓应用层开发)

从下到上分别是:

  1. Linux内核:Android平台的基础是Linux内核,Android虚拟机依靠Linux内核来执行底层功能,比如线程和底层内存管理。同时基于Linux内核可以让Android系统更加稳定,并且允许设备制造商为著名的内核开发硬件驱动程序。
  2. 硬件抽象层(HAL):为特定类型的硬件提供标准的接口,比如相机和蓝牙模块,这样各个硬件厂商就可以按需开发驱动程序。
  3. Android Runtime:这个便是Java代码运行需要的虚拟机,现在一般都是ART虚拟机,ART虚拟机可以执行DEX文件来运行Java代码。
  4. 原生C/C 库(native层):许多核心Android系统组件和服务都是用C/C 代码编写,比如OpenGL ES等,而Java和Native由JNI技术打通。
  5. Java Framework层:这里就是我们经常使用的一些Java API,包括各种服务,比如AMS、WMS等,也是Android framework开发最常修改的部分。
  6. APP层:这里就是我们平时开发的APP所在的层级,这里就更侧重前面说的性能优化和各种黑科技了。

上面大致列了Android系统的层级, 这里就要对每个层级所需要的相关知识做如下列举,这些仅仅只是罗列了很少一部分,有时间之后会进行补充,想要学明白这些点都需要花费大家非常多的精力, 但现在很多人迫在眉睫想要学好学会Framework关于如何学习Android Framework开发知识,仍在迷茫的开发们可以参考整理的这份进阶文档《Android Framework 源码开发手册》,今天在这里分享给大家:

获取方法: 关注本人公众号<Android苦做舟> 或 联系作者 领取这些Android进阶开发文档

一个Android应用层开发如何转型深入Android Framework?(安卓应用层开发)

1.Android高级开发工程师必备基础技能2.Android性能优化核心知识笔记3.Android 音视频进阶开发面试题冲刺合集4.Android 音视频开发入门到实战学习手册5.Android Framework精编内核解析6.Flutter实战进阶技术手册7.近百个Android录播视频 音视频视频dome

1.Framework通信

进程间通信(Binder IPC机制)

  • Linux内存binder基础
  • Binder IPC通信原理
  • 深入Binder驱动
  • Binder面试总结(阿里篇)

一个Android应用层开发如何转型深入Android Framework?(安卓应用层开发)

进程内通信(Handler消息机制)

  • Loop消息泵机制
  • Message解析
  • Handler面试分享(鹅厂

一个Android应用层开发如何转型深入Android Framework?(安卓应用层开发)

实战企业架构通信

  • LiveData事件机制

2.Framework底层服务

AMS原理

  • SystemServer加载AMS
  • AMS数据结构
  • AMS数据结构
  • Activtiy栈管理
  • 手机开机启动的AMS流程
  • App启动中的AMS流程
  • Activtiy管理
  • AMS面试集合
  • AMS原理实战

一个Android应用层开发如何转型深入Android Framework?(安卓应用层开发)

PMS原理

  • Packagelnstaller安装器流程分析
  • PMS源码解读
  • T10级面试PMS总结

一个Android应用层开发如何转型深入Android Framework?(安卓应用层开发)

WMS机制

  • WMS内核
  • Window的创建过程
  • 企业级Toast与Window架构体系
  • T10级岗位WMS面试总结

一个Android应用层开发如何转型深入Android Framework?(安卓应用层开发)

3.Framework系统资源

ServiceManager原理

  • init.rc文件启动关键服务
  • service_ manager进程入口
  • ServiceManager消息轮训
  • ServiceManager服务存储之svclist链表
  • ServiceManager面试总结

一个Android应用层开发如何转型深入Android Framework?(安卓应用层开发)

深入Contxt上下文

  • Context与ApplicationContext
  • Context族谱分析
  • Contextmp与ActivityThread
  • getActivity()与getContext ()内存区别
  • 带你认识不一样的上下文Context

深入Resource资源加载

  • resources.arsc文件
  • ResourcesManager创建Resource
  • LoadedApk与Resource关系

4.Framework事件机制

事件分发机制

  • Android事件处理的三个流程
  • 事件信号从内核到IMS过程
  • IMS如何推送数据给ViewRootimp转入上层
  • Android处理Down事件的责任链模式
  • Android处理Move事件
  • 手写模拟Android事件分发架构

一个Android应用层开发如何转型深入Android Framework?(安卓应用层开发)

事件冲突解决万能公式

  • 产生冲突事件分类
  • 产生冲突事件分类
  • 事件冲突优先级
  • 事件冲突模拟实战

5.Framework UI机制

UI绘制原理

  • setContentView加载数据的核心概念
  • ViewRootlmpl的绘制管理
  • Choreographer编舞者
  • 测量机制(onMeasure)
  • 摆放机制(onLayout)
  • T10级面试UI绘制总结

一个Android应用层开发如何转型深入Android Framework?(安卓应用层开发)

UI自定义实战

  • RecycleView
  • Webview
  • ViewPager

一个Android应用层开发如何转型深入Android Framework?(安卓应用层开发)

需要更多开发资料可以关注本人的公众号<Android苦做舟>领取这些Android进阶开发文档~

一个Android应用层开发如何转型深入Android Framework?(安卓应用层开发)

1.Android高级开发工程师必备基础技能2.Android性能优化核心知识笔记3.Android 音视频进阶开发面试题冲刺合集4.Android 音视频开发入门到实战学习手册5.Android Framework精编内核解析6.Flutter实战进阶技术手册7.近百个Android录播视频 音视频视频dome

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年3月21日 上午8:07
下一篇 2023年3月21日 上午8:17

相关推荐

  • 党建引领基层治理存在问题

    党建引领基层治理存在问题 近年来,随着城市化进程的不断加快,基层治理问题日益突出。在这一阶段,党建引领基层治理成为了一种重要的模式,旨在通过加强党组织建设,推动基层民主管理,提升基…

    科研百科 2025年1月2日
    2
  • 军科委类项目8号文报价

    尊敬的军科委项目报价团队: 感谢您对我们军科委类项目8号报价文件的支持与帮助。本报价文件旨在提供一份详细的项目报价,以便您能够更好地了解我们的服务内容和价格。 本次报价基于我们的专…

    科研百科 2024年10月21日
    1
  • 同城团购周边优选商家圈子机器人H5小程序开发(同城团购软件)

    同城团购周边优选商家圈子机器人H5小程序开发 功能介绍// 用户端;微信小程序,微信公众号,H5,快手端,其他端陆续适配中,通过微信开放平台及手机号实现多端数据打通。 业务端;订单…

    科研百科 2023年4月4日
    294
  • 科研项目中负责人的工作

    在科研项目中,负责人的工作是至关重要的。他们负责制定项目计划,管理进度,协调团队,确保项目能够按时完成并达到预期目标。然而,负责人的工作并不容易,因为他们需要应对各种挑战和困难,并…

    科研百科 2025年5月6日
    3
  • 科研项目优秀结题

    科研项目优秀结题 科研项目结题是一个非常重要的环节,标志着一个科研项目的完成和终结。一个优秀的科研项目结题,不仅能够展示科研项目的成果,还能够反映出研究人员的创新思维和科研能力。 …

    科研百科 2025年3月4日
    0
  • 科研项目管理八大成本

    科研项目管理八大成本 科研项目管理是一项复杂的任务,需要对八大成本进行有效的管理。这些成本包括: 1. 人员成本:包括薪资、培训和福利等。2. 设备成本:包括设备购买、维护和更新等…

    科研百科 2025年2月5日
    7
  • 项目管理合同管理的程序(项目管理 合同管理)

    项目管理合同管理项目管理合同管理合同1.项目管理项目管理:本公司主要由项目管理部门任职于项目管理部门,业务管理部门主要负责企业级与企业级对项目管理进行了初步的划分,其中包括具体实施…

    科研百科 2024年9月29日
    23
  • 教育厅内蒙古科研项目

    教育厅内蒙古科研项目 近年来,内蒙古教育一直在快速发展,为了满足人民对更高质量教育的需求,教育厅在科研项目方面不断投入,其中,一项名为“内蒙古地区幼儿教师培训项目”的科研项目备受关…

    科研百科 2025年4月30日
    1
  • 复试问有没有科研项目

    在复试中,通常会有一项关于科研项目的问题,这是考察考生科研能力和知识储备的一种方式。如果你曾经参与过科研项目,或者正在参与科研项目,那么回答这个问题可能会更加有利。本文将介绍如何回…

    科研百科 2025年4月4日
    1
  • 项目管理 confluence

    项目管理 Confluence 随着信息技术的不断发展,项目管理已经成为了企业运营中不可或缺的一部分。在项目管理中, Confluence 是一个功能强大的工具,可以帮助项目经理和…

    科研百科 2024年7月16日
    40