什么是Android FrameWork,请你介绍一下?

这篇具有很好参考价值的文章主要介绍了什么是Android FrameWork,请你介绍一下?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Framework是什么

Framework的中文意思是“框架”,在软件开发中通常指开发框架,在一个系统中处于内核层之上,为顶层应用提供接口,被设计用来帮助开发者快速开发顶层应用,而不必关心系统内核运行机制,通常Framework都会隐藏main函数等应用程序必须的组件,开发人员只需把精力放在功能代码的实现上。

Android Framework

Android Framework建立在顶层应用与C/C++库之间,主要由三部分组成:服务端、客户端、Linux驱动。它们的主要内容如下图所示:

什么是Android FrameWork,请你介绍一下?

APK程序的运行过程

APK程序的运行流程大概如下图所示:

什么是Android FrameWork,请你介绍一下?

需要重点说明的是,ActivityThread是一个类,实例所在线程即为UI主线程,main方法就在ActivityThread类里面,是安卓应用程序的入口。ActivityThread对象在创建之前调用的prepareMainLooper()方法会实例一个Looper对象,该Looper对象会创建一个消息队列,调用loop()方法后,UI线程会进入消息循环体,不断从消息队列里抽取消息并处理。ActivityThread的执行流程里面并没有主动创建一个Activity,而是同通过创建一个ApplicationThread的Binder监听来自远方AmS的IPC调用,在收到创建Activity消息时才开始创建一个主Activity。创建Activity的具体流程如下:

什么是Android FrameWork,请你介绍一下?

值得注意的是,W类继承Binder类,它负责接收来自WmS的IPC调用,并将消息发送至DectorView,如果DectorView没有处理,则传递给PhoneWindow,如果PhoneWindow没有处理,则继续传递给Activity,Activity通过Handler来处理此消息。

总结如下:一个安卓应用程序在运行之初总共会创建三个线程:ActivityThread、ApplicationThread、W。其中ActivityThread为UI线程,通过绑定一个Looper不断抽取消息并处理,ApplicationThread与W均为Binder类,负责与远方服务器端通信,ApplicationThread在主Activity创建之前创建,负责监听AmS传来的创建Activity消息,在Activity创建完毕后,W负责监听WmS发来的消息,并将此消息传给Activity。

服务器端

设计服务器端是为了给在安卓机上运行的众多顶层应用提供一个全局服务,主要由WmS与AmS构成,其中WmS主要负责监听与处理与窗口相关的事件(如监听用户点击、手势),AmS主要负责管理Activity(如创建Activity)。当用户在安卓机上触发一个事件时,服务端会首先获取这一事件,如果发现此事件属于某一运行中的应用程序则利用Binder机制将其发送给此应用程序处理。

WmS主要由两个类组成:KeyQ类、InputDispatcherThread类。这两个分别创建一个线程,KeyQ类负责不断将用户消息存储到QueueEvent消息队列中,InputDispatcherThread负责不断从QueueEvent中取出消息进行处理或分发给相应应用。

