CN111625290A - 一种Android平台下布局文件预加载方法、装置及电子设备 - Google Patents

一种Android平台下布局文件预加载方法、装置及电子设备 Download PDF

Info

Publication number
CN111625290A
CN111625290A CN202010376091.4A CN202010376091A CN111625290A CN 111625290 A CN111625290 A CN 111625290A CN 202010376091 A CN202010376091 A CN 202010376091A CN 111625290 A CN111625290 A CN 111625290A
Authority
CN
China
Prior art keywords
thread
resource
application program
creating
main process
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
CN202010376091.4A
Other languages
English (en)
Other versions
CN111625290B (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.)
Beijing Baige Feichi Technology Co ltd
Original Assignee
Xiaochuanchuhai Education Technology Beijing 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 Xiaochuanchuhai Education Technology Beijing Co ltd filed Critical Xiaochuanchuhai Education Technology Beijing Co ltd
Priority to CN202010376091.4A priority Critical patent/CN111625290B/zh
Publication of CN111625290A publication Critical patent/CN111625290A/zh
Application granted granted Critical
Publication of CN111625290B publication Critical patent/CN111625290B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明属于计算机技术领域,提供一种Android平台下布局文件预加载方法、装置、电子设备和计算机可读介质,通过预先加载的方式加载移动终端资源,提升了应用程序冷启动的速度,方法包括:响应于用户的点击,冷启动应用程序;创建所述应用程序的主进程,所述主进程包括第一线程;根据待解析的资源组件数量在主进程中创建第二线程,所述第二线程解析所述资源组件;所述第一线程加载所述第二线程解析完成的资源组件,完成应用程序冷启动。采用该技术方案,利用移动终端处理器多核的特点,采用异步加载的方式执行应用程序的冷启动,在启动过程中提前加载资源组件,从而达到应用程序加载速度以及启动速度加快的目的。

Description

