CN112035198A - 主页加载方法、电视和存储介质 - Google Patents
主页加载方法、电视和存储介质 Download PDFInfo
- Publication number
- CN112035198A CN112035198A CN202010809564.5A CN202010809564A CN112035198A CN 112035198 A CN112035198 A CN 112035198A CN 202010809564 A CN202010809564 A CN 202010809564A CN 112035198 A CN112035198 A CN 112035198A
- Authority
- CN
- China
- Prior art keywords
- page
- resource
- homepage
- picture
- resources
- 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.)
- Pending
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 57
- 238000003860 storage Methods 0.000 title claims abstract description 33
- 238000000034 method Methods 0.000 claims abstract description 67
- 230000008569 process Effects 0.000 claims abstract description 31
- 238000012163 sequencing technique Methods 0.000 claims abstract description 19
- 238000000605 extraction Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 11
- 230000000694 effects Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 208000003028 Stuttering Diseases 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013329 compounding Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种主页加载方法、电视和存储介质,所述方法包括:在软件启动的过程中,创建异步线程加载各页面的内容;获取所述各页面与预设页面的距离,以设定的方式执行多个所述距离的排序操作;控制所述异步线程根据所述排序操作加载所述各页面的内容。解决了用户操作主页时需要较长的等待时间的技术问题,达到了加快主页启动的技术效果。
Description
技术领域
本申请涉及页面优化技术领域,尤其涉及一种主页加载方法、电视和存储介质。
背景技术
主页作为互联网电视用户获取内容、应用的主要入口,因此,主页需要显示的内容比较多,另一方面也要求主页能够顺畅的展示、流畅的交互。UI线程在Android程序运行的时候就被创建,是Android应用的主线程,主要负责控制UI界面的显示,更新和控件交互。在Android程序创建之初,进程呈现的是单线程模型,所有的任务都在UI线程中运行,由于主页的需要加载内容比较多,如模块多,加载的图片多等,导致用户操作主页时需要较长的等待时间的问题。
发明内容
本申请实施例通过提供一种主页加载方法、电视和存储介质,旨在解决用户操作主页时需要较长的等待时间的问题。
为实现上述目的,本申请一方面提供一种主页加载方法,所述主页加载方法包括以下步骤:
在软件启动的过程中,创建异步线程加载各页面的内容;
获取所述各页面与预设页面的距离,以设定的方式执行多个所述距离的排序操作;
控制所述异步线程根据所述排序操作加载所述各页面的内容。
可选地,所述控制所述异步线程根据所述排序操作加载所述各页面的内容的步骤之后,包括:
在确定终端本地缓存中存在需要加载的资源时,检测所述资源是否需要更新;
若所述资源需要更新,则向服务器发送加载所述需要更新的资源的请求;
获取所述服务器根据所述请求发送的需要更新的资源,执行所述需要更新的资源的刷新操作,并将所述刷新操作得到的资源保存至所述终端本地。
可选地,所述控制所述异步线程根据所述排序操作加载所述各页面的内容的步骤之后,还包括:
在确定所述终端本地缓存中不存在所述需要加载的资源时,则向服务器发送加载所述主页资源的请求;
获取所述服务器根据所述请求发送的主页资源,执行所述主页资源的刷新操作,并将所述刷新操作得到的资源保存至所述终端本地。
可选地,所述执行所述需要更新的资源的刷新操作的步骤包括:
检测所述软件是否启动完毕以及各线程中是否存在预设执行的任务;
若所述软件启动完毕且所述各线程中不存在预设执行的任务,则确定所述各页面需要更新的资源的刷新时间;
根据所述刷新时间执行所述各页面需要更新的资源的刷新操作。
可选地,所述创建异步线程加载各页面的内容的步骤之前,还包括:
执行需要加载的系统服务的绑定操作,根据所述绑定操作发送广播信息至终端的应用,以使所述应用根据所述广播信息执行启动操作;
发送UI命令至各应用页面中的模块,以使所述模块根据所述UI命令执行UI绘制操作。
可选地,所述方法,还包括:
将所述各页面的图片资源下载至所述终端本地存储;
当首次加载所述各页面的图片资源时,从所述终端本地中获取所述各页面的图片资源,并将获取到的所述图片资源存储至预先建立的缓存列表中,所述缓存列表中的图片的引用方式为软引用。
可选地,所述将所述各页面的图片资源下载至所述终端本地存储的步骤之后,还包括:
当再次加载所述各页面的目标图片资源时,获取所述目标图片资源的地址以及所述地址对应的提取标识;
判断在所述缓存列表中是否查找到所述提取标识;
若查找到所述提取标识,则根据所述提取标识从所述缓存列表中获取需要加载的所述目标图片资源。
可选地,所述判断在所述缓存列表中是否查找到所述提取标识的步骤之后,还包括:
若未查找到所述提取标识,则根据所述目标图片资源的地址获取图片资源;
获取所述图片资源对应的目标图片,将所述目标图片存储至所述缓存列表中,并判断所述缓存列表当前占用的内存是否超过预设阈值;
若超过预设阈值,则按照设定的顺序删除所述图片,直至所述缓存列表占用的内存低于所述预设阈值。
此外,为实现上述目的,本申请另一方面还提供一种电视,所述电视包括存储器、处理器及存储在存储器上并在处理器上运行的主页加载程序,所述处理器执行所述主页加载程序时实现如上所述主页加载方法的步骤。
此外,为实现上述目的,本申请另一方面还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述主页加载方法的步骤。
在本实施例中,通过在软件启动的过程中,创建异步线程加载各页面的内容;获取所述各页面与预设页面的距离,以设定的方式执行多个所述距离的排序操作;控制所述异步线程根据所述排序操作加载所述各页面的内容。通过模拟用户的使用过程,合理安排异步线程的执行顺序,解决了用户操作主页时需要较长的等待时间的问题,达到了加快主页的启动的效果。
附图说明
图1为本申请实施例方案涉及的硬件运行环境的电视结构示意图;
图2为本申请主页加载方法第一实施例的流程示意图;
图3为本申请主页加载方法第二实施例的流程示意图;
图4为本申请主页加载方法第三实施例的流程示意图;
图5为本申请主页加载方法第四实施例的流程示意图;
图6为本申请主页加载方法中创建异步线程加载各页面的内容的步骤之前的流程示意图;
图7为本申请主页加载方法中控制所述异步线程根据所述排序操作加载所述各页面的内容的步骤之后的流程示意图;
图8为本申请主页加载方法中将所述各页面的图片资源下载至所述终端本地存储的步骤之后的流程示意图;
图9为本申请主页加载方法中判断在所述缓存列表中是否查找到所述提取标识的步骤之后的流程示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请实施例的主要解决方案是:在软件启动的过程中,创建异步线程加载各页面的内容;获取所述各页面与预设页面的距离,以设定的方式执行多个所述距离的排序操作;控制所述异步线程根据所述排序操作加载所述各页面的内容。
在Android程序创建之初,进程呈现的是单线程模型,所有的任务都在UI线程中运行,由于主页的需要加载内容比较多,如模块多,加载的图片多等,导致出现用户操作主页时需要较长的等待时间的问题。而本申请通过在软件启动的过程中,创建异步线程加载各页面的内容;获取所述各页面与预设页面的距离,以设定的方式执行多个所述距离的排序操作;控制所述异步线程根据所述排序操作加载所述各页面的内容。通过模拟用户的使用过程,合理安排异步线程的执行顺序,解决了用户操作主页时需要较长的等待时间的问题,达到了加快主页的启动的效果。
如图1所示,图1为本申请实施例方案涉及的硬件运行环境的电视结构示意图。
如图1所示,该电视可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,电视还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、遥控器、音频电路、WiFi模块、检测器等等。当然,所述电视还可配置陀螺仪、气压计、湿度计、温度传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的电视结构并不构成对电视设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及主页加载程序。
在图1所示的电视中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中主页加载程序,并执行以下操作:
在软件启动的过程中,创建异步线程加载各页面的内容;
获取所述各页面与预设页面的距离,以设定的方式执行多个所述距离的排序操作;
控制所述异步线程根据所述排序操作加载所述各页面的内容。
参考图2,图2为本申请主页加载方法第一实施例的流程示意图,所述主页加载方法包括:
步骤S10,在软件启动的过程中,创建异步线程加载各页面的内容;
在本实施例中,所述终端包括移动电话、笔记本电脑、电视以及台式计算机等,本申请所述方法普遍的应用场景为以电视作为终端实现本方法的操作。
在Android系统中,UI线程在Android程序运行的时候被创建,是Android应用的主线程,主要负责控制UI界面的显示,更新和控件交互,所述线程(thread)是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位;一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Android程序创建之初,进程呈现的是单线程模型,所有的任务都在UI线程中运行,因此,如果在主线程中进行一些复杂的耗时处理,就会造成主线程短暂的停顿卡住,给用户造成应用卡顿的感觉,比如进行一些文件的读写操作,网络的访问,数据库的读取等,并且在Android中如果主线程停顿时间过长,会导致用户操作主页时需要较长的等待时间。
因此,在电视软件启动的过程中,初始化各个页面,其中,一般页面初始化通常包括初始化用户界面模块和内核模块,有的还包括网络服务模块等;在第一页面(影视页面)显示各个模块的框架,并创建多个异步线程分别加载各页面的内容,如各页面的icon内容,所述icon是一种图标格式,用于系统图标、软件图标等;在执行完上述步骤后所述软件能响应用户的操作,而整个操作的过程中会将载入图片、访问数据库等一些耗时操作放到后台线程中完成。其中,创建异步线程可以通过创建Thread对象或者AsyncTask对象(这两个对象是在Android中创建异步线程的工具类),将异步线程的消息发送到主线程可以通过Thread的post方法,或者activity的runOnUiThread方法,其参数都是发送一个runable对象,runOnUiThread内部也是调用handler的post方法,也有可以通过handler的sendMessage方法来进行操作,但是其内部也是通过post方法执行的。
进一步地,参考图6,所述创建异步线程加载各页面的内容的步骤之前,还包括:
步骤S11,执行需要加载的系统服务的绑定操作,根据所述绑定操作发送广播信息至终端的应用,以使所述应用根据所述广播信息执行启动操作;
步骤S12,发送UI命令至各应用页面中的模块,以使所述模块根据所述UI命令执行UI绘制操作。
在本实施例中,在软件启动的过程中,需要初始化主页成员变量,并设置半透明的背景以及主页的启动动画;进一步执行需要加载的系统服务的绑定操作,根据所述绑定操作发送广播信息至终端的应用,以使所述应用根据所述广播信息执行启动操作;发送UI命令至各应用页面中的模块,以使所述模块根据所述UI命令执行UI绘制操作。具体的实施为:在电视开机启动程序时,首先对需要加载的系统服务进行注册,并对完成注册的系统服务进行加载,在系统服务加载完成后,将系统启动完成的消息以广播的形式通知给所有应用,每个应用在收到系统启动完成的广播后,都会进行应用的启动,以及配合进行相应的协调工作。同时,发送UI命令至各应用页面中的模块,所述模块根据所述UI命令执行UI绘制的过程可分为应用层和SurfaceFlinger层,SurfaceFlinger层负责管理应用端的surface(界面),将所有应用端的surface复合,它是介于图形库和应用之间的一层。每个应用在其surface完成各种图形操作后,请求SurfaceFlinger显示到屏幕,surfaceflinger会将所有的surface叠加起来,并且反映到framebuffer(帧缓冲)。
步骤S20,获取所述各页面与预设页面的距离,以设定的方式执行多个所述距离的排序操作;
在本实施例中,所述各页面包括应用页面、设置页面、游戏页面、登录页面以及影视页面等,其中,所述影视页面为预设页面;所述主页是基本信息页,用户通过主页可以访问有关信息,主页一般包括:背景图像、各应用程序的图标、任务栏等内容。
获取应用页面、设置页面、游戏页面、登录页面等与影视页面的距离,例如:通过使用高级编程语言(JavaScript,JS)编写检测各页面距离的程序,在接收到页面距离的检测指令时,则启动检测程序。在获取到各页面与影视页面的距离后,将所述多个距离执行相对于影视页面从近到远的排序操作。
步骤S30,控制所述异步线程根据所述排序操作加载所述各页面的内容。
在本实施例中,通常用户启动软件并不是想立即需要看到内容,而是只需要确认软件有响应就行,另外,用户启动软件很有可能是有一定的目的性的,例如用户想启动某个游戏,就会启动主页后迅速切到游戏页面,这时如果游戏页面没有响应或者没加载到,就会造成不好的用户体验。因此,解决该问题的基本原则是模拟用户的使用过程,保证用户的操作有响应,使用户预期先看到的内容优先显示,用户预期较后看到的内容押后显示。例如:用户想启动某个游戏,开机启动主页后迅速切到游戏页面,没有在其它的页面进行任何操作,这说明当前用户很关注所述游戏页面的内容,则可以优先显示游戏页面的内容,其它的页面的内容押后显示。
在模拟用户的使用过程中,也需要合理安排所述异步线程的加载各页面内容的顺序,具体实施为:在执行各页面内容(如icon内容)的加载操作时,按照各页面相对于影视页面的距离从近到远执行加载操作,如应用页面与影视页面的距离为1cm,游戏页面与影视页面的距离为2cm,音乐页面与影视页面的距离为3cm,则先执行应用页面中icon内容的加载,再依次执行游戏页面与音乐页面中icon内容的加载。
在本实施例中,在软件启动的过程中,创建异步线程加载各页面的内容;获取所述各页面与预设页面的距离,以设定的方式执行多个所述距离的排序操作;控制所述异步线程根据所述排序操作加载所述各页面的内容。通过模拟用户的使用过程,保证用户的操作有响应,使用户预期先看到的内容优先显示,用户预期较后看到的内容押后显示,同时将载入图片、访问数据库等一些耗时操作放到后台线程中完成,按照各页面相对于影视页面的距离从近到远执行异步线程的加载操作,使得加快了主页的启动,能快速切换页面且也不会出现卡顿的现象。
而在一实施例中,参考图3,所述控制所述异步线程根据所述排序操作加载所述各页面的内容的步骤之后,包括:
步骤S31,在确定终端本地缓存中存在需要加载的资源时,检测所述资源是否需要更新;
步骤S32,若所述资源需要更新,则向服务器发送加载所述需要更新的资源的请求;
步骤S33,获取所述服务器根据所述请求发送的需要更新的资源,执行所述需要更新的资源的刷新操作,并将所述刷新操作得到的资源保存至所述终端本地。
在本实施例中,互联网电视主页的资源主要是指图片,而资源的缓存主要体现在两点:把远程服务器推送的图片保存到本地;已载入内存的图片重复使用。互联网电视主页的内容需要由远程服务器后台推送,但如果每次启动主页都是向后台请求到数据之后再展示出来,则不符合快速展示内容的要求,因此,为了能更快地向用户展示内容,需要采取缓存资源的形式。
当主页每次从服务器获取资源数据时,都把所述资源数据保存到终端本地,在下一次启动主页时,先确定主页中需要加载的资源,再执行终端本地缓存的资源与主页中需要加载的资源的比对操作,若基于所述比对操作的结果确定终端本地缓存中存在需要加载的资源;则进一步检测所述加载的资源是否需要更新,若所述加载的资源需要更新,则向远程服务器发送加载所述需要更新的资源的请求,所述远程服务器在接收到所述请求后,获取与所述请求匹配的更新资源,并将所述更新资源发送至终端;终端对接收到的需要更新的资源执行刷新操作,并将所述刷新操作得到的资源保存至所述终端本地;若所述加载的资源不需要更新,则直接从终端本地缓存中下载需要加载的资源。这样可以保证主页启动后能快速加载到资源,避免了出现图片、标题、启动参数不对应的情况,同时,保证从远程服务器获得新数据后,刷新界面不会影响用户体验。
若基于所述比对操作的结果确定终端本地缓存中不存在需要加载的资源,则需要向远程服务器请求数据,因此,参考图7,所述控制所述异步线程根据所述排序操作加载所述各页面的内容的步骤之后,还包括:
步骤S34,在确定所述终端本地缓存中不存在所述需要加载的资源时,则向服务器发送加载所述主页资源的请求;
步骤S35,获取所述服务器根据所述请求发送的主页资源,执行所述主页资源的刷新操作,并将所述刷新操作得到的资源保存至所述终端本地。
在本实施例中,若基于所述比对操作的结果确定终端本地缓存中不存在需要加载的资源,则向服务器发送加载所述主页资源的请求;所述服务器接收到所述请求后,获取与所述请求匹配的主页资源,并将所述主页资源发送至终端,所述终端在接收到所述主页资源后,执行资源的刷新操作,并将所述刷新操作得到的资源保存至所述终端本地。
在本实施例中,通过将从远程服务器请求得到的资源保存至终端本地,当再次加载所述资源时,先判断终端本地中是否存在所述资源且进一步判断所述资源是否存在更新,若终端本地存在所述资源且无更新资源,则直接从终端本地下载需要加载的资源;若终端本地存在所述资源且部分资源需要更新,则只需向远程服务器下载需要更新部分的资源,其他无需更新的资源从终端本地中下载。只有当终端本地中不存在需要加载的资源时,才会在远程服务器下载资源,这使得资源能重复利用,节约CPU、GPU以及内存资源,保证主页启动后能快速加载到资源。
而在一实施例中,参考图4,所述执行所述需要更新的资源的刷新操作的步骤包括:
步骤S330,检测所述软件是否启动完毕以及各线程中是否存在预设执行的任务;
步骤S331,若所述软件启动完毕且所述各线程中不存在预设执行的任务,则确定所述各页面需要更新的资源的刷新时间;
步骤S332,根据所述刷新时间执行所述各页面需要更新的资源的刷新操作。
在本实施例中,互联网电视的显著的特点是推送内容众多,其页面状态或数据会经常发生变化,用户需要不断的刷新页面才能获取最新的页面状态或数据,但同时对多个页面的资源进行刷新操作,会出现卡顿的现象,因此,在执行资源的刷新操作之前,首先要确定各页面需要更新的资源刷新的时间。主页的任务是从远程服务器请求需要更新的资源,而不是实现用户与后台的实时沟通,所以主页并不需要在软件启动后立即向后台请求数据,这使得加快了软件启动时间以及避免出现卡顿的现象。
在从远程服务器获取到需要更新的资源后,自动检测当前的软件是否启动完毕以及检测各线程中是否存在新的执行任务,当软件启动完毕且所述各线程中不存在新的执行任务时,主页向后台请求数据、下载资源并加载到内存上,最终显示在电视界面上的,这是在UI线程中进行的;而如果短时间内有很多图片数据需要在主页界面显示,就会造成UI线程的堵塞,所以需要合理安排各个页面的刷新时间。用户首先看到的页面是在主页启动完毕之后,而下一个页面应该是在上一个页面刷新完毕之后,依此类推,各个页面分开不同的时间进行刷新,避免了UI线程同时加载大量图片的情况。可选地,用户翻到下一个页面,可能又会翻回到上一页,那么如果上一页的图片都要重新加载一遍,显然也是不合理的。针对这种情况,可将图片利用Java的软引用机制缓存到程序的专有内存空间,所述软引用机制会根据内存状况自动调整,如果内存较多则缓存较多图片,内存较少则将一部分缓存释放掉,不会造成内存溢出。
其次,不进行不必要的刷新,主页需要保证能体现后台推送的新内容,但是一般情况下,主页的模块是比较稳定的,基本不会一次性大量更新,所以需要对比远程服务器返回的数据;如果对比结果是相对于本地数据没更新的资源,则不需要进行下载新的图片、刷新本地数据库、加载并显示图片等一系列动作。
在本实施例中,通过在软件启动完毕且各线程不存在新的执行任务时执行资源的刷新操作,同时,控制各个页面在不同的时间进行刷新,避免了UI线程同时加载大量图片的情况,导致出现卡顿的现象,降低了页面刷新消耗的网络资源,减轻电视端的处理负担。
而在一实施例中,参考图5,所述方法,还包括:
步骤S40,将所述各页面的图片资源下载至所述终端本地存储;
步骤S50,当首次加载所述各页面的图片资源时,从所述终端本地中获取所述各页面的图片资源,并将获取到的所述图片资源存储至预先建立的缓存列表中,所述缓存列表中的图片的引用方式为软引用。
在本实施例中,主页性能的提升不仅要进行的线程优化,还要进行内存优化,主页中占用内存最多的就是图片,而主页中往往有很多模块的图片是一样的,重复利用图片有效节省资源,例如主页的主题背景图在各个模块是一致的,在各个页面也是一致的。因此,将各页面的图片下载至本地存储中,所述本地存储可以包存储卡SD卡等;当首次加载各页面的图片资源时,直接从所述本地存储中获取各所述各页面的图片资源,将获取到的所述图片资源存储至预先建立的缓存列表中,所述缓存列表中的图片的引用方式为软引用。具体实施为:将各图片资源存储至本地存储中后,在首次加载各图片资源时,会在预先建立的图片加载类中创建一个缓存列表,然后从本地存储中获取各页面的图片资源,将各页面的图片资源存储至所述缓存列表中。其中,所述缓存列表中图片的引用方式为软引用,所述图片加载类的加载模式为单例模式。
在将各页面的图片资源存储至缓存列表中时,先获取各图片的地址,根据各图片的地址生成一个存储标识,然后将这个存储标识当作key值,将对应的图片资源存储至缓存列表中。这里所述图片的地址可以为图片的统一资源定位符,每个图片都具有一个唯一的key值。在图片加载类中可以声明以下变量:图片加载类的加载模式、系统分配给应用程序APP的最大内存以及图片的引用方式等。由于图片的引用方式为软引用,使得当检测出缓存列表占用的内存超出预设的阈值时,就会及时回收图片,避免内存溢出。其次,因图片加载类的加载模式为单例模式,这样每次在加载图片时只会生成一个唯一的实例及一个唯一的缓存列表,避免占用内存。
进一步地,参考图8,所述将所述各页面的图片资源下载至所述终端本地存储的步骤之后,还包括:
步骤S41,当再次加载所述各页面的目标图片资源时,获取所述目标图片资源的地址以及所述地址对应的提取标识;
步骤S42,判断在所述缓存列表中是否查找到所述提取标识;
步骤S43,若查找到所述提取标识,则根据所述提取标识从所述缓存列表中获取需要加载的所述目标图片资源。
在本实施例中,当再次需要加载各页面的目标图片资源时,同样获取所述目标图片资源的地址,根据所述目标图片资源的地址生成对应的提取标识。判断在所述缓存列表中是否能查找到所述提取标识,若查找到,则根据所述提取标识从所述缓存列表中获取需要加载的所述目标图片资源;所述提取标识和存储标识都是根据图片资源的地址生成的,则在查找提取标识时,实际是查找是否与提取标识一致的存储标识,如果能查找到,则直接所述提取标识从所述缓存列表中获取需要加载的所述目标图片资源。
若在所述缓存列表中未查找到与所述提取标识一致的存储标识,则将获取到的目标图片存储至所述缓存列表中,因此,参考图9,所述判断在所述缓存列表中是否查找到所述提取标识的步骤之后,还包括:
步骤S420,若未查找到所述提取标识,则根据所述目标图片资源的地址获取图片资源;
步骤S421,获取所述图片资源对应的目标图片,将所述目标图片存储至所述缓存列表中,并判断所述缓存列表当前占用的内存是否超过预设阈值;
步骤S423,若超过预设阈值,则按照设定的顺序删除所述图片,直至所述缓存列表占用的内存低于所述预设阈值。
在本实施例中,若在所述缓存列表中没有查找到与所述提取标识一致的存储标识,则根据所述目标图片资源的地址重新下载该图片的图片资源,并将所述目标图片存储至所述缓存列表中。将所述目标图片存储至所述缓存列表中后,还需获取缓存列表当前占用的内存,判断所述缓存列表当前占用的内存是否超过预设的阈值,若超过,则按照从前往后的顺序回收各所述图片的位图数据,直至所述缓存列表占用的内存低于所述预设的阈值,避免内存溢出。
在本实施例中,通过将图片资源下载至预先建立的缓存列表中,且将图片的引用方式设置为软引用,使得当检测出缓存列表占用的内存超出预设的阈值时,能及时回收缓存列表中的图片,避免内存溢出。
此外,本申请还提供一种电视,所述电视包括存储器、处理器及存储在存储器上并在处理器上运行的主页加载程序,所述电视在软件启动的过程中,创建异步线程加载各页面的内容;获取所述各页面与预设页面的距离,以设定的方式执行多个所述距离的排序操作;控制所述异步线程根据所述排序操作加载所述各页面的内容。通过模拟用户的使用过程,保证用户的操作有响应,使用户预期先看到的内容优先显示,用户预期较后看到的内容押后显示,同时将载入图片、访问数据库等一些耗时操作放到后台线程中完成,按照各页面相对于影视页面的距离从近到远执行异步线程的加载操作,使得加快了主页的启动,能快速切换页面且也不会出现卡顿像。其次,将远程服务器推送的图片保存到本地,对已载入内存的图片重复使用,对主页相关资源进行缓存优化,将网络资源缓存到内存或本地存储设备,避免UI的重复绘制,节约CPU、GPU以及内存资源,并对相应的资源进行缓存处理,对主页内容进行分页显示等建立预先缓存加载机制,避免每次翻页都需要进行加载,提高了用户操作的流畅度,从而提升用户体验。
此外,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述主页加载方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本申请可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本申请的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种主页加载方法,其特征在于,所述方法包括:
在软件启动的过程中,创建异步线程加载各页面的内容;
获取所述各页面与预设页面的距离,以设定的方式执行多个所述距离的排序操作;
控制所述异步线程根据所述排序操作加载所述各页面的内容。
2.根据权利要求1所述的主页加载方法,其特征在于,所述控制所述异步线程根据所述排序操作加载所述各页面的内容的步骤之后,包括:
在确定终端本地缓存中存在需要加载的资源时,检测所述资源是否需要更新;
若所述资源需要更新,则向服务器发送加载所述需要更新的资源的请求;
获取所述服务器根据所述请求发送的需要更新的资源,执行所述需要更新的资源的刷新操作,并将所述刷新操作得到的资源保存至所述终端本地。
3.根据权利要求1所述的主页加载方法,其特征在于,所述控制所述异步线程根据所述排序操作加载所述各页面的内容的步骤之后,还包括:
在确定所述终端本地缓存中不存在所述需要加载的资源时,则向服务器发送加载所述主页资源的请求;
获取所述服务器根据所述请求发送的主页资源,执行所述主页资源的刷新操作,并将所述刷新操作得到的资源保存至所述终端本地。
4.根据权利要求2所述的主页加载方法,其特征在于,所述执行所述需要更新的资源的刷新操作的步骤包括:
检测所述软件是否启动完毕以及各线程中是否存在预设执行的任务;
若所述软件启动完毕且所述各线程中不存在预设执行的任务,则确定所述各页面需要更新的资源的刷新时间;
根据所述刷新时间执行所述各页面需要更新的资源的刷新操作。
5.根据权利要求1所述的主页加载方法,其特征在于,所述创建异步线程加载各页面的内容的步骤之前,还包括:
执行需要加载的系统服务的绑定操作,根据所述绑定操作发送广播信息至终端的应用,以使所述应用根据所述广播信息执行启动操作;
发送UI命令至各应用页面中的模块,以使所述模块根据所述UI命令执行UI绘制操作。
6.根据权利要求1至3中任一项所述的主页加载方法,其特征在于,所述方法,还包括:
将所述各页面的图片资源下载至所述终端本地存储;
当首次加载所述各页面的图片资源时,从所述终端本地中获取所述各页面的图片资源,并将获取到的所述图片资源存储至预先建立的缓存列表中,所述缓存列表中的图片的引用方式为软引用。
7.根据权利要求6所述的主页加载方法,其特征在于,所述将所述各页面的图片资源下载至所述终端本地存储的步骤之后,还包括:
当再次加载所述各页面的目标图片资源时,获取所述目标图片资源的地址以及所述地址对应的提取标识;
判断在所述缓存列表中是否查找到所述提取标识;
若查找到所述提取标识,则根据所述提取标识从所述缓存列表中获取需要加载的所述目标图片资源。
8.根据权利要求7所述的主页加载方法,其特征在于,所述判断在所述缓存列表中是否查找到所述提取标识的步骤之后,还包括:
若未查找到所述提取标识,则根据所述目标图片资源的地址获取图片资源;
获取所述图片资源对应的目标图片,将所述目标图片存储至所述缓存列表中,并判断所述缓存列表当前占用的内存是否超过预设阈值;
若超过预设阈值,则按照设定的顺序删除所述图片,直至所述缓存列表占用的内存低于所述预设阈值。
9.一种电视,其特征在于,包括存储器、处理器及存储在存储器上并在处理器上运行的主页加载程序,所述处理器执行所述主页加载程序时实现权利要求1至8中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010809564.5A CN112035198A (zh) | 2020-08-12 | 2020-08-12 | 主页加载方法、电视和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010809564.5A CN112035198A (zh) | 2020-08-12 | 2020-08-12 | 主页加载方法、电视和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112035198A true CN112035198A (zh) | 2020-12-04 |
Family
ID=73577205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010809564.5A Pending CN112035198A (zh) | 2020-08-12 | 2020-08-12 | 主页加载方法、电视和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035198A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112689199A (zh) * | 2020-12-23 | 2021-04-20 | 深圳市酷开网络科技股份有限公司 | 一种电视主页的插件加载方法、装置、电视及存储介质 |
CN113596519A (zh) * | 2021-07-26 | 2021-11-02 | 北京金和网络股份有限公司 | 对监控设备直播推流的调控方法及电子设备 |
CN114185621A (zh) * | 2021-12-17 | 2022-03-15 | 广东德生科技股份有限公司 | 一种应用程序界面图片加载方法、装置、设备及存储介质 |
WO2022206709A1 (zh) * | 2021-03-30 | 2022-10-06 | 华为技术有限公司 | 应用程序的组件加载方法及相关装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219271A (zh) * | 2013-06-05 | 2014-12-17 | 北京齐尔布莱特科技有限公司 | 基于多线程异步下载页面的多服务器同步方法 |
US20150200994A1 (en) * | 2012-05-29 | 2015-07-16 | Google Inc. | Preloading resources of a web page |
CN104850415A (zh) * | 2014-02-13 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 页面加载方法和装置 |
CN108287839A (zh) * | 2017-01-09 | 2018-07-17 | 阿里巴巴集团控股有限公司 | 一种页面加载方法和设备 |
CN109739571A (zh) * | 2018-12-20 | 2019-05-10 | 努比亚技术有限公司 | 应用程序启动方法、移动终端及计算机可读存储介质 |
CN110287432A (zh) * | 2019-06-28 | 2019-09-27 | 北京金山安全软件有限公司 | 网络信息处理方法、装置和电子设备 |
CN110851757A (zh) * | 2019-10-12 | 2020-02-28 | 平安普惠企业管理有限公司 | 页面资源加载方法及终端 |
-
2020
- 2020-08-12 CN CN202010809564.5A patent/CN112035198A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150200994A1 (en) * | 2012-05-29 | 2015-07-16 | Google Inc. | Preloading resources of a web page |
CN104219271A (zh) * | 2013-06-05 | 2014-12-17 | 北京齐尔布莱特科技有限公司 | 基于多线程异步下载页面的多服务器同步方法 |
CN104850415A (zh) * | 2014-02-13 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 页面加载方法和装置 |
CN108287839A (zh) * | 2017-01-09 | 2018-07-17 | 阿里巴巴集团控股有限公司 | 一种页面加载方法和设备 |
CN109739571A (zh) * | 2018-12-20 | 2019-05-10 | 努比亚技术有限公司 | 应用程序启动方法、移动终端及计算机可读存储介质 |
CN110287432A (zh) * | 2019-06-28 | 2019-09-27 | 北京金山安全软件有限公司 | 网络信息处理方法、装置和电子设备 |
CN110851757A (zh) * | 2019-10-12 | 2020-02-28 | 平安普惠企业管理有限公司 | 页面资源加载方法及终端 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112689199A (zh) * | 2020-12-23 | 2021-04-20 | 深圳市酷开网络科技股份有限公司 | 一种电视主页的插件加载方法、装置、电视及存储介质 |
CN112689199B (zh) * | 2020-12-23 | 2023-08-29 | 深圳市酷开网络科技股份有限公司 | 一种电视主页的插件加载方法、装置、电视及存储介质 |
WO2022206709A1 (zh) * | 2021-03-30 | 2022-10-06 | 华为技术有限公司 | 应用程序的组件加载方法及相关装置 |
CN113596519A (zh) * | 2021-07-26 | 2021-11-02 | 北京金和网络股份有限公司 | 对监控设备直播推流的调控方法及电子设备 |
CN114185621A (zh) * | 2021-12-17 | 2022-03-15 | 广东德生科技股份有限公司 | 一种应用程序界面图片加载方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112035198A (zh) | 主页加载方法、电视和存储介质 | |
US7930343B2 (en) | Scalable user interface system | |
CN113055702B (zh) | 一种展示业务组件的方法、系统、以及客户端 | |
CN109032722B (zh) | 更新ui组件的显示效果的方法、装置及设备、介质 | |
US11934629B2 (en) | Action tool bar for mobile applications | |
CN110020325B (zh) | 页面加载方法、装置、设备及可读存储介质 | |
CN109445891B (zh) | 画面组态及展示方法、装置、计算机可读存储介质 | |
CN113095995A (zh) | 网页水印添加方法、装置、电子设备及存储介质 | |
CN111367518B (zh) | 页面布局方法、装置、计算设备及计算机存储介质 | |
US20140059114A1 (en) | Application service providing system and method and server apparatus and client apparatus for application service | |
US20070002014A1 (en) | Pointer for a large display | |
CN115546410A (zh) | 窗口展示方法、装置、电子设备及存储介质 | |
CN112799801B (zh) | 一种模拟鼠标指针绘制方法、装置、设备和介质 | |
CN111934985A (zh) | 媒体内容的分享方法、装置、设备及计算机可读存储介质 | |
CN109101429B (zh) | 一种机顶盒的浏览器页面调试的方法及装置 | |
KR20160019526A (ko) | 그래픽 동작들 통합 | |
JP7069356B2 (ja) | アプリケーションオープン動作中にデジタルコンテンツを追加するためのシステムおよび方法 | |
CN114265655A (zh) | 云应用数据处理方法及装置、系统和存储介质 | |
CN114547523A (zh) | 在直播间中进行活动导航的方法、装置、设备及存储介质 | |
CN114020396A (zh) | 应用程序的显示方法和应用程序的数据生成方法 | |
CN109032728B (zh) | Ui界面显示方法、智能终端及计算机可读存储介质 | |
CN106445535B (zh) | 一种操作处理方法和装置 | |
EP4394593A1 (en) | Skin changing method and apparatus for display interface, vehicle and storage medium | |
US20240177371A1 (en) | Display method and apparatus for virtual desktop | |
CN118170284B (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 |