iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >什么是Android FrameWork,请你介绍一下?
  • 922
分享到

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

androidui移动开发Frameworkjava 2023-09-24 11:09:13 922人浏览 薄情痞子
摘要

Framework是什么 Framework的中文意思是“框架”,在软件开发中通常指开发框架,在一个系统中处于内核层之上,为顶层应用提供接口,被设计用来帮助开发者快速开发顶层应用,而不必关心系统内核运

Framework是什么

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

Android Framework

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

APK程序的运行过程

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

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

值得注意的是,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.总结

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

Zygote :

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

AMS源码分析 :

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

深入PMS源码:

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

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

《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 源码分析实战

来源地址:https://blog.csdn.net/weixin_61845324/article/details/130071395

--结束END--

本文标题: 什么是Android FrameWork,请你介绍一下?

本文链接: https://www.lsjlt.com/news/416859.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 什么是Android FrameWork,请你介绍一下?
    Framework是什么 Framework的中文意思是“框架”,在软件开发中通常指开发框架,在一个系统中处于内核层之上,为顶层应用提供接口,被设计用来帮助开发者快速开发顶层应用,而不必关心系统内核运...
    99+
    2023-09-24
    android ui 移动开发 Framework java
  • 简单介绍一下什么是microservice微服务
    目录一、单体软件二、面向服务架构三、微服务References微服务(microservice)是一种软件架构,正得到越来越多的关注。 但是,它到底是什么意思?什么样的架构可以叫做微...
    99+
    2023-03-21
    微服务 微服务是什么
  • Android framework ATMS启动流程是什么
    这篇文章主要介绍“Android framework ATMS启动流程是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android framework ...
    99+
    2023-07-05
  • 介绍一下TensorFlow的Eager Execution模式是什么以及它的优势。
    TensorFlow的Eager Execution(即立即执行模式)是一种命令式编程环境,它允许在运行时立即执行操作,而不需要构建...
    99+
    2024-03-01
    TensorFlow
  • android中framework的使用方法是什么
    在Android中,Framework是指Android系统提供的一组API和系统服务,用于帮助开发者构建应用程序。开发者可以利用F...
    99+
    2024-03-13
    android
  • Android Framework原理Binder驱动源码是什么
    今天小编给大家分享一下Android Framework原理Binder驱动源码是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2023-07-05
  • 是什么JSON,简单介绍
    JSON 是什么1、JSON,全称是 JavaScript Object Notation,即 JavaScript 对象标记法。 2、JSON 是一种轻量级(Light-Weight)、基于文本的(Text-Based)、可读的...
    99+
    2023-06-03
  • 什么是uac功能?Vista下的UAC功能详细介绍
    UAC是什么? UAC的全称是User Account Control(用户账户控制),它是Windows Vista提供的一个安全特性。它会在用户使用计算机进行更改系统设置或者安装软件等会影响到系统安全性、稳定性的操作...
    99+
    2023-05-22
    什么是uac功能 vista uac
  • python的介绍及优势是什么
    这篇文章主要讲解了“python的介绍及优势是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python的介绍及优势是什么”吧!有人说问学python会不会过时,我问你人工智能什么时间过...
    99+
    2023-06-19
  • DNS轮循的具体介绍是什么
    DNS轮循的具体介绍是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。DNS轮循是指通过配置DNS使相同的域名解释不同的IP,随机使用其中某台主机的技术。通过DNS轮循系统可...
    99+
    2023-06-13
  • 详细介绍了ENABLED是什么意思
    enabled是可行的。enabled代表:可激活。启用;disabled代表:有缺陷。关闭。计算机上有一个bios设置。这两个词指的是失效和可行性。让我们详细介绍一下enabled的含义。让我们看看。“disabled”也可以表示不可用、...
    99+
    2023-07-10
  • Discuz是什么?功能及特点介绍
    首先我们来解释一下什么是Discuz。 Discuz(原名Discuz!)是一款由中国开发者开发的开源论坛软件,适用于建立在线社区或论坛。它提供了丰富的功能和灵活的定制选项,让网站管理...
    99+
    2024-03-03
    功能介绍 特点详解 论坛软件 用户权限管理 用户注册
  • ADO.NET下一代是什么
    本篇内容主要讲解“ADO.NET下一代是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ADO.NET下一代是什么”吧!Linq To SQL将程序员从以往写大量的sql查询语句、取值、赋值中...
    99+
    2023-06-17
  • Python启动器是什么_Python启动器介绍
    1、首先以下是官方文档给出的解释。 2、翻译:3.3版本新增功能适用于 Windows 的 Python 启动器是一个实用组件,可帮助您定位和执行不同的 Python 版本。它允许脚本...
    99+
    2024-04-09
    python
  • 什么是Discuz?Discuz的定义和功能介绍
    《探索Discuz:定义、功能及代码示例》 随着互联网的迅猛发展,社区论坛已经成为人们获取信息、交流观点的重要平台。在众多的社区论坛系统中,Discuz作为国内较为知名的一种开源论坛软...
    99+
    2024-03-03
    功能 定义 discuz
  • 云服务器的介绍和特点是什么
    云服务器(Cloud Server)是一种通过互联网提供云服务的服务器,它通常由多个服务器组成,每个服务器运行一个虚拟计算机集群,提供计算、存储、网络和其他服务,用户通过浏览器访问这些服务,并可以与其他用户共享这些资源。 云服务器的特点是...
    99+
    2023-10-26
    服务器
  • windows10优化设置教程是什么的介绍
    多数小伙伴的电脑配置都是挺给力的情况下新装了win10系统,却发现运行起来却没有很快,让大家都不知道该怎么办,而其实针对这方面困扰,我们得了解清楚电脑系统卡顿的原因,我们可以进行一系列的设置,今天来跟大家说说windows10优化设置教程是...
    99+
    2023-07-10
  • CSS Sprites的介绍以及优缺点是什么
    本篇内容介绍了“CSS Sprites的介绍以及优缺点是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • Python解释器是什么_Python解释器介绍
    1、首先当我们写完python代码后,就需要一个解释器去执行python代码最常用的python解释器:cpython(classicpython,也就是原始的python实现,需要区别...
    99+
    2024-04-02
  • 云服务器的介绍和特点是什么呢
    云服务器(Cloud Docker)是一种基于容器技术的服务器,它可以被部署在云基础设施上,可以通过网络连接访问。云服务器的介绍如下: 云服务器的定义:云服务器是一种服务器,它由多个容器组成,这些容器被托管在一个公共云平台上。这些容器可...
    99+
    2023-10-26
    什么呢 服务器 特点是
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作