CN106919405B - 一种客户端的初始化方法及装置 - Google Patents
一种客户端的初始化方法及装置 Download PDFInfo
- Publication number
- CN106919405B CN106919405B CN201510983214.XA CN201510983214A CN106919405B CN 106919405 B CN106919405 B CN 106919405B CN 201510983214 A CN201510983214 A CN 201510983214A CN 106919405 B CN106919405 B CN 106919405B
- Authority
- CN
- China
- Prior art keywords
- preset data
- client
- data
- installation package
- local
- 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
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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种客户端的初始化方法,用以解决现有技术存在的客户端初始化过程耗时较长、效率较低的问题。包括:接收针对客户端的初始化指令;响应于所述初始化指令,从所述客户端的安装包中的资源文件中,获取设置在所述资源文件中的、初始化所述客户端所需的预置数据;其中,设置在所述资源文件中的预置数据,包括:对具备非键值对KV结构的预置数据进行转化后得到的、具备KV结构的预置数据,和/或,具备除KV结构外的其他数据结构的非结构化预置数据;根据获取的预置数据,进行所述客户端的初始化。本申请还公开了一种客户端的初始化装置。
Description
技术领域
本申请涉及移动终端技术领域,尤其涉及一种客户端的初始化方法及装置。
背景技术
一般地,对客户端进行初始化时需要利用预置数据。其中,预置数据是指客户端在初始化时所需要的一些通用数据,比如用于生成客户端界面的数据、用于生成所述界面上设置的控件的数据,等等。客户端根据预置数据,能够完成包括构建界面等在内的初始化操作。
现有技术中,服务器向用户终端提供预置数据的方式,主要包括:将一部分预置数据(主要是结构相对比较简单的数据)以字符串的形式,写入到客户端的安装包中的源代码中——比如以安卓应用安装包(Android Application Package,APK)为例,现有技术中会将具备键值对(Key-Value,KV)结构的预置数据写入到APK中的源码资源文件classes.dex中。
除上述一部分预置数据外,用户终端在执行对客户端的初始化时,会从客户端的服务器下载另一部分预置数据(主要是结构相对复杂的数据,如图片数据等非结构化数据),从而基于该部分预置数据和写入到所述源代码中的预置数据,实现对于客户端的初始化。
上述方案存在的缺陷在于,用户终端在接收到针对客户端的初始化指令后,需要花费较长时间,才能从客户端的服务器处下载到除结构相对比较简单的数据外的、其他所有的初始化客户端所需的预置数据,从而导致客户端初始化过程耗费较长时间,效率较低。
发明内容
本申请实施例提供一种客户端的初始化方法,用以解决现有技术存在的客户端初始化过程耗时较长、效率较低的问题。
本申请实施例还提供一种客户端的初始化装置,用以解决现有技术存在的客户端初始化过程耗时较长、效率较低的问题。
本申请实施例采用下述技术方案:
一种客户端的初始化方法,包括:
接收针对客户端的初始化指令;响应于所述初始化指令,从所述客户端的安装包中的资源文件中,获取设置在所述资源文件中的、初始化所述客户端所需的预置数据;其中,设置在所述资源文件中的预置数据,包括:对具备非键值对KV结构的预置数据进行转化后得到的、具备KV结构的预置数据,和/或,具备除KV结构外的其他数据结构的非结构化预置数据;根据获取的预置数据,进行所述客户端的初始化。
一种客户端的初始化装置,包括:
初始化指令接收单元,用于接收针对客户端的初始化指令;预置数据获取单元,用于响应于所述初始化指令,从所述客户端的安装包中的资源文件中,获取设置在所述资源文件中的、初始化所述客户端所需的预置数据;其中,设置在所述资源文件中的预置数据,包括:对具备非键值对KV结构的预置数据进行转化后得到的、具备KV结构的预置数据,和/或,具备除KV结构外的其他数据结构的非结构化预置数据;初始化单元,用于根据获取的预置数据,进行所述客户端的初始化。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
由于可以将对具备非键值对KV结构的预置数据进行转化后得到的、具备KV结构的预置数据,和/或具备除KV结构外的其他数据结构的非结构化预置数据设置在安装包中,因此在初始化指令的触发下,可以直接从该安装包中获取到具备非键值对KV结构的预置数据进行转化后得到的、具备KV结构的预置数据,和/或具备除KV结构外的其他数据结构的非结构化预置数据,无需从服务器获取具备非键值对KV结构的预置数据,和/或具备除KV结构外的其他数据结构的非结构化预置数据,因此节约了客户端初始化过程所耗费的时间,提高了该过程的效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种客户端的初始化方法的具体实现流程示意图;
图2为本申请实施例提供的一种预置数据的获取方法的具体实现流程示意图;
图3为本申请实施例提供的一种客户端的初始化装置的具体结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
本申请实施例提供一种客户端的初始化方法,用以解决现有技术存在的客户端初始化过程耗时较长、效率较低的问题。该方法的执行主体,比如可以是手机、平板电脑、智能手表等等可安装客户端的用户终端。该方法的具体实现流程示意图如图1所示,主要包括下述步骤:
步骤11,用户终端接收针对客户端的初始化指令;
一般地,用户终端可能在下述三种情况下接收到初始化指令:
情况1:在客户端首次运行时;
在客户端首次运行时,触发客户端运行的指令,即为针对客户端的初始化指令。
情况2:当客户端的持久化到用户终端本地的预置数据被清除后,再次运行客户端时;
在客户端的预置数据被清除后,再次运行客户端时,客户端往往需要进行初始化。从而在客户端的预置数据被清除后,用户终端所接收到的第一个用于触发客户端运行的指令,也是针对客户端的初始化指令。
需要说明的是,所述持久化,是实现数据在持久状态和瞬时状态间转换的一种机制。通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存)。
情况3:当客户端进行版本更新重装后,再次运行客户端时。
在客户端进行版本更新重装后,再次运行客户端,相当于首次运行该更新后版本的客户端,即在客户端进行版本更新重装后,再次启动客户端时,用于触发客户端启动的运行指令即初始化指令。
步骤12,用户终端响应于针对客户端的初始化指令,从所述客户端的安装包中的资源文件中,获取设置在资源文件中的、初始化所述客户端所需的预置数据;
其中,设置在所述资源文件中的预置数据,包括:对具备非KV结构的预置数据进行转化后得到的、具备KV结构的预置数据,以及具备除KV结构外的其他数据结构的非结构化预置数据中的至少一种。
本申请实施例中,具备非KV结构的预置数据,比如可以包括结构化的预置数据;而具备除KV结构外的其他数据结构的非结构化预置数据,比如可以包括图片数据、音频数据或视频数据等非结构化的预置数据。
本申请实施例中,所述客户端的安装包,比如可以是保存在本地的安装包。以所述安装包为APK为例,APK的后缀名为.apk,但APK其实就是一个Zip格式的文件,其中往往会包含应用的二进制代码、资源、配置文件等。具体而言,APK中的文件目录一般包括:assets(额外资源文件目录)、lib(附加组件目录)、META-INF(证书文件目录)、res(资源文件目录)、AndroidManifest.xml(全局配置文件目录)、classes.dex(源码资源文件目录)和resources.arsc(二进制资源文件目录)。
其中,assets下的文件,包括额外资源文件和配置文件;lib下的文件,包括so文件,例如libnative-audio-jni.so文件等;META-INF下的文件,包括签名后的证书,比如CERT.RSA(签名文件的一种)、CERT.SF(签名文件的一种)和MANIFEST.MF(签名文件的一种)等;res下的文件,包括图片文件和界面的布局文件等;classes.dex下的文件,一般是Java源码编译后生成的Java字节码文件,有些软件的选项和说明内容的文字会在这个文件里;resources.arsc下的文件,一般是经过编译后的资源文件。
考虑到APK包含的不同资源文件,可以用于保存具有不同结构的数据——比如,res下的raw文件,可以用于保存结构相对比较简单的数据,如结构化数据和具备KV结构的数据;assets下的logo文件,可以用于保存结构相对比较复杂的数据,比如图片数据等非结构化数据;等等——因此本申请实施例中,服务器可以将不同结构的预置数据设置到APK包含的文件中,以便后续从文件中读取具备不同结构的预置数据进行客户端的初始化。
比如,将预置数据中的结构相对比较简单的数据(如结构化数据和结构相对比较简单的非结构化数据)以KV结构保存到所述raw文件中;而将预置数据中结构相对比较复杂的非结构化数据(如图片数据、音频数据或视频数据),直接保存到所述logo文件中。本申请实施例中,一般将客户端的安装包中能够用于保存预置数据的文件,称为“资源文件”,比如上述的res下的raw文件,或者assets下的logo文件,等等。
沿用上例,当服务器采用“以KV结构,将预置数据中的诸如结构化数据和结构相对比较简单的非结构化数据保存到所述raw文件中,和/或,将预置数据中的诸如结构相对比较复杂的非结构化数据直接保存到所述logo文件中”的方式,在安装包中设置数据时,步骤12中,就可以从安装包的资源文件res中的所述raw文件中,获取具备KV结构的预置数据,和/或,从安装包的额外资源文件assets中的logo文件中,获取具备除KV结构外的其他数据结构的非结构化预置数据——比如获取作为预置数据的图片数据。
需要说明的是,在将预置数据设置到客户端的安装包中时,考虑到格式比较复杂的预置数据可能导致用户终端耗费大量的存储资源,因此,在一种实施方式中,可以将格式比较复杂的预置数据转化为比较简单的格式,比如转化为Json String格式,然后再以KV结构保存该格式的预置数据。
本申请实施例中,也可以将结构化预置数据转化为Json String格式后,再以KV结构保存转化得到的预置数据。
比如,对某种格式比较复杂的预置数据进行转化得到的Json String格式的数据如下所示:
<string name="ServiceDetailList">[{"serviceId":"taobao_s_0000","name":"淘宝","labels":"CN,phone,购物,猜你喜欢","description":"淘,不出手心","gmtCreate":"1409027034000","gmtModify":"1426675473000","logoJson":"{\"backgroundColor\":\"#ff4200\",\"image_url\":\"content://com.yunos.lifecard/logo/ic_servicescard_tao.png\",\"color\":\"#ffffff\",\"backgroundImage\":\"\",\"background_url\":\"content://com.yunos.lifecard/logo/taobao.png\",\"background_url2\":\"http://dl.django.t.taobao.com/rest/1.0/image?fileIds\u003dZvAY82jMRSa2y_gJr7kY7wA AAB8AAQEC\u0026zoom\u003d96x96\"}","launchJson":"[{\"name\":\"淘宝\",\"url\":\"http://m.taobao.com\",\"login_type\":1}]","status":"1"}]</string>。
本申请实施例中,考虑到保存在用户终端本地的安装包中的预置数据,有可能不适用于对客户端进行初始化——比如预置数据有可能是比较旧的数据,而服务器早已对所述旧的数据进行了更新——因此,为避免利用不适用于对客户端进行初始化的预置数据进行客户端初始化而导致资源无谓浪费,步骤12的具体实现方式可以包括:用户终端响应于针对客户端的初始化指令,判断客户端的安装包是否满足预置条件,若判断结果为是,则从该安装包中的资源文件中,获取设置在资源文件中的预置数据。一般地,若判断结果为否,则不从该资源文件中获取预置数据并结束流程。
其中,判断保存在本地的客户端的安装包是否满足预置条件,比如可以包括:比较所述安装包的版本与最近一次持久化到本地的预置数据对应的版本;在比较结果为所述安装包的版本比最近一次持久化到本地的预置数据对应的版本更新时,判定所述安装包满足预置条件;否则,判定所述安装包不满足预置条件。
步骤13,用户终端根据获取的预置数据,进行客户端的初始化。
本申请实施例中,可以直接根据获取的预置数据进行客户端的初始化。或者,也可以将获取的预置数据保存到用户终端本地的指定文件后,再从指定文件读取预置数据进行客户端的初始化。
比如,在执行步骤13前,用户终端可以根据获取的预置数据,对用户终端本地的、用于保存持久化到本地的预置数据的存储空间进行更新,得到更新后的存储空间。从而后续可以从更新后的存储空间中获取预置数据,并根据获取的预置数据,进行客户端的初始化。
考虑到用户最近可能对持久化到客户端本地的预置数据进行过手动更新,若直接用安装包中的预置数据覆盖持久化到客户端本地的相应预置数据,可能会发生更新时间较早的预置数据覆盖更新时间较晚的预置数据的情况,因此,对用户终端本地的、用于保存持久化到本地的预置数据的存储空间进行更新,可以采用下述方式:
针对所述本地用于保存持久化到本地的预置数据的存储空间中的每个预置数据,分别执行:
确定该预置数据的更新时间,以及安装包中相应的预置数据的更新时间;
判断该预置数据的更新时间是否早于所述相应的预置数据的更新时间;
在判断结果为是时,使用所述相应的预置数据更新该预置数据,并将所述相应的预置数据的更新时间作为该预置数据的更新时间进行保存。
例如,假设所述文件中的持久化到本地的预置数据为:界面图片预置数据、服务预置数据、模板预置数据以及背景音乐预置数据。其中,所述界面图片预置数据的更新时间为:2015年4月1号,服务预置数据的更新时间为:2015年4月6号,模板预置数据的更新时间为:2015年4月5号,背景音乐预置数据的更新时间为:2015年4月5号。所述安装包中的预置数据(后文称新预置数据)的更新时间分别为:界面图片新预置数据的更新时间为:2015年8月8号,服务新预置数据的更新时间为:2015年8月5,模板新预置数据的更新时间为:2015年8月6号,背景音乐新预置数据的更新时间为:2015年4月5号。
通过对所述安装包中新预置数据的更新时间,与所述本地用于保存持久化到本地的预置数据的存储空间中相应的预置数据的更新时间进行比较,判断出界面图片预置数据、模板预置数据以及背景音乐预置数据的更新时间分别早于相应的新预置数据的更新时间,则使用安装包中的界面图片新预置数据、服务新预置数据以及模板新预置数据,对该文件中相应的预置数据进行更新,并将所述新预置数据的更新时间作为该预置数据的更新时间。更新后,持久化到本地的预置数据的更新时间分别为:界面图片预置数据的更新时间为:2015年8月8号,服务预置数据的更新时间为:2015年8月5,模板预置数据的更新时间为:2015年8月6号,背景音乐预置数据的更新时间为:2015年4月5号。
本申请实施例中,当根据所述安装包中的预置数据,对本地用于保存持久化到本地的预置数据的存储空间进行更新前,所述本地用于保存持久化到本地的预置数据的存储空间中还不存在预置数据时(比如首次对客户端进行初始化时),在执行步骤13前,可以直接将所述安装包中的预置数据,写入所述本地用于保存持久化到本地的预置数据的存储空间中。
比如,继续沿用前文所述的例子,当从所述安装包的资源文件中,获取设置在所述资源文件中的预置数据,包括:从所述安装包的资源文件res中的raw文件中,获取具备KV结构的预置数据时,可以将获取到的具备KV结构的第一指定类别的预置数据,持久化到本地的可扩展标记语言XML文件中,并将获取到的具备KV结构的第二指定类别的预置数据,持久化到本地数据库中。其中,这里所述的第一指定类别的预置数据,比如可以是在封装到raw文件中之前,不用对格式进行转化的预置数据;这里所说的第二指定类别的预置数据,比如可以是在设置到raw文件中之前,将其格式转化为指定格式(比如Json String格式)后以KV结构进行封装的预置数据,比如结构化预置数据。
考虑到在客户端初始化完成后,服务器后续还可能会对预置数据进行更新,且一般地,服务器端在更新应用的预置数据时,可能是对客户端的部分而非全部预置数据进行更新。针对这样的情况,用户终端可以仅下载被更新了的预置数据从而避免下载全部预置数据而耗费较多的处理资源。比如,在一种实施方式中,本申请实施例提供的方法可以包括:获取持久化到本地的各预置数据更新时间中的最晚更新时间;将所述最晚更新时间发送给服务器;下载服务器提供的、更新时间晚于所述最晚更新时间的预置数据;并利用下载的预置数据对持久化到本地的预置数据进行更新。采用这样的方式,可以使服务器获知应该提供怎样的预置数据,从而避免服务器盲目提供预置数据的问题。
例如,假设下述条件成立:
1、持久化到本地的预置数据中,更新时间最晚的预置数据的更新时间为:2015年5月5号;
2、服务器端保存有更新时间分别为:2014年11月20号、2015年4月1号以及2015年8月10号的预置数据;
则用户终端可以将持久化到本地的最晚的更新时间:2015年5月5号,发送给服务器端,以使得服务器将更新时间晚于2015年5月5号的预置数据发送给用户终端,避免了下载大量预置数据,从而节省了用户终端的资源。
本申请实施例中,用户终端可以是在接收到服务器发送的预置数据更新通知后,再从服务器下载预置数据;或者,用户终端也可以是定期向服务器进行查询,当查询到预置数据发生更新后,从服务器下载预置数据。
需要说明的是,本申请实施例中所述的客户端可以为安装在特定用户终端上的客户端;其中,所述的特定用户终端可以包括下述至少一种:
手机、路由器、机顶盒、家电设备以及车载装置。
通过本申请实施例1提供的上述方法,由于可以将对具备非键值对KV结构的预置数据进行转化后得到的、具备KV结构的预置数据,和/或具备除KV结构外的其他数据结构的非结构化预置数据设置在安装包中,因此在初始化指令的触发下,可以直接从该安装包中获取到具备非键值对KV结构的预置数据进行转化后得到的、具备KV结构的预置数据,和/或具备除KV结构外的其他数据结构的非结构化预置数据,无需从服务器获取具备非键值对KV结构的预置数据,和/或具备除KV结构外的其他数据结构的非结构化预置数据,因此节约了客户端初始化过程所耗费的时间,提高了该过程的效率。
实施例2
本申请实施例提供一种客户端的初始化方法,用以解决现有技术存在的客户端初始化过程耗时较长、效率较低的问题。该方法的具体实现流程示意图如图2所示,主要包括下述步骤:
步骤21,服务器获得预置数据;
步骤22,服务器在所述预置数据中,存在第一预定格式的预置数据时,将所述第一预定格式转化为第二预定格式;
需要说明的是,由于在将所述的第一预定格式的预置数据持久化到本地时,可能会由于第一预定格式比较复杂,导致耗费移动端设备大量的存储资源,在一种实施方式中,本申请实施例提供的方法,可以将第一预定格式的预置数据转化为比较简单的格式,比如Json String格式。
步骤23,服务器将预置数据(包括无需进行格式转换的数据,以及进行格式转换后得到的数据)封装到用于提供给用户终端的安装包,并发送给用户终端进行保存。
一般地,服务器可以将预置数据中的结构相对比较简单的非结构化数据(如KV结构的非结构化数据)封装到安装包的raw文件中,此外,将转化得到的Json String格式的数据以KV结也封装到该raw文件中。并针对每个以KV结构封装的预置数据,分别对应保存一个gmt_modify值,该gmt_modify值用于表示该预置数据的更新时间。
例如,以生活服务类应用为例,可以将应用中的服务数据以KV结构封装到raw文件中,则单个服务数据可以由以下各个部分组成:
[serviceId]:TEXT——服务唯一标识id;
[name]:TEXT——服务名称,比如:淘宝等;
[logoJson]:TEXT——服务logo图片;
[launchJson]:TEXT——服务链接;
[status]:INTEGER——是否可用:可用(1),下线(0);
[gmtCreate]:INTEGER——创建时间;
[gmtModify]:INTEGER——更新时间。
此外,服务器可以将预置数据中的结构相对比较复杂的非结构化数据,直接保存到指定的资源文件中,比如将图片数据保存到assets中的logo文件中,并生成该预置数据对应的统一资源标识符(Uniform Resource Identifier,URI),以便用户终端后续可以根据该URI,从指定的资源文件中读取预置数据。
步骤24,用户终端接收初始化指令。
步骤25,用户终端响应于所述初始化指令,判断保存的所述安装包中的版本号是否大于客户端当前的版本号。
在判断结果为是时,执行步骤26;
在判断结果为否时,结束流程。
步骤26,用户终端从所述安装包中读取的预置数据,进行客户端的初始化。
比如,沿用前例,用户终端可以通过下述方式,实现客户端的初始化:
从所述安装包的raw文件中,获取具备KV结构的非结构化预置数据,并保存至本地的XML文件Sharedpref中;
从所述安装包的raw文件中,获取具备KV结构且格式为Json String的预置数据(结构化预置数据),并保存至本地数据库SQLiteDatabase中。
在采用上述方式实现对于预置数据的获取与保存后,用户终端可以进一步执行下述步骤:
用户终端通过调用Sharedperf提供的数据读取接口,从Sharedperf中,读取具备KV结构的非结构化预置数据;
用户终端通过调用SQLiteDatabase提供的数据读取接口,从SQLiteDatabase中,读取格式为Json String的结构化预置数据;
用户终端根据图片数据的URI,从assets中的logo文件中获取图片数据。其中,所述URI,可以是由客户端中设置的用于提供该URI的方法“content provider”向用户终端提供的;
利用读取到的预置数据,实现对客户端的初始化,流程结束。
通过本申请实施例2提供的上述方法,由于可以将预置数据设置在安装包中,因此在初始化指令的触发下,可以直接根据该安装包中的各预置数据,实现对客户端的初始化,无需在该指令的触发下实时从服务器下载预置数据,从而一方面解决了现有技术存在的客户端初始化过程耗时较长、效率较低的问题,另一方面,还解决了现有技术中若用户终端在接收到针对客户端的初始化指令时,用户终端不能连接到客户端的服务器,则有可能导致客户端初始化失败的问题。
实施例3
本申请实施例提供一种客户端的初始化装置,用以解决现有技术存在的客户端初始化过程耗时较长、效率较低的问题。该装置的具体结构示意图如图3所示,包括初始化指令接收单元31、预置数据获取单元32以及初始化单元33。
其中,初始化指令接收单元31,用于接收针对客户端的初始化指令;
预置数据获取单元32,用于响应于所述初始化指令,从所述客户端的安装包中的资源文件中,获取设置在所述资源文件中的、初始化所述客户端所需的预置数据;其中,设置在所述资源文件中的预置数据,包括:对具备非键值对KV结构的预置数据进行转化后得到的、具备KV结构的预置数据,和/或,具备除KV结构外的其他数据结构的非结构化预置数据。特别地,对具备非键值对KV结构的预置数据进行转化后得到的、具备KV结构的预置数据,可以包括:对结构化预置数据进行转化后得到的、具备KV结构的预置数据。
初始化单元33,用于根据获取的预置数据,进行所述客户端的初始化。
在一种实施方式中,预置数据获取单元32,用于:判断所述安装包是否满足预置条件;在判断结果为是时,从所述安装包中的所述资源文件中,获取所述所需的预置数据。
在一种实施方式中,预置数据获取单元32,用于:比较所述安装包的版本与最近一次持久化到本地的预置数据对应的版本;在比较结果为所述安装包的版本比所述对应的版本更新时,判定所述安装包满足预置条件;否则,判定所述安装包不满足预置条件。
在一种实施方式中,所述装置还可以包括:更新单元,用于根据获取的预置数据,对本地用于保存持久化到本地的预置数据的存储空间进行更新,得到更新后的存储空间;
初始化单元33,用于在更新单元对本地用于保存持久化到本地的预置数据的存储空间进行更新后,从所述更新后的存储空间中获取预置数据,并根据获取的预置数据,进行所述客户端的初始化。
在一种实施方式中,预置数据获取单元32,还用于:当更新单元根据所述预置数据,对本地用于保存持久化到本地的预置数据的存储空间进行更新前,所述本地用于保存持久化到本地的预置数据的存储空间中已存在预置数据时,针对本地用于保存持久化到本地的预置数据的存储空间中的每个预置数据,分别执行:
确定该预置数据的更新时间,以及所述安装包中相应的预置数据的更新时间;
判断该预置数据的更新时间是否早于所述相应的预置数据的更新时间;
在判断结果为是时,使用所述相应的预置数据更新该预置数据,并将所述相应的预置数据的更新时间作为该预置数据的更新时间进行保存。
在一种实施方式中,预置数据获取单元32,用于:获取持久化到本地的各预置数据更新时间中的最晚更新时间;将所述最晚更新时间发送给服务器;下载服务器提供的、更新时间晚于所述最晚更新时间的预置数据;并利用下载的预置数据对持久化到本地的预置数据进行更新。
在一种实施方式中,预置数据获取单元32用于:从所述安装包的资源文件res中的raw文件中,获取具备KV结构的预置数据;从所述安装包的额外资源文件assets中的logo文件中,获取作为预置数据的图片数据。
在一种实施方式中,本申请实施例提供的该装置还可以包括持久化单元,用于:用于当预置数据获取单元32用于从所述安装包的资源文件res中的raw文件中,获取具备KV结构的预置数据时,将获取到的具备KV结构的第一指定类别的预置数据,持久化到本地的可扩展标记语言XML文件中;将获取到的具备KV结构的第二指定类别的预置数据,持久化到本地数据库中。
通过本申请实施例3提供的上述方法,由于可以将对具备非键值对KV结构的预置数据进行转化后得到的、具备KV结构的预置数据,和/或具备除KV结构外的其他数据结构的非结构化预置数据设置在安装包中,因此在初始化指令的触发下,可以直接从该安装包中获取到具备非键值对KV结构的预置数据进行转化后得到的、具备KV结构的预置数据,和/或具备除KV结构外的其他数据结构的非结构化预置数据,无需从服务器获取具备非键值对KV结构的预置数据,和/或具备除KV结构外的其他数据结构的非结构化预置数据,因此节约了客户端初始化过程所耗费的时间,提高了该过程的效率。。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (18)
1.一种客户端的初始化方法,其特征在于,包括:
接收针对客户端的初始化指令;所述初始化指令为在所述客户端不存在预置数据或不存在更新版本的预置数据的情况下发送;
响应于所述初始化指令,从所述客户端的安装包中的资源文件中,获取设置在所述资源文件中的、初始化所述客户端所需的预置数据;其中,设置在所述资源文件中的预置数据,包括:对具备非键值对KV结构的预置数据进行转化后得到的、具备KV结构的预置数据,或,具备除KV结构外的其他数据结构的非结构化预置数据;所述预置数据包括:用于生成客户端界面的数据和用于生成客户端界面上设置的控件的数据;
根据获取的预置数据,进行所述客户端的初始化。
2.如权利要求1所述的方法,其特征在于,对具备非键值对KV结构的预置数据进行转化后得到的、具备KV结构的预置数据,包括:
对结构化预置数据进行转化后得到的、具备KV结构的预置数据。
3.如权利要求1所述的方法,其特征在于,从所述资源文件中,获取设置在所述资源文件中的、初始化所述客户端所需的预置数据,包括:
判断所述安装包是否满足预置条件;在判断结果为是时,从所述安装包中的所述资源文件中,获取所述所需的预置数据。
4.如权利要求3所述的方法,其特征在于,判断所述安装包是否满足预置条件,包括:
比较所述安装包的版本与最近一次持久化到本地的预置数据对应的版本;
在比较结果为所述安装包的版本比所述对应的版本更新时,判定所述安装包满足预置条件;否则,判定所述安装包不满足预置条件。
5.如权利要求1所述的方法,其特征在于,根据获取的预置数据,进行所述客户端的初始化之前,所述方法还包括:
根据获取的预置数据,对本地用于保存持久化到本地的预置数据的存储空间进行更新,得到更新后的存储空间;
根据获取的预置数据,进行所述客户端的初始化,包括:从所述更新后的存储空间中获取预置数据,并根据获取的预置数据,进行所述客户端的初始化。
6.如权利要求5所述的方法,其特征在于,当根据所述预置数据,对本地用于保存持久化到本地的预置数据的存储空间进行更新前,所述本地用于保存持久化到本地的预置数据的存储空间中已存在预置数据时,根据获取的预置数据,对本地用于保存持久化到本地的预置数据的存储空间进行更新,包括:
针对本地用于保存持久化到本地的预置数据的存储空间中的每个预置数据,分别执行:
确定该预置数据的更新时间,以及所述安装包中相应的预置数据的更新时间;
判断该预置数据的更新时间是否早于所述相应的预置数据的更新时间;
在判断结果为是时,使用所述相应的预置数据更新该预置数据,并将所述相应的预置数据的更新时间作为该预置数据的更新时间进行保存。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
获取持久化到本地的各预置数据更新时间中的最晚更新时间;
将所述最晚更新时间发送给服务器;
下载服务器提供的、更新时间晚于所述最晚更新时间的预置数据;并利用下载的预置数据对持久化到本地的预置数据进行更新。
8.如权利要求1所述的方法,其特征在于,从所述客户端的安装包中的资源文件中,获取设置在所述资源文件中的、初始化所述客户端所需的预置数据,包括下述操作中的至少一项:
从所述安装包的资源文件res中的raw文件中,获取具备KV结构的预置数据;
从所述安装包的额外资源文件assets中的logo文件中,获取作为预置数据的图片数据。
9.如权利要求8所述的方法,其特征在于,从所述资源文件中,获取设置在所述资源文件中的预置数据,包括:从所述安装包的资源文件res中的raw文件中,获取具备KV结构的预置数据时,根据获取的预置数据,进行客户端的初始化前,所述方法还包括:
将获取到的具备KV结构的第一指定类别的预置数据,持久化到本地的可扩展标记语言XML文件中;将获取到的具备KV结构的第二指定类别的预置数据,持久化到本地数据库中;
所述第一指定类别的预置数据包括不进行格式转化、直接设置在所述资源文件中的预置数据;所述第二指定类别的预置数据包括进行格式转化后设置在所述资源文件中的预置数据。
10.一种客户端的初始化装置,其特征在于,包括:
初始化指令接收单元,用于接收针对客户端的初始化指令;所述初始化指令为在所述客户端不存在预置数据或不存在更新版本的预置数据的情况下发送;
预置数据获取单元,用于响应于所述初始化指令,从所述客户端的安装包中的资源文件中,获取设置在所述资源文件中的、初始化所述客户端所需的预置数据;其中,设置在所述资源文件中的预置数据,包括:对具备非键值对KV结构的预置数据进行转化后得到的、具备KV结构的预置数据,或,具备除KV结构外的其他数据结构的非结构化预置数据;所述预置数据包括:用于生成客户端界面的数据和用于生成客户端界面上设置的控件的数据;
初始化单元,用于根据获取的预置数据,进行所述客户端的初始化。
11.如权利要求10所述的装置,其特征在于,对具备非键值对KV结构的预置数据进行转化后得到的、具备KV结构的预置数据,包括:
对结构化预置数据进行转化后得到的、具备KV结构的预置数据。
12.如权利要求10所述的装置,其特征在于,预置数据获取单元,用于:
判断所述安装包是否满足预置条件;在判断结果为是时,从所述安装包中的所述资源文件中,获取所述所需的预置数据。
13.如权利要求12所述的装置,其特征在于,预置数据获取单元,用于:
比较所述安装包的版本与最近一次持久化到本地的预置数据对应的版本;
在比较结果为所述安装包的版本比所述对应的版本更新时,判定所述安装包满足预置条件;否则,判定所述安装包不满足预置条件。
14.如权利要求10所述的装置,其特征在于,所述装置还包括:
更新单元,用于根据获取的预置数据,对本地用于保存持久化到本地的预置数据的存储空间进行更新,得到更新后的存储空间;
初始化单元,用于在更新单元对本地用于保存持久化到本地的预置数据的存储空间进行更新后,从所述更新后的存储空间中获取预置数据,并根据获取的预置数据,进行所述客户端的初始化。
15.如权利要求14所述的装置,其特征在于,预置数据获取单元,还用于:
当更新单元根据所述预置数据,对本地用于保存持久化到本地的预置数据的存储空间进行更新前,所述本地用于保存持久化到本地的预置数据的存储空间中已存在预置数据时,针对本地用于保存持久化到本地的预置数据的存储空间中的每个预置数据,分别执行:
确定该预置数据的更新时间,以及所述安装包中相应的预置数据的更新时间;
判断该预置数据的更新时间是否早于所述相应的预置数据的更新时间;
在判断结果为是时,使用所述相应的预置数据更新该预置数据,并将所述相应的预置数据的更新时间作为该预置数据的更新时间进行保存。
16.如权利要求15所述的装置,其特征在于,预置数据获取单元,用于:
获取持久化到本地的各预置数据更新时间中的最晚更新时间;
将所述最晚更新时间发送给服务器;
下载服务器提供的、更新时间晚于所述最晚更新时间的预置数据;并利用下载的预置数据对持久化到本地的预置数据进行更新。
17.如权利要求10所述的装置,其特征在于,预置数据获取单元,用于:
从所述安装包的资源文件res中的raw文件中,获取具备KV结构的预置数据;
从所述安装包的额外资源文件assets中的logo文件中,获取作为预置数据的图片数据。
18.如权利要求17所述的装置,其特征在于,所述装置还包括:
持久化单元,用于当预置数据获取单元用于从所述安装包的资源文件res中的raw文件中,获取具备KV结构的预置数据时,将获取到的具备KV结构的第一指定类别的预置数据,持久化到本地的可扩展标记语言XML文件中;将获取到的具备KV结构的第二指定类别的预置数据,持久化到本地数据库中;
所述第一指定类别的预置数据包括不进行格式转化、直接设置在所述资源文件中的预置数据;所述第二指定类别的预置数据包括进行格式转化后设置在所述资源文件中的预置数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510983214.XA CN106919405B (zh) | 2015-12-24 | 2015-12-24 | 一种客户端的初始化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510983214.XA CN106919405B (zh) | 2015-12-24 | 2015-12-24 | 一种客户端的初始化方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106919405A CN106919405A (zh) | 2017-07-04 |
CN106919405B true CN106919405B (zh) | 2021-06-08 |
Family
ID=59459952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510983214.XA Active CN106919405B (zh) | 2015-12-24 | 2015-12-24 | 一种客户端的初始化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106919405B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299352B (zh) * | 2018-11-14 | 2022-02-01 | 百度在线网络技术(北京)有限公司 | 搜索引擎中网站数据的更新方法、装置和搜索引擎 |
CN111782715A (zh) * | 2020-06-02 | 2020-10-16 | 深圳供电局有限公司 | 辅助学习系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656605A (zh) * | 2008-08-20 | 2010-02-24 | 北京闻言科技有限公司 | 一种客户端同步结构化数据的方法 |
CN103345388A (zh) * | 2013-06-05 | 2013-10-09 | 中国电子科技集团公司第十五研究所 | 基于安卓操作系统的软件适应移动终端的方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699400B (zh) * | 2009-09-03 | 2013-02-27 | 中兴通讯股份有限公司 | 一种生成和运行客户端安装程序的方法及系统 |
US8924954B2 (en) * | 2011-11-22 | 2014-12-30 | Huawei Technologies Co., Ltd. | Application software installation method and application software installation apparatus |
CN103316472B (zh) * | 2013-05-17 | 2015-12-23 | 南京睿悦信息技术有限公司 | 一种基于蓝牙手柄的Android设备游戏平台系统及其实现方法 |
-
2015
- 2015-12-24 CN CN201510983214.XA patent/CN106919405B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656605A (zh) * | 2008-08-20 | 2010-02-24 | 北京闻言科技有限公司 | 一种客户端同步结构化数据的方法 |
CN103345388A (zh) * | 2013-06-05 | 2013-10-09 | 中国电子科技集团公司第十五研究所 | 基于安卓操作系统的软件适应移动终端的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106919405A (zh) | 2017-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413346B (zh) | 一种参数更新方法及装置 | |
WO2017071494A1 (zh) | 一种应用部署方法和装置 | |
CN105335187B (zh) | 一种应用的处理方法及装置 | |
KR102223260B1 (ko) | 리소스 획득 방법 및 관련 장치 | |
CN108322490B (zh) | 虚拟机配置及部署分布式云服务系统的方法、装置和服务器 | |
CN107305553B (zh) | 一种基于Hybrid App中动态跳转Hybrid页面的方法及系统 | |
CN105589658B (zh) | 资源处理方法、系统及服务器、仓库管理方法及装置 | |
EP3720094A1 (en) | Information processing method, apparatus, device and system | |
CN106569880B (zh) | 一种Android应用间动态共享资源的方法及系统 | |
CN107968805B (zh) | 一种事件通知方法及服务器 | |
CN108647032B (zh) | 应用加载方法及装置、计算机装置和计算机可读存储介质 | |
US10715603B2 (en) | Systems and methods for sharing application data between isolated applications executing on one or more application platforms | |
CN109039730B (zh) | 服务器集群及服务器集群配置信息管理方法 | |
EP3313041A1 (en) | Application download method and device | |
CN106919405B (zh) | 一种客户端的初始化方法及装置 | |
CN104536752A (zh) | 自动生成apk的方法及装置 | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
KR100670605B1 (ko) | 멀티미디어 콘텐츠 서비스 시스템과 방법 및 그 기록매체 | |
CN109710287B (zh) | 一种热更新方法、装置及计算机存储介质 | |
CN106599045B (zh) | 一种请求发送方法及装置 | |
CN112134908A (zh) | 应用适配方法及服务器、介质、车载多媒体系统 | |
CN106293814B (zh) | 升级方法及装置 | |
CN108920328B (zh) | 发现终端应用变更的方法及装置 | |
WO2015007183A1 (en) | Methods for adapting a dual-sim terminal, dual-sim terminal, and server | |
CN108804088B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201218 Address after: Room 603, 6 / F, Roche Plaza, 788 Cheung Sha Wan Road, Kowloon, China Applicant after: Zebra smart travel network (Hong Kong) Limited Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands Applicant before: Alibaba Group Holding Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |