CN114706648A - 一种基于ios系统的应用程序换肤方法、装置、计算机设备和计算机可读存储介质 - Google Patents
一种基于ios系统的应用程序换肤方法、装置、计算机设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN114706648A CN114706648A CN202210503798.6A CN202210503798A CN114706648A CN 114706648 A CN114706648 A CN 114706648A CN 202210503798 A CN202210503798 A CN 202210503798A CN 114706648 A CN114706648 A CN 114706648A
- Authority
- CN
- China
- Prior art keywords
- page
- resource
- skin
- calling
- application program
- 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
- 238000000034 method Methods 0.000 title claims abstract description 69
- 230000006870 function Effects 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 15
- 239000003086 colorant Substances 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000012423 maintenance Methods 0.000 abstract description 5
- 238000007792 addition Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000009877 rendering Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于IOS系统的应用程序换肤方法,包括:启动应用程序,通过钩子函数获取页面资源设置相关方法;页面展示前,调用所述页面资源设置相关方法,所述钩子函数记录invocation对象和资源内容;页面展示;页面消失前,移除对应的invocation对象;执行换肤操作时,获取当前所有invocation对象和资源内容,通过调用invocation对象的方法完成换肤。本发明采用钩子技术,在应用程序启动时通过钩子函数获取页面资源设置相关方法,在页面展示前调用页面资源设置相关方法,钩子函数记录invocation对象和资源内容,然后通过调用invocation对象的方法完成换肤操作,因此应用程序的页面增加不会导致代码量增加,代码内聚高且逻辑结构清晰从而易于维护,便于上架或下架换肤功能。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种基于IOS系统的应用程序换肤方法、装置、计算机设备和计算机可读存储介质。
背景技术
应用程序的换肤指的是应用程序的图片和颜色风格的统一切换,目前业内对于换肤功能的主要技术实现方案是在应用程序中配置多套图片和颜色资源,通过通知的方式来进行皮肤的切换。当应用程序启动时,所有页面都需要监听换肤事件的通知,进行换肤时发送换肤通知到各个页面,各个页面收到换肤通知后读取将要切换的皮肤与资源的映射文件,然后设置每个页面新的图片和颜色。这样会导致随着应用程序页面的增加,需要添加监听的换肤通知的地方越多导致代码量大,而且添加通知代码逻辑导致初始化代码耗时增加,代码逻辑结构不清晰导致不易维护,代码耦合大无法便捷上架或下架换肤功能。因此需要一种代码高内聚、易维护、不会随页面增加大量增加代码量的应用程序换肤方法。
发明内容
本发明的目的在于提供一种基于IOS系统的应用换肤方法、装置、计算机设备和计算机可读存储介质,旨在解决现有换肤技术方案中代码低内聚、难维护且代码量多的问题。
第一方面,本发明提供了一种基于IOS系统的应用程序换肤方法,包括:
启动应用程序,通过钩子函数获取页面资源设置相关方法;
页面展示前,调用所述页面资源设置相关方法,所述钩子函数记录 invocation对象和资源内容;
页面展示;
页面消失前,移除对应的invocation对象;
执行换肤操作时,获取当前所有invocation对象和资源内容,通过调用invocation对象的方法完成换肤。
第二方面,本发明提供了一种基于IOS系统的应用程序换肤装置,包括:
获取模块,用于在启动应用程序时,通过钩子函数获取页面资源设置相关方法;
记录模块,用于在页面展示前,调用所述页面资源设置相关方法,所述钩子函数记录invocation对象和资源内容;
展示模块,用于展示页面;
移除模块,用于在页面消失前,移除对应的invocation对象。
换肤模块,用于在执行换肤操作时,获取当前所有invocation对象和资源内容,通过调用invocation对象的方法完成换肤。
第三方面,本发明提供了一种计算机设备,包括:
一个或多个处理器;
存储器;以及
一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,其特征在于,所述处理器执行所述计算机程序时实现如上所述的基于IOS系统的应用程序换肤方法的步骤。
第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述的基于IOS系统的应用程序换肤方法的步骤。
本发明采用钩子技术,在应用程序启动时通过钩子函数获取页面资源设置相关方法,在页面展示前调用页面资源设置相关方法,钩子函数记录invocation 对象和资源内容,进行换肤操作时,通过调用invocation对象的方法完成换肤操作。由于采用钩子技术实现,本发明中应用程序的页面增加不会增加代码量,代码内聚高且逻辑结构清晰从而易于维护,便于上架或下架换肤功能。
附图说明
图1是本发明实施例一提供的基于IOS系统应用程序换肤方法的流程图;
图2是本发明实施例二提供的基于IOS系统应用程序换肤装置的功能模块框图;
图3是本发明实施例三提供的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
如图1所示,本发明实施例一提供了一种基于IOS系统应用程序换肤方法,包括如下步骤:
S101、启动应用程序,通过钩子函数获取页面资源设置相关方法。页面资源设置相关方法包括但不限于设置图片、设置颜色、设置字体等方法。具体地,在IOS系统中,通过钩子函数获取设置颜色setColor方法和设置图片setImage 方法。设置颜色setColor方法是系统提供的方法,用于设置单个视图的颜色。设置图片setImage方法是系统提供的方法,用于设置视图的图片。应用程序启动完成后,将要渲染视图页面。
S102、页面展示前,调用页面资源设置相关方法,钩子函数记录invocation 对象和资源内容。其中,invocation对象是指记录对象的方法调用指针和图片、颜色、字体等内容的对象。具体地,S102包括以下步骤:
页面展示前,调用设置颜色setColor方法给当前视图元素设置颜色,此时创建第一invocation对象记录设置颜色setColor方法,钩子函数记录第一 invocation对象和色值;
调用设置图片setImage方法给当前视图设置图片,此时创建第二invocation 对象记录设置图片setImage方法,钩子函数记录第二invocation对象和图片名称。
S103、页面展示。
S104、在页面消失前,移除对应的invocation对象。对应的invocation对象包括但不限于第一invocation对象和第二invocation对象。
S105、执行换肤操作时,获取当前所有invocation对象和资源内容,通过调用invocation对象的方法完成换肤。当前所有invocation对象是所有视图被钩子函数记录的invocation对象,包括但不限于第一invocation对象和第二 invocation对象。获取当前所有invocation对象和资源内容,通过调用invocation 对象的方法完成换肤,具体地包括以下步骤:
遍历所有invocation对象;
读取皮肤与资源的映射文件;
获取皮肤对应的资源路径;
根据图片名称从资源中获取图片对象,通过每个invocation对象调用设置图片setImage方法设置当前皮肤的图片;
通过每个invocation对象调用设置颜色setColor方法和记录的色值,设置当前皮肤的颜色风格。
实施例二:
如图2所示,本发明实施例三提供了一种基于IOS系统的应用程序换肤装置200,包括:
获取模块201,用于在启动应用程序时,通过钩子函数获取页面资源设置相关方法;
记录模块202,用于在页面展示前,调用所述页面资源设置相关方法,所述钩子函数记录invocation对象和资源内容;
展示模块203,用于展示页面;
移除模块204,用于在页面消失前,移除对应的invocation对象。
换肤模块205,用于在执行换肤操作时,获取当前所有invocation对象和资源内容,通过调用invocation对象的方法完成换肤。
本发明实施例二提供的基于IOS系统应用程序换肤装置及本发明实施例一提供的基于IOS系统应用程序换肤方法属于同一构思,其具体实现过程详见说明书全文,此处不再赘述。
实施例三:
如图3所示,本发明实施例三提供了一种计算机设备300,包括:
一个或多个处理器301;
存储器302;以及
一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,其特征在于,所述处理器执行所述计算机程序时实现如实施例一提供的基于IOS系统应用程序换肤方法的步骤。
实施例四:
本发明实施例四提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如实施例一提供的基于IOS系统应用程序换肤方法的步骤。
本发明采用钩子技术,在应用程序启动时通过钩子函数获取页面资源设置相关方法,在页面展示前调用页面资源设置相关方法,钩子函数记录invocation 对象和资源内容,进行换肤操作时,通过调用invocation对象的方法完成换肤操作。由于采用钩子技术实现,本发明中应用程序的页面增加不会增加代码量,代码内聚高且逻辑结构清晰从而易于维护,便于上架或下架换肤功能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于IOS系统的应用程序换肤方法,其特征在于,所述方法包括:
S101、启动应用程序,通过钩子函数获取页面资源设置相关方法;
S102、页面展示前,调用所述页面资源设置相关方法,所述钩子函数记录invocation对象和资源内容;
S103、页面展示;
S104、页面消失前,移除对应的invocation对象;
S105、执行换肤操作时,获取当前所有invocation对象和资源内容,通过调用invocation对象的方法完成换肤。
2.如权利要求1所述的方法,其特征在于,所述页面资源设置相关方法是设置图片方法、设置颜色方法、或设置字体方法中的一个或多个。
3.如权利要求1所述的方法,其特征在于,所述页面展示前,调用所述页面资源设置相关方法,所述钩子函数记录invocation对象和资源内容,具体包括:
页面展示前,调用设置颜色方法给当前视图元素设置颜色,此时创建第一invocation对象记录设置颜色方法,所述钩子函数记录所述第一invocation对象和色值;
调用设置图片方法给当前视图设置图片,此时创建第二invocation对象记录设置图片方法,所述钩子函数记录所述第二invocation对象和图片名称。
4.如权利要求3所述的方法,其特征在于,所述移除对应的invocation对象,具体是:移除所述第一invocation对象和所述第二invocation对象。
5.如权利要求1所述的方法,其特征在于,所述获取当前所有invocation对象和资源内容,通过调用invocation对象的方法完成换肤,具体包括:
遍历所有invocation对象;
读取皮肤与资源的映射文件;
获取皮肤对应的资源路径;
根据图片名称从资源中获取图片对象,通过每个invocation对象调用设置图片方法设置当前皮肤的图片;
通过所述每个invocation对象调用设置颜色方法和记录的色值,设置当前皮肤的颜色风格。
6.一种基于IOS系统的应用程序换肤装置,其特征在于,所述装置包括:
获取模块,用于在启动应用程序时,通过钩子函数获取页面资源设置相关方法;
记录模块,用于在页面展示前,调用所述页面资源设置相关方法,所述钩子函数记录invocation对象和资源内容;
展示模块,用于展示页面;
移除模块,用于在页面消失前,移除对应的invocation对象。
换肤模块,用于在执行换肤操作时,获取当前所有invocation对象和资源内容,通过调用invocation对象的方法完成换肤。
7.一种计算机设备,包括:
一个或多个处理器;
存储器;以及
一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的基于IOS系统的应用程序换肤方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的基于IOS系统的应用程序换肤方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210503798.6A CN114706648A (zh) | 2022-05-10 | 2022-05-10 | 一种基于ios系统的应用程序换肤方法、装置、计算机设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210503798.6A CN114706648A (zh) | 2022-05-10 | 2022-05-10 | 一种基于ios系统的应用程序换肤方法、装置、计算机设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114706648A true CN114706648A (zh) | 2022-07-05 |
Family
ID=82175972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210503798.6A Pending CN114706648A (zh) | 2022-05-10 | 2022-05-10 | 一种基于ios系统的应用程序换肤方法、装置、计算机设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114706648A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563478A (zh) * | 2018-03-06 | 2018-09-21 | 北京酷我科技有限公司 | 一种App启动换肤策略 |
CN111142970A (zh) * | 2019-12-27 | 2020-05-12 | 深圳市思迪信息技术股份有限公司 | 移动app的智能换肤方法及装置 |
CN111625312A (zh) * | 2020-05-19 | 2020-09-04 | 小船出海教育科技(北京)有限公司 | 一种app换肤方法、装置、电子设备及存储介质 |
CN112685113A (zh) * | 2020-12-28 | 2021-04-20 | 金现代信息产业股份有限公司 | iOS的换肤方法和装置 |
US20210405858A1 (en) * | 2020-06-29 | 2021-12-30 | Boe Technology Group | Method for switching theme of application and electronic device |
-
2022
- 2022-05-10 CN CN202210503798.6A patent/CN114706648A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563478A (zh) * | 2018-03-06 | 2018-09-21 | 北京酷我科技有限公司 | 一种App启动换肤策略 |
CN111142970A (zh) * | 2019-12-27 | 2020-05-12 | 深圳市思迪信息技术股份有限公司 | 移动app的智能换肤方法及装置 |
CN111625312A (zh) * | 2020-05-19 | 2020-09-04 | 小船出海教育科技(北京)有限公司 | 一种app换肤方法、装置、电子设备及存储介质 |
US20210405858A1 (en) * | 2020-06-29 | 2021-12-30 | Boe Technology Group | Method for switching theme of application and electronic device |
CN112685113A (zh) * | 2020-12-28 | 2021-04-20 | 金现代信息产业股份有限公司 | iOS的换肤方法和装置 |
Non-Patent Citations (2)
Title |
---|
SILHOUETTE: "iOS关于换肤和夜间模式的一些思考", Retrieved from the Internet <URL:《https://www.sohu.com/a/285954950_208051》> * |
点融黑帮: "iOS通用换肤解决方案", Retrieved from the Internet <URL:《https://www.sohu.com/a/244415546_575744》> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10991151B2 (en) | Game rendering method, terminal, and non-transitory computer-readable storage medium | |
US20100083098A1 (en) | Streaming Information that Describes a Webpage | |
CN113407383B (zh) | 主备系统切换方法、装置、服务器及主备系统 | |
CN111142970A (zh) | 移动app的智能换肤方法及装置 | |
CN112667307A (zh) | 基于el-tabs的扩展方法、扩展装置 | |
CN110704148B (zh) | 设备页面元素的获取方法、装置、服务器及存储介质 | |
CN114706648A (zh) | 一种基于ios系统的应用程序换肤方法、装置、计算机设备和计算机可读存储介质 | |
CN112148395A (zh) | 页面显示方法、装置、设备及存储介质 | |
CN112243033B (zh) | 获取内存信息的方法、装置、设备及计算机可读存储介质 | |
CN115809056B (zh) | 组件复用实现方法、装置和终端设备、可读存储介质 | |
CN115599880A (zh) | 一种地图图例配置管理方法及终端 | |
CN113852763B (zh) | 音视频处理方法、装置、电子设备和存储介质 | |
CN110995806B (zh) | 一种资源状态转换方法、装置、设备及存储介质 | |
CN115754413A (zh) | 示波器及数据处理方法 | |
CN108809763B (zh) | 一种网络性能参数采集方法、终端装置及存储介质 | |
CN114490270A (zh) | 数据采集方法和装置 | |
CN114253418A (zh) | 书写笔迹显示方法、装置、设备、系统及存储介质 | |
CN111259288B (zh) | 网页纹理处理方法、装置、终端设备及可读存储介质 | |
CN111970675A (zh) | 一种预警方法及装置、存储介质 | |
CN111429538A (zh) | 一种轮播图播放的方法、系统、设备及可读存储介质 | |
CN114880056B (zh) | 基于ogre进行用户界面显示与交互的方法、设备及介质 | |
CN116450120B (zh) | 实时操作系统内核分析方法、装置、设备及介质 | |
CN110837335A (zh) | 应用内的页面标签显示方法、装置和终端及存储介质 | |
CN114896013B (zh) | 页面加载时长确定方法、装置、电子设备及存储介质 | |
CN112559255B (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 |