一种Android平台下布局文件预加载方法、装置及电子设备
技术领域
本发明属于计算机技术领域,特别适用于移动终端应用程序启动领域,更具体的是涉及一种Android平台下布局文件预加载方法、装置及电子设备。
背景技术
随着半导体技术的不断发展,目前移动终端中使用的处理器都是多核处理器。多核处理器使得移动终端的性能得到很大的提高,可以并行处理多个任务。
但目前移动终端中装载的启动应用程序在冷启动过程中,资源文件的渲染操作是在主线程中同步进行的,因而存在加载速度缓慢的问题,特别是资源文件内容复杂时,加载速度缓慢现象会更加明显。导致目前的应用程序冷启动存在加载过程占用内存高、页面加载效率低、用户体验效果差等问题。
发明内容
本发明旨在解决目前的应用程序冷启动存在加载过程占用内存高、页面加载效率低、用户体验效果差等问题。
为解决上述技术问题,本发明的一方面提出一种Android平台下布局文件预加载方法,方法包括:
响应于用户的点击,冷启动应用程序;
创建所述应用程序的主进程,所述主进程包括第一线程;
根据待解析的资源组件数量在主进程中创建第二线程,所述第二线程解析所述资源组件;
所述第一线程加载所述第二线程解析完成的资源组件,完成应用程序冷启动。
根据本发明的一种优选实施方式,所述创建所述应用程序的主进程,所述主进程包括第一线程还包括:
所述第一线程创建并初始化Application;
所述第一线程调用onCreate函数,创建并初始化MainActivity。
根据本发明的一种优选实施方式,所述根据待解析的资源组件数量创建数量相同的第二线程具体为,根据所述资源组件数量创建相同数量的第二线程;
可选地,所述第二线程解析所述资源组件进一步包括,
设置所述第二线程优先级为可见线程THREAD_PRIORITY_DISPLAY;
设置所述第二线程的类加载器ClassLoader,用于加载所述资源组件中的相应加载类;
创建所述资源组件解析器,解析所述资源组件,获得对应的View;
将解析所述资源组件获得的对应的View放入内存。
根据本发明的一种优选实施方式,所述第一线程加载所述第二线程解析完成的资源组件进一步包括,所述onCreat函数从内存中读取所述View;
可选地,所述onCreat函数从内存中读取所述View进一步包括,
所述onCreat函数调用setContentView函数,构建DecorView;
从内存中读取所述View,将所述View添加到DecorView。
根据本发明的一种优选实施方式,所述完成应用程序冷启动进一步包括:
将添加View的DecorView添加到Window,完成应用程序的冷启动。
本发明第二方面提出一种Android平台下布局文件预加载装置,包括:
响应模块,用于响应于用户的点击,冷启动应用程序;
第一线程创建模块,用于创建所述应用程序的主进程,所述主进程包括第一线程;
第二线程创建模块,用于根据待解析的资源组件数量在主进程中创建第二线程,所述第二线程解析所述资源组件;
加载模块,所述第一线程加载所述第二线程解析完成的资源组件,完成应用程序冷启动。
根据本发明的一种优选实施方式,创建所述应用程序的主进程,所述主进程包括第一线程还包括,
所述第一线程创建并初始化Application;
所述第一线程调用onCreate函数,创建并初始化MainActivity。
根据本发明的一种优选实施方式,所述根据待解析的资源组件数量创建数量相同的第二线程具体为,根据所述资源组件数量创建相同数量的第二线程;
可选地,所述第二线程解析所述资源组件进一步包括,
设置所述第二线程优先级为可见线程THREAD_PRIORITY_DISPLAY;
设置所述第二线程的类加载器ClassLoader,用于加载所述资源组件中的相应加载类;
创建所述资源组件解析器,解析所述资源组件,获得对应的View;
将解析所述资源组件获得的对应的View放入内存;
可选地,所述第一线程加载所述第二线程解析完成的资源组件进一步包括,所述onCreat函数从内存中读取所述View。
本发明第三方面提出一种电子设备,包括处理器和存储器,所述存储器用于存储计算机可执行程序,当所述计算机程序被所述处理器执行时,所述处理器执行所述的方法。
本发明第四方面还提出一种计算机可读介质,存储有计算机可执行程序,所述计算机可执行程序被执行时,实现所述的方法。
采用该技术方案,利用移动终端处理器多核的特点,采用异步加载的方式执行应用程序的冷启动,在启动过程中提前加载资源组件,从而达到应用程序加载速度以及启动速度加快的目的。
附图说明
图1是现有技术中APP冷启动的流程示意图;
图2是本发明实施例中一种Android平台下布局文件预加载方法的流程示意图;
图3是本发明实施例一中Android平台下布局文件预加载方法具体的流程图;
图4是本发明实施例一中开启多个异步线程的具体流程图;
图5是本发明实施例中一种Android平台下布局文件预加载装置的结构示意图;
图6是本发明实施例中的电子设备的结构示意图;
图7是本发明实施例中的计算机可读记录介质的示意图。
具体实施方式
在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。
附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的的顺序执行。例如,流程图中有的操作/步骤可以分解,有的操作/步骤可以合并或部分合并,等等,在不脱离本发明的发明主旨的情况下,流程图中显示的执行顺序可以根据实际情况改变。
附图中的框图一般表示的是功能实体,并不一定必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理单元装置和/或微控制器装置中实现这些功能实体。
各附图中相同的附图标记表示相同或类似的元件、组件或部分,因而下文中可能省略了对相同或类似的元件、组件或部分的重复描述。还应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但是这些器件、元件、组件或部分不应受这些定语的限制。也就是说,这些定语仅是用来将一者与另一者区分。例如,第一器件亦可称为第二器件,但不偏离本发明实质的技术方案。此外,术语“和/或”、“及/或”是指包括所列出项目中的任一个或多个的所有组合。
在现有技术中,安卓系统的APP启动时,跳转需要启动的Activity页面,在setContentView()函数中开始开始同步渲染(渲染过程为单线程操作)直到XML全部解析渲染完毕。图1是现有技术APP冷启动的流程示意图,具体的流程如图1所示:
S101、用户点击App桌面图标;
S102、App开始启动加载;
S103、系统会创建App进程;
S104、初始化Application;
S105、跳转创建主MainActivity页面,调用onCreate()函数,调用setContentView()函数,Inflater开始加载解析要加载XML文件对视图进行布局最终解析渲染为用户可见的view,当跳转到要呈现的页面之后,才开始对当前页面所需的XML资源文件进行加载解析,解析完毕得到xml对应的View并添加到DecorView父布局上并最终添加到window上呈现给用户;
S106、启动完成。
现有技术中的这种方法在App冷启动过程中,需要做一系列的初始化解析操作,并且该过程是在主线程(单线程)同步执行的,并没有有效利用现有手机系统拥有多核CPU的特性,因此存在存在加载过程占用内存高、页面加载效率低等问题。
因此,本发明提供一种Android平台下布局文件预加载方法、装置及电子设备。
图2是本发明一种Android平台下布局文件预加载方法的流程示意图,如图1所示,本发明具有如下步骤:
S201、响应于用户的点击,冷启动应用程序。
应用程序APP冷启动是指软件从关闭状态到打开状态的过程,比如手机重启后点击应用程序图标启动是冷启动,或者应用程序切到后台长时间没有使用系统会为了节省资源会将应用程序的进程关闭,再次点击图标进行启动也是冷启动。应用程序冷启动是相对于热启动而言的,冷启动是指启动应用时,操作系统中不存在应用的进程,这时系统会为应用创建一个新的进程。相对而言,热启动是指启动应用时,系统中已经存在应用的进程,比如应用程序启动后切到后台,但没有被系统关闭进程,此时再点击应用程序图标,对应的应用程序进程会切换到前台,就是热启动。通常来讲,热启动速度要比冷启动速度快。
在本实施方式中,是应用程序冷启动过程中资源的异步加载,即系统中没有应用程序对应的线程,用户点击应用程序图标后,在系统中创建应用程序对应的进程。
S202、创建所述应用程序的主进程,所述主进程包括第一线程。
在上述技术方案的基础上,进一步地,所述创建所述应用程序的主进程,所述主进程包括第一线程还包括:
所述第一线程创建并初始化Application;
所述第一线程调用onCreate函数,创建并初始化MainActivity。
在上述技术方案的基础上,进一步地,所述根据待解析的资源组件数量创建数量相同的第二线程具体为:根据所述资源组件数量创建相同数量的第二线程。
Activity是安卓系统中最基本也是最为常见用的四大组件之一,适用于开发人员和系统管理员,主要是用户和应用程序之间进行交互的接口;View是安卓系统中一种界面层的控件的一种抽象,它代表了一个控件;Window是安卓系统中的一个窗口概念,安卓系统中所有的视图都是通过Window来呈现的。Activity提供Window,View被添加到Window中。
应用程序冷启动,在安卓系统中创建对应的主进程,通常一个应用程序仅对应有一个进程。在本实施方式中主进程包括多个线程,其中第一线程创建并初始化Application,安卓系统的Application是一个系统组件。当应用程序启动时,系统会自动创建一个Application对象,用于存储系统的一些信息。安卓系统自动会为每个程序运行时创建一个Application的对象且只创建一个。
Application调用onCreate函数,创建并初始化MainActivity。OnCreate函数主要做这个MainActivity启动时一些必要的初始化工作,这个函数调用完后,这个MainActivity并不是说就已经启动了,或者是跳到前台了,而是还需要其他的大量工作,比如onCreate之后还有onRestart函数和onStart函数等。
S203、根据待解析的资源组件数量在主进程中创建第二线程,所述第二线程解析所述资源组件。
在本实施方式中,资源组件为XML资源文件,确定应用程序首页必然用到的XML资源文件数量,创建数量相同的第二线程。因为XML资源文件对应应用程序中自定义的View,确定XML资源文件的数量就是确定首页中要加载的自定义的View的数量。每一个第二线程解析一个XML资源文件,利用处理器多核多线程的处理能力,将原先单进程的冷启动进程分解为异步多线程,提升了应用程序冷启动速度。
在上述技术方案的基础上,进一步地,所述根据待解析的资源组件数量创建数量相同的第二线程具体为:根据所述资源组件数量创建相同数量的第二线程。
在上述技术方案的基础上,进一步地,所述第二线程解析所述资源组件进一步包括:
设置所述第二线程优先级为可见线程THREAD_PRIORITY_DISPLAY;
设置所述第二线程的类加载器ClassLoader,用于加载所述资源组件中的相应加载类;
创建所述资源组件解析器,解析所述资源组件,获得对应的View;
将解析所述资源组件获得的对应的View放入内存。
在本实施方式中,安卓系统中的线程包括多种优先级,通过合理分配优先级解决多线程并发的阻塞问题,线程的优先级包括THREAD_PRIORITY_AUDIO标准音乐播放使用的线程优先级,THREAD_PRIORITY_BACKGROUND标准后台程序,THREAD_PRIORITY_DEFAULT默认应用的优先级等等。创建第二线程后,为了避免安卓系统将第二线程关闭,导致应用程序加载失败情况的出现,通过Process.setThreadPriority(Process.THREAD_PRIORITY_DISPLAY)将第二线程的优先级提升为可见线程优先级,确保了稳定性。
在第二线程中通过资源解析器LayoutInflater对XML资源文件进行解析并最终填充为View。将解析获得的多个View存入内存,方便第一线程的加载。
在本实施方式中,第一线程和多个第二线程同时进行。
S204、所述第一线程加载所述第二线程解析完成的资源组件,完成应用程序冷启动。
在上述技术方案的基础上,进一步地,所述第一线程加载所述第二线程解析完成的资源组件进一步包括:所述onCreat函数从内存中读取所述View。
在上述技术方案的基础上,进一步地,所述MainActivity中的onCreat函数从内存中读取所述View进一步包括:
所述onCreat函数调用setContentView函数,构建DecorView;
从内存中读取所述View,将所述View添加到DecorView。
在本实施方式中,onCreat函数调用setContentView函数,在setContentView函数中PhoneWindow创建了一个顶级视图DecorView。一个或多个View是加载在DecorView中,因此第一线程从内存中读取View加载在DecorView中。
在上述技术方案的基础上,进一步地,所述完成应用程序冷启动进一步包括:
将添加View的DecorView添加到Window,完成应用程序的冷启动。
在本实施方式中,给用户展示的是Window而不是MainActivity,因此需要将添加View的DecorView添加到Window,向用户展示启动后的界面,完成应用程序的冷启动。
在传统的应用程序冷启动方式中,仅仅有一个线程,在创建完DecorView后执行XML资源文件解析,如果XML资源文件较多或者较复杂,启动时间会很长,给用户体验并不好。而在本发明中,由于第一线程和第二线程同时进行,在第一线程创建DecorView的时候,第二线程已经完成XML资源文件解析,即在MainTabActivity获取到焦点之前,已经把该MainTabActivity所需的布局文件已经初始化渲染完毕,节省了时间,大大提升了用户感受。
图3是本发明实施例一中Android平台下布局文件预加载方法具体的流程图,具体流程如下:
S301、用户点击icon;
S302、App开始自动加载;
S303、创建App主进程
S304、初始化Application;
S305、开启多个异步线程,Inflate解析XML文件得到view;
S306、跳转创建主MainActivity页面,调用onCreate()函数,调用setContentView()函数,从内存中读取view添加到DecorView父布局中并最终添加到window中呈现给用户;
S307、启动完成。
其中步骤S305的具体流程图如图4所示。
根据需要解析的XML文件构建相同个数的异步线程;设置线程优先级为THREAD_PRIORITY_DISPLAY,设置类加载器ClassLoader,构建资源解析器LayoutInflater,解析得到XML对应的view放入内存中。
图5是本发明实施例中一种Android平台下布局文件预加载装置的结构示意图,如图5所示,本发明提供一种Android平台下布局文件预加载装500,包括:
响应模块501,用于响应于用户的点击,冷启动应用程序。
应用程序APP冷启动是指软件从关闭状态到打开状态的过程,比如手机重启后点击应用程序图标启动是冷启动,或者应用程序切到后台长时间没有使用系统会为了节省资源会将应用程序的进程关闭,再次点击图标进行启动也是冷启动。应用程序冷启动是相对于热启动而言的,冷启动是指启动应用时,操作系统中不存在应用的进程,这时系统会为应用创建一个新的进程。相对而言,热启动是指启动应用时,系统中已经存在应用的进程,比如应用程序启动后切到后台,但没有被系统关闭进程,此时再点击应用程序图标,对应的应用程序进程会切换到前台,就是热启动。通常来讲,热启动速度要比冷启动速度快。
在本实施方式中,是应用程序冷启动过程中资源的异步加载,即系统中没有应用程序对应的线程,用户点击应用程序图标后,在系统中创建应用程序对应的进程。
第一线程创建模块502,用于创建所述应用程序的主进程,所述主进程包括第一线程。
在上述技术方案的基础上,进一步地,所述创建所述应用程序的主进程,所述主进程包括第一线程还包括:
所述第一线程创建并初始化Application;
所述第一线程调用onCreate函数,创建并初始化MainActivity。
在上述技术方案的基础上,进一步地,所述根据待解析的资源组件数量创建数量相同的第二线程具体为:根据所述资源组件数量创建相同数量的第二线程。
Activity是安卓系统中最基本也是最为常见用的四大组件之一,适用于开发人员和系统管理员,主要是用户和应用程序之间进行交互的接口;View是安卓系统中一种界面层的控件的一种抽象,它代表了一个控件;Window是安卓系统中的一个窗口概念,安卓系统中所有的视图都是通过Window来呈现的。Activity提供Window,View被添加到Window中。
在安卓系统中创建对应的主进程,通常一个应用程序仅对应有一个进程。在本实施方式中主进程包括多个线程,其中第一线程创建并初始化Application,安卓系统的Application是一个系统组件。当应用程序启动时,系统会自动创建一个Application对象,用于存储系统的一些信息。安卓系统自动会为每个程序运行时创建一个Application的对象且只创建一个。
Application调用onCreate函数,创建并初始化MainActivity。OnCreate函数主要做这个MainActivity启动时一些必要的初始化工作,这个函数调用完后,这个MainActivity并不是说就已经启动了,或者是跳到前台了,而是还需要其他的大量工作,比如onCreate之后还有onRestart函数和onStart函数等。
第二线程创建模块503,用于根据待解析的资源组件数量在主进程中创建第二线程,所述第二线程解析所述资源组件。
在本实施方式中,资源组件为XML资源文件,确定应用程序首页必然用到的XML资源文件数量,创建数量相同的第二线程。因为XML资源文件对应应用程序中自定义的View,确定XML资源文件的数量就是确定首页中要加载的自定义的View的数量。每一个第二线程解析一个XML资源文件,利用处理器多核多线程的处理能力,将原先单进程的冷启动进程分解为异步多线程,提升了应用程序冷启动速度。
在上述技术方案的基础上,进一步地,所述根据待解析的资源组件数量创建第二线程具体为:根据所述资源组件数量创建相同数量的第二线程。
在上述技术方案的基础上,进一步地,所述第二线程解析所述资源组件进一步包括:
设置所述第二线程优先级为可见线程THREAD_PRIORITY_DISPLAY;
设置所述第二线程的类加载器ClassLoader,用于加载所述资源组件中的相应加载类;
创建所述资源组件解析器,解析所述资源组件,获得对应的View;
将解析所述资源组件获得的对应的View放入内存。
在本实施方式中,安卓系统中的线程包括多种优先级,通过合理分配优先级解决多线程并发的阻塞问题,线程的优先级包括THREAD_PRIORITY_AUDIO标准音乐播放使用的线程优先级,THREAD_PRIORITY_BACKGROUND标准后台程序,THREAD_PRIORITY_DEFAULT默认应用的优先级等等。创建第二线程后,为了避免安卓系统将第二线程关闭,导致应用程序加载失败情况的出现,通过Process.setThreadPriority(Process.THREAD_PRIORITY_DISPLAY)将第二线程的优先级提升为可见线程优先级,确保了稳定性。
在第二线程中通过资源解析器LayoutInflater对XML资源文件进行解析并最终填充为View。将解析获得的多个View存入内存,方便第一线程的加载。
在本实施方式中,第一线程和多个第二线程同时进行。
加载模块504,所述第一线程加载所述第二线程解析完成的资源组件,完成应用程序冷启动。
在上述技术方案的基础上,进一步地,所述第一线程加载所述第二线程解析完成的资源组件进一步包括:所述onCreat函数从内存中读取所述View。
在上述技术方案的基础上,进一步地,所述MainActivity中的onCreat函数从内存中读取所述View进一步包括:
所述onCreat函数调用setContentView函数,构建DecorView;
从内存中读取所述View,将所述View添加到DecorView。
在本实施方式中,onCreat函数调用setContentView函数,在setContentView函数中PhoneWindow创建了一个顶级视图DecorView。一个或多个View是加载在DecorView中,因此第一线程从内存中读取View加载在DecorView中。
在上述技术方案的基础上,进一步地,所述完成应用程序冷启动进一步包括:
将添加View的DecorView添加到Window,完成应用程序的冷启动。
在本实施方式中,给用户展示的是Window而不是MainActivity,因此需要将添加View的DecorView添加到Window,向用户展示启动后的界面,完成应用程序的冷启动。
如图6所示,电子设备以通用计算设备的形式表现。其中处理器可以是一个,也可以是多个并且协同工作。本发明也不排除进行分布式处理,即处理器可以分散在不同的实体设备中。本发明的电子设备并不限于单一实体,也可以是多个实体设备的总和。
所述存储器存储有计算机可执行程序,通常是机器可读的代码。所述计算机可读程序可以被所述处理器执行,以使得电子设备能够执行本发明的方法,或者方法中的至少部分步骤。
所述存储器包括易失性存储器,例如随机存取存储单元(RAM)和/或高速缓存存储单元,还可以是非易失性存储器,如只读存储单元(ROM)。
可选的,该实施例中,电子设备还包括有I/O接口,其用于电子设备与外部的设备进行数据交换。I/O接口可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
应当理解,图6显示的电子设备仅仅是本发明的一个示例,本发明的电子设备中还可以包括上述示例中未示出的元件或组件。例如,有些电子设备中还包括有显示屏等显示单元,有些电子设备还包括人机交互元件,例如按扭、键盘等。只要该电子设备能够执行存储器中的计算机可读程序以实现本发明方法或方法的至少部分步骤,均可认为是本发明所涵盖的电子设备。
图7是本发明的一个实施例的计算机可读记录介质的示意图。如图7所示,计算机可读记录介质中存储有计算机可执行程序,所述计算机可执行程序被执行时,实现本发明上述的基于旋转角监测的车辆智能助力推行方法。所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
通过以上对实施方式的描述,本领域的技术人员易于理解,本发明可以由能够执行特定计算机程序的硬件来实现,例如本发明的系统,以及系统中包含的电子处理单元、服务器、客户端、手机、控制单元、处理器等,本发明也可以由包含上述系统或部件的至少一部分的车辆来实现。本发明也可以由执行本发明的方法的计算机软件来实现,例如由机车端的微处理器、电子控制单元,客户端、服务器端等执行的控制软件来实现。但需要说明的是,执行本发明的方法的计算机软件并不限于由一个或特定个的硬件实体中执行,其也可以是由不特定具体硬件的以分布式的方式来实现,例如计算机程序执行的某些方法步骤可以在机车端执行,另一部分可以在移动终端或智能头盔等中执行。对于计算机软件,软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中,也可以分布式存储于网络上,只要其能使得电子设备执行根据本发明的方法。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种Android平台下布局文件预加载方法,其特征在于,方法包括:
响应于用户的点击,冷启动应用程序;
创建所述应用程序的主进程,所述主进程包括第一线程;
根据待解析的资源组件数量在主进程中创建第二线程,所述第二线程解析所述资源组件;
所述第一线程加载所述第二线程解析完成的资源组件,完成应用程序冷启动。
2.如权利要求1所述的布局文件预加载方法,其特征在于,所述创建所述应用程序的主进程,所述主进程包括第一线程还包括:
所述第一线程创建并初始化Application;
所述第一线程调用onCreate函数,创建并初始化MainActivity。
3.如权利要求1至2任意一项所述的布局文件预加载方法,其特征在于,所述根据待解析的资源组件数量在主进程中创建第二线程具体为,根据所述资源组件数量创建相同数量的第二线程;
可选地,所述第二线程解析所述资源组件进一步包括,
设置所述第二线程优先级为可见线程THREAD_PRIORITY_DISPLAY;
设置所述第二线程的类加载器ClassLoader,用于加载所述资源组件中的相应加载类;
创建所述资源组件解析器,解析所述资源组件,获得对应的View;
将解析所述资源组件获得的对应的View放入内存。
4.如权利要求1至3任意一项所述的布局文件预加载方法,其特征在于,所述第一线程加载所述第二线程解析完成的资源组件进一步包括,所述onCreat函数从内存中读取所述View;
可选地,所述onCreat函数从内存中读取所述View进一步包括,
所述onCreat函数调用setContentView函数,构建DecorView;
从内存中读取所述第二线程View,将所述View添加到DecorView。
5.如权利要求1至4任意一项所述的布局文件预加载方法,其特征在于,所述完成应用程序冷启动进一步包括:
将添加View的DecorView添加到Window,完成应用程序的冷启动。
6.一种Android平台下布局文件预加载装置,其特征在于,装置包括:
响应模块,用于响应于用户的点击,冷启动应用程序;
第一线程创建模块,用于创建所述应用程序的主进程,所述主进程包括第一线程;
第二线程创建模块,用于根据待解析的资源组件数量在主进程中创建第二线程,所述第二线程解析所述资源组件;
加载模块,所述第一线程加载所述第二线程解析完成的资源组件,完成应用程序冷启动。
7.如权利要求6所述的布局文件预加载装置,其特征在于,创建所述应用程序的主进程,所述主进程包括第一线程还包括,所述第一线程创建并初始化Application;
所述第一线程调用onCreate函数,创建并初始化MainActivity。
8.如权利要求6或7任意一项所述的布局文件预加载装置,其特征在于,所述根据待解析的资源组件数量创建第二线程具体为,根据所述资源组件数量创建相同数量的第二线程;
可选地,所述第二线程解析所述资源组件进一步包括,
设置所述第二线程优先级为可见线程THREAD_PRIORITY_DISPLAY;
设置所述第二线程的类加载器ClassLoader,用于加载所述资源组件中的相应加载类;
创建所述资源组件解析器,解析所述资源组件,获得对应的View;
将解析所述资源组件获得的对应的View放入内存;
可选地,所述第一线程加载所述第二线程解析完成的资源组件进一步包括,所述onCreat函数从内存中读取所述View。
9.一种电子设备,包括处理器和存储器,所述存储器用于存储计算机可执行程序,其特征在于:
当所述计算机程序被所述处理器执行时,所述处理器执行如权利要求1-7中任一项所述的方法。
10.一种计算机可读介质,存储有计算机可执行程序,其特征在于,所述计算机可执行程序被执行时,实现如权利要求1-7中任一项所述的方法。
CN202010376091.4A 2020-05-06 2020-05-06 一种Android平台下布局文件预加载方法、装置及电子设备 Active CN111625290B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010376091.4A CN111625290B (zh) 2020-05-06 2020-05-06 一种Android平台下布局文件预加载方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010376091.4A CN111625290B (zh) 2020-05-06 2020-05-06 一种Android平台下布局文件预加载方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN111625290A true CN111625290A (zh) 2020-09-04
CN111625290B CN111625290B (zh) 2023-03-24

