CN110908762B - 一种动态壁纸实现方法及设备 - Google Patents
一种动态壁纸实现方法及设备 Download PDFInfo
- Publication number
- CN110908762B CN110908762B CN201911171567.4A CN201911171567A CN110908762B CN 110908762 B CN110908762 B CN 110908762B CN 201911171567 A CN201911171567 A CN 201911171567A CN 110908762 B CN110908762 B CN 110908762B
- Authority
- CN
- China
- Prior art keywords
- display
- images
- frame
- buffer space
- frames
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000015654 memory Effects 0.000 claims abstract description 123
- 238000012545 processing Methods 0.000 claims abstract description 35
- 230000004044 response Effects 0.000 claims abstract description 6
- 238000010586 diagram Methods 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 13
- 230000000903 blocking effect Effects 0.000 abstract description 9
- 230000000694 effects Effects 0.000 description 26
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 239000000463 material Substances 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本申请公开了一种动态壁纸实现方法及设备,该方法包括:检测到用户设置动态壁纸的操作;响应于该操作,在显示屏上显示该动态壁纸;其中,动态壁纸是根据动态壁纸对应的配置文件和N帧图像对应的纹理数据绘制而成的,该配置文件加载于缓冲空间,配置文件包括N帧图像的尺寸信息、显示位置信息和显示顺序信息,显示顺序信息用于指示N帧图像在显示屏上的显示顺序,显示位置信息表示每帧图像在显示屏上的显示区域;上述N帧图像对应的纹理数据是在缓冲空间对该N帧图像进行处理获得的并存储到原生内存Native中;N为大于等于2的整数。本申请能够节省应用堆内存的占用,避免了内存溢出导致的动态壁纸显示卡顿。
Description
技术领域
本申请涉及计算机应用领域,尤其涉及一种动态壁纸实现方法及设备。
背景技术
随着移动终端设备的飞速发展,人们对个人终端的桌面壁纸显示也越来越追求个性化和酷炫化。越来越多的用户会给自己手持终端的桌面界面设置精挑细选的动态壁纸。
目前,动态壁纸常采用序列帧动画来实现,即通过连续多张含有关键动作的壁纸播放来表征动态壁纸的动态过程,这种方式简单、灵活,能实现多种不规则的轨迹动画,如花瓣飘落、人物表情变化等。但序列帧中的每一帧都是一张图像,动态壁纸的动画越细腻,对应的帧数也越多,再加上每一帧的像素分辨率较高,导致终端设备中的应用堆内存占用消耗大,很容易出现应用程序内存溢出导致的画面卡顿、程序崩溃等问题。
发明内容
本申请实施例公开了一种动态壁纸实现方法及设备,能够降低对终端设备的应用堆内存的占用,避免内存溢出导致的动态壁纸显示卡顿、程序崩溃等问题,提升用户使用体验。
第一方面,本申请实施例提供了一种动态壁纸实现方法,所述方法包括:响应于动态壁纸的应用事件,从存储空间获取所述动态壁纸对应的配置文件和N帧图像,N为大于等于2的整数;所述配置文件包括所述N帧图像的尺寸信息、显示位置信息和显示顺序信息,所述显示顺序信息用于指示所述N帧图像在显示屏上的显示顺序;所述显示位置信息表示每帧图像在所述显示屏上的显示区域;将所述N帧图像加载到缓冲空间,所述缓冲空间位于应用堆内存;对所述缓冲空间中的N帧图像进行处理,获得各帧图像对应的纹理数据,并将所述纹理数据存储到原生内存Native中,以及释放所述缓冲空间;将所述配置文件加载到所述缓冲空间;根据所述配置文件和所述各帧图像对应的纹理数据在所述显示屏上显示所述动态壁纸。
可以看出,实施本申请实施例,将加载到缓冲空间中动态壁纸的多帧图像进行处理得到对应的纹理数据,并将其存储到原始内存Native中,一方面提高了动态壁纸的绘制速率,另一方面节省了终端设备的应用堆内存的占用,同时对缓冲空间采用边加载边释放的策略实现了应用堆内存的优化,避免了内存溢出导致的动态壁纸卡顿、程序崩溃等问题,提升用户使用体验。
基于第一方面,在可能的实施例中,所述对所述缓冲空间中的N帧图像进行处理,获得各帧图像对应的纹理数据,包括:对所述N帧图像进行基于开放图形库OpenGL的纹理处理,以获得各帧图像对应的纹理数据。
通过将原始图像转换为其对应的纹理数据来表示,纹理数据是图像数据的另一种存储形式,可以直接被GPU识别进行后续动态壁纸的绘制,无需使原始图像解压,提高了动态壁纸的绘制效率。
基于第一方面,在可能的实施例中,所述缓冲空间的存储量由所述应用堆内存确定;所述将所述N帧图像加载到缓冲空间之前,还包括:根据所述尺寸信息计算所述N帧图像的数据总量;相应的,所述将所述N帧图像加载到缓冲空间,包括:在所述N帧图像的数据总量小于所述缓冲空间的存储量时,将所述N帧图像一次加载到所述缓冲空间中。
基于第一方面,在可能的实施例中,所述将所述N帧图像加载到缓冲空间,包括:在所述N帧图像的数据总量大于等于所述缓冲空间的存储量时,将所述N帧图像分多次加载到所述缓冲空间中,且每次加载的图像的数据总量小于等于所述缓冲空间的存储量,所述每次加载的图像包括至少一帧图像;相应的,所述对所述缓冲空间中的N帧图像进行处理,获得各帧图像对应的纹理数据,并将所述纹理数据存储到原生内存Native中,以及释放所述缓冲空间,包括:对所述每次加载的图像进行处理,获得所述每次加载的图像对应的纹理数据,并将所述每次加载的图像对应的纹理数据存储到所述原生内存Native中,以及释放所述缓冲空间。
可以理解,在应用堆内存中缓冲空间较小时,采用边加载处理边释放的方式实现将加载到缓冲空间中的图像以纹理数据的方式转移存储到原始内存Native中,节省了应用堆内存的占用,实现了应用堆内存的优化。
基于第一方面,在可能的实施例中,所述N帧图像包括用于表征所述动态壁纸的动态变化的N帧区域图,所述N帧区域图对应于所述显示屏的K个不同的显示区域,每个显示区域表示所述显示屏的一部分区域,所述每个显示区域至少对应两帧区域图;N大于等于2K,K为大于等于1的整数。
在另一种可能的实施例中,所述N帧图像包括1帧用于表征所述动态壁纸的背景的静止图和用于表征动态壁纸的动态变化的N-1帧区域图,所述N-1帧区域图对应于显示屏的K个不同的显示区域,每个显示区域表示所述显示屏的一部分区域,每个显示区域至少对应两帧区域图;所述背景图对应所述显示屏的一部分或全部区域;N-1大于等于2K,K为大于等于1的整数。
通过对动态壁纸进行序列帧拆分,即通过显示屏上位于几个不同区域的图像帧代替整个显示屏大小的图像帧来实现壁纸的动态效果显示,一方面,减小了动态壁纸中所有图像帧所占的数据总量,另一方面,可以实现显示屏上动画的灵活配置。
基于第一方面,在可能的实施例中,所述显示顺序信息具体用于指示所述各个显示区域对应的区域图在所述显示屏上的显示顺序;所述根据所述配置文件和所述各帧图像对应的纹理数据在所述显示屏上显示所述动态壁纸,包括:在各个所述显示区域,以所述各个显示区域对应的区域图在所述显示屏上的显示顺序,将所述各帧区域图对应的纹理数据绘制到所述显示屏,以实现显示所述动态壁纸。
在另一种可能的实施例中,所述显示顺序信息具体用于指示所述各个显示区域对应的区域图在显示屏上的显示顺序;所述根据所述配置文件和所述各帧图像对应的纹理数据在显示屏上显示所述动态壁纸,包括:在所述显示屏显示所述背景图,以及,在各个所述显示区域,以所述各个显示区域对应的区域图在显示屏上的显示顺序,将所述各帧区域图对应的纹理数据显示到所述显示屏,以实现显示所述动态壁纸。
可以理解,结合显示屏上的各个显示区域内对应的多帧序列帧图像的显示顺序以及显示位置信息,即可将序列帧图像对应的纹理数据绘制到对应的显示区域实现动态壁纸的显示,从而实现了显示屏上动画的灵活配置。
第二方面,本申请实施例提供了一种动态壁纸实现方法,其特征在于,所述方法包括:检测到用户设置动态壁纸的操作;响应于所述操作,在显示屏上显示所述动态壁纸;其中,所述动态壁纸是根据所述动态壁纸对应的配置文件和N帧图像对应的纹理数据绘制而成的,所述配置文件加载于缓冲空间,所述配置文件包括所述N帧图像的尺寸信息、显示位置信息和显示顺序信息,所述显示顺序信息用于指示所述N帧图像在所述显示屏上的显示顺序,所述显示位置信息表示每帧图像在所述显示屏上的显示区域;所述N帧图像对应的纹理数据是在所述缓冲空间对所述N帧图像进行处理获得的并存储到原生内存Native中;N为大于等于2的整数。
基于第二方面,在可能的实施例中,所述处理过程包括:对所述N帧图像进行基于开放图形库OpenGL的纹理处理,以获得各帧图像对应的纹理数据。
基于第二方面,在可能的实施例中,所述缓冲空间的存储量由所述应用堆内存确定;所述将所述N帧图像加载到缓冲空间之前,还包括:根据所述尺寸信息计算所述N帧图像的数据总量;相应地,所述N帧图像加载于所述缓冲空间包括:在所述N帧图像的数据总量小于所述缓冲空间的存储量时,将所述N帧图像一次加载到所述缓冲空间中。
基于第二方面,在可能的实施例中,所述N帧图像加载于所述缓冲空间包括:在所述N帧图像的数据总量大于等于所述缓冲空间的存储量时,将所述N帧图像分多次加载到所述缓冲空间中,且每次加载的图像的数据总量小于等于所述缓冲空间的存储量,所述每次加载的图像包括至少一帧图像;相应的,所述处理过程包括:对所述每次加载的图像进行处理,获得所述每次加载的图像对应的纹理数据,并将所述每次加载的图像对应的纹理数据存储到所述原生内存Native中,以及释放所述缓冲空间。
基于第二方面,在可能的实施例中,所述N帧图像包括用于表征所述动态壁纸的动态变化的N帧区域图,所述N帧区域图对应于所述显示屏的K个不同的显示区域,每个显示区域表示所述显示屏的一部分区域,所述每个显示区域至少对应两帧区域图;N大于等于2K,K为大于等于1的整数。
在另一种可能的实施例中,所述显示顺序信息具体用于指示所述各个显示区域对应的区域图在显示屏上的显示顺序;所述根据所述配置文件和所述各帧图像对应的纹理数据在显示屏上显示所述动态壁纸,包括:在所述显示屏显示所述背景图,以及,在各个所述显示区域,以所述各个显示区域对应的区域图在显示屏上的显示顺序,将所述各帧区域图对应的纹理数据显示到所述显示屏,以实现显示所述动态壁纸。
基于第二方面,在可能的实施例中,所述显示顺序信息具体用于指示所述各个显示区域对应的区域图在所述显示屏上的显示顺序;所述绘制过程包括:在各个所述显示区域,以所述各个显示区域对应的区域图在所述显示屏上的显示顺序,将所述各帧区域图对应的纹理数据绘制到所述显示屏,以实现显示所述动态壁纸。
在另一种可能的实施例中,所述显示顺序信息具体用于指示所述各个显示区域对应的区域图在显示屏上的显示顺序;所述绘制过程包括:在所述显示屏显示所述背景图,以及,在各个所述显示区域,以所述各个显示区域对应的区域图在显示屏上的显示顺序,将所述各帧区域图对应的纹理数据显示到所述显示屏,以实现显示所述动态壁纸。
第三方面,本申请实施例提供了一种显示动态壁纸的设备,所述设备包括:
获取模块,用于响应于动态壁纸的应用事件,从存储空间获取所述动态壁纸对应的配置文件和N帧图像,N为大于等于2的整数;所述配置文件包括所述N帧图像的尺寸信息、显示位置信息和显示顺序信息,所述显示顺序信息用于指示所述N帧图像在显示屏上的显示顺序;所述显示位置信息表示每帧图像在所述显示屏上的显示区域;
加载模块,用于将所述N帧图像加载到缓冲空间,所述缓冲空间位于所述应用堆内存;所述加载模块,还用于将所述配置文件加载到所述缓冲空间;
操作模块,用于对所述缓冲空间中的N帧图像进行处理,获得各帧图像对应的纹理数据,并将所述纹理数据存储到原生内存Native中,以及释放所述缓冲空间;
显示模块,用于根据所述配置文件和所述各帧图像对应的纹理数据在所述显示屏上显示所述动态壁纸。基于第三方面,在可能的实施例中,所述操作模块具体用于:对所述N帧图像进行基于开放图形库OpenGL的纹理处理,以获得各帧图像对应的纹理数据。
基于第三方面,在可能的实施例中,所述加载模块还用于:根据所述尺寸信息计算所述N帧图像的数据总量;在所述N帧图像的数据总量小于所述缓冲空间的存储量时,所述加载模块具体用于:将所述N帧图像一次加载到所述缓冲空间中。
基于第三方面,在可能的实施例中,所述加载模块具体用于:在所述N帧图像的数据总量大于等于所述缓冲空间的存储量时,将所述N帧图像分多次加载到所述缓冲空间中,且每次加载的图像的数据总量小于等于所述缓冲空间的存储量,所述每次加载的图像包括至少一帧图像;所述操作模块具体用于:对所述每次加载的图像进行处理,获得所述每次加载的图像对应的纹理数据,并将所述每次加载的图像对应的纹理数据存储到所述原始内存Native中,以及释放所述缓冲空间。
基于第三方面,在可能的实施例中,所述N帧图像包括用于表征所述动态壁纸的动态变化的N帧区域图,所述N帧区域图对应于所述显示屏的K个不同的显示区域,每个显示区域表示所述显示屏的一部分区域,所述每个显示区域至少对应两帧区域图;N大于等于2K,K为大于等于1的整数。
在另一种可能的实施例中,所述N帧图像包括1帧用于表征所述动态壁纸的背景的静止图和用于表征动态壁纸的动态变化的N-1帧区域图,所述N-1帧区域图对应于显示屏的K个不同的显示区域,每个显示区域表示所述显示屏的一部分区域,每个显示区域至少对应两帧区域图;所述背景图对应所述显示屏的一部分或全部区域;N-1大于等于2K,K为大于等于1的整数。
基于第三方面,在可能的实施例中,所述显示顺序信息具体用于指示所述各个显示区域对应的区域图在所述显示屏上的显示顺序;所述显示模块具体用于:在各个所述显示区域,以所述各个显示区域对应的区域图在所述显示屏上的显示顺序,将所述各帧区域图对应的纹理数据绘制到所述显示屏,以实现显示所述动态壁纸。
在另一种可能的实施例中,所述显示顺序信息具体用于指示所述各个显示区域对应的区域图在所述显示屏上的显示顺序;所述显示模块具体用于:在所述显示屏显示所述背景图,以及,在各个所述显示区域,以所述各个显示区域对应的区域图在显示屏上的显示顺序,将所述各帧区域图对应的纹理数据显示到所述显示屏,以实现显示所述动态壁纸。
第四方面,本申请实施例提供一种显示动态壁纸的设备,所述设备包括:显示屏;一个或多个处理器;存储器;一个或多个应用程序;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当指令被设备执行时,使得设备执行上述任一方面任一项可能的实现方式中的方法。
需要说明的是,在本申请中电子设备具有显示屏,显示屏可以是触摸屏、柔性屏、曲面屏或者其它形式的屏幕,电子设备的显示屏具有显示图像的功能,至于显示屏的具体材质以及形状本申请对此不作任何限定。
第五方面,本申请提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行第一方面或第一方面的任一可能的实现方式中的方法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面或第一方面的任一可能的实现方式中的方法。
第六方面,本申请提供一种计算机可读存储介质,所述计算机可读介质存储用于设备执行的程序代码,所述程序代码包括用于执行第一方面或者第一方面的任一可能的实现方式中的方法的指令。
第七方面,本申请提供一种计算机可读存储介质,所述计算机可读介质存储用于设备执行的程序代码,所述程序代码包括用于执行第二方面或者第二方面的任一可能的实现方式中的方法的指令。
第八方面,本申请实施例提供了一种计算机软件产品,该计算机程序软件产品包括程序指令,当该计算机软件产品被设备执行时,该设备执行前述第一方面所述方法。该计算机软件产品可以为一个软件安装包,在需要使用前述第一方面的任一种可能的设计提供的方法的情况下,可以下载该计算机软件产品并在设备上执行该计算机软件产品,以实现第一方面所述方法。
第九方面,本申请实施例提供了一种计算机软件产品,该计算机程序软件产品包括程序指令,当该计算机软件产品被设备执行时,该设备执行前述第二方面所述方法。该计算机软件产品可以为一个软件安装包,在需要使用前述第二方面的任一种可能的设计提供的方法的情况下,可以下载该计算机软件产品并在设备上执行该计算机软件产品,以实现第二方面所述方法。
可以看到,实施本申请实施例,通过对加载到缓冲空间的动态壁纸图像进行纹理处理得到图像对应的纹理数据,并将其存储到Native中,最后根据获得纹理数据和预设设置的配置信息将动态壁纸绘制到显示屏的对应区域。利用纹理数据进行壁纸绘制提高了动态壁纸的绘制速率,将原始图像数据以纹理数据的方式转存于原始内存Native中并结合动态壁纸的区域化显示,节省了终端设备的应用堆内存的占用,避免了内存溢出导致的动态壁纸卡顿。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图;
图1是本申请实施例提供的一种用于显示动态壁纸的设备的结构示意图;
图2是本申请实施例提供的一种动态壁纸实现方法的流程示意图;
图3是本申请实施例提供的一种显示屏上的动态壁纸显示区域划分的示意图;
图4是本申请实施例提供的一种应用场景中动态壁纸的实现方法的流程示意图;
图5是本申请实施例提供的一种实现动态壁纸的效果图;
图6是本申请实施例提供的又一种实现动态壁纸的效果图;
图7是本申请实施例提供的一种设备的处理器的功能结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
需要说明的是,在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
目前,越来越多的用户追求手持终端显示屏上的动态壁壁纸的个性化设置,往往偏向于选择动态效果酷炫、细腻的动态壁纸,但动态效果越是酷炫、细腻的动态壁纸,其包含的序列帧图像的数量越多,另外,再加上屏幕的分辨率越来越高,使用整个屏幕大小的帧图像进行动画显示,会导致过度消耗应用堆内存的存储空间,容易出现应用堆内存溢出导致动态壁纸的画面卡顿。为了解决此问题,本申请提出了一种动态壁纸实现方法,能够节省终端设备中应用堆内存的占用,避免了内存溢出导致的动态壁纸显示卡顿的问题,同时还能实现动态壁纸在显示屏上的灵活配置。
参见图1,图1是本申请实施例提供的一种用于显示动态壁纸的设备的结构示意图,所述设备200至少包括:显示屏214、处理器211、存储器215、时钟模块212和供电模块213。
其中,
显示屏214可以是触摸屏、柔性屏、曲面屏或者其它形式的屏幕,其具有显示图像的功能,至于显示屏的具体材质以及形状本申请对此不作任何限定。
时钟模块212主要用于为处理器器211产生数据传输和时序控制所需要的时钟,供电模块主要用于为处理器211以及设备内的其他部件提供稳定的、高精确度的电压。
处理器211可以由多个通用处理器构成,例如中央处理器(Central ProcessingUnit,CPU),图像处理器(Graphics Processing Unit,GPU)和硬件芯片的组合。上述硬件芯片可以是专用集成电路(Application-Specific Integrated Circuit,ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)、现场可编程逻辑门阵列(Field-Programmable Gate Array,FPGA)、通用阵列逻辑(Generic Array Logic,GAL)或其任意组合。
存储器215包括易失性存储器(Volatile Memory)和非易失性存储器(Non-Volatile Memory),其中,易失性存储器可以是随机存取存储器(Random Access Memory,RAM),有时也可以将易失性存储器称为内存,可用于分配其中的几个部分作为应用堆内存和原生内存Native,且应用堆内存中还可以划分一部分作为缓冲空间,值得注意的是,一方面,应用堆内存的存储量是受到系统严格控制的,而原生内存Native的存储量没有限制,另一方面,应用堆内存直接受Java虚拟机管理,而原生内存Native直接受操作系统管理;非易失性存储器,可以是只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器215中可以存储程序代码以及程序数据,其中,程序代码包括:图像解压代码、图像数据转换代码、图像绘制代码等;程序数据包括:壁纸的图像数据、图像对应的纹理数据、配置文件数据等。
本申请具体实施例中,所述处理器211可用于调用存储器215中的程序指令和程序数据,以实现下文所描述的动态壁纸的实现方法,为了说明书的简洁,这里不赘述。
参见图2,基于上文所描述的用于显示动态壁纸的设备,下面描述本申请实施例提供的一种动态壁纸实现方法,该方法包括但不限于以下步骤:
S101、检测到用户设置动态壁纸的操作,响应于该操作,获取存储空间中动态壁纸对应的配置文件和N帧图像。
本申请实施例中,设备检测到用户设置动态壁纸的操作,则从存储空间中预设的动态壁纸的默认文件下载路径中获取所述动态壁纸压缩包,并对其进行解压获得动态壁纸压缩包中对应的配置文件和所述N帧图像,N为大于等于2的整数。其中,配置文件包括上述N帧图像的尺寸信息、显示位置信息和显示顺序信息。
举例来说,用户为自己的手机设置动态壁纸,进入到手机中的“主题”软件,点击了“应用”某一目标动态壁纸后,该动态壁纸被下载到手机中的默认存储路径,比如:本地文件夹“Themes”的“Wallpapers”,手机响应于该“应用”操作,从本地文件夹“Themes”的“Wallpapers”中找到目标动态壁纸对应的动态壁纸压缩包并对其进行解压,从而获得目标动态壁纸的相关配置文件和多帧图像。
需要说明的是,配置文件中的显示顺序信息用于指示动态壁纸压缩包中N帧图像在显示屏上的显示顺序,配置文件中的显示位置信息用于表示上述N帧图像中的每帧图像在显示屏上的显示区域。
具体实施中,动态壁纸压缩包中的N帧图像可以是表征对应动态壁纸的动态变化的N帧区域图,且N帧区域图属于显示屏上的K个不同的显示区域,每个显示区域都属于显示屏的一部分区域,属于每个显示区域的区域图至少有两帧才能显示出对应显示区域壁纸的动态变化,因此,易得出,N大于等于2K,其中,K为大于等于1的整数。
举例来说,如图3所示,图3是本申请实施例提供的一种显示屏上的动态壁纸显示区域划分的示意图,(1)中的显示屏上的两个矩形框表示动态壁纸的显示区域有两个,为了能显示清楚用虚线框对其进行了标示,分别位于显示屏的顶部和底部,(2)中的显示屏上有3个动态壁纸的显示区域,且这三个显示区域铺满了整个显示屏,(3)有两个显示区域,与(1)、(2)不同的是这两个显示区域的在显示屏上是竖向分布的。可以理解,K个不同的显示区域可以横向分布也可以竖向分布,每个显示区域整个显示屏区域的一部分,每个显示区域用于显示该区域对应的多帧动态壁纸,不同显示区域的区域大小可以相同也可以不同,K个显示区域可以构成整个显示屏的部分或者全部显示区域。
可以理解,当动态壁纸压缩包中的N帧图像为属于显示屏上不同显示区域的区域图时,配置文件中的显示位置信息为各区域图对应在显示屏上显示区域的位置信息,且属于显示屏上同一显示区域的区域图的显示位置信息相同;配置文件中的显示顺序信息指示各个显示区域对应的区域图在显示屏上的显示顺序。
可以看出,通过将动态壁纸的多帧区域的图像表示动态壁纸的变化效果,相较于以多帧与屏幕大小相同的整张图像表示动态壁纸的变化效果,大大节省了动态壁纸所占用的存储空间。
需要说明的是,配置文件和N帧图像都是设计人员预先设置和绘制好某一动态壁纸后,将所有信息压缩生成对应的动态壁纸压缩包,并将获得的动态壁纸压缩包上传到设备中的主题商店,以供用户在设备连网的状态下下载该动态壁纸并应用于设备。
S102、将N帧图像加载到缓冲空间。
本申请实施例中,设备读取存储空间中的N帧图像并将其加载到缓冲空间中,该缓冲空间属于应用堆内存的一部分。设备在加载动画资源到缓冲空间之前,会先根据配置文件中的尺寸信息计算N帧图像的数据总量,比较N帧图像的数据总量与缓冲空间的存储量的大小获得比较结果,根据获得的比较结果选择对应的加载方式。
需要说明的是,缓冲空间的存储量是由应用堆内存的大小决定的。当设备从文件中加载动画资源到内存时,取当前空闲的应用堆内存大小的预设比例对应的一部分作为加载动画资源的缓冲空间,预设比例的设置是为了确保应用堆内存的占用维持在一个合理范围。应用堆内存,是区别于栈区、全局数据区和代码区的另一个内存区域,允许应用程序在运行时动态地申请某个大小的内存空间,常通过malloc()的方式分配获得。
本申请的一种实施例中,在N帧图像的数据总量小于缓冲空间的存储量时,设备将N帧图像一次加载到缓冲空间。举例来说,缓冲空间的存储量为10M,假设动态壁纸包括6帧图像,且每帧图像的大小为1M,则6帧图像的数据总量为6M,小于缓冲空间的存储量为10M,因此,设备可将6帧图像一次加载到缓冲空间中。
本申请的又一种实施例中,在N帧图像的数据总量大于等于缓冲空间的存储量时,设备将N帧图像分多次加载到缓冲空间中,且每次加载的图像的数据总量小于等于所述缓冲空间的存储量,每次加载的图像包括至少一帧图像。
举例来说,缓冲空间的存储量为2M,假设动态壁纸包括6帧图像,且每帧图像的大小为1M,则6帧图像的数据总量为6M,大于缓冲空间的存储量为2M,因此,设备可将6帧图像分三次加载到缓冲空间,每次可以加载2帧图像,2帧图像加载后完成相应处理后,立即释放缓冲空间,然后继续加载后续2帧图像,如此反复,直到完成三次加载以使6帧图像完成所有加载。
需要说明的是,本申请对动态壁纸压缩包中的图像加载到缓冲空间中的方式不做具体限定。
S103、对所述缓冲空间的N帧图像进行处理,获得各帧图像对应的纹理数据,并将所述纹理数据存储到原生内存Native中,以及释放所述缓冲空间。
本申请实施例中,可以采用基于开放图像库OpenGL的纹理处理技术对加载到缓冲空间中的各帧图像进行纹理处理,以获得各帧图像对应的纹理数据,并将该纹理数据存储到对应的原生内存Native中,接着释放缓冲空间中对应的图像数据。
需要说明的是,开放图像库(Open Graphics Library,OpenGL),是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(Application Programming Interface,API),其实际上是一个开放的三维图形软件包,独立于窗口系统和操作系统,其具有建模、变换、颜色模式设置、光照和材质设置、位图显示和增强、纹理映射等功能。
值得注意的是,在Java虚拟机(Java Virtual Machine,JVM)使用的内存中,应用堆内存消耗的部分最多,会影响应用程序的运行速率,消耗过大易出现应用堆内存溢出现象,导致画面卡顿甚至程序崩溃,因此,JVM也会为内部操作分配一些内存,这些内存就叫做原生内存。原生内存(Native Memory)也叫堆外内存,应用中可以通过Java本地接口(JavaNative Interface,JNI)的malloc()类似的方法或者是使用NIO(New IO)的API分配方式获得。本申请通过采用OpenGL纹理技术对缓冲空间的图像进行处理,从而将存储于应用堆内存中的图像数据以纹理数据的形式转存于原始内存Native中,并释放缓冲空间,实现了应用堆内存的优化,节省了应用堆内存的占用消耗。
需要说明的是,采用OpenGL纹理技术根据纹理坐标系将图像数据转换为保存图像颜色的元素值的为纹理数据,且纹理数据存储于原始内存Native中,纹理数据是图像数据的另一种存储形式,其包含的有图像的宽度、高度、纹理坐标、数据元素的颜色布局等。对于图像数据来说,其存储于磁盘或者内存中,并不能被GPU所识别,需要在加载后经过CPU解压成位图bitmap再传送到GPU进行使用,但纹理数据是能被GPU所识别的像素格式,能被快速寻址采样,使得图像无需解压即可进行绘制,节约了大量的内存。
本申请实施例中,无论步骤S102加载N帧图像的方式是一次加载完所有图像还是分多次对N帧图像进行加载,设备都是对加载到缓冲空间的图像进行纹理处理获得图像对应的纹理数据并将纹理数据转存到原生内存Native中,完成此操作后会立即释放缓冲空间,以减少应用堆内存的占用。
S104、将配置文件加载到缓冲空间,根据配置文件和各帧图像对应的纹理数据在显示屏上显示动态壁纸。
本申请实施例中,设备在显示屏上根据纹理数据显示动态壁纸之前,需要先将存储空间中的配置文件加载到缓冲空间获得N帧图形对应的显示位置信息、尺寸信息以及显示顺序信息,根据显示位置信息,以各个显示区域对应的区域图在显示屏上的显示顺序,将各帧区域图对应的纹理数据绘制到显示屏上,以实现所述动态壁纸。
可以理解,上述中的显示屏可以是触摸屏、柔性屏、曲面屏或者其它形式的屏幕,设备的显示屏具有显示图像的功能,至于显示屏的具体材质以及形状本申请对此不作任何限定。
具体地,设备中的图像处理器GPU(Graphics Processing Unit)获得原始内存Native中的纹理数据以及缓冲空间中的配置文件,并根据获得的纹理数据分别进行坐标转换、顶点着色、曲面细分、图形缩放以及片元融合等步骤,将动态壁纸的多帧图像绘制到显示屏上的各个显示区域。可以理解,上述GPU将图像显示屏上进行绘制的方法在计算机视觉领域已经非常成熟且被广泛使用,本申请在此不再赘述。
需要说明的是,显示屏上的每个显示区域在每个时刻仅绘制一帧图像,显示屏上的每个显示区域的尺寸信息可能与对应的区域图的尺寸信息不同,设备可根据用户需求将显示区域对应的区域图进行缩放显示。
举例来说,显示区域对应的区域图的尺寸小于或等于显示屏上划分的对应显示区域的尺寸时,可以采用上采样或者线性差值的方法对原始区域图进行放大处理,以使放大后的区域图占满其对应的显示区域进行显示,当然,在这种情况下,也可以不采用放大处理,直接按照区域图的原尺寸在对应的显示区域进行显示。
举例来说,显示区域对应的区域图的尺寸大于显示屏上划分的对应显示区域的尺寸时,可以采用下采样或者降采样的方法对原始区域图进行缩小处理,使缩小后的区域图的尺寸小于或等于对应的显示区域的尺寸,并将缩小后的区域图显示在对应的显示区域。
可以看出,实施本申请实施例,通过对加载到缓冲空间的动态壁纸图像进行纹理处理得到图像对应的纹理数据,并将其存储到原始内存Native中,最后根据获得纹理数据和预设设置的配置信息将动态壁纸绘制到显示屏的对应区域。利用纹理数据进行绘制提高了动态壁纸的绘制速率,将原始图像数据通过纹理数据的方式转存于原始内存中并结合动态壁纸的区域化显示,节省了终端设备的应用堆内存的占用,避免了内存溢出导致的动态壁纸画面卡顿。
下面结合图4对本申请实施例的动态壁纸实现方法进行介绍。动态壁纸在设备的显示屏上显示,该设备是具有图像显示功能的电子设备,该电子设备可以是移动终端(例如,智能手机),电脑,个人数字助理,可穿戴设备,车载设备,物联网设备或者其他能够进行图像显示的设备。
图4所示的方法包括步骤S401至步骤S402,下面对这些步骤进行描述。
S401、检测到用户设置动态壁纸的操作。
S402、响应于所述操作,在显示屏上显示动态壁纸。
本申请实施例中,用户在设备上输入设置动态壁纸的操作,该操作可以是对动态壁纸设置键的点击、滑动或者长按操作,例如,在选中的动态壁纸页面点击“应用”或者点击“设置为主屏幕”,可以理解,该操作是该动态壁纸显示于显示屏上的触发条件,本申请对设置动态壁纸的操作形式的具体方式不做限定。设备检测到该操作后,响应于该操作,将用户选择的动态壁纸显示在显示屏上。用户设置的动态壁纸的动态效果可以是花瓣飘落、树叶飘落、人物表情变化、星星闪烁、音符跳跃或者其他类型动态效果中的一种或多种,本申请不做具体限定。可以理解,用于显示动态壁纸的显示屏可以是触摸屏、柔性屏、曲面屏或者其它形式的屏幕,至于显示屏的具体材质以及形状本申请对此不作任何限定。
下面以一些应用场景对上述实施例中的方法进行说明。
参见图5,图5是本申请实施例提供的一种实现动态壁纸的效果图,以设备为用户的智能手机为例,设置动态壁纸的操作以点击操作为例,即用户在选中的动态壁纸页面点击“动态壁纸设置”中的“设为主屏幕”操作,退回到主页面后显示屏上即可显示该动态壁纸的动态效果。为了能清楚地说明动态壁纸中区域图所在的显示区域,在图5中用虚线框将显示屏上的各显示区域标示了出来。可以看到,显示屏上对应着有动态壁纸的两个显示区域,且每个显示区域都对应着3帧区域图来表征该区域的动态壁纸的动态效果,图5中的区域1表征了星星从左上到右下的动态效果,其在显示屏上的1区域出现的顺序依次为图右上角的1A、1B、1C,即表明区域1中星星从左上角变化到中间再到右下角;图5中的区域2表征了音符从下到上的动态效果,其在显示屏上的区域2出现的顺序依次为图右下角的2A、2B、2C。
可以理解,图5中,显示屏上的区域1和区域2中的图像显示可以是同时,即某一时刻图右上角的1A和右下角的2A分别出现在区域1、区域2中。当然,区域1和区域2中图像的显示在时间上还可以是一前一后、一后一前或者交替显示,对应着显示屏上某一时刻显示屏上各区域显示的动态壁纸的图像数量总和可以是一帧或多帧。
需要说明的是,针对显示屏上的每一个显示区域来说,同一显示区域的每帧区域图包含的对象可以是相同的,例如,图5中区域1中的3帧区域图,每帧都包括一个对象(即星星),唯一不同的是星星在区域1中出现的位置;当然,同一显示区域的每帧区域图包含的对象可以是不同的,对象类别和同一对象的数量可以增加也可以减少。例如,图5中区域2中的3帧区域图,易发现从2A、2B至2C,音符的类别和数量逐步增多,且音符的在区域图中的显示位置也在变化。
可以理解,针对显示屏上的不同显示区域来说,不同显示区域显示的区域图中包含的内容(即指对象类别和同一对象的数量)可以是不同的,也可以是相同的。举例来说,图5中区域1和区域2显示的区域图中的内容就是不同的,区域1表征的是星星的动态效果,而区域2表征的是音符的动态效果。在一种的可能的实施例中,区域1和区域2可以表征相同对象的动态效果,例如,音符。举例来说,区域1和区域2对应的区域图中的对象都是音符,那么可以分别在各自的显示区域显示音符的动态变化。在另一具体实施中,区域1和区域2可以合起来一起表征同一音符的动态变化效果,即可以使音符从图5中屏幕的区域2(右下角)变换到区域1(左上角),也可以使音符从图5中屏幕的区域1(左上角)变换到区域2(右下角),本申请对动态壁纸的显示效果不做具体限定。
参见图6,图6是本申请实施例提供的又一种实现动态壁纸的效果图,以设备为用户的智能手机为例,用户在选中的动态壁纸页面点击“动态壁纸设置”中的“设为主屏幕”操作,退回到主页面后显示屏上即可显示该动态壁纸的动态效果。为了能清楚地说明动态壁纸中区域图所在的显示区域,在图6中用虚线框将显示屏上的各显示区域标示了出来。可以看到,显示屏上对应着有三个动态壁纸的显示区域,且区域1和区域2分别对应着三帧图像来表征动态壁纸的动画效果,区域3仅对应着一帧图像。假设第一时刻1A、2A、3A分别出现在显示屏中的区域1、区域2、区域3,第二时刻1B、2B分别出现在区域1、区域2,第三时刻1C、2C分别出现在区域1、区域2,若对应的绘制程序设置3A自第一时刻至第三时刻一直显示在区域3中,则3A的作用类似于一帧静态背景;若对应的绘制程序设置3A在整个动态壁纸的时间周期内仅于第一时刻显示在区域3中,则区域3中实现的动态效果即为3C在区域3中出现又消失。
可以理解,图6中显示屏上三个区域对应的区域图可以于同一时刻显示,例如:1A、2A、3A于同一时刻分别出现在屏幕上的区域1、区域2、区域3,当然,显示屏上的三个区域也可以在不同的时刻显示在其对应的区域中,例如:3A先显示在区域3,然后1A显示在区域1,最后2A显示在区域2,当然,也可以使3A先显示在区域3,1A、2A于同一时刻分别显示在区域1、区域2。本申请实施例对各显示区域的显示顺序不做具体限定。
需要说明的是,针对显示屏上同一显示区域的各帧区域图,每个区域图包含的对象以及对象的数量可以是相同的,也可以是不同的。例如,图6中的区域1表征同一对象星星的变化效果,每帧图中仅有星星的显示位置是不同的;图6中的区域2表征同一对象音符的变化效果,对于2A和2B,两者中除了音符的显示位置不同,音符的类别也不同,2B比2A多增加了一个音符类别,对于2B和2C,两者中虽音符的类别相同,但音符的显示位置不同。本申请对同一显示区域的区域图中包含的对象以及对象数量不做具体限定。
参见图7,本申请实施例提供的设备的处理器211进一步包括的功能模块有:获取模块201、加载模块202、操作模块203和显示模块204,处理器211被配置为执行存储于存储器215中的程序以及相关数据以实现处理器211中的上述功能模块中的功能。其中,
获取模块201,用于响应于动态壁纸的应用事件,从存储空间获取动态壁纸对应的配置文件和N帧图像,N为大于等于2的整数;其中,配置文件包括N帧图像的尺寸信息、显示位置信息和显示顺序信息,显示顺序信息用于指示N帧图像在显示屏上的显示顺序;显示位置信息表示每帧图像在显示屏上的显示区域。
加载模块202,用于将N帧图像加载到缓冲空间,缓冲空间位于所述应用堆内存;加载模块202,还用于将配置文件加载到缓冲空间。
操作模块203,用于对缓冲空间中的N帧图像进行处理,获得各帧图像对应的纹理数据,并将纹理数据存储到原生内存Native中,以及释放缓冲空间。
显示模块204,用于根据配置文件和各帧图像对应的纹理数据在显示屏上显示该动态壁纸。
处理器的各功能模块可用于实现如图2所示的方法。以图2中的实施例为例,获取模块201可用于执行步骤S101,加载模块202可用于执行步骤S102以及步骤S103中配置文件的加载过程,操作模块203可用于执行步骤S103,显示模块204可用于执行步骤S104,为了说明书的简洁,本申请在此不再赘述。
本申请实施例还提供了一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。
本申请实施例还提供了一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
需要说明的是,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random AccessMemory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
在上述的实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是个人计算机,服务器,或者网络设备、机器人、单片机、芯片、机器人等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本申请实施例公开的进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (14)
1.一种动态壁纸实现方法,其特征在于,所述方法包括:
响应于动态壁纸的应用事件,从存储空间获取所述动态壁纸对应的配置文件和N帧图像,N为大于等于2的整数;所述配置文件包括所述N帧图像的尺寸信息、显示位置信息和显示顺序信息,所述显示顺序信息用于指示所述N帧图像在显示屏上的显示顺序;所述显示位置信息表示每帧图像在所述显示屏上的显示区域;
将所述N帧图像加载到缓冲空间,所述缓冲空间位于应用堆内存;
对所述缓冲空间中的N帧图像进行处理,获得各帧图像对应的纹理数据,并将所述纹理数据存储到原生内存Native中,以及释放所述缓冲空间;
将所述配置文件加载到所述缓冲空间;
根据所述配置文件和所述各帧图像对应的纹理数据在所述显示屏上显示所述动态壁纸。
2.根据权利要求1所述的方法,其特征在于,所述对所述缓冲空间中的N帧图像进行处理,获得各帧图像对应的纹理数据,包括:
对所述N帧图像进行基于开放图形库OpenGL的纹理处理,以获得各帧图像对应的纹理数据。
3.根据权利要求2所述的方法,其特征在于,所述缓冲空间的存储量由所述应用堆内存确定;所述将所述N帧图像加载到缓冲空间之前,还包括:
根据所述尺寸信息计算所述N帧图像的数据总量;
相应的,所述将所述N帧图像加载到缓冲空间,包括:在所述N帧图像的数据总量小于所述缓冲空间的存储量时,将所述N帧图像一次加载到所述缓冲空间中。
4.根据权利要求3所述的方法,其特征在于,所述将所述N帧图像加载到缓冲空间,包括:
在所述N帧图像的数据总量大于等于所述缓冲空间的存储量时,将所述N帧图像分多次加载到所述缓冲空间中,且每次加载的图像的数据总量小于等于所述缓冲空间的存储量,所述每次加载的图像包括至少一帧图像;
所述对所述缓冲空间中的N帧图像进行处理,获得各帧图像对应的纹理数据,并将所述纹理数据存储到原生内存Native中,以及释放所述缓冲空间,包括:
对所述每次加载的图像进行处理,获得所述每次加载的图像对应的纹理数据,并将所述每次加载的图像对应的纹理数据存储到所述原生内存Native中,以及释放所述缓冲空间。
5.根据权利要求1所述的方法,其特征在于,所述N帧图像包括用于表征所述动态壁纸的动态变化的N帧区域图,所述N帧区域图对应于所述显示屏的K个不同的显示区域,每个显示区域表示所述显示屏的一部分区域,所述每个显示区域至少对应两帧区域图;N大于等于2K,K为大于等于1的整数。
6.根据权利要求5所述的方法,其特征在于,所述显示顺序信息具体用于指示所述各个显示区域对应的区域图在所述显示屏上的显示顺序;所述根据所述配置文件和所述各帧图像对应的纹理数据在所述显示屏上显示所述动态壁纸,包括:
在各个所述显示区域,以所述各个显示区域对应的区域图在所述显示屏上的显示顺序,将所述各帧区域图对应的纹理数据绘制到所述显示屏,以实现显示所述动态壁纸。
7.一种动态壁纸实现方法,其特征在于,所述方法包括:
检测到用户设置动态壁纸的操作;
响应于所述操作,在显示屏上显示所述动态壁纸;其中,所述动态壁纸是根据所述动态壁纸对应的配置文件和N帧图像对应的纹理数据绘制而成的,所述配置文件加载于缓冲空间,所述配置文件包括所述N帧图像的尺寸信息、显示位置信息和显示顺序信息,所述显示顺序信息用于指示所述N帧图像在所述显示屏上的显示顺序,所述显示位置信息表示每帧图像在所述显示屏上的显示区域;所述N帧图像对应的纹理数据是在所述缓冲空间对所述N帧图像进行处理获得的并存储到原生内存Native中;N为大于等于2的整数。
8.一种显示动态壁纸的设备,其特征在于,所述设备包括:
获取模块,用于响应于动态壁纸的应用事件,从存储空间获取所述动态壁纸对应的配置文件和N帧图像,N为大于等于2的整数;所述配置文件包括所述N帧图像的尺寸信息、显示位置信息和显示顺序信息,所述显示顺序信息用于指示所述N帧图像在显示屏上的显示顺序;所述显示位置信息表示每帧图像在所述显示屏上的显示区域;
加载模块,用于将所述N帧图像加载到缓冲空间,所述缓冲空间位于应用堆内存;所述加载模块,还用于将所述配置文件加载到所述缓冲空间;
操作模块,用于对所述缓冲空间中的N帧图像进行处理,获得各帧图像对应的纹理数据,并将所述纹理数据存储到原生内存Native中,以及释放所述缓冲空间;
显示模块,用于根据所述配置文件和所述各帧图像对应的纹理数据在所述显示屏上显示所述动态壁纸。
9.根据权利要求8所述的设备,其特征在于,所述操作模块具体用于:
对所述N帧图像进行基于开放图形库OpenGL的纹理处理,以获得各帧图像对应的纹理数据。
10.根据权利要求9所述的设备,其特征在于,所述缓冲空间的存储量由所述应用堆内存确定;
所述加载模块具体用于,根据所述尺寸信息计算所述N帧图像的数据总量;在所述N帧图像的数据总量小于所述缓冲空间的存储量时,将所述N帧图像一次加载到所述缓冲空间中。
11.根据权利要求10所述的设备,其特征在于,所述加载模块具体用于:在所述N帧图像的数据总量大于等于所述缓冲空间的存储量时,将所述N帧图像分多次加载到所述缓冲空间中,且每次加载的图像的数据总量小于等于所述缓冲空间的存储量,所述每次加载的图像包括至少一帧图像;
所述操作模块具体用于:对所述每次加载的图像进行处理,获得所述每次加载的图像对应的纹理数据,并将所述每次加载的图像对应的纹理数据存储到所述原生内存Native中,以及释放所述缓冲空间。
12.根据权利要求8所述的设备,其特征在于,所述N帧图像包括用于表征所述动态壁纸的动态变化的N帧区域图,所述N帧区域图对应于所述显示屏的K个不同的显示区域,每个显示区域表示所述显示屏的一部分区域,所述每个显示区域至少对应两帧区域图;N大于等于2K,K为大于等于1的整数。
13.根据权利要求12所述的设备,其特征在于,所述显示顺序信息具体用于指示所述各个显示区域对应的区域图在所述显示屏上的显示顺序;所述显示模块具体用于:
在各个所述显示区域,以所述各个显示区域对应的区域图在所述显示屏上的显示顺序,将所述各帧区域图对应的纹理数据绘制到所述显示屏,以实现显示所述动态壁纸。
14.一种显示动态壁纸的设备,其特征在于,所述设备包括:
显示屏;一个或多个处理器;存储器;一个或多个应用程序;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述设备执行时,使得所述设备执行如权利要求7所描述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911171567.4A CN110908762B (zh) | 2019-11-22 | 2019-11-22 | 一种动态壁纸实现方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911171567.4A CN110908762B (zh) | 2019-11-22 | 2019-11-22 | 一种动态壁纸实现方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110908762A CN110908762A (zh) | 2020-03-24 |
CN110908762B true CN110908762B (zh) | 2023-05-26 |
Family
ID=69819503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911171567.4A Active CN110908762B (zh) | 2019-11-22 | 2019-11-22 | 一种动态壁纸实现方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110908762B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475242B (zh) * | 2020-04-03 | 2024-03-19 | Oppo广东移动通信有限公司 | 设备控制方法、装置、存储介质及电子设备 |
CN114442973A (zh) * | 2020-11-04 | 2022-05-06 | 南方电网电动汽车服务有限公司 | 屏幕显示方法、装置、计算机设备和存储介质 |
CN112684965A (zh) * | 2020-12-28 | 2021-04-20 | 上海米哈游天命科技有限公司 | 动态壁纸状态变更方法、装置、电子设备及存储介质 |
CN113778624B (zh) * | 2021-08-27 | 2024-06-21 | 广州虎牙科技有限公司 | 对象的处理方法和装置、智能终端及存储介质 |
CN113687904B (zh) * | 2021-10-26 | 2022-02-08 | 成都中科合迅科技有限公司 | 基于配置文件的界面动态生成方法 |
CN116414328A (zh) * | 2022-01-05 | 2023-07-11 | 荣耀终端有限公司 | 动态壁纸的显示方法及相关设备 |
CN117724784A (zh) * | 2023-07-24 | 2024-03-19 | 荣耀终端有限公司 | 一种设置壁纸的方法及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126102A (zh) * | 2016-06-28 | 2016-11-16 | 乐视控股(北京)有限公司 | 移动终端多壁纸数据交互方法及装置 |
CN109218802A (zh) * | 2018-08-23 | 2019-01-15 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及计算机可读介质 |
CN110209460A (zh) * | 2019-06-10 | 2019-09-06 | Oppo广东移动通信有限公司 | 一种动态壁纸的实现方法、装置、存储介质及终端 |
-
2019
- 2019-11-22 CN CN201911171567.4A patent/CN110908762B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126102A (zh) * | 2016-06-28 | 2016-11-16 | 乐视控股(北京)有限公司 | 移动终端多壁纸数据交互方法及装置 |
CN109218802A (zh) * | 2018-08-23 | 2019-01-15 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及计算机可读介质 |
CN110209460A (zh) * | 2019-06-10 | 2019-09-06 | Oppo广东移动通信有限公司 | 一种动态壁纸的实现方法、装置、存储介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN110908762A (zh) | 2020-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110908762B (zh) | 一种动态壁纸实现方法及设备 | |
US11344806B2 (en) | Method for rendering game, and method, apparatus and device for generating game resource file | |
CN108010112B (zh) | 动画处理方法、装置及存储介质 | |
CN106611435B (zh) | 动画处理方法和装置 | |
CN107015788B (zh) | 在移动设备上动画展现图像的方法和装置 | |
EP3835931A1 (en) | Icon display method and apparatus, and terminal and storage medium | |
EP2756481B1 (en) | System and method for layering using tile-based renderers | |
CN112416346B (zh) | 界面配色方案的生成方法、装置、设备及存储介质 | |
CN110750664B (zh) | 图片的显示方法及装置 | |
CN111951356B (zh) | 基于json数据格式的动画渲染方法 | |
CN105550973B (zh) | 图形处理单元、图形处理系统及抗锯齿处理方法 | |
CN112764752A (zh) | 页面的展示方法和装置、存储介质、电子装置 | |
CN111221596A (zh) | 字体渲染方法、装置及计算机可读存储介质 | |
CN107179920A (zh) | 网络引擎启动方法及装置 | |
CN110599564A (zh) | 图像展示方法、装置、计算机设备和存储介质 | |
CN113538502A (zh) | 图片裁剪方法、装置、电子设备及存储介质 | |
CN113778604A (zh) | 一种操作界面的展示方法、装置、电子设备和存储介质 | |
CN113409411A (zh) | 图形界面的渲染方法、装置、电子设备及存储介质 | |
US9153193B2 (en) | Primitive rendering using a single primitive type | |
CN112991170B (zh) | 图像超分辨率重建的方法、装置、终端及存储介质 | |
CN112231029A (zh) | 应用于主题的帧动画处理方法 | |
CN113559498A (zh) | 三维模型展示方法、装置、存储介质及电子设备 | |
CN112579083B (zh) | 图像展示方法、装置、电子设备和存储介质 | |
KR101179644B1 (ko) | 2d 모바일 기기를 위한 3d 렌더러 장치 | |
CN113259712B (zh) | 一种视频处理方法和相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |