CN104731653A - 一种Android显示系统的软件绘制和硬件绘制动态切换方法 - Google Patents

一种Android显示系统的软件绘制和硬件绘制动态切换方法 Download PDF

Info

Publication number
CN104731653A
CN104731653A CN201510146749.1A CN201510146749A CN104731653A CN 104731653 A CN104731653 A CN 104731653A CN 201510146749 A CN201510146749 A CN 201510146749A CN 104731653 A CN104731653 A CN 104731653A
Authority
CN
China
Prior art keywords
drafting
hardware
mode
android
display system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510146749.1A
Other languages
English (en)
Other versions
CN104731653B (zh
Inventor
王胜
常玉成
邱海峰
王海波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI INFOTM MICROELECTRONICS CO Ltd
Original Assignee
SHANGHAI INFOTM MICROELECTRONICS CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHANGHAI INFOTM MICROELECTRONICS CO Ltd filed Critical SHANGHAI INFOTM MICROELECTRONICS CO Ltd
Priority to CN201510146749.1A priority Critical patent/CN104731653B/zh
Publication of CN104731653A publication Critical patent/CN104731653A/zh
Application granted granted Critical
Publication of CN104731653B publication Critical patent/CN104731653B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及Android操作系统的显示框架,尤其是一种Android显示系统的软件绘制和硬件绘制动态切换方法,在现有Android的显示系统中,增加P31系统运行监控服务ROS以监测和收集系统运行的状态,然后根据这些状态来决定P4中使用的绘制方法;增加P32应用程序绘制控制接口ADI,该应用程序可以通过该接口强制设定自己绘制所使用的方式,并且通过该方式设定的优先级大于P31。本发明的Android显示系统的软件绘制和硬件绘制动态切换方法可以让一些老款的应用程序在众多的平台上运行的很流畅,用户体验性好;应用在绘制的过程中有很强的容错性,可以让配置较低的平台运行更多的应用程序。

Description

一种Android显示系统的软件绘制和硬件绘制动态切换方法
技术领域
本发明涉及android 操作系统的显示框架。具体来说,该发明是基于android的显示框架,提供一种可以动态切换android软件显示(使用CPU进行绘制)和硬件显示(使用GPU进行绘制)的方法。
背景技术
从Android 3.0开始,Android 2D的绘制流程就设计为支持硬件加速。有了该硬件加速,应用程序在绘制界面所进行的绘制操作都会使用硬件去渲染绘制,这样极大的优化了显示速度和用户体验。
硬件绘制特点是绘制速度快,界面流畅,用户体验好,但是消耗硬件资源,导致一些应用在低配置的设备上无法运行,另外硬件绘制无法满足所有的绘制方法(依赖于硬件提供的功能),导致部分应用在一些硬件能力差的机器上显示异常,甚至不能运行。
软件绘制的特点是绘制速度慢,界面不顺畅,但是对硬件的依赖较小,另外软件绘制的准确度和精确度高,绘制方法种类丰富,所以适应性比硬件要强。
Android系统的绘图原始框架如图1和图2描述。主要包括如下几个部分:
1)P0内核显示驱动。在linux内核中就是指framebuffer驱动。
2)P1应用程序图层合成服务SurfaceFlinger。这个服务是android的native 层服务,主要的功能就是接受来自客户端的图层修改指令,并且对当前系统中所有的应用程序图层进行合成,最终将合成的结果输送给linux显示驱动显示出来。
3)P2窗口显示控制Surface。可以通过该接口来控制一个图层窗口的属性(大小,位置等),该类负责桥接P3和P1。
4)P3窗口管理服务WindowManagerService(WMS)。该服务是android的核心服务之一,主要负责接受用户输入事件然后通知给相应的应用程序,同时也负责所有的应用程序窗口显示排序策略(Z order),应用程序窗口属性的(大小,位置等)的调整等。
5)P4视图树管理ViewRoot。P4的主要绘制流程请见图2。
一般来说一个应用程序是一群视图(View)的合成体,ViewRoot管理了这个应用的所有视图,每当有更新(大小发生变化,位置发生变化等),ViewRoot负责遍历该应用的所有视图,从而进行重新布局,重新绘制。
6)P5绘制操作接口Canvas。Canvas是Android为应用程序绘图抽象的一个接口,应用程序可以使用该接口进行各种绘图操作(画点,画线等)。
7)P6图形绘制库。图形绘制库是Canvas的后端实现。在android平台上分为skia和hwui,其中skia是纯粹用CPU操作的软件实现库,hwui是封装了openGL的硬件实现库,最终会使用硬件GPU资源。
当应用程序的初始化图形界面的时候,P4会根据当前应用程序是否含有硬件加速的标志位(由于该标志位在Android3.0之后才支持,所以使用android3.0之前的SDK编译的应用程序是不含有该标志位的)来决定使用的图形绘制库是软件还是硬件,一旦决定了以后,就立即申请相应的资源,后续不能更改。由此可见,一个应用程序在Android平台上显示方式,完全由该应用程序的版本决定,系统不能智能处理。
   如上所述,为了有很好的兼容性,Android的显示系统中同时包含了硬件绘制和软件绘制,但是一个应用程序究竟是使用硬件绘制还是使用软件绘制是由应用程序在初始化的时候决定,之后不能更改,所以基于Android3.0之前SDK发布的应用程序由于没有加入使用硬件加速的标志位,导致在运行在支持硬件加速的平台上,不能享受硬件加速特性;基于Android3.0之后SDK发布的应用,也由于不能动态切换所以在一些硬件较差(主要是GPU)的平台上运行的效果不好,甚至出现不能运行的情况。
