CN110262830A - 一种移动端基于应用二次开发的方法 - Google Patents
一种移动端基于应用二次开发的方法 Download PDFInfo
- Publication number
- CN110262830A CN110262830A CN201910438852.1A CN201910438852A CN110262830A CN 110262830 A CN110262830 A CN 110262830A CN 201910438852 A CN201910438852 A CN 201910438852A CN 110262830 A CN110262830 A CN 110262830A
- Authority
- CN
- China
- Prior art keywords
- application
- function
- processing
- plug
- file
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- 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
-
- 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/75—Structural analysis for program understanding
Abstract
本发明涉及一种移动端基于应用二次开发的方法,包括如下步骤:调用解析步骤,对已发布/待发布应用及功能/插件进行解析;调用合成步骤,依次进行资源映射处理、可执行程序合成处理、以及运行库加载处理;调用封装步骤,依次进行加壳引导器处理、APK/IPA组装处理、以及签名处理。本发明基于应用级进行二次开发,应用厂商和第三方功能提供商的功能在进行功能集成时可以零修改,无感知,大大降低了功能集成的耦合性,有效的提高了开发效率。
Description
技术领域
本发明涉及应用(App,一般指Android或IOS下的应用)二次开发技术领域,具体说是一种移动端基于应用二次开发的方法。
背景技术
近年来,移动互联网飞速发展,已经逐步深入生活和工作的方方面面。随着移动终端的不断升级,越来越多的功能被挖掘,以满足用户的生活和工作所需。
随着移动端可承载的业务越来越多,完全自行研发应用的所有功能已经变得不可行,在研发应用时,企业通常将业务功能划分为主营业务功能和非主营业务功能,然后专注于研发主营业务功能,而将非主营业务功能交给更专业的厂商(第三方)来完成,最后通过功能集成的方式,形成包含主营业务功能及非主营业务功能的应用,再将应用交付给用户。
目前,功能集成的方式大多是通过SDK(软件开发工具包,Software DevelopmentKit)方式实现。这种方式需要研发资源投入,功能联调,每次发布都需要同步SDK厂商的版本;如果SDK厂商的版本更新则需要再次集成。因此,这种方式存在以下不足:由于需要跨部门和公司的协作,导致研发周期慢,灵活性低,耦合性高,整体开发效率低。业务功能的数量越多,则开发效率就会进一步降低。
因此,有必要研发一种降低集成成本,将应用厂商(亦可称为应用开发商)和第三方功能提供商(亦可称为功能提供商)相互独立,提高开发效率,且能简便的实现功能集成的技术方案。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种移动端基于应用二次开发的方法,基于应用级进行二次开发,应用厂商和第三方功能提供商的功能在进行功能集成时可以零修改,无感知,大大降低了功能集成的耦合性,有效的提高了开发效率。
为达到以上目的,本发明采取的技术方案是:
一种移动端基于应用二次开发的方法,包括如下步骤:
调用解析步骤,对已发布/待发布应用及功能/插件进行解析;
调用合成步骤,依次进行资源映射处理、可执行程序合成处理、以及运行库加载处理;
调用封装步骤,依次进行加壳引导器处理、APK/IPA组装处理、以及签名处理。
优选的,解析步骤获取已发布/待发布应用对应的安装包,所述安装包为:APK或IPA形式的安装包,分析安装包得到与封装相关的信息,所述与封装相关的信息包括:应用属性、组件属性、文件特征、资源信息。
优选的,解析步骤获取功能/插件对应的文件,所述功能/插件为第三方的库或者资源,包括以下至少一种:
APK或IPA形式的安装包;
SDK文件,包括AAR文件、Jar文件、或Framework文件;
库文件,包括So文件、Dex文件、或dylib文件;
可执行程序文件。
优选的,所述资源信息包括UI显示资源信息、数据存储资源信息。
优选的,所述资源映射处理为各功能/插件分配适当的资源,确保各个功能/插件运行时加载的资源互不影响。
优选的,所述可执行程序合成处理将各功能/插件融合进入应用加载流程中,确保应用安装后可以被系统加载并运行,符合系统的安装加载规范。
优选的,所述运行库加载处理将各功能/插件涉及的功能库合成,确保与应用的平台适配保持一致。
优选的,所述加壳引导器处理,通过引导器管理整个应用启动和环境创建,确保引导器在第一时间启动并为应用和各功能/插件的运行创造条件。
优选的,所述APK/IPA组装处理指将应用和各功能/插件重新封装形成新的应用安装包。
优选的,所述新的应用安装包中,包括原始应用以及功能/插件,通过模块应用管理模块负责各功能/插件的全生命周期管理,以及各功能/插件的动态升级更新。
本发明所述的移动端基于应用二次开发的方法,基于应用级进行二次开发,应用厂商和第三方功能提供商的功能在进行功能集成时可以零修改,无感知,大大降低了功能集成的耦合性,有效的提高了开发效率。
本发明所述的移动端基于应用二次开发的方法,可以实现一键将功能集成至目标应用中(一键封装),大大提高开发效率。所述目标应用为移动端中的应用(一般指Android或IOS下的应用),通过对目标应用分析和再次封装的方式,实现了对应用(指目标应用)再次赋予二次开发的能力。
本发明的优点如下:不需要应用开发厂商配合,应用厂商零改造零开发。不需要第三方功能厂商配合,功能厂商零改造零开发。
附图说明
本发明有如下附图:
图1为本发明的原理示意图。
图2为本发明的模块构成示意图。
图3为本发明的运行处理流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
如图1所示,本发明所述的移动端基于应用二次开发的方法,具有以下特点:
1、应用厂商(亦可称为应用开发商)和第三方功能提供商(亦可称为功能提供商)相互独立,互不影响。
2、应用厂商(亦可称为应用开发商)和第三方功能提供商(亦可称为功能提供商)升级更新独立,只需重新一键封装即可发布。
3、针对已发布的应用进行二次开发,无需开发维护资源。
如图2所示,本发明所述的移动端基于应用二次开发的方法,包括如下步骤:
调用解析步骤,对应用及新增功能插件进行解析,
调用合成步骤,依次进行资源映射处理、程序合成处理、以及运行库加载处理,
调用封装步骤,依次进行引导器加载处理、组装处理、以及签名处理。
在上述技术方案的基础上,解析模块获取应用对应的安装包,所述安装包为:APK或IPA形式的安装包,分析安装包得到与封装相关的信息,所述与封装相关的信息包括:应用属性,组件属性,文件特征,资源信息。
所述应用为已发布应用或待发布应用。所述应用属性包括:PackageName、APPID、限制访问的元素、访问目录层数和是否存在跨APP操作。所述组件属性包括:标识、类型、窗口坐标、窗口尺寸、标签、字型、颜色。所述文件特征包括:文件MD5值。所述资源包括:Resources类资源,根据ID来查找资源,以及AssetManager类资源,根据文件名来查找资源。
例如,在Android下:(APK),分析:AndroidManifest.xml,获取安装包应用信息,如:
1)包名(PackageName):用来标识该安装包的归属。
2)组件信息(Activity/Service/Provider/Receiver):可根据功能进行扩展(增加/修改/删除)。
3)权限信息(Permission):可按功能需要添加或删除。
4)其他信息:运行时候需要的数据信息,如:运行方式,启动方式,集成方式,渠道等等。
分析文件包括:
1)native库:根据功能需要指定支持的机型平台(arm/x86等)。
2)classes.dex:用于增加启动模块替换原有的启动入口。
3)签名信息:用于识别签名方式(v1/v2),在运行时还原。
又例如,IOS下:(IPA),分析:Info.plist,获取安装包应用信息,如:
1)包名(Bundle-Id):用来标识该安装包的归属。
2)组件信息(Framework/dylib/appex/plugin):可根据功能进行扩展(增加/修改/删除)。
3)权限信息(icloud/group):可按功能需要添加或删除。
4)其他信息:运行时候需要的数据信息,如:运行方式,启动方式,集成方式,渠道等等。
在上述技术方案的基础上,解析模块获取功能插件对应的文件,所述功能插件为第三方的库或者资源,通常包括以下任意之一或部分或全部:
APK或IPA形式的安装包;
SDK文件,包括但不限于AAR文件、Jar文件、或Framework文件;
库文件,包括但不限于So文件、Dex文件、或dylib文件;
可执行程序文件;
分析功能插件对应的文件得到与封装相关的信息,所述与封装相关的信息包括:功能插件的资源信息,功能插件的文件结构。
所述功能插件的资源信息包括:插件的Resource对象,只需要将功能插件的路径作为参数传入,就可以获得对应的AssetsManager对象,从而创建一个Resources对象,然后就可以从Resource对象中访问功能插件中的资源。
在上述技术方案的基础上,功能插件的资源信息,包括但不限于:UI显示资源信息,数据存储资源信息,还包括一些与系统功能交互的资源属性,如:账号同步、设备管理器等。
在上述技术方案的基础上,所述资源映射处理为各功能插件分配适当的资源,确保各个功能插件运行时候加载的资源互不影响。
在上述技术方案的基础上,所述程序合成处理将各功能插件融合进入应用加载流程中,确保应用安装后可以被系统加载并运行,符合系统的安装加载规范。
所述系统为Android或IOS。
在上述技术方案的基础上,所述运行库加载处理将各功能插件涉及的功能库合成,确保与应用的平台适配保持一致,处理好系统和设备兼容性问题。
如图3所示,在上述技术方案的基础上,所述引导器加载处理,通过引导器管理整个应用启动和环境创建,确保引导器在第一时间启动并为应用和各功能插件的运行创造条件。
在上述技术方案的基础上,封装模块进行引导器加载处理时,通过封装确保引导器在第一时间运行,当引导器启动后,执行以下处理过程:
创建运行环境;
初始化各个功能插件,并分配相应的配置;
将应用的上下文和事件均转交给原始应用,即脱壳去引导器,至此引导器完成;
引导器在每次应用进程运行时都会运行。
在上述技术方案的基础上,所述组装处理指将应用和各功能插件重新封装形成新的应用的安装包。
在上述技术方案的基础上,所述签名处理调用操作系统提供的签名功能。
在上述技术方案的基础上,新的应用的安装包中,包括原始应用,以及功能插件,通过模块&应用管理模块负责各功能插件的全生命周期管理,负责各功能插件的动态升级更新,进一步提高集成效率。
本发明通过模块&应用管理模块负责各功能插件的全生命周期管理,可以灵活的控制各功能插件,且支持动态升级更新,可以支持在无需封装的情况下更新第三方功能插件,进一步提高集成效率。
所述全生命周期管理包括:初始化、启动、停止、销毁、更新、以及配置管理。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。
Claims (10)
1.一种移动端基于应用二次开发的方法,其特征在于,包括如下步骤:
调用解析步骤,对已发布/待发布应用及功能/插件进行解析;
调用合成步骤,依次进行资源映射处理、可执行程序合成处理、以及运行库加载处理;
调用封装步骤,依次进行加壳引导器处理、APK/IPA组装处理、以及签名处理。
2.如权利要求1所述的移动端基于应用二次开发的方法,其特征在于:解析步骤获取已发布/待发布应用对应的安装包,所述安装包为:APK或IPA形式的安装包,分析安装包得到与封装相关的信息,所述与封装相关的信息包括:应用属性、组件属性、文件特征、资源信息。
3.如权利要求1所述的移动端基于应用二次开发的方法,其特征在于:解析步骤获取功能/插件对应的文件,所述功能/插件为第三方的库或者资源,包括以下至少一种:
APK或IPA形式的安装包;
SDK文件,包括AAR文件、Jar文件、或Framework文件;
库文件,包括So文件、Dex文件、或dylib文件;
可执行程序文件。
4.如权利要求2所述的移动端基于应用二次开发的方法,其特征在于:所述资源信息包括UI显示资源信息、数据存储资源信息。
5.如权利要求1所述的移动端基于应用二次开发的方法,其特征在于:所述资源映射处理为各功能/插件分配适当的资源,确保各个功能/插件运行时加载的资源互不影响。
6.如权利要求1所述的移动端基于应用二次开发的方法,其特征在于:所述可执行程序合成处理将各功能/插件融合进入应用加载流程中,确保应用安装后可以被系统加载并运行,符合系统的安装加载规范。
7.如权利要求1所述的移动端基于应用二次开发的方法,其特征在于:所述运行库加载处理将各功能/插件涉及的功能库合成,确保与应用的平台适配保持一致。
8.如权利要求1所述的移动端基于应用二次开发的方法,其特征在于:所述加壳引导器处理,通过引导器管理整个应用启动和环境创建,确保引导器在第一时间启动并为应用和各功能/插件的运行创造条件。
9.如权利要求1所述的移动端基于应用二次开发的方法,其特征在于:所述APK/IPA组装处理指将应用和各功能/插件重新封装形成新的应用安装包。
10.如权利要求9所述的移动端基于应用二次开发的方法,其特征在于:所述新的应用安装包中,包括原始应用以及功能/插件,通过模块应用管理模块负责各功能/插件的全生命周期管理,以及各功能/插件的动态升级更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910438852.1A CN110262830A (zh) | 2019-05-24 | 2019-05-24 | 一种移动端基于应用二次开发的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910438852.1A CN110262830A (zh) | 2019-05-24 | 2019-05-24 | 一种移动端基于应用二次开发的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110262830A true CN110262830A (zh) | 2019-09-20 |
Family
ID=67915353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910438852.1A Pending CN110262830A (zh) | 2019-05-24 | 2019-05-24 | 一种移动端基于应用二次开发的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110262830A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540788A (zh) * | 2020-12-03 | 2021-03-23 | 南方电网数字电网研究院有限公司 | 一种兼容多厂商无人机飞控应用app的方法 |
CN113836567A (zh) * | 2021-11-26 | 2021-12-24 | 北京指掌易科技有限公司 | 一种数据安全保护方法、装置、介质及电子设备 |
CN114780168A (zh) * | 2022-03-30 | 2022-07-22 | 全球能源互联网研究院有限公司南京分公司 | 智能终端容器安全策略动态变更的方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160026366A1 (en) * | 2014-07-22 | 2016-01-28 | Runfeng LUAN | Method and system for customizing mobile terminal application |
CN108829405A (zh) * | 2018-06-04 | 2018-11-16 | 网易(杭州)网络有限公司 | 渠道包的生成方法及装置、存储介质、电子装置 |
CN109144533A (zh) * | 2017-06-28 | 2019-01-04 | 北京嘀嘀无限科技发展有限公司 | 一种应用程序的更新及加载的方法、系统及计算机装置 |
-
2019
- 2019-05-24 CN CN201910438852.1A patent/CN110262830A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160026366A1 (en) * | 2014-07-22 | 2016-01-28 | Runfeng LUAN | Method and system for customizing mobile terminal application |
CN109144533A (zh) * | 2017-06-28 | 2019-01-04 | 北京嘀嘀无限科技发展有限公司 | 一种应用程序的更新及加载的方法、系统及计算机装置 |
CN108829405A (zh) * | 2018-06-04 | 2018-11-16 | 网易(杭州)网络有限公司 | 渠道包的生成方法及装置、存储介质、电子装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540788A (zh) * | 2020-12-03 | 2021-03-23 | 南方电网数字电网研究院有限公司 | 一种兼容多厂商无人机飞控应用app的方法 |
CN113836567A (zh) * | 2021-11-26 | 2021-12-24 | 北京指掌易科技有限公司 | 一种数据安全保护方法、装置、介质及电子设备 |
CN114780168A (zh) * | 2022-03-30 | 2022-07-22 | 全球能源互联网研究院有限公司南京分公司 | 智能终端容器安全策略动态变更的方法、装置及电子设备 |
CN114780168B (zh) * | 2022-03-30 | 2023-04-28 | 全球能源互联网研究院有限公司南京分公司 | 智能终端容器安全策略动态变更的方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11789715B2 (en) | Systems and methods for transformation of reporting schema | |
CN103559591B (zh) | 基于可信计算的软件管理系统和管理方法 | |
US8549490B2 (en) | Static code analysis for packaged application customization | |
CN106156186B (zh) | 一种数据模型管理装置、服务器及数据处理方法 | |
US8572566B2 (en) | Systems and methods for analyzing changes in application code from a previous instance of the application code | |
US8307331B2 (en) | User interface, operating system and architecture | |
US8898627B2 (en) | Systems and methods for applying rules to transform objects of an application | |
US8739150B2 (en) | Systems and methods for dynamically replacing code objects via conditional pattern templates | |
US8671222B2 (en) | Systems and methods for dynamically deploying an application transformation tool over a network | |
CN107122200A (zh) | 加载插件sdk的方法、系统及客户端 | |
US20200167143A1 (en) | Systems and methods for automated retrofitting of customized code objects | |
CN110262830A (zh) | 一种移动端基于应用二次开发的方法 | |
US20240045850A1 (en) | Systems and methods for database orientation transformation | |
US20150234653A1 (en) | Resource deployment based on conditions | |
CN106844153B (zh) | 应用程序运行监控方法、装置以及终端 | |
CN103970563B (zh) | 动态加载安卓类的方法 | |
CN106775751A (zh) | 一种web前端框架系统及架构方法 | |
US20210173665A1 (en) | Bootstrapping Profile-Guided Compilation and Verification | |
CN102819452B (zh) | 一种从android系统获取数据的方法 | |
CN108090360B (zh) | 一种基于行为特征的安卓恶意应用分类方法及系统 | |
CN110032392A (zh) | 服务治理方法及装置、存储介质和电子设备 | |
CN104679532A (zh) | 内核模块加载方法和装置 | |
CN114077423A (zh) | 基于移动跨平台的机场app开发容器架构 | |
WO2018032653A1 (zh) | 一种Java卡应用的功能实现方法及装置 | |
CN103473034B (zh) | 一种动态发布Web服务的方法和装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190920 |