像 Android Framework 的中的知识点还有很多,如:

  1. Activity 生命周期:管理 Android 应用程序中 Activity 的创建、销毁、暂停、恢复等状态,确保应用程序可以正确地响应用户操作。
  2. Fragment:允许在一个 Activity 中组合多个 UI 组件布局,支持灵活的 UI 布局。
  3. Service:允许在后台执行长时间的任务或操作,如播放音乐、检查邮件等。
  4. BroadcastReceiver:监听系统广播和自定义广播,当有广播消息发送时,负责接收处理。
  5. ContentProvider:管理应用程序中的数据,提供数据存储和访问服务,实现多个应用程序数据的共享。
  6. Intent:在应用程序之间传递消息和数据,启动其他应用程序的组件,如 Activity、Service 和 BroadcastReceiver。
  7. AndroidManifest.xml 文件:存储应用程序的基本信息和配置,包括应用程序的名称、版本、权限等。
  8. R.java 文件:一个由 Android 自动生成的类,用于访问应用程序中的资源标识符,如布局、字符串、图像等。
  9. 权限管理:确保应用程序只能访问其被授权访问的数据和系统功能,防止应用程序损坏或滥用设备。
  10. 系统服务:提供各种共享系统级别的功能和服务,如网络访问服务、通知提示服务、存储管理服务等。
  11. View 和 ViewGroup:Android 中的 UI 控件基本单元,用于构建应用程序的界面和用户交互。
  12. 状态保存与恢复:当应用程序被暂停或恢复时,负责保存和恢复应用程序的状态和数据。
  13. 资源管理:管理应用程序的资源,如图片、布局、字符串等,确保资源文件可以被动态加载、修改和卸载。
  14. 事件处理:处理用户的各种输入事件,如触碰屏幕、按键事件等,响应用户的操作。
  15. 多线程编程:允许应用程序在多个线程中执行任务,充分利用硬件资源,提高应用程序的性能和响应速度。
  16. 安全性管理:确保应用程序可以正常运行,并保护用户的数据和设备不受外界威胁和攻击。
  17. 动画:增加用户体验和可视性,使应用程序更具生动性和吸引力。
  18. 自定义视图:扩展应用程序的 UI 功能,实现复杂的 UI 效果和流畅度。
  19. 通知与推送:向用户提供通知和推送消息,提升用户对应用程序的关注度和使用体验。
  20. 调试与测试:确保应用程序的稳定性和正确性,降低应用程序出现问题的风险。
  21. ……

所以为了帮助到大家更好的了解Android Framework框架中的知识点,这边查阅大量的素材,整理了一下的 Android Framework 核心知识点手册,里面记录了:有Handler、Binder、AMS、WMS、PMS、事件分发机制、UI绘制……等等,几乎把更Framework相关的知识点全都记录在册了

《Framework 核心知识点汇总手册》:https://qr18.cn/AQpN4J

Handler 机制实现原理部分:
1.宏观理论分析与Message源码分析
2.MessageQueue的源码分析
3.Looper的源码分析
4.handler的源码分析
5.总结

什么是Android FrameWork,请你介绍一下?

Binder 原理:
1.学习Binder前必须要了解的知识点
2.ServiceManager中的Binder机制
3.系统服务的注册过程
4.ServiceManager的启动过程
5.系统服务的获取过程
6.Java Binder的初始化
7.Java Binder中系统服务的注册过程

什么是Android FrameWork,请你介绍一下?

Zygote :

  1. Android系统的启动过程及Zygote的启动过程
  2. 应用进程的启动过程

什么是Android FrameWork,请你介绍一下?

AMS源码分析 :

  1. Activity生命周期管理
  2. onActivityResult执行过程
  3. AMS中Activity栈管理详解

什么是Android FrameWork,请你介绍一下?

深入PMS源码:

1.PMS的启动过程和执行流程
2.APK的安装和卸载源码分析
3.PMS中intent-filter的匹配架构

什么是Android FrameWork,请你介绍一下?

WMS:
1.WMS的诞生
2.WMS的重要成员和Window的添加过程
3.Window的删除过程

什么是Android FrameWork,请你介绍一下?

《Android Framework学习手册》:https://qr18.cn/AQpN4J

  1. 开机Init 进程
  2. 开机启动 Zygote 进程
  3. 开机启动 SystemServer 进程
  4. Binder 驱动
  5. AMS 的启动过程
  6. PMS 的启动过程
  7. Launcher 的启动过程
  8. Android 四大组件
  9. Android 系统服务 - Input 事件的分发过程
  10. Android 底层渲染 - 屏幕刷新机制源码分析
  11. Android 源码分析实战

什么是Android FrameWork,请你介绍一下?文章来源地址https://www.toymoban.com/news/detail-475876.html

