一个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

相关推荐

  • 办公智能化系统有哪些

    办公智能化系统是指通过技术手段提升办公室工作效率和管理水平的系统。随着科技的不断发展,越来越多的公司开始采用智能化系统来提高工作效率和管理水平。本文将介绍当前常见的办公智能化系统。…

    科研百科 2024年8月24日
    42
  • 海量资讯一屏尽览 智慧管理触手可及“智慧党建云平台”新版上线

    大众网·海报新闻 济南报道 手指轻滑就能在电视上浏览全国的党报党刊,还能身临其境参观全省爱国主义教育基地的网上展馆,轻点手机就能进行会议签到、民主评议、党费交纳、在线答题……“七一…

    科研百科 2024年6月28日
    47
  • 斯维尔项目管理系统

    斯维尔项目管理系统: 提高项目管理效率的利器 随着现代项目管理的日益复杂和多元化,传统的项目管理方式已经无法满足现代项目的需求。为了更好地管理项目,许多公司开始采用斯维尔项目管理系…

    科研百科 2024年12月31日
    0
  • Oracle项目管理系统之文档管理概述(docs oracle)

    卷首语 完整的项目全生命周期管控系统核心业务架构,助力大型复杂项目高绩效管理。 方案概述 文档管理在信息系统建设中是不可或缺的,在此次系统建设中也尤其重要。此模块可以建立完整、统一…

    科研百科 2023年11月18日
    133
  • 找导师做科研项目

    找导师做科研项目 随着科技的不断进步,科研领域也变得越来越复杂和深入。对于想要进入科研领域的学生来说,找到一位合适的导师非常重要。一位好的导师不仅可以帮助学生更好地理解科研领域,还…

    科研百科 2025年2月27日
    0
  • 招标信息系统项目管理

    招标信息系统项目管理 随着招标活动的日益增多,招标信息系统作为其中一个重要的工具,越来越受到企业和个人的关注。招标信息系统项目管理作为招标活动的重要组成部分,其重要性不容忽视。本文…

    科研百科 2025年1月12日
    0
  • 科研立项项目管理系统,管理的“10法则”(科研项目执行与管理规范)

    10分钟之后,主持人要求我们停下来。主持人请想到了10个解决方案的小组举手示意,会场大部分的小组都举手了。然后,主持人给了我们两分钟的时间,要求各个小组选出最佳的解决方案。两分钟过…

    2022年9月8日
    287
  • 国外APP界面设计(国外app界面设计发展现状)

    来源:微信公众号 PingMianDesigner(平面设计)

    科研百科 2023年3月26日
    445
  • 硕士科研项目签字

    尊敬的导师, 在此,我谨代表自己和所在团队,签字确认我们完成的硕士科研项目“XXX”的研究报告。 本研究旨在XXX,主要研究XXX,通过XXX方法,取得了XXX的结果。我们的研究得…

    科研百科 2025年3月2日
    0
  • 深圳市-2023年度可持续发展科技专项项目申请指南

    导语充分发挥科技创新在推动经济、社会和环境可持续发展中的支撑和引领作用,聚焦资源高效利用、生态环境治理、健康深圳建设、社会治理、乡村振兴、食品与化妆品等重点领域的技术攻关、科技成果…

    科研百科 2023年10月7日
    163