CN114780092A - 一种换肤方法、装置、存储介质及电子设备 - Google Patents
一种换肤方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114780092A CN114780092A CN202210421286.5A CN202210421286A CN114780092A CN 114780092 A CN114780092 A CN 114780092A CN 202210421286 A CN202210421286 A CN 202210421286A CN 114780092 A CN114780092 A CN 114780092A
- Authority
- CN
- China
- Prior art keywords
- skin
- component
- changing
- skin changing
- resource
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种换肤方法、装置、存储介质及电子设备,将预先构建的mPaas组件化方式换肤框架封装成归档文件,在mPaas开发项目调用归档文件的过程中,通过归档文件中的预设换肤组件,将皮肤资源加载到资源管理框架中,通过资源管理框架创建资源对象,资源对象中存储着多种皮肤资源,当监测到个性化换肤请求时,将换肤的控件的换肤属性设置为个性化换肤请求在资源对象中对应的换肤资源,完成Android原生应用的换肤操作。通过上述方案,基于mPaas移动开发平台下的换肤框架,帮助使用该框架的Android原生应用开发者无需重启Activity类且无需修改代码,就可实现快速换肤功能,满足用户的个性化换肤定制需求。
Description
技术领域
本申请涉及计算机处理技术领域,更具体地说,涉及一种换肤方法、装置、存储介质及电子设备。
背景技术
随着移动应用时代的发展,很多基于安卓Android开发的应用程序(Application,APP)根据用户对移动应用产品的界面风格需求,来实现应用的换肤功能,以满足用户的个性化定制要求。换肤就是替换图片、布局颜色、字体、文字颜色、状态栏和导航栏颜色等应用资源。
现有的换肤框架并不适用于所有Android工程的开发,由于移动办公应用是基于移动APP的移动开发平台(Mobile PaaS,mPaaS)框架组件化方式(Portal&Bundle)进行构建的项目,此框架Activity继承的父类版本由于本身封装特性,使得mPaas框架自身不具备Android原生应用的换肤功能。
因此,如何基于mPaas框架实现Android原生应用的换肤功能,成为本领域技术人员亟待解决的问题。
发明内容
有鉴于此,本申请公开了一种换肤方法、装置、存储介质及电子设备,旨在帮助使用该框架的Android原生应用开发者无需重启Activity类且无需修改代码,就可实现快速换肤功能,满足用户的个性化换肤定制需求。
为了实现上述目的,其公开的技术方案如下:
本申请第一方面公开了一种换肤方法,所述方法包括:
将预先构建的mPaas组件化方式换肤框架封装成归档文件;所述mPaas组件化方式换肤框架由基础类组件和资源管理类组件联合构建得到;所述归档文件为换肤软件开发工具包;
在mPaas开发项目调用所述归档文件的过程中,通过所述归档文件中的预设换肤组件,将皮肤资源加载到资源管理框架中;
通过所述资源管理框架创建资源对象;所述资源对象中存储着多种皮肤资源;
当监测到个性化换肤请求时,将换肤的控件的换肤属性设置为所述个性化换肤请求在所述资源对象中对应的换肤资源,完成Android原生应用的换肤操作。
优选的,mPaas组件化方式换肤框架的构建过程,包括:
创建换肤加载类组件、换肤监听类组件、资源管理框架皮肤管理组件、皮肤基类界面组件和系统全局状态组件基类;
将所述换肤加载类组件、所述换肤监听类组件、所述皮肤基类界面组件和所述系统全局状态组件基类确定为基础类组件;
将所述资源管理框架皮肤管理组件确定为资源管理类组件;
通过所述基础类组件和所述资源管理类组件,构建mPaas组件化方式换肤框架。
优选的,所述在mPaas项目中调用所述归档文件的过程中,通过所述归档文件中的预设换肤组件,将皮肤资源加载到资源管理框架中,包括:
通过开发工具和预设编写程序代码,将所述基础类组件和所述资源管理类组件引入mPaas开发项目中,得到归档文件;
通过所述归档文件中的资源管理框架皮肤管理组件,将皮肤资源加载到资源管理框架中。
优选的,还包括:
通过所述换肤加载类组件进行添加皮肤操作、删除皮肤操作及生成更新皮肤通知操作中的一种或多种操作。
优选的,还包括:
通过所述换肤监听类组件获取所述个性化换肤请求对应的换肤控件;
将所述换肤控件及其对应的换肤属性进行存储。
优选的,还包括:
通过所述系统全局状态组件基类进行初始化操作;所述初始化操作用于在应用程序对象的生命周期中进行换肤数据的传递。
本申请第二方面公开了一种换肤装置,所述装置包括:
封装单元,用于将预先构建的mPaas组件化方式换肤框架封装成归档文件;所述mPaas组件化方式换肤框架由基础类组件和资源管理类组件联合构建得到;所述归档文件为换肤软件开发工具包;
加载单元,用于在mPaas开发项目调用所述归档文件的过程中,通过所述归档文件中的预设换肤组件,将皮肤资源加载到资源管理框架中;
创建单元,用于通过所述资源管理框架创建资源对象;所述资源对象中存储着多种皮肤资源;
设置单元,用于当监测到个性化换肤请求时,将换肤的控件的换肤属性设置为所述个性化换肤请求在所述资源对象中对应的换肤资源,完成Android原生应用的换肤操作。
优选的,mPaas组件化方式换肤框架的构建过程的封装单元,包括:
创建模块,用于创建换肤加载类组件、换肤监听类组件、资源管理框架皮肤管理组件、皮肤基类界面组件和系统全局状态组件基类;
第一确定模块,用于将所述换肤加载类组件、所述换肤监听类组件、所述皮肤基类界面组件和所述系统全局状态组件基类确定为基础类组件;
第二确定单元,用于将所述资源管理框架皮肤管理组件确定为资源管理类组件;
构建模块,用于通过所述基础类组件和所述资源管理类组件,构建mPaas组件化方式换肤框架。
本申请第三方面公开了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如第一方面任意一项所述的换肤方法。
本申请第四方面公开了一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如第一方面任意一项所述的换肤方法。
经由上述技术方案可知,本申请公开了一种换肤方法、装置、存储介质及电子设备,将预先构建的mPaas组件化方式换肤框架封装成归档文件,mPaas组件化方式换肤框架由基础类组件和资源管理类组件联合构建得到,归档文件为换肤软件开发工具包,在mPaas开发项目调用归档文件的过程中,通过归档文件中的预设换肤组件,将皮肤资源加载到资源管理框架中,通过资源管理框架创建资源对象,资源对象中存储着多种皮肤资源,当监测到个性化换肤请求时,将换肤的控件的换肤属性设置为个性化换肤请求在资源对象中对应的换肤资源,完成Android原生应用的换肤操作。通过上述方案,基于mPaas移动开发平台下的换肤框架,帮助使用该框架的Android原生应用开发者无需重启Activity类且无需修改代码,就可实现快速换肤功能,满足用户的个性化换肤定制需求。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的一种换肤系统的架构图;
图2为本申请实施例公开的一种换肤方法的流程示意图;
图3为本申请实施例公开的一种换肤装置的结构示意图;
图4为本申请实施例公开的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,现有的换肤框架并不适用于所有Android工程的开发,由于移动办公应用是基于移动APP的移动开发平台(Mobile PaaS,mPaaS)框架组件化方式(Portal&Bundle)进行构建的项目,此框架Activity继承的父类版本由于本身封装特性,使得mPaas框架自身不具备Android原生应用的换肤功能。因此,如何基于mPaas框架实现Android原生应用的换肤功能,成为本领域技术人员亟待解决的问题。
为了解决上述问题,本申请实施例公开了一种换肤方法、装置、存储介质及电子设备,基于mPaas移动开发平台下的换肤框架,帮助使用该框架的Android原生应用开发者无需重启Activity类且无需修改代码,就可实现快速换肤功能,满足用户的个性化换肤定制需求。具体实现方式通过下述实施例进行说明。
以下首先介绍本申请公开的一种换肤方法及装置所适用的换肤系统的架构图,具体参考图1所示,该换肤系统包括对外接口层11、皮肤资源加载模块12、Activity交互模块13、全局View管理模块14、代理View创建与属性解析模块15、属性处理器16和处理器17。
对外接口层11定义了框架对外支持的能力,如皮肤资源加载与切换、Activity页面换肤逻辑封装、特定View的管理、给View添加皮肤属性等。
皮肤资源加载模块12负责加载皮肤资源,对外接口提供抽象的资源加载过程,默认可以从指定的Android应用程序包(AndroidPackage,APK)文件中加载,也可以根据指定的映射规则从当前应用的资源内寻找合适的资源,比如按根据后缀区分皮肤:color_text对应的color_text_red。
Activity交互模块13为用户提供了所有的可视化界面,类似于容器。由于界面的风格以及需要显示和实现的功能多样化,因此就需要在容器中添加多种View组件来实现。View组件是Android中所有用户界面(UserInterface,UI)控件的基类,换肤和功能的多样化就是通过其属性来设置。由于View子类中又有各自的属性,总的属性类型很多,因此需要设计一个属性处理器16来专门对其进行处理,其就在Activity交互模块13对界面进行创建并添加View组件的时候工作,对其属性进行一一处理。
代理View创建与属性解析模块15的作用就在于为所有界面提供了统一集成处理,简化了单独处理的复杂度以及减少了代码的入侵。
处理器17将预先构建的mPaas组件化方式(Portal&Bundle)换肤框架封装成归档文件;mPaas组件化方式换肤框架由基础类组件和资源管理类组件联合构建得到;归档文件为换肤软件开发工具包。
其中,组件化方式是指mPaaS基于开放服务网关倡议(Open Service GatewayInitiative,OSGi)技术将一个App划分成业务独立的一个或多个Bundle工程以及一个Portal工程的框架。mPaaS会对每个Bundle工程的生命周期和依赖加以管理,使用Portal工程把所有的Bundle工程包合并成一个可运行的.APK包。该方式适用于大型多人并行开发项目。使用组件化方式,需要引入mPaaS gradle打包工具,对gradle版本以及com.android.tools.build:gradle版本有一定的要求。
Portal工程为整个工程运行的入口,Bundle工程是整个工程的各个模块,分为主模块和其他的小模块。通过编译构建portal,能将所有的主模块和其他小模块打包合并成一个可以完整运行的.Apk应用程序。
具体mPaas组件化方式换肤框架的构建过程的过程如下:
处理器17创建换肤加载类组件Interface ISkinLoader、换肤监听类组件SkinInflaterFactory、资源管理框架皮肤管理组件SkinManager、皮肤基类界面组件SkinBaseActivity和系统全局状态组件基类SkinBaseApplication。
处理器17将Interface ISkinLoader组件、SkinInflaterFactory组件、kinBaseActivity组件和SkinBaseApplication组件确定为基础类组件;将SkinManager组件确定为Android资源管理类组件;通过基础类组件和Android资源管理类组件,构建mPaas组件化方式换肤框架。
其中,处理器17创建Interface ISkinLoader组件用于进行添加皮肤操作、删除皮肤操作及生成更新皮肤通知操作中的一种或多种操作。
需要说明的是,处理器17创建SkinInflaterFactory组件用于获取个性化换肤请求对应的换肤控件,并将换肤控件及其对应的换肤属性进行存储。
需要说明的是,处理器17创建SkinManager,用于其内部通过反射调用AssetManager.addAssetPath()把外部的皮肤资源加载到Android资源管理框架(AssetManager)中,并通过该AssetManager创建相应的资源对象(Resource)。当处理器17执行换肤操作的时候,就可以设置需要换肤View的相关属性为Resource中相应的资源。
其中,皮肤管理类SkinManager是框架对外接口的封装,在SkinBaseApplication创建过程中执行框架的初始化,具体为Skinmanger.getInstance().init()提供四个接口,分别对应框架的四种能力:皮肤管理类皮肤管理类接口ISkinManager、窗口管理类接口IWindowManager、换肤监听拦截类接口IActivitySkinEventHandler和皮肤view组件设置器ISkinViewHelper。
ISkinManager包括加载指定皮肤、恢复默认皮肤、注册属性处理器和对View应用皮肤设置的能力。
IWindowManager:负责添加、删除特定View到框架内维护,来确保换肤时此View能正常换肤,通常维护Dialog、popwindow、悬浮窗内持有的View。
IActivitySkinEventHandler:定义了换肤框架与Activity交互的所有逻辑,每个需要支持换肤的Activity都应持有此实例,并在生命周期回调中调用此实例相关接口。在Activity初始化时,IActivitySkinEventHandler负责处理拦截LayoutInflater的创建View过程,并解析皮肤相关属性;在换肤管理模块触发了换肤过程时,IActivitySkinEventHandler负责完成所在Activity的换肤工作。在SkinBaseActivity的onCreate中执行IActivitySkinEventHandler的初始化与配置工作,其中,setWindowBackgroundResource用于设置Activity的背景色,在换肤时会寻找对应的背景色替换之,此处传入的不能是色值,只支持引用,类似R语言的颜色设置R.color.xx。
setNeedDelegateViewCreate用于设置是否需要代理View创建,因为LayoutInflater的代理View创建Factory只支持设置一次,如果外部已经设置了Factory,则框架内再次设置会引起崩溃,所以框架使用配置与回调来处理此问题。
ISkinViewHelper:基于链式编程设计。负责对指定View设置/添加一个或多个皮肤相关属性,或者删除所有的皮肤相关属性,同时也支持快捷的对View应用皮肤。
需要说明的是,处理器17创建SkinBaseActivity组件,用于对所有需要换肤的Activity继承这个类。其中,SkinBaseActivity组件的目的在于统一Android所有活动页面继承该类,使所有新建的活动页面都基于该类来覆写子类方法,可以使得子活动页面复用父类方法,最重要的是能完美的配合mpass换肤机制。
需要说明的是,处理器17通过SkinBaseApplication组件,对换肤操作的初始数据进行初始化操作;初始化操作用于在应用程序对象的生命周期中进行换肤数据的传递。
处理器17在mPaas开发项目调用归档文件的过程中,通过归档文件中的预设换肤组件,将皮肤资源加载到资源管理框架中。
具体处理器17将皮肤资源加载到资源管理框架中的过程如下:
处理器17通过Android开发工具和预设编写程序代码,将基础类组件和Android资源管理类组件引入mPaas开发项目中,得到归档文件,并通过归档文件中的SkinManager组件,将皮肤资源加载到资源管理框架中。
其中,将上述创建的基础类和资源管理类,通过编写程序代码并借助Android开发工具其成为一个能完整引入到mpass工程中可以进行调用的jar包或aar包。
处理器17通过资源管理框架创建资源对象;资源对象中存储着多种皮肤资源。
当处理器17监测到个性化换肤请求时,将换肤的控件的换肤属性设置为个性化换肤请求在资源对象中对应的换肤资源,完成Android原生应用的换肤操作。
Activity交互模块13是最终作为对外接口层展示给用户的可视化界面,其他各个管理类和组件都是作为可视化界面换肤的基础。
全局View管理模块14主要负责一些不在活动图ActivityView树内的View的换肤工作,比如对话Dialog、PopWindow、悬浮窗等View的管理与换肤操作。其中,Popwindow就是Android上自定义的一个弹出窗口,是在当前Activity的顶部的,可以在任意的位置显示。
代理View创建与属性解析模块15在于减少集成的复杂性,减少代码侵入性,便于成熟的应用集成使用。
属性处理器16作用是在换肤过程中需要处理View的很多种属性,比如字体颜色textColor、底色background等。
本申请实施例中,基于mPaas移动开发平台下的换肤框架,帮助使用该框架的Android原生应用开发者无需重启Activity类且无需修改代码,就可实现快速换肤功能,满足用户的个性化换肤定制需求。
参考图2所示,为本申请实施例公开的一种换肤方法的流程示意图,该换肤方法主要包括如下步骤:
S201:将预先构建的mPaas组件化方式换肤框架封装成归档文件;mPaas组件化方式换肤框架由基础类组件和资源管理类组件联合构建得到;归档文件为换肤软件开发工具包。
在S201中,基础类组件包括Interface ISkinLoader、SkinInflaterFactory、kinBaseActivity和SkinBaseApplication。
资源管理类组件包括SkinManager组件。
归档文件可以是jar包、aar包等。具体归档文件的确定由技术人员根据实际情况进行设置,本申请不做具体限定。
具体mPaas组件化方式换肤框架的构建过程如下:
首先,创建Interface ISkinLoader组件、SkinInflaterFactory组件、资源管理框架SkinManager组件、SkinBaseActivity组件和SkinBaseApplication组件。
其次,将Interface ISkinLoader组件、SkinInflaterFactory组件、kinBaseActivity组件和SkinBaseApplication组件确定为基础类组件。
可选的,通过Interface ISkinLoader组件进行添加皮肤操作、删除皮肤操作及生成更新皮肤通知操作中的一种或多种操作。
可选的,通过SkinInflaterFactory组件获取个性化换肤请求对应的换肤控件,并将换肤控件及其对应的换肤属性进行存储。
可选的,通过SkinBaseApplication组件进行初始化操作;所述初始化操作用于在应用程序对象的生命周期中进行换肤数据的传递。
然后,将SkinManager组件确定为Android资源管理类组件。
最后,通过基础类组件和Android资源管理类组件,构建mPaas组件化方式换肤框架。
S202:在mPaas开发项目调用归档文件的过程中,通过归档文件中的预设换肤组件,将皮肤资源加载到资源管理框架中。
在S202中,预设换肤组件即为SkinManager组件。SkinManager组件用于其内部通过反射调用AssetManager.addAssetPath()把外部的皮肤资源加载到Android资源管理框架(AssetManager)中,并通过该AssetManager创建相应的资源对象(Resource)。当执行换肤操作的时候,就可以设置需要换肤View的相关属性为Resource中相应的资源。
mPaas是源于支付宝App为移动开发、测试、运营及运维提供云到端的一站式解决方案,能有效降低技术门槛、减少研发成本、提升开发效率,协助企业快速搭建稳定高质量的移动App的移动开发平台(Mobile PaaS,mPaaS)。
具体在mPaas开发项目调用所述归档文件的过程中,通过归档文件中的预设换肤组件,将皮肤资源加载到资源管理框架中的过程如下:
首先,通过Android开发工具和预设编写程序代码,将基础类组件和Android资源管理类组件引入mPaas开发项目中,得到归档文件。
其中,预设编写程序代码为将基础类组件和Android资源管理类组件引入mPaas开发项目对应的程序代码。
其中,将上述创建的基础类和资源管理类,通过编写程序代码并借助Android开发工具其成为一个能完整引入到mpass工程中可以进行调用的jar包或aar包。
然后,通过归档文件中的SkinManager组件,将皮肤资源加载到资源管理框架中。
S203:通过资源管理框架创建资源对象;资源对象中存储着多种皮肤资源。
在S203中,皮肤资源包括图片、布局颜色、字体、文字颜色、状态栏和导航栏颜色等应用资源。皮肤资源一般含有多个文件,例如图片、字体颜色、字体样式、主题风格等。
S204:当监测到个性化换肤请求时,将换肤的控件的换肤属性设置为个性化换肤请求在资源对象中对应的换肤资源,完成Android原生应用的换肤操作。
在S204中,个性化换肤请求可以是用户发送的个性化换肤请求,也可以是根据APP自身的个性化换肤请求(如阅读类APP来说,白天使用白色模式,黑天使用黑暗模式)。
换肤操作就是替换图片、布局颜色、字体、文字颜色、状态栏和导航栏颜色等应用资源。换肤操作分为动态换肤操作和静态换肤操作。
静态换肤操作就是利用在app本身放置例如图片、字体大小、主题风格等资源进行切换,适用于不占用过多空间资源的切换,如夜间模式,只需要设置字体以及背景颜色就可以不用在应用内放置图片。
动态换肤操作适用于占用大量空间的资源切换,例如QQ、网易云等应用,支持丰富的皮肤定制,它与静态换肤不同之处在于,是将需要替换的图片等资源打包成APK皮肤包,根据用户选择下载保存到本地,不占用App本身的空间。
本申请实施例中,基于mPaas移动开发平台下的换肤框架,帮助使用该框架的Android原生应用开发者无需重启Activity类且无需修改代码,就可实现快速换肤功能,满足用户的个性化换肤定制需求。
基于上述实施例图2公开的一种换肤方法,本申请实施例还对应公开了一种换肤装置,该换肤装置参考图3所示,该换肤装置包括封装单元301、加载单元302、创建单元303和设置单元304。
封装单元301,用于将预先构建的mPaas组件化方式换肤框架封装成归档文件;mPaas组件化方式换肤框架由基础类组件和资源管理类组件联合构建得到;归档文件为换肤软件开发工具包。
加载单元302,用于在mPaas开发项目调用归档文件的过程中,通过归档文件中的预设换肤组件,将皮肤资源加载到资源管理框架中。
创建单元303,用于通过资源管理框架创建资源对象;资源对象中存储着多种皮肤资源。
设置单元304,用于当监测到个性化换肤请求时,将换肤的控件的换肤属性设置为个性化换肤请求在资源对象中对应的换肤资源,完成Android原生应用的换肤操作。
进一步的,mPaas组件化方式换肤框架的构建过程的封装单元301包括创建模块、第一确定模块、第二确定模块和构建模块。
创建模块,用于创建换肤加载类组件、换肤监听类组件、资源管理框架皮肤管理组件、皮肤基类界面组件和系统全局状态组件基类。
第一确定模块,用于将换肤加载类组件、换肤监听类组件、皮肤基类界面组件和系统全局状态组件基类确定为基础类组件。
第二确定模块,用于将资源管理框架皮肤管理组件确定为资源管理类组件。
构建模块,用于通过基础类组件和资源管理类组件,构建mPaas组件化方式换肤框架。
进一步的,加载单元302包括获取模块和加载模块。
获取模块,用于通过开发工具和预设编写程序代码,将基础类组件和资源管理类组件引入mPaas开发项目中,得到归档文件。
加载模块,用于通过归档文件中的资源管理框架皮肤管理组件,将皮肤资源加载到资源管理框架中。
进一步的,换肤装置还包括操作单元。
操作单元,用于通过换肤加载类组件进行添加皮肤操作、删除皮肤操作及生成更新皮肤通知操作中的一种或多种操作。
进一步的,换肤装置还包括获取单元和存储单元。
获取单元,用于通过换肤监听类组件获取个性化换肤请求对应的换肤控件。
存储单元,用于将换肤控件及其对应的换肤属性进行存储。
进一步的,换肤装置还包括初始化单元。
初始化单元,用于通过系统全局状态组件基类进行初始化操作;初始化操作用于在应用程序对象的生命周期中进行换肤数据的传递。
本申请实施例中,基于mPaas移动开发平台下的换肤框架,帮助使用该框架的Android原生应用开发者无需重启Activity类且无需修改代码,就可实现快速换肤功能,满足用户的个性化换肤定制需求。
本申请实施例还提供了一种存储介质,存储介质包括存储的指令,其中,在指令运行时控制存储介质所在的设备执行上述换肤方法。
本申请实施例还提供了一种电子设备,其结构示意图如图4所示,具体包括存储器401,以及一个或者一个以上的指令402,其中一个或者一个以上指令402存储于存储器401中,且经配置以由一个或者一个以上处理器403执行所述一个或者一个以上指令402执行上述换肤方法。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种换肤方法,其特征在于,所述方法包括:
将预先构建的mPaas组件化方式换肤框架封装成归档文件;所述mPaas组件化方式换肤框架由基础类组件和资源管理类组件联合构建得到;所述归档文件为换肤软件开发工具包;
在mPaas开发项目调用所述归档文件的过程中,通过所述归档文件中的预设换肤组件,将皮肤资源加载到资源管理框架中;
通过所述资源管理框架创建资源对象;所述资源对象中存储着多种皮肤资源;
当监测到个性化换肤请求时,将换肤的控件的换肤属性设置为所述个性化换肤请求在所述资源对象中对应的换肤资源,完成Android原生应用的换肤操作。
2.根据权利要求1所述的方法,其特征在于,mPaas组件化方式换肤框架的构建过程,包括:
创建换肤加载类组件、换肤监听类组件、资源管理框架皮肤管理组件、皮肤基类界面组件和系统全局状态组件基类;
将所述换肤加载类组件、所述换肤监听类组件、所述皮肤基类界面组件和所述系统全局状态组件基类确定为基础类组件;
将所述资源管理框架皮肤管理组件确定为资源管理类组件;
通过所述基础类组件和所述资源管理类组件,构建mPaas组件化方式换肤框架。
3.根据权利要求2所述的方法,其特征在于,所述在mPaas项目中调用所述归档文件的过程中,通过所述归档文件中的预设换肤组件,将皮肤资源加载到资源管理框架中,包括:
通过开发工具和预设编写程序代码,将所述基础类组件和所述资源管理类组件引入mPaas开发项目中,得到归档文件;
通过所述归档文件中的资源管理框架皮肤管理组件,将皮肤资源加载到资源管理框架中。
4.根据权利要求2所述的方法,其特征在于,还包括:
通过所述换肤加载类组件进行添加皮肤操作、删除皮肤操作及生成更新皮肤通知操作中的一种或多种操作。
5.根据权利要求2所述的方法,其特征在于,还包括:
通过所述换肤监听类组件获取所述个性化换肤请求对应的换肤控件;
将所述换肤控件及其对应的换肤属性进行存储。
6.根据权利要求2所述的方法,其特征在于,还包括:
通过所述系统全局状态组件基类进行初始化操作;所述初始化操作用于在应用程序对象的生命周期中进行换肤数据的传递。
7.一种换肤装置,其特征在于,所述装置包括:
封装单元,用于将预先构建的mPaas组件化方式换肤框架封装成归档文件;所述mPaas组件化方式换肤框架由基础类组件和资源管理类组件联合构建得到;所述归档文件为换肤软件开发工具包;
加载单元,用于在mPaas开发项目调用所述归档文件的过程中,通过所述归档文件中的预设换肤组件,将皮肤资源加载到资源管理框架中;
创建单元,用于通过所述资源管理框架创建资源对象;所述资源对象中存储着多种皮肤资源;
设置单元,用于当监测到个性化换肤请求时,将换肤的控件的换肤属性设置为所述个性化换肤请求在所述资源对象中对应的换肤资源,完成Android原生应用的换肤操作。
8.根据权利要求7所述的装置,其特征在于,mPaas组件化方式换肤框架的构建过程的封装单元,包括:
创建模块,用于创建换肤加载类组件、换肤监听类组件、资源管理框架皮肤管理组件、皮肤基类界面组件和系统全局状态组件基类;
第一确定模块,用于将所述换肤加载类组件、所述换肤监听类组件、所述皮肤基类界面组件和所述系统全局状态组件基类确定为基础类组件;
第二确定单元,用于将所述资源管理框架皮肤管理组件确定为资源管理类组件;
构建模块,用于通过所述基础类组件和所述资源管理类组件,构建mPaas组件化方式换肤框架。
9.一种存储介质,其特征在于,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如权利要求1至6任意一项所述的换肤方法。
10.一种电子设备,其特征在于,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要求1至6任意一项所述的换肤方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210421286.5A CN114780092A (zh) | 2022-04-21 | 2022-04-21 | 一种换肤方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210421286.5A CN114780092A (zh) | 2022-04-21 | 2022-04-21 | 一种换肤方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114780092A true CN114780092A (zh) | 2022-07-22 |
Family
ID=82430372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210421286.5A Pending CN114780092A (zh) | 2022-04-21 | 2022-04-21 | 一种换肤方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114780092A (zh) |
-
2022
- 2022-04-21 CN CN202210421286.5A patent/CN114780092A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110928529B (zh) | 辅助算子开发的方法和系统 | |
US10963361B2 (en) | Overlapping-in-time execution of load tests on applications in a centralized system | |
CN110413288B (zh) | 应用部署方法、装置、服务器及存储介质 | |
CN110134378B (zh) | 应用程序创建方法及装置、计算机设备及存储介质 | |
EP3963447B1 (en) | Supervisory device with deployed independent application containers for automation control programs | |
US20180113799A1 (en) | Model generation for model-based application testing | |
US10191733B2 (en) | Software change process orchestration in a runtime environment | |
CN113687912A (zh) | 容器集群管理方法、装置、系统、电子设备及存储介质 | |
CN112286504B (zh) | 移动APP中基于ReactNative实现小程序开发并加载的方法 | |
CN114077423A (zh) | 基于移动跨平台的机场app开发容器架构 | |
CN111068328A (zh) | 游戏广告配置表格的生成方法、终端设备及介质 | |
CN104699503A (zh) | 一种替换安卓系统中函数的执行逻辑的方法及装置 | |
CN111158743B (zh) | 大数据运维管理平台 | |
CN114912897A (zh) | 工作流执行方法、工作流编排方法及电子设备 | |
CN112596746B (zh) | 应用安装包生成方法、装置、计算机设备和存储介质 | |
Botturi et al. | Model-driven design for the development of multi-platform smartphone applications | |
CN114780092A (zh) | 一种换肤方法、装置、存储介质及电子设备 | |
CN115640005A (zh) | 混合应用的生成方法及装置 | |
CN114816475A (zh) | 一种嵌入式操作系统的更新方法、装置、设备和介质 | |
CN114816418A (zh) | 一种嵌入式操作系统的搭建方法、装置、设备和介质 | |
CN115454394A (zh) | 具有增强的状态切换和共享的开发环境管理器 | |
CN112597408A (zh) | 一种系统融合方法、装置、设备和存储介质 | |
CN112214213A (zh) | Linux内核的开发和管理方法、装置、计算机设备和存储介质 | |
Team | Continuous Integration and Continuous Deployment | |
CN117950646B (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 |