发明内容
本发明的目的是通过动态切换绘制方法的手段,修改Android的核心显示系统,让应用可以在运行的过程中根据平台的特性或者自身的需求实时的决定绘制方法使用软件还是硬件,减少应用程序对硬件的依赖,提高了其在不同平台下兼容性,同时也让那些基于Android3.0之前SDK发布的老版应用程序在硬件条件比较好的平台上顺畅的运行,提高了用户体验,另外平台可以根据平台的情况在动态的运行应用程序,节省了平台硬件资源。
本发明的具体技术方案如下:
一种Android 显示系统的软件绘制和硬件绘制动态切换方法,在现有Android的显示系统中,增加P31系统运行监控服务ROS(Runtime Oberserver Service)。该服务是本发明添加的系统监测服务,和P3一样也是运行的系统服务进程中,它的作用是监测和收集系统运行的状态(比如系统的内存使用情况,CPU资源占用情况,电池使用情况,平台温度等),然后根据这些状态来决定P4中使用的绘制方法;
增加P32应用程序绘制控制接口ADI(Application drawway interface)。该接口是本发明添加的供应用程序调用的接口,应用程序可以通过该接口强制设定自己绘制所使用的方式,并且通过该方式设定的优先级大于P31;
为了达到本发明的目的,本发明除了加了P31和P32 2个部分外,还修改了P4的绘制流程,具体描述如下:
1)P4在初始化的时候不去根据硬件加速标志位立即申请资源,而是保留该标志位,作为后续绘制方式选择的依据,该依据优先级最低。
2)P4在运行的时候接受P31的绘制方式的通知,并且对比该通知和当前采用的绘制方法是否一致,如果不一致,立即激活遍历线程,要求重绘。来自P31的绘制方式优先级居中,它会覆盖初始化时应用程序的硬件加速标志位。
3)P4在运行的时候接受P32的绘制方式的通知,并且对比该通知和当前采用的绘制方法是否一致,如果不一致,立即激活遍历线程,要求重绘。来自P32的绘制方式优先级最高,它会覆盖来自P31的绘制方式。
4)P4在进行绘制的时候,会判断当前的绘制方式和外界要求的绘制方式是否一致,如果不一致,会释放当前绘制方法所使用的资源,申请新的绘制方法资源,然后进行绘制动作。由于Android默认的流程是不支持这种资源的动态释放申请,所以这个地方同时也需要修改P2 Surface的接口,增加动态释放的接口disconnect(如图3所示)。另外在绘制过程中,如果使用硬件绘制的方式出现错误(可能是由于该应用调用的绘制方法硬件不支持,或者是由于运行的过程中出现内存不够等原因),也可以回退到软件的方式进行绘制。这样保证应用程序能够正常运行。
有益效果
本发明的Android 显示系统的软件绘制和硬件绘制动态切换方法可以让一些老款的应用程序在众多的平台上运行的很流畅,用户体验性好;应用在绘制的过程中有很强的容错性,可以让配置较低的平台运行更多的应用程序。另外由于实时的根据系统平台的状态来决定使用软硬件绘制的方式,让平台可以花费最小的硬件资源代价获取最大的用户体验。这些都可在平板电脑产品上成功实施。
为了更好的理解本方法的改进,现在把应用程序分为OLD_APK(基于Android3.0之前SDK发布)和NEW_APK;把平台也分为GOOD_PLATFORM(硬件资源较好)和BAD_PLATFORM(硬件资源差),如下是对比情况表格:
附图说明
图1 Android原生整体绘制架构。
图2 视图树管理ViewRoot的原生绘制流程图。
图3 本发明的Android整体绘制架构。
图4 本发明的视图树管理ViewRoot的绘制流程图。
具体实施方式
下面结合附图3和图4进一步阐述本发明:
1、添加系统服务P31 ROS部分。该服务运行在系统服务进程中,它的作用是监测和收集系统运行的状态(比如系统的内存使用情况,CPU资源占用情况,电池使用情况,平台温度等),然后根据这些状态来决定P4中使用的绘制方法。由于该服务是运行在android的系统服务中的,所以在系统boot up的过程中就会启动,并且注册到Android的SystemServer中,其生命周期一直持续至平台关机。
2、添加应用程序接口P32 ADI。应用程序在运行的过程中可以随时调用该接口来设置绘制方式,P4会无条件的使用该方式进行绘制。
3、应用程序在初始化P4的时候,不去根据应用的硬件加速标志来一次性决定使用的绘制方式,而是保留该标志位,作为一个依据来决定后续绘制方式。
4、当应用程序接受外部事件发生视图更新或者是有来自P31和P32部分的通知,P4会立即启动绘制线程,进行重新绘制。在绘制的时候会首先判断是否有P32 要求的绘制方式事件,如果存在则使用该绘制方式,不存在则再去查看是否有P31要求的绘制方式事件,如果存在则使用该绘制方式,不存在则最后去查看初始化时保留的硬件加速标志位。通过上述方式决定好绘制方式后,当前的绘制方式和上次的绘制方式可能发生变化,如果不一致,P4会调用资源释放接口来释放上层绘制方式的资源,申请当前绘制方式所需要的资源。当一切准备就绪后,P4根据当前绘制的方式来选择使用P6中硬件绘制方式还是软件绘制方式。另外本发明还加入了硬件绘制的容错性处理,当硬件绘制失败后,分析失败原因,如果失败的原因是硬件不支持当前的绘制操作或者硬件内存不够等硬件原因,那么后续会强制使用软件的方式进行重新绘制。
以上是对本发明的实施例描述,但本领域的普通技术人员应该意识到,在本发明的范围内和精神指导下,各种改进、添加和替换都是可能的,例如更改P31和P32的实现,以及更改在外部在加入新一种通知P4绘制方式的机制,调整接口,调用顺序,使用不同的编程语言(如 C、C++、Java 等)实现等。这些都在本发明的权利要求所限定的保护范围内。

