安卓图形显示系统

这篇具有很好参考价值的文章主要介绍了安卓图形显示系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Android图形显示系统

Android图形显示系统是Android比较重要的一个子系统,和很多其他子系统的关联紧密。 Android图形系统比较复杂,这里我们从整体上理一遍,细节留待后期再去深入。Android图形系统主要包括以下几个方面: 

  1. - 渲染(也就是绘制内容)
  2. - 合成(把多个绘制的结果并和)
  3. - 送显(把合并的结果用设备显示出去)

当应用程序在图形缓冲区中绘制好View层次结构后,这个图形缓冲区会被交给SurfaceFlinger服务,而SurfaceFlinger服务再使用OpenGL图形库API来将这个图形缓冲区渲染到硬件帧缓冲区中。

安卓图形显示系统,android

 

显示系统划分为上下两层:

  1. 上层为应用级别的显示,解决如何绘制图层的问题,主要为java代码。
  2. 底层为系统级别的显示,解决如何将绘制好的图层送显的问题,主要为C/C++代码。

图中的SurfaceFlinger是Android系统中的一个重要服务,它的主要作用是将多个来源的图形显示数据合成,然后发送到显示设备。比如打开应用,常见的有三层显示,顶部的statusbar底部或者侧面的导航栏以及应用的界面,每个层是单独更新和渲染,这些界面都是有surfaceflinger合成一个framebuffer刷新到display硬件中显示。在显示过程中使用到了bufferqueue,surfaceflinger作为consumer方,比如windwomanager管理的surface作为生产方通过GPU产生的页面,交由surfaceflinger进行合成。 

SurfaceFlinger主要有两个功能:
- 接收并处理来自GPU RenderThread 图层数据
- 合成显示数据发送到display设备文章来源地址https://www.toymoban.com/news/detail-664344.html

到了这里,关于安卓图形显示系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Android11.0 修改系统默认显示大小

    系统设置中的显示大小调整的就是屏幕密度,调整的越小,屏幕显示的内容就越多。 在系统中都会有定义一个默认的屏幕密度 设置中显示大小相关内容 源码:/packages/apps/Settings/res/xml/display_settings.xml 源码:/packages/apps/Settings/src/com/android/settings/display/ScreenZoomSettings.java 密度缩

    2024年02月09日
    浏览(56)
  • Android打开系统相机或从相册中选择图片并显示

    xml代码 展示  java代码 实机演示  

    2024年02月11日
    浏览(53)
  • Android T 远程动画显示流程其二——系统侧动画启动流程

    接着上篇文章分析 Android T 远程动画显示流程其一 下面,我们以从桌面点击一个应用启动的场景来分析远程动画的流程,窗口添加的流程见Android T WMS窗口相关流程 这里我们从AppTransitionController.handleAppTransitionReady方法开始跟踪代码流程 代码路径:framework/services/core/java/com/and

    2024年03月28日
    浏览(39)
  • Android 12.0 系统设置显示主菜单添加屏幕旋转菜单实现旋转屏幕功能

     在android12.0的系统rom定制化开发中,在对系统设置进行定制开发中,有产品需求要求增加 旋转屏幕功能的菜单,就是在点击旋转屏幕菜单后弹窗显示旋转0度,旋转 90度,旋转180度, 旋转270度针对不同分辨率的无重力感应的大屏设备的屏幕旋转功能的实现, 接下来就来分析

    2024年02月09日
    浏览(55)
  • 解决Mac系统android monitor启动时卡住,显示白屏的问题

    清安装1.8版本的jdk,java1.8版本以上不支持android monitor;如果你电脑上安装有java 11等高级别的版本,请自行搜索,如果在mac上安装多jdk,以及如何切换到1.8版本上 请更新SWT插件,下载地址; 1.打开网页,点击4.9 跳转到另外的网页  2.跳转到的网页如下所示意   3. 点击下载此版

    2024年02月12日
    浏览(32)
  • Android 10.0 系统systemui状态栏下拉左滑显示通知栏右滑显示控制中心模块的流程分析

      在android10.0的系统rom定制化开发中,在系统原生systemui进行自定义下拉状态栏布局的定制的时候,需要在systemui下拉状态栏下滑的时候,根据下滑坐标来 判断当前是滑出通知栏还是滑出控制中心模块,所以就需要根据屏幕宽度,来区分x坐标值为多少是左滑出通知栏或者右滑

    2023年04月09日
    浏览(62)
  • Android 12.0 系统systemui状态栏下拉左滑显示通知栏右滑显示控制中心模块的流程分析

      在android12.0的系统rom定制化开发中,在系统原生systemui进行自定义下拉状态栏布局的定制的时候,需要在systemui下拉状态栏下滑的时候,根据下滑坐标来 判断当前是滑出通知栏还是滑出控制中心模块,所以就需要根据屏幕宽度,来区分x坐标值为多少是左滑出通知栏或者右滑

    2024年02月09日
    浏览(78)
  • Android 11.0 系统修改usb连接电脑mtp和PTP的显示名称

      在11.0的系统产品rom定制化开发中,在usb模块otg连接电脑,调整为mtp文件传输模式的时候,这时可以在电脑看到手机的内部存储 显示在电脑的盘符中,会有一个mtp名称做盘符,所以为了统一这个名称,就需要修改这个名称,接下来分析下处理的方法来解决这个问题 MTP的全称

    2024年01月17日
    浏览(52)
  • Android如何实现地图定位?Android studio+百度地图API+Android6.0系统实现地图显示、地址设置、点击地图定位功能(详细)

    文章说明: 本文初衷是为了记录毕设学习过程,避免忘记操作流程。该功能是毕业设计的Android软件端的功能之一,本文将从获取百度地图密钥(AK)开始,详细地对地图定位配置和相关代码进行说明, 文末将附上实现该功能的代码。后续等答辩完成会把整个Android端代码上传

    2024年02月03日
    浏览(59)
  • Android 10.0 SystemUI定制之通过系统属性控制锁屏页面通知栏显示与隐藏功能实现

    在10.0的系统产品开发中,在一些SystemUI的系统定制化开发中,在对锁屏页面的通知栏在某些情况下不需要显示通知栏,所以就需要 在systemui的通知栏布局页面中,通过属性来控制是否在锁屏页面的时候显示通知,具体就分析下systemui然后开发相关功能 在systemui系统中最主要的

    2024年02月04日
    浏览(57)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包