到了这里,关于什么是Android FrameWork,请你介绍一下?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android Framework基础知识

    哈喽大家好,我是Zzz. 给大家分享一篇Framework入门的基础知识文章,内容纯纯原创。 一、Application,Activity和进程的关系?     Application、Activity只是进程虚拟机运行的一个类对象,只是属于系统的一个组件和进程没有直接联系。Android支持为每个组件可以单独进程方式运行。

    2024年03月24日
    浏览(40)
  • Android Framework 之 SystemServer

    SystemServer是Android系统中的一个核心组件,负责启动和管理许多重要的系统服务。它的启动过程相对复杂,包含以下主要步骤: Zygote启动SystemServer :在Android系统启动过程中,Zygote进程会通过fork操作创建一个新的进程,并在这个新的进程中启动SystemServer。 加载并执行SystemSer

    2024年02月14日
    浏览(37)
  • Android Framework 之 ServiceManager

    ServiceManager 在 Android 系统中扮演了核心的角色。主要负责跨进程通信(IPC)的管理和服务的注册与查找。 管理系统服务 : ServiceManager 提供一个全局的服务注册表,用于存储所有的系统服务。一个服务一旦被注册到 ServiceManager,其他的进程就可以通过 **ServiceManager **来访问这

    2024年02月14日
    浏览(42)
  • Android Framework 之 Zygote

    Android Zygote 是 Android 操作系统中一个关键的系统服务,它在系统启动时加载,为应用程序的运行提供了一种快速且资源高效的方式。 Zygote 的主要作用如下: 预加载共享库和类 :Zygote 启动时,会预先加载 Android 系统中所有应用程序共享的库和类,例如 Android Runtime,标准 Ja

    2024年02月14日
    浏览(35)
  • Robot Framework高阶功能介绍

    Robot Framework高阶功能包括以下内容: 自定义库:可以根据自己的需求编写自定义的库,使得测试用例更加灵活。 数据驱动测试:可以通过使用不同的数据来执行同一个测试用例,提高测试用例的复用性和效率。 序列化和反序列化:可以将测试用例数据序列化为

    2024年02月16日
    浏览(38)
  • Android Framework 全局替换系统字体

    基于Android 11 Android Framework 全局替换系统字体 将需要替换的字体资源放置frameworks/base/data/fonts/目录下。 将系统默认的Roboto字体替换为HarmonyOs字体。 frameworks/base/data/fonts/fonts.xml frameworks/base/data/fonts/Android.mk frameworks/base/data/fonts/fonts.mk 编译刷机验证。 frameworks/base/graphics/java/and

    2024年02月12日
    浏览(40)
  • Android Framework——Binder 监控方案

    作者:低性能JsonCodec 在 Android 应用开发中,Binder 可以说是使用最为普遍的 IPC 机制了。我们考虑监控 Binder 这一 IPC 机制,一般是出于以下两个目的: 卡顿优化:IPC 流程完整链路较长,且依赖于其他进程,耗时不可控,而 Binder 调用本身通常又是以 RPC 形式对外提供能力的,

    2024年02月04日
    浏览(36)
  • Android Framework解析——WMS原理

    作者:bobby_developer window:它是一个抽象类,具体实现类为 PhoneWindow ,它对 View 进行管理。Window是View的容器,View是Window的具体表现内容; windowManager:是一个接口类,继承自接口 ViewManager ,从它的名称就知道它是用来管理 Window 的,它的实现类为 WindowManagerImpl; WMS:是窗口的管理

    2024年02月13日
    浏览(44)
  • Android Framework工具——EA画图

            EA 是一个著名的企业架构(Enterprise Architecture)工具,用于绘制和管理企业的架构图和过程模型。该工具提供了多种功能,包括建立业务流程图、数据流图、组织结构图、应用架构图等。EA工具可帮助企业进行战略规划、业务流程改进和系统开发等活动。 新建项目

    2024年02月13日
    浏览(34)
  • Android Framework分析SystemServer进程

    SystemServer进程是Android系统的核心进程,运行在Android系统启动后,负责管理和加载系统服务。本文将介绍SystemServer进程的详细结构和工作原理,并使用代码注释的方式阐述其关键部分代码。 结构: SystemServer进程的核心是SystemServer类,它是Android系统启动后的第一个Java进程。

    2024年02月09日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包