Claims (5)

1.一种Android 显示系统的软件绘制和硬件绘制动态切换方法,在现有Android的显示系统中,增加P31系统运行监控服务ROS以监测和收集系统运行的状态,然后根据这些状态来决定P4中使用的绘制方法;
增加P32应用程序绘制控制接口ADI,该应用程序可以通过该接口强制设定自己绘制所使用的方式,并且通过该方式设定的优先级大于P31;
对于P4视图树管理的绘制流程方法,步骤如下:
1)P4在初始化的时候不去根据硬件加速标志位立即申请资源,而是保留该标志位,作为后续绘制方式选择的依据,该依据优先级最低;
2)P4在运行的时候接受P31的绘制方式的通知,并且对比该通知和当前采用的绘制方法是否一致,如果不一致,立即激活遍历线程,要求重绘;来自P31的绘制方式优先级居中,它会覆盖初始化时应用程序的硬件加速标志位;
3)P4在运行的时候接受P32的绘制方式的通知,并且对比该通知和当前采用的绘制方法是否一致,如果不一致,立即激活遍历线程,要求重绘;来自P32的绘制方式优先级最高,它会覆盖来自P31的绘制方式;
4)P4在进行绘制的时候,会判断当前的绘制方式和外界要求的绘制方式是否一致,如果不一致,会释放当前绘制方法所使用的资源,申请新的绘制方法资源,然后进行绘制动作。
2.根据权利要求1所述的一种Android 显示系统的软件绘制和硬件绘制动态切换方法,其特征在于,所述系统运行的状态是系统的内存使用情况、CPU资源占用情况、电池使用情况或平台温度。
3.根据权利要求1所述的一种Android 显示系统的软件绘制和硬件绘制动态切换方法,其特征在于,在P2窗口显示控制 Surface的接口,增加动态释放的接口disconnect。
4.根据权利要求1所述的一种Android 显示系统的软件绘制和硬件绘制动态切换方法,其特征在于,在绘制过程中,如果使用硬件绘制的方式出现错误可以回退到软件的方式进行绘制,确保应用程序能够正常运行。
5.根据权利要求4所述的一种Android 显示系统的软件绘制和硬件绘制动态切换方法,其特征在于,使用硬件绘制的方式出现错误可以是由于该应用调用的绘制方法硬件不支持,或者是由于运行的过程中出现内存不够的原因。
CN201510146749.1A 2015-03-31 2015-03-31 一种Android显示系统的软件绘制和硬件绘制动态切换方法 Active CN104731653B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510146749.1A CN104731653B (zh) 2015-03-31 2015-03-31 一种Android显示系统的软件绘制和硬件绘制动态切换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510146749.1A CN104731653B (zh) 2015-03-31 2015-03-31 一种Android显示系统的软件绘制和硬件绘制动态切换方法

Publications (2)

Publication Number Publication Date
CN104731653A true CN104731653A (zh) 2015-06-24
CN104731653B CN104731653B (zh) 2018-09-25

Family

ID=53455568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510146749.1A Active CN104731653B (zh) 2015-03-31 2015-03-31 一种Android显示系统的软件绘制和硬件绘制动态切换方法

Country Status (1)

Country Link
CN (1) CN104731653B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106447595A (zh) * 2016-09-23 2017-02-22 努比亚技术有限公司 一种分布式图像图形的渲染方法及终端
CN106600670A (zh) * 2016-10-19 2017-04-26 上海斐讯数据通信技术有限公司 一种视图绘制中硬件加速控制方法及系统
CN106873984A (zh) * 2017-01-13 2017-06-20 努比亚技术有限公司 一种自定义脚本绘制终端及方法
CN109725977A (zh) * 2019-01-02 2019-05-07 京东方科技集团股份有限公司 一种基于Android系统的多应用显示方法及终端设备
CN110442389A (zh) * 2019-08-07 2019-11-12 北京技德系统技术有限公司 一种多桌面环境共享使用gpu的方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235172A (ja) * 2004-01-20 2005-09-02 Matsushita Electric Ind Co Ltd 描画装置および描画方法
US20050275883A1 (en) * 2004-06-09 2005-12-15 Canon Kabushiki Kaisha Information processing apparatus and its control method
US20060164419A1 (en) * 2005-01-24 2006-07-27 Fujitsu Limited Image drawing device and image drawing method
JP2009526338A (ja) * 2006-01-13 2009-07-16 チョイス エンタープライジズ リミティド ライアビリティ カンパニー コンピュータネットワークベースの3dレンダリングシステム
CN101593357A (zh) * 2008-05-28 2009-12-02 中国科学院自动化研究所 一种基于三维平面控件的交互式体切割方法
US20090323111A1 (en) * 2008-06-30 2009-12-31 Canon Kabushiki Kaisha Image forming apparatus and image forming method
CN102004621A (zh) * 2010-11-15 2011-04-06 华为技术有限公司 图形显示方法、装置和系统
CN103198008A (zh) * 2013-04-27 2013-07-10 清华大学 系统测试统计方法及装置
CN103270492A (zh) * 2010-12-15 2013-08-28 国际商业机器公司 用于网络使能应用的硬件加速图形
CN104331297A (zh) * 2014-11-28 2015-02-04 广东威创视讯科技股份有限公司 一种渲染引擎的绘制方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235172A (ja) * 2004-01-20 2005-09-02 Matsushita Electric Ind Co Ltd 描画装置および描画方法
US20050275883A1 (en) * 2004-06-09 2005-12-15 Canon Kabushiki Kaisha Information processing apparatus and its control method
US20060164419A1 (en) * 2005-01-24 2006-07-27 Fujitsu Limited Image drawing device and image drawing method
JP2009526338A (ja) * 2006-01-13 2009-07-16 チョイス エンタープライジズ リミティド ライアビリティ カンパニー コンピュータネットワークベースの3dレンダリングシステム
CN101593357A (zh) * 2008-05-28 2009-12-02 中国科学院自动化研究所 一种基于三维平面控件的交互式体切割方法
US20090323111A1 (en) * 2008-06-30 2009-12-31 Canon Kabushiki Kaisha Image forming apparatus and image forming method
CN102004621A (zh) * 2010-11-15 2011-04-06 华为技术有限公司 图形显示方法、装置和系统
CN103270492A (zh) * 2010-12-15 2013-08-28 国际商业机器公司 用于网络使能应用的硬件加速图形
CN103198008A (zh) * 2013-04-27 2013-07-10 清华大学 系统测试统计方法及装置
CN104331297A (zh) * 2014-11-28 2015-02-04 广东威创视讯科技股份有限公司 一种渲染引擎的绘制方法及装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106447595A (zh) * 2016-09-23 2017-02-22 努比亚技术有限公司 一种分布式图像图形的渲染方法及终端
CN106600670A (zh) * 2016-10-19 2017-04-26 上海斐讯数据通信技术有限公司 一种视图绘制中硬件加速控制方法及系统
CN106873984A (zh) * 2017-01-13 2017-06-20 努比亚技术有限公司 一种自定义脚本绘制终端及方法
CN109725977A (zh) * 2019-01-02 2019-05-07 京东方科技集团股份有限公司 一种基于Android系统的多应用显示方法及终端设备
CN109725977B (zh) * 2019-01-02 2022-06-28 京东方科技集团股份有限公司 一种基于Android系统的多应用显示方法及终端设备
CN110442389A (zh) * 2019-08-07 2019-11-12 北京技德系统技术有限公司 一种多桌面环境共享使用gpu的方法
CN110442389B (zh) * 2019-08-07 2024-01-09 北京技德系统技术有限公司 一种多桌面环境共享使用gpu的方法