Family

ID=72259775

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010376091.4A Active CN111625290B (zh) 2020-05-06 2020-05-06 一种Android平台下布局文件预加载方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN111625290B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114090130A (zh) * 2021-11-26 2022-02-25 上海星融汽车科技有限公司 一种预加载执行逻辑的方法和系统
CN116662270A (zh) * 2022-09-09 2023-08-29 荣耀终端有限公司 文件解析方法及相关装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6584612B1 (en) * 1999-07-15 2003-06-24 International Business Machines Corporation Transparent loading of resources from read-only memory for an application program
US20030126310A1 (en) * 2001-12-14 2003-07-03 Ryzhov Aleksandr O. Algorithm for localization of a JAVA application using reflection API and a custom class loader
US20060112379A1 (en) * 2004-11-12 2006-05-25 International Business Machines Corp. Method and system for on demand java resources
CN104216751A (zh) * 2014-09-30 2014-12-17 广州金山网络科技有限公司 一种应用程序的功能组件界面资源的加载方法及系统
CN104731622A (zh) * 2015-03-27 2015-06-24 北京奇虎科技有限公司 一种应用程序的加载方法、装置和移动终端
CN105630461A (zh) * 2014-10-27 2016-06-01 航天信息股份有限公司 一种android应用界面的管理方法
CN108229107A (zh) * 2016-12-21 2018-06-29 武汉安天信息技术有限责任公司 一种Android平台应用程序的脱壳方法及容器
CN109918145A (zh) * 2019-01-10 2019-06-21 北京字节跳动网络技术有限公司 一种应用程序冷启动的加速方法、装置、电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6584612B1 (en) * 1999-07-15 2003-06-24 International Business Machines Corporation Transparent loading of resources from read-only memory for an application program
US20030126310A1 (en) * 2001-12-14 2003-07-03 Ryzhov Aleksandr O. Algorithm for localization of a JAVA application using reflection API and a custom class loader
US20060112379A1 (en) * 2004-11-12 2006-05-25 International Business Machines Corp. Method and system for on demand java resources
CN104216751A (zh) * 2014-09-30 2014-12-17 广州金山网络科技有限公司 一种应用程序的功能组件界面资源的加载方法及系统
CN105630461A (zh) * 2014-10-27 2016-06-01 航天信息股份有限公司 一种android应用界面的管理方法
CN104731622A (zh) * 2015-03-27 2015-06-24 北京奇虎科技有限公司 一种应用程序的加载方法、装置和移动终端
CN108229107A (zh) * 2016-12-21 2018-06-29 武汉安天信息技术有限责任公司 一种Android平台应用程序的脱壳方法及容器
CN109918145A (zh) * 2019-01-10 2019-06-21 北京字节跳动网络技术有限公司 一种应用程序冷启动的加速方法、装置、电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114090130A (zh) * 2021-11-26 2022-02-25 上海星融汽车科技有限公司 一种预加载执行逻辑的方法和系统
CN116662270A (zh) * 2022-09-09 2023-08-29 荣耀终端有限公司 文件解析方法及相关装置

Also Published As

Publication number Publication date
CN111625290B (zh) 2023-03-24

Similar Documents

Publication Publication Date Title
US9928038B2 (en) Dynamically building locale objects or subsections of locale objects based on historical data
CN108984174B (zh) 跨平台的应用创建方法、装置、服务器和存储介质
Taivalsaari et al. Web browser as an application platform
US20190087212A1 (en) Android simulator and method for implementing android simulator
US20180357085A1 (en) Method and apparatus for running android application on windows system
US10303748B2 (en) Method and device for providing webpage browsing based on web browser engine kernel
US9336001B2 (en) Dynamic instrumentation
US9778942B2 (en) Generating a replacement binary for emulation of an application
US20190108038A1 (en) Method and system for starting up application
CN111625289B (zh) 应用程序快速启动方法、装置和电子设备
CN110968305A (zh) 小程序可视化生成方法、装置、设备及存储介质
US20140365861A1 (en) Prefetching binary data for use by a browser plugin
CN111625290B (zh) 一种Android平台下布局文件预加载方法、装置及电子设备
CN113468448A (zh) 页面渲染方法及装置
JP2009501368A (ja) エミュレータパフォーマンスを向上させる仮想コードの選択的プリコンパイル
CN110955409B (zh) 在云平台上创建资源的方法和装置
WO2018120992A1 (zh) 一种窗口渲染方法及终端
US8443292B2 (en) Scripting application with privacy mode coordination
WO2013139015A1 (en) Hybrid emulation and kernel function processing systems and methods
CN114911541B (zh) 配置信息的处理方法、装置、电子设备及存储介质
CN114003421B (zh) 虚拟机超时机制测试方法、系统、终端及存储介质
CN114253537A (zh) 表单生成方法及装置、电子设备和存储介质
CN114647411A (zh) 编程界面加载方法、装置、电子设备及存储介质
CN114741294A (zh) 一种页面的调试方法、装置、设备及存储介质
CN116775202A (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230613

Address after: 6001, 6th Floor, No.1 Kaifeng Road, Shangdi Information Industry Base, Haidian District, Beijing, 100085

Patentee after: Beijing Baige Feichi Technology Co.,Ltd.

Address before: 100085 4001, 4th floor, No.1 Kaifa Road, Shangdi Information Industry base, Haidian District, Beijing

Patentee before: XIAOCHUANCHUHAI EDUCATION TECHNOLOGY (BEIJING) CO.,LTD.