CN115061750B - 针对应用程序的组件化数据交互方法、装置、设备及介质 - Google Patents
针对应用程序的组件化数据交互方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115061750B CN115061750B CN202210733641.2A CN202210733641A CN115061750B CN 115061750 B CN115061750 B CN 115061750B CN 202210733641 A CN202210733641 A CN 202210733641A CN 115061750 B CN115061750 B CN 115061750B
- Authority
- CN
- China
- Prior art keywords
- data
- instance
- application program
- library
- base
- 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 51
- 230000003993 interaction Effects 0.000 title claims abstract description 29
- 238000005538 encapsulation Methods 0.000 claims abstract description 13
- 238000013500 data storage Methods 0.000 claims abstract description 11
- 230000005012 migration Effects 0.000 claims description 9
- 238000013508 migration Methods 0.000 claims description 9
- 238000004806 packaging method and process Methods 0.000 claims description 9
- 235000010627 Phaseolus vulgaris Nutrition 0.000 claims description 3
- 244000046052 Phaseolus vulgaris Species 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000000586 desensitisation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种针对应用程序的组件化数据交互方法、装置、设备及介质,方法包括:确定应用程序中组件所对应的基础库,对基础库进行MMKV的业务封装,生成单例模式的实例;基础库为基础组件库;在应用程序启动时,通过基础库中的预设工作线程对实例进行初始化;判断实例中是否具有应用程序的版本数据;若否,则读取轻量级数据存储区Sharepreferences中的基础数据,以将基础数据加载到内存中;对其他组件添加对于基础库的依赖,以使其他组件通过实例对内存中的基础数据进行读取;其中,其他组件为非基础组件。基础库对外提供的单例模式的实例,在应用程序启动的同时,通过开启一个工作线程初始化基础库的实例,减少工作线程对应用程序启动的影响。
Description
技术领域
本申请涉及信息化技术领域,尤其涉及一种针对应用程序的组件化数据交互方法、装置、设备及介质。
背景技术
随着技术进步,安卓项目由之前的单一Module实现复杂功能,到现在采用组件化技术,通过一个个功能细化的组件实现功能复杂的应用程序。
但是,在组件化实现中出现了本地数据初始化对应用程序的启动造成一定的延后作用、各组件无法保证对本地数据实现安全可靠的操作、业务下数据的读写速度变慢等问题。因此,需要一种更可靠的针对应用程序的组件化数据交互方案。
发明内容
本申请实施例提供一种针对应用程序的组件化数据交互方法、装置、设备及介质,用于解决需要一种更可靠的针对应用程序的组件化数据交互的问题。
本申请实施例采用下述技术方案:
一方面,本申请实施例提供了一种针对应用程序的组件化数据交互方法,该方法包括:确定应用程序中组件所对应的基础库,对所述基础库进行MMKV的业务封装,生成单例模式的实例;所述基础库为基础组件库;在所述应用程序启动时,通过所述基础库中的预设工作线程对所述实例进行初始化;判断所述实例中是否具有所述应用程序的版本数据;若否,则读取轻量级数据存储区Sharepreferences中的基础数据,以将所述基础数据加载到内存中;对其他组件添加对于所述基础库的依赖,以使所述其他组件通过所述实例对所述内存中的基础数据进行读取;其中,所述其他组件为非基础组件。
一个示例中,所述判断所述实例中是否具有所述应用程序的版本数据之后,所述方法还包括:若所述实例中具有所述应用程序的版本数据,则对所述Sharepreferences进行数据拆分与数据迁移,以将用户数据与基础数据进行分离;在数据迁移完成后,删除所述Sharepreferences中的数据。
一个示例中,所述以将用户数据与基础数据进行分离之后,所述方法还包括:在所述用户登录时,确定所述用户对应的业务需求;根据所述业务需求,对所述用户数据进行解密,并将解密的用户数据加载到所述实例中,以使所述其他组件调用。
一个示例中,所述在所述应用程序启动时,通过所述基础库中的预设工作线程对所述实例进行初始化,具体包括:在所述基础库的壳组件中构建继承BaseApplication的ShellApplication,在所述BaseApplication中构建所述预设工作线程;在所述应用程序启动时,启动所述壳组件中的所述ShellApplication,根据所述BaseApplication中的所述预设工作线程,对所述实例进行初始化。
一个示例中,所述以使所述其他组件通过所述依赖对所述内存中的基础数据进行读取之后,所述方法还包括:在安全线程下,所述其他组件对所述基础数据进行修改与删除,并读写各自业务需要的业务数据,并通过相同的KEY进行跨组件的数据交互。
一个示例中,所述实例存储包括基本类型数据、JSON数据、序列化的bean数据。
一个示例中,以使所述其他组件通过所述实例对所述内存中的基础数据进行读取之后,所述方法还包括:若所述其他组件读取所述基础数据失败,则向用户进行反馈;
基于所述用户的操作,验证所述其他组件是否成功添加对所述基础库的依赖。
另一方面,本申请实施例提供了一种针对应用程序的组件化数据交互装置,该装置包括:封装模块,确定应用程序中组件所对应的基础库,对所述基础库进行MMKV的业务封装,生成单例模式封装的实例;所述基础库为基础组件库;初始化模块,在所述应用程序启动时,通过所述基础库中的预设工作线程对所述实例进行初始化;判断模块,判断所述实例中是否具有所述应用程序的版本数据;加载模块,若否,则读取轻量级数据存储区Sharepreferences中的基础数据,以将所述基础数据加载到内存中;添加模块,对其他组件添加对于所述基础库的依赖,以使所述其他组件通过所述实例对所述内存中的基础数据进行读取;其中,所述其他组件为非基础组件。
另一方面,本申请实施例提供了一种针对应用程序的的组件化数据交互设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:确定应用程序中组件所对应的基础库,对所述基础库进行MMKV的业务封装,生成单例模式封装的实例;所述基础库为基础组件库;在所述应用程序启动时,通过所述基础库中的预设工作线程对所述实例进行初始化;判断所述实例中是否具有所述应用程序的版本数据;若否,则读取轻量级数据存储区Sharepreferences中的基础数据,以将所述基础数据加载到内存中;对其他组件添加对于所述基础库的依赖,以使所述其他组件通过所述实例对所述内存中的基础数据进行读取;其中,所述其他组件为非基础组件。
另一方面,本申请实施例提供了一种针对应用程序的的组件化数据交互非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:确定应用程序中组件所对应的基础库,对所述基础库进行MMKV的业务封装,生成单例模式封装的实例;所述基础库为基础组件库;在所述应用程序启动时,通过所述基础库中的预设工作线程对所述实例进行初始化;判断所述实例中是否具有所述应用程序的版本数据;若否,则读取轻量级数据存储区Sharepreferences中的基础数据,以将所述基础数据加载到内存中;对其他组件添加对于所述基础库的依赖,以使所述其他组件通过所述实例对所述内存中的基础数据进行读取;其中,所述其他组件为非基础组件。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
基础库对外提供的单例模式的实例,在应用程序启动的同时,通过开启一个工作线程初始化基础库的实例,通过工作线程减少对应用程序启动的影响,既不增加应用程序的启动时间,也不影响用户体验,提前准备实例缩短后续数据读取时间,并且将基础数据加载到内存中,其他组件通过实例可以快速的读取内存中的基础数据,避免反复启动与销毁带来的内存消耗,各组件可以通过共享实例的方法,实现内存数据、本地数据读写交互,优化存储资源与计算资源的利用,同时节约了时间,提高了读取速度。
附图说明
为了更清楚地说明本申请的技术方案,下面将结合附图来对本申请的部分实施例进行详细说明,附图中:
图1为本申请实施例提供的一种针对应用程序的组件化数据交互方法的流程示意图;
图2为本申请实施例提供的一种针对应用程序的组件化数据交互装置的框架示意图;
图3为本申请实施例提供的一种针对应用程序的组件化数据交互设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本申请的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面参照附图来对本申请的一些实施例进行详细说明。
图1为本申请实施例提供的一种针对应用程序的组件化数据交互方法的流程示意图。该方法可以应用于不同的业务领域,比如,互联网金融业务领域、电商业务领域、即时通讯业务领域、游戏业务领域、公务业务领域等。该流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。
本申请实施例涉及的分析方法的实现可以为终端设备,也可以为服务器,本申请对此不作特殊限制。为了方便理解和描述,以下实施例均以服务器为例进行详细描述。
需要说明的是,该服务器可以是单独的一台设备,可以是有多台设备组成的系统,即,分布式服务器,本申请对此不做具体限定。
图1的流程可以包括以下步骤:
S102:确定应用程序中组件所对应的基础库,对所述基础库进行MMKV的业务封装,生成单例模式的实例。该基础库为基础组件库,该实例存储包括基本类型数据、JSON数据、序列化的bean数据。
其中,MMKV是基于mmap内存映射的key-value组件,通过MMKV代替安卓原生的Sharepreferences,然后在基础库中,实现mmkv的业务封装,通过单例模式对外提供一个名为HELPER的实例。
S104:在所述应用程序启动时,通过所述基础库中的预设工作线程对所述实例进行初始化。
在本申请的一些实施例中,在基础库中的BaseApplication中的oncreate实现实例的初始化。
具体地,在基础库的壳组件中构建继承BaseApplication的ShellApplication,也就是说,壳组件中存在继承自BaseApplication的ShellApplication。
然后,在BaseApplication中构建预设工作线程,在应用程序启动时,启动壳组件中的ShellApplication,根据BaseApplication中的预设工作线程,对实例进行初始化。
也就是说,在应用程序启动时,实际启动的是ShellApplication,在shellapplication的oncreate通过super.oncreate实现BaseApplication中业务的初始化,即,间接在BaseApplication中的工作线程完成初始化基础库中的实例。
S106:判断所述实例中是否具有所述应用程序的版本数据。
需要说明的是,没有版本数据,说明这种是第一次安装应用程序,没有用户数据,因此,执行S108。
若实例中具有应用程序的版本数据,则对Sharepreferences进行数据拆分与数据迁移,以将用户数据与基础数据进行分离,然后在数据迁移拆分完成后,删除Sharepreferences中的数据。然后,执行S108中的方法。
通过实例HELPER,实现老数据的迁移和数据分离,将基础数据与用户相关数据分离,提高了应用程序的安全性,即,提高了APP的安全性。
S108:若否,则读取轻量级数据存储区Sharepreferences中的基础数据,以将所述基础数据加载到内存中。
其中,仅仅把基础数据加载到内存中,用户数据则不需要。
S110:对其他组件添加对于所述基础库的依赖,以使所述其他组件通过所述实例对所述内存中的基础数据进行读取。
其中,其他组件为非基础组件,即,在该应用程序中,除了基础组件库之外的组件。
即,其他组件通过gradle自动添加基础库的依赖,通过基础库中的HELPER实例可以直接访问加载到内存中的基础数据,并在安全线程下,其他组件可以对基础数据进行修改与删除,并读写各自业务需要的业务数据,并通过相同的KEY进行跨组件的数据交互。
进一步地,若其他组件读取基础数据失败,则向用户进行反馈;
基于用户的操作,验证其他组件是否成功添加对基础库的依赖。
此外,在用户登录时,确定用户对应的业务需求,根据业务需求,对用户数据进行解密,并将解密的用户数据加载到实例中,以使其他组件调用。即,将本地用户数据通过解密脱敏等处理加载到单例中,供业务使用。
需要说明的是,虽然本申请实施例是参照图1来对步骤S102至步骤S110依次进行介绍说明的,但这并不代表步骤S102至步骤S110必须按照严格的先后顺序执行。本申请实施例之所以按照图1中所示的顺序对步骤S102至步骤S110依次进行介绍说明,是为了方便本领域技术人员理解本申请实施例的技术方案。换句话说,在本申请实施例中,步骤S102至步骤S110之间的先后顺序可以根据实际需要进行适当调整。
通过图1的方法,基础库对外提供的单例模式的实例,在应用程序启动的同时,通过开启一个工作线程初始化基础库的实例,通过工作线程减少对应用程序启动的影响,既不增加应用程序的启动时间,也不影响用户体验,提前准备实例缩短后续数据读取时间,并且将基础数据加载到内存中,其他组件通过实例可以快速的读取内存中的基础数据,避免反复启动与销毁带来的内存消耗,各组件可以通过共享实例的方法,实现内存数据、本地数据读写交互,优化存储资源与计算资源的利用,同时节约了时间,提高了读取速度。
基于同样的思路,本申请的一些实施例还提供了上述方法对应的装置、设备和非易失性计算机存储介质。
图2为本申请实施例提供的一种针对应用程序的组件化数据交互装置的框架示意图,该装置包括:
封装模块202,确定应用程序中组件所对应的基础库,对所述基础库进行MMKV的业务封装,生成单例模式封装的实例;所述基础库为基础组件库;
初始化模块204,在所述应用程序启动时,通过所述基础库中的预设工作线程对所述实例进行初始化;
判断模块206,判断所述实例中是否具有所述应用程序的版本数据;
加载模块208,若否,则读取轻量级数据存储区Sharepreferences中的基础数据,以将所述基础数据加载到内存中;
添加模块210,对其他组件添加对于所述基础库的依赖,以使所述其他组件通过所述实例对所述内存中的基础数据进行读取;其中,所述其他组件为非基础组件。
图3为本申请实施例提供的一种针对应用程序的组件化数据交互设备的结构示意图,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
确定应用程序中组件所对应的基础库,对所述基础库进行MMKV的业务封装,生成单例模式封装的实例;所述基础库为基础组件库;
在所述应用程序启动时,通过所述基础库中的预设工作线程对所述实例进行初始化;
判断所述实例中是否具有所述应用程序的版本数据;
若否,则读取轻量级数据存储区Sharepreferences中的基础数据,以将所述基础数据加载到内存中;
对其他组件添加对于所述基础库的依赖,以使所述其他组件通过所述实例对所述内存中的基础数据进行读取;其中,所述其他组件为非基础组件。
本申请实施例提供一种针对应用程序的组件化数据交互非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
确定应用程序中组件所对应的基础库,对所述基础库进行MMKV的业务封装,生成单例模式封装的实例;所述基础库为基础组件库;
在所述应用程序启动时,通过所述基础库中的预设工作线程对所述实例进行初始化;
判断所述实例中是否具有所述应用程序的版本数据;
若否,则读取轻量级数据存储区Sharepreferences中的基础数据,以将所述基础数据加载到内存中;
对其他组件添加对于所述基础库的依赖,以使所述其他组件通过所述实例对所述内存中的基础数据进行读取;其中,所述其他组件为非基础组件。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请技术原理之内所作的任何修改、等同替换、改进等,均应落入本申请的保护范围之内。
Claims (7)
1.一种针对应用程序的组件化数据交互方法,其特征在于,所述方法包括:
确定应用程序中组件所对应的基础库,对所述基础库进行MMKV的业务封装,生成单例模式的实例;所述基础库为基础组件库;
在所述应用程序启动时,通过所述基础库中的预设工作线程对所述实例进行初始化;
判断所述实例中是否具有所述应用程序的版本数据;
若否,则读取轻量级数据存储区Sharepreferences中的基础数据,以将所述基础数据加载到内存中;
对其他组件添加对于所述基础库的依赖,以使所述其他组件通过所述实例对所述内存中的基础数据进行读取;其中,所述其他组件为非基础组件;
所述判断所述实例中是否具有所述应用程序的版本数据之后,所述方法还包括:
若所述实例中具有所述应用程序的版本数据,则对所述Sharepreferences进行数据拆分与数据迁移,以将用户数据与基础数据进行分离;
在数据迁移拆分完成后,删除所述Sharepreferences中的数据;
所述以将用户数据与基础数据进行分离之后,所述方法还包括:
在所述用户登录时,确定所述用户对应的业务需求;
根据所述业务需求,对所述用户数据进行解密,并将解密的用户数据加载到所述实例中,以使所述其他组件调用;
所述在所述应用程序启动时,通过所述基础库中的预设工作线程对所述实例进行初始化,具体包括:
在所述基础库的壳组件中构建继承BaseApplication的ShellApplication,在所述BaseApplication中构建所述预设工作线程;
在所述应用程序启动时,启动所述壳组件中的所述ShellApplication,根据所述BaseApplication中的所述预设工作线程,对所述实例进行初始化。
2.根据权利要求1所述的方法,其特征在于,所述以使所述其他组件通过所述依赖对所述内存中的基础数据进行读取之后,所述方法还包括:
在安全线程下,所述其他组件对所述基础数据进行修改与删除,并读写各自业务需要的业务数据,并通过相同的KEY进行跨组件的数据交互。
3.根据权利要求1所述的方法,其特征在于,所述实例存储包括基本类型数据、JSON数据、序列化的bean数据。
4.根据权利要求1所述的方法,其特征在于,所述以使所述其他组件通过所述实例对所述内存中的基础数据进行读取之后,所述方法还包括:
若所述其他组件读取所述基础数据失败,则向用户进行反馈;
基于所述用户的操作,验证所述其他组件是否成功添加对所述基础库的依赖。
5.一种针对应用程序的组件化数据交互装置,其特征在于,所述装置包括:
封装模块,确定应用程序中组件所对应的基础库,对所述基础库进行MMKV的业务封装,生成单例模式封装的实例;所述基础库为基础组件库;
初始化模块,在所述应用程序启动时,通过所述基础库中的预设工作线程对所述实例进行初始化;
判断模块,判断所述实例中是否具有所述应用程序的版本数据;
加载模块,若否,则读取轻量级数据存储区Sharepreferences中的基础数据,以将所述基础数据加载到内存中;
添加模块,对其他组件添加对于所述基础库的依赖,以使所述其他组件通过所述实例对所述内存中的基础数据进行读取;其中,所述其他组件为非基础组件;
所述判断所述实例中是否具有所述应用程序的版本数据之后,还包括:
若所述实例中具有所述应用程序的版本数据,则对所述Sharepreferences进行数据拆分与数据迁移,以将用户数据与基础数据进行分离;
在数据迁移拆分完成后,删除所述Sharepreferences中的数据;
所述以将用户数据与基础数据进行分离之后,还包括:
在所述用户登录时,确定所述用户对应的业务需求;
根据所述业务需求,对所述用户数据进行解密,并将解密的用户数据加载到所述实例中,以使所述其他组件调用;
所述在所述应用程序启动时,通过所述基础库中的预设工作线程对所述实例进行初始化,具体包括:
在所述基础库的壳组件中构建继承BaseApplication的ShellApplication,在所述BaseApplication中构建所述预设工作线程;
在所述应用程序启动时,启动所述壳组件中的所述ShellApplication,根据所述BaseApplication中的所述预设工作线程,对所述实例进行初始化。
6.一种针对应用程序的的组件化数据交互设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如:权利要求1~4中任一项所述的一种针对应用程序的组件化数据交互方法。
7.一种针对应用程序的组件化数据交互非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:权利要求1~4中任一项所述的一种针对应用程序的组件化数据交互方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210733641.2A CN115061750B (zh) | 2022-06-27 | 2022-06-27 | 针对应用程序的组件化数据交互方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210733641.2A CN115061750B (zh) | 2022-06-27 | 2022-06-27 | 针对应用程序的组件化数据交互方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115061750A CN115061750A (zh) | 2022-09-16 |
CN115061750B true CN115061750B (zh) | 2024-05-31 |
Family
ID=83202333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210733641.2A Active CN115061750B (zh) | 2022-06-27 | 2022-06-27 | 针对应用程序的组件化数据交互方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115061750B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1850227A1 (en) * | 2006-04-28 | 2007-10-31 | Sag Ag | Data processing system and metod for providing a status management service |
WO2020103840A1 (zh) * | 2018-11-19 | 2020-05-28 | 中兴通讯股份有限公司 | 一种加载业务的方法及装置 |
CN112698888A (zh) * | 2020-12-28 | 2021-04-23 | 广州虎牙科技有限公司 | 应用程序的组件化、组件调用和组件初始化方法及其装置 |
CN114077458A (zh) * | 2021-10-25 | 2022-02-22 | 上海浦东发展银行股份有限公司 | 应用程序内业务模块启动方法、装置、设备和存储介质 |
CN114528037A (zh) * | 2021-12-31 | 2022-05-24 | 北京达佳互联信息技术有限公司 | 一种应用启动方法、装置、电子设备及存储介质 |
CN114528054A (zh) * | 2022-01-19 | 2022-05-24 | 浪潮卓数大数据产业发展有限公司 | 基于业务模块的第三方sdk初始化方法、装置、设备及介质 |
-
2022
- 2022-06-27 CN CN202210733641.2A patent/CN115061750B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1850227A1 (en) * | 2006-04-28 | 2007-10-31 | Sag Ag | Data processing system and metod for providing a status management service |
WO2020103840A1 (zh) * | 2018-11-19 | 2020-05-28 | 中兴通讯股份有限公司 | 一种加载业务的方法及装置 |
CN112698888A (zh) * | 2020-12-28 | 2021-04-23 | 广州虎牙科技有限公司 | 应用程序的组件化、组件调用和组件初始化方法及其装置 |
CN114077458A (zh) * | 2021-10-25 | 2022-02-22 | 上海浦东发展银行股份有限公司 | 应用程序内业务模块启动方法、装置、设备和存储介质 |
CN114528037A (zh) * | 2021-12-31 | 2022-05-24 | 北京达佳互联信息技术有限公司 | 一种应用启动方法、装置、电子设备及存储介质 |
CN114528054A (zh) * | 2022-01-19 | 2022-05-24 | 浪潮卓数大数据产业发展有限公司 | 基于业务模块的第三方sdk初始化方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115061750A (zh) | 2022-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11126448B1 (en) | Systems and methods for using dynamic templates to create application containers | |
WO2017071494A1 (zh) | 一种应用部署方法和装置 | |
KR102354536B1 (ko) | 하이퍼레저 패브릭 네트워크 구축 방법과 컨트롤러 및 저장 매체 | |
CN110955431B (zh) | 编译环境的处理方法及装置 | |
US10095870B2 (en) | Virtual machine creation method and apparatus | |
CN109857516B (zh) | 基于容器的集群迁移方法及装置 | |
CN111831396A (zh) | 基于Docker软硬一体化的交付方法及装置 | |
CN110968357A (zh) | 一种maven项目的打包方法、装置、存储介质及处理器 | |
CN115061750B (zh) | 针对应用程序的组件化数据交互方法、装置、设备及介质 | |
CN107092517B (zh) | 一种sdk工具包的生成方法及装置 | |
WO2020135129A1 (zh) | 加载应用的插件的方法、装置和终端 | |
CN117707543A (zh) | 一种应用安装包制作和安装方法、计算设备及存储介质 | |
CN112230930A (zh) | 混合技术栈构建打包的方法和装置及机器可读存储介质 | |
CN111813460A (zh) | 一种应用程序配套文件的存取方法、装置、设备及存储介质 | |
CN111625225A (zh) | 一种程序指定数据输出方法和装置 | |
CN113641389B (zh) | 基于OpenCPU的软件升级方法、装置及设备 | |
CN113835748B (zh) | 基于html5的应用程序的打包方法、系统和可读介质 | |
CN109542401B (zh) | 一种Web开发方法、装置、存储介质及处理器 | |
CN107291439B (zh) | 一种目标增量数据构建方法及装置 | |
CN114791884A (zh) | 测试环境的构建方法、装置、存储介质及电子设备 | |
CN107368486B (zh) | 一种业务迁移方法及装置 | |
CN114201174A (zh) | 混合移动应用的构建方法、装置、电子设备及存储介质 | |
CN113687973B (zh) | 一种日志动态化输出的控制方法、设备及介质 | |
CN112540835B (zh) | 一种混合机器学习模型的运行方法、装置及相关设备 | |
US20230259347A1 (en) | Container based generation of inputs for generic functions |
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 |