Also Published As

Publication number Publication date
CN104731653B (zh) 2018-09-25

Similar Documents

Publication Publication Date Title
CN104731653A (zh) 一种Android显示系统的软件绘制和硬件绘制动态切换方法
US9146762B2 (en) Specialized virtual machine to virtualize hardware resource for guest virtual machines
CN107783821A (zh) 车载一体虚拟化方法和装置
CN102402453B (zh) 一种面向mips平台的系统虚拟机
Guo et al. Microservices architecture based cloudware deployment platform for service computing
US20120167090A1 (en) Hypervisor for starting a virtual machine
US20160299773A1 (en) Live migration of virtual machines from/to host computers with graphics virtualization
CN102339229A (zh) 基于操作系统层的虚拟化方法
CN105184847A (zh) 3d游戏渲染引擎的渲染方法
CN102033745B (zh) 用于提供面向服务的用户界面集成总线的系统和方法
US20160299777A1 (en) Request processing using vm functions
WO2018120992A1 (zh) 一种窗口渲染方法及终端
CN103309800A (zh) 一种网页自动化测试方法和系统
CN113918195A (zh) 应用界面更新方法、装置、电子设备及可读存储介质
CN107368353A (zh) 一种实现虚拟机内存热添加的方法和装置
DE112018007634T5 (de) Vorrichtung und verfahren für eine virtualisierte anzeige
CN106020905A (zh) 一种微控制器固件开发与更新的方法及系统
CN106201653A (zh) 一种vmware虚拟机转kvm虚拟机的方法
CN111352627B (zh) 一种页面骨架屏生成方法、装置、设备及可读存储介质
KR20060085853A (ko) 자바 응용 프로그램의 룩을 실시간으로 전환하는 장치 및방법
CN103473113A (zh) 一种通用的虚拟机收养方法
US10733687B2 (en) Method and apparatus for data communication in virtualized environment, and processor
CN104423933A (zh) 一种云平台用户界面适配方法及适配器
CN110851123A (zh) 基于SpringMVC的WebGIS电网可视化框架的构建方法、系统及装置
CN109240673B (zh) 一种基于react-native的视图动态加载更新方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant