CN111610982B - 一种应用程序开发的方法、装置和相关*** - Google Patents

一种应用程序开发的方法、装置和相关*** Download PDF

Info

Publication number
CN111610982B
CN111610982B CN201910143169.5A CN201910143169A CN111610982B CN 111610982 B CN111610982 B CN 111610982B CN 201910143169 A CN201910143169 A CN 201910143169A CN 111610982 B CN111610982 B CN 111610982B
Authority
CN
China
Prior art keywords
function
codes
application program
module
application
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
Application number
CN201910143169.5A
Other languages
English (en)
Other versions
CN111610982A (zh
Inventor
王玉鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910143169.5A priority Critical patent/CN111610982B/zh
Publication of CN111610982A publication Critical patent/CN111610982A/zh
Application granted granted Critical
Publication of CN111610982B publication Critical patent/CN111610982B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种应用程序开发的方法、装置和相关***。所述方法包括:将针对指定功能开发的功能代码以及运行功能代码所需调用的资源封装为功能模块;将至少一个功能模块存储到应用程序的原生文件目录中和/或云端服务器;对包括基础代码、需要调用的资源、用于调用功能模块的协议引擎和功能代码与基础代码调用映射关系库的原生代码进行编译打包;得到包含编译后的原生代码和存储在原生文件目录中的功能模块的安装包,或得到包含编译后的原生代码的安装包。将应用程序解耦出不同的功能模块,且每个功能模块不需要编译和安装,能够避免每次对应用程序的功能代码修改而重新整体编译打包并重新安装的麻烦,使得应用程序的开发和更新更加快捷高效。

Description

一种应用程序开发的方法、装置和相关***
技术领域
本发明涉及软件开发和业务解耦技术领域,特别涉及一种应用程序开发的方法、装置和相关***。
背景技术
在传统安卓应用的开发中,每次修改源码工程,都需要将修改后的源码工程重新编译打包,然后再将重新编译打包的程序包安装到移动端设备。
而在每一个应用的开发过程中,往往需要多次的调试及修改源码,且每次修改可能只是针对某一方面的问题所做的局部的改动,若每次局部的修改都需要重新编译打包和安装的话,费时费力。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种应用程序开发的方法、装置和相关***。
第一方面,本发明实施例提供一种应用程序开发的方法,包括:
将针对指定功能开发的功能代码以及运行功能代码所需调用的资源封装为功能模块;
将至少一个所述功能模块存储到应用程序的原生文件目录中和/或至少一个所述功能模块存储到云端服务器;
对应用程序的原生代码进行编译打包,所述原生代码包括应用程序的基础代码、运行应用程序需要调用的资源、用于调用所述功能模块的协议引擎和功能代码与基础代码调用映射关系库;
得到包含编译后的应用程序原生代码和存储在应用程序的原生文件目录中的功能模块的应用程序安装包,或得到包含编译后的应用程序原生代码的应用程序安装包。
在一些可选的实施例中,所述功能代码为包含自定义脚本语言的功能代码。
在一些可选的实施例中,得到应用程序安装包之后,还包括:
将所述应用程序安装包推送到用户终端,以便用户终端运行所述安装包实现安装应用程序,并调用相应的资源运行所述应用程序;
所述用户终端根据功能代码与基础代码调用映射关系库,调用从所述原生文件目录和/或从云端服务器下载的需要运行的功能代码,在相应的协议引擎上运行调用的所述功能代码。
在一些可选的实施例中,封装功能模块之后,还包括:
按照预设的方法加密封装后的功能模块;相应的,
当调用功能代码时,按照相应的方法解密所述功能代码所在的功能模块。
在一些可选的实施例中,当功能代码更新后,还包括:
将所述功能代码以及运行功能代码所需调用的资源封装为新的功能模块,将所述新的功能模块存储到应用程序的原生文件目录中或云端服务器;得到包含编译后的应用程序原生代码和所述功能模块的应用程序安装包;
或,将所述功能代码以及运行功能代码所需调用的资源封装为新的功能模块,将所述新的功能模块推送给用户终端;
或,将所述功能代码以及运行功能代码所需调用的资源封装为新的功能模块,将所述新的功能模块存储到云端服务器。
第二方面,本发明实施例提供一种应用程序开发的装置,包括:
封装模块,用于将针对指定功能开发的功能代码以及运行功能代码所需调用的资源封装为功能模块;
保存模块,用于将至少一个所述封装模块封装的所述功能模块存储到应用程序的原生文件目录中和/或至少一个所述功能模块存储到云端服务器;
编译打包模块,用于对应用程序的原生代码进行编译打包,所述原生代码包括应用程序的基础代码、运行应用程序需要调用的资源、用于调用所述功能模块的协议引擎和功能代码与基础代码调用映射关系库;
获得模块,用于得到包含所述编译打包模块编译后的应用程序原生代码和所述保存模块存储在应用程序的原生文件目录中的功能模块的应用程序安装包,或得到包含所述编译打包模块编译后的应用程序原生代码的应用程序安装包。
第三方面,本发明实施例提供一种应用程序开发的***,包括:
开发客户端和至少一个用户终端,所述开发客户端设置有上述应用程序开发的装置;
所述用户终端,用于接收所述开发客户端推送的应用程序安装包之后,运行所述安装包实现安装应用程序,并调用相应的资源运行所述应用程序。
在一些可选的实施例中,所述用户终端,具体用于:
根据功能代码与基础代码调用映射关系库,调用从所述原生文件目录和/或从云端服务器下载的需要运行的功能代码,在相应的协议引擎上运行调用的所述功能代码。
在一些可选的实施例中,所述用户终端,还用于:
当调用功能代码时,按照相应的方法解密所述功能代码所在的功能模块。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机指令,当该指令被处理器执行时实现上述应用程序开发的方法。
本发明实施例提供的上述技术方案的有益效果至少包括:
1、将针对指定功能开发的功能代码以及运行功能代码所需调用的资源封装为功能模块;将至少一个功能模块存储到应用程序的原生文件目录中和/或云端服务器;对包括基础代码、需要调用的资源、用于调用所述功能模块的协议引擎和功能代码与基础代码调用映射关系库的原生代码进行编译打包;得到包含编译后的原生代码和存储在原生文件目录中的功能模块的安装包,或得到包含编译后的原生代码的安装包。将应用程序解耦出针对不同功能的功能模块,且每个功能模块不需要编译和安装,能够避免每次对应用程序功能代码修改而重新整体编译打包并重新安装的麻烦,省时省力,减少了不必要的重复工作,使得应用程序的开发和更新更加快捷高效。
2、将至少一个功能模块存储到应用程序的原生文件目录中和/或至少一个功能模块存储到云端服务器。不是将所有的功能模块都存储到应用程序的原生文件目录中,而是筛选一些次要的功能模块存储到云端服务器,需要时再下载使用,可以减小安装包的负荷,使得安装包更便于传送,且减小了其占用的存储空间。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中所述应用程序开发的方法的流程图;
图2为本发明实施例中所述调用从原生文件目录下载的需要运行的功能代码方法的流程图;
图3为本发明实施例中所述应用程序开发的装置的结构示意图;
图4为本发明实施例中所述应用程序开发的***的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了解决现有技术中存在的每次修改应用程序的源码,都要重新编译打包和安装带来的费时费力的问题,本发明实施例提供一种应用程序开发的方法,无需每次更新功能代码都重新编译打包和安装,避免了很多重复的操作,提高了开发效率。
实施例
本发明实施例提供一种应用程序开发的方法,其流程如图1所示,包括如下步骤:
步骤S11:将针对指定功能开发的功能代码以及运行功能代码所需调用的资源封装为功能模块。
即,一个功能模块包括实现相应的功能需要运行的功能代码以及运行功能代码所需调用的资源。
其中,运行功能代码所需调用的资源,可以是图片或配置文件。配置文件就是用户在使用应用程序时,应用程序***为用户所要加载所需环境的设置和文件的集合。
在一个实施例中,上述功能代码可以是包含自定义脚本语言的功能代码。
功能代码不是传统的Java、C或C++等代码,而是用更加高级的自定义脚本语言,无需经过提前编译就能运行在CPU和内存中,使得应用程序的开发提质又提效。
其中,Java为一门面向对象编程语言,是安卓***的原生开发语言,需要经过提前编译才能运行在CPU和内存中。C为一门面向过程编程语言,需要经过提前编译才能运行在CPU和内存中。C++为C的超集,既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计,需要经过提前编译才能运行在CPU和内存中。
在一个实施例中,可以是,封装功能模块之后,按照预设的方法加密封装后的功能模块。具体加密算法可以采用对称加密或非对称加密算法。
对称加密:是指采用单钥密码***的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法也称为单密钥加密。
非对称加密:与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥和私有密钥。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
对称加密算法的优点是计算量小、加密和解密速度快、效率高;非对称加密的有点是安全性高。故可以在数据量大,同时安全性要求不是那么高时选用对称加密算法,数据量不是那么大,安全性要求相对较高时,选用非对称加密算法。
将封装后的为功能模块进行加密,可以防止功能模块被第三方攻击和破解。
步骤S12:将至少一个功能模块存储到应用程序的原生文件目录中和/或至少一个功能模块存储到云端服务器。
有一些基础功能,比如地图软件的搜索功能,是需要用户安装完应用程序就能直接使用的,甚至没有网络时,也可以离线搜索。实现这些功能的功能模块,需要存储到应用程序的原生文件目录中,例如安卓***的asserts目录中。
有些功能不是那么重要,比如显示驾车成绩排行榜、各种运营活动等,需要用户后面点击相关页面或有网络的时候,才可以使用就行。这些功能的功能模块,没必要放入应用程序的原生文件目录中,存储到云端服务器即可。具体可以是存储到云分发的专门用来存储此类功能模块的服务器中。
不是将所有的功能模块都存储到应用程序的原生文件目录中,而是筛选一些次要的功能模块存储到云端服务器,需要时再下载使用,可以减小安装包的负荷,使得安装包更便于传送,且减小其占用的存储空间。
上述步骤S11和步骤S12,可以是先执行步骤S11,再执行步骤S12。也可以是两个步骤穿插进行,每封装完一个功能模块、或每封装完一个功能模块且加密后,就将其存储到应用程序的原生文件目录中或云端服务器。
步骤S13:对应用程序的原生代码进行编译打包。
本发明实施例所述的应用程序的开发,可以是在应用程序原生代码基础上的再开发,但并不是简单在原生代码基础上填写新的代码,而是针对每个需要开发的功能单独开发成一个功能模块。
在应用程序在移动终端安装并运行后,需要运行上述针对每项功能单独开发的功能模块时,需要在相应的协议引擎上运行调用的功能模块的功能代码。协议引擎通过功能代码与基础代码调用映射的关系库来运行功能代码。
故,应用程序的原生代码可以包括应用程序的基础代码、运行应用程序需要调用的资源、用于调用功能模块的协议引擎和功能代码与基础代码调用映射关系库。
因为每个功能模块的运行是通过相应的协议引擎对其进行解析后再运行,故,每个功能模块不需要进行编译。只需放在相应的位置,需要时下载并通过协议引擎运行即可。
步骤S14:得到包含编译后的应用程序原生代码和存储在应用程序的原生文件目录中的功能模块的应用程序安装包,或得到包含编译后的应用程序原生代码的应用程序安装包。
当应用程序的原生文件目录中存储有一个或多个相应功能的功能模块时,得到的应用程序安装包包含编译后的应用程序原生代码和功能模块;当应用程序的原生文件目录中没有存储功能模块时,得到的应用程序安装包只包含编译后的应用程序原生代码。
本实施例的上述方法,将应用程序解耦出针对不同功能的功能模块,且每个功能模块不需要编译和安装,能够避免每次对应用程序功能代码修改而重新整体编译打包并重新安装的麻烦,省时省力,减少了不必要的重复工作,使得应用程序的开发更加快捷高效。
在一个实施例中,可以是,得到应用程序安装包之后,将应用程序安装包推送到用户终端,以便用户终端运行安装包实现安装应用程序,并调用相应的资源运行应用程序;用户终端根据功能代码与基础代码调用映射关系库,调用从原生文件目录和/或从云端服务器下载的需要运行的功能代码,在相应的协议引擎上运行调用的所述功能代码。
调用从原生文件目录下载的需要运行的功能代码时,参照图2所示,具体可以按照如下步骤:
步骤S21:在预设的目录中搜索有没有相应的功能模块。
若有,执行步骤S22;若没有,执行步骤S24。
步骤S22:判断其版本是否满足预设的版本要求。
若是,执行步骤S23;若不是,执行步骤S24。
步骤S23:调用相应的功能模块的功能代码。
若相应的功能模块是解密过的,则表明其之前被调用过,直接调用其功能代码即可;若相应的功能模块是加密的,则先按照相应的算法解密功能模块,再调用其功能代码。
步骤S24:从应用程序的原生文件目录拷贝相应的功能模块到预设的目录中,按照相应的方法解密功能模块,调用其功能代码。
具体的,预设的目录可以是本地空间的某一目录;预设的目录也可以是应用程序的原生文件目录,此时不需要再拷贝,直接对其解密并调用功能代码即可。
具体的,调用从云端服务器下载的需要运行的功能代码,与上述调用从原生文件目录下载的需要运行的功能代码,方法基本相同,只是在步骤S24中不同,需要通过网络远程下载相应的功能模块到预设的目录中,按照相应的方法解密功能模块,调用其功能代码。
在一个可选的实施例中,当功能代码更新后,可以包括下述任一一种情况:
1、将功能代码以及运行功能代码所需调用的资源封装为新的功能模块,将新的功能模块存储到应用程序的原生文件目录中或云端服务器;得到包含编译后的应用程序原生代码和功能模块的应用程序安装包。
这种情况需要重新安装并运行新的安装包。
2、将功能代码以及运行功能代码所需调用的资源封装为新的功能模块,将新的功能模块推送给用户终端。用户终端只需将新的功能模块存储到应用程序的原生文件目录中即可,便可以解密后运行相应的功能代码。
3、将述功能代码以及运行功能代码所需调用的资源封装为新的功能模块,将新的功能模块存储到云端服务器。
用户终端需要在线下载新的功能模块,并存储到指定文件目录中,解密后便可以运行相应的功能代码。
基于同一发明构思,本发明实施例还提供一种应用程序开发的装置,其结构如图3所示,包括:
封装模块31,用于将针对指定功能开发的功能代码以及运行功能代码所需调用的资源封装为功能模块;
保存模块32,用于将至少一个所述封装模块31封装的所述功能模块存储到应用程序的原生文件目录中和/或至少一个所述功能模块存储到云端服务器;
编译打包模块33,用于对应用程序的原生代码进行编译打包,所述原生代码包括应用程序的基础代码、运行应用程序需要调用的资源、用于调用所述功能模块的协议引擎和功能代码与基础代码调用映射关系库;
获得模块34,用于得到包含所述编译打包模块33编译后的应用程序原生代码和所述保存模块32存储在应用程序的原生文件目录中的功能模块的应用程序安装包,或得到包含所述编译打包模块33编译后的应用程序原生代码的应用程序安装包。
在一些可选的实施例中,上述应用程序开发的装置,还可以包括:
推送模块35,用于将所述获得模块34获得的应用程序安装包推送到用户终端,以便用户终端运行所述安装包实现安装应用程序,并调用相应的资源运行所述应用程序。
在一些可选的实施例中,上述应用程序开发的装置,还可以包括:
加密模块36,用于按照预设的方法加密所述封装模块31封装的功能模块。
在一些可选的实施例中,上述应用程序开发的装置,还可以包括:
更新模块37,用于当功能代码更新后,将所述功能代码以及运行功能代码所需调用的资源封装为新的功能模块,将所述新的功能模块存储到应用程序的原生文件目录中或云端服务器;得到包含编译后的应用程序原生代码和所述功能模块的应用程序安装包;或,将所述功能代码以及运行功能代码所需调用的资源封装为新的功能模块,将所述新的功能模块推送给用户终端;或,将所述功能代码以及运行功能代码所需调用的资源封装为新的功能模块,将所述新的功能模块存储到云端服务器。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于同一发明构思,本发明实施例还提供一种应用程序开发的***,其结构如图4所示,包括:
开发客户端41和至少一个用户终端42,所述开发客户端41设置有上述应用程序开发的装置;
所述用户终端42,用于接收所述开发客户端41推送的应用程序安装包之后,运行所述安装包实现安装应用程序,并调用相应的资源运行所述应用程序。
在一些可选的实施例中,所述用户终端42,具体用于:
根据功能代码与基础代码调用映射关系库,调用从所述原生文件目录和/或从云端服务器下载的需要运行的功能代码,在相应的协议引擎上运行调用的所述功能代码。
在一些可选的实施例中,所述用户终端42,还用于:
当调用功能代码时,按照相应的方法解密所述功能代码所在的功能模块。
基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机指令,当该指令被处理器执行时实现上述应用程序开发的方法。
除非另外具体陈述,术语比如处理、计算、运算、确定、显示等等可以指一个或更多个处理或者计算***、或类似设备的动作和/或过程,所述动作和/或过程将表示为处理***的寄存器或存储器内的物理(如电子)量的数据操作和转换成为类似地表示为处理***的存储器、寄存器或者其他此类信息存储、发射或者显示设备内的物理量的其他数据。信息和信号可以使用多种不同的技术和方法中的任何一种来表示。例如,在贯穿上面的描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以用电压、电流、电磁波、磁场或粒子、光场或粒子或者其任意组合来表示。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个***所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。
对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

Claims (9)

1.一种应用程序开发的方法,其特征在于,包括:
将针对指定功能开发的功能代码以及运行功能代码所需调用的资源封装为功能模块,所述功能代码为包含自定义脚本语言的功能代码;
将至少一个所述功能模块存储到应用程序的原生文件目录中和/或至少一个所述功能模块存储到云端服务器;
对应用程序的原生代码进行编译打包,所述原生代码包括应用程序的基础代码、运行应用程序需要调用的资源、用于调用所述功能模块的协议引擎和功能代码与基础代码调用映射关系库;
得到包含编译后的应用程序原生代码和存储在应用程序的原生文件目录中的功能模块的应用程序安装包,或得到包含编译后的应用程序原生代码的应用程序安装包。
2.如权利要求1所述的方法,其特征在于,得到应用程序安装包之后,还包括:
将所述应用程序安装包推送到用户终端,以便用户终端运行所述安装包实现安装应用程序,并调用相应的资源运行所述应用程序;
所述用户终端根据功能代码与基础代码调用映射关系库,调用从所述原生文件目录和/或从云端服务器下载的需要运行的功能代码,在相应的协议引擎上运行调用的所述功能代码。
3.如权利要求2所述的方法,其特征在于,封装功能模块之后,还包括:
按照预设的方法加密封装后的功能模块;相应的,
当调用功能代码时,按照相应的方法解密所述功能代码所在的功能模块。
4.如权利要求1-3任一所述的方法,其特征在于,当功能代码更新后,还包括:
将所述功能代码以及运行功能代码所需调用的资源封装为新的功能模块,将所述新的功能模块存储到应用程序的原生文件目录中或云端服务器;得到包含编译后的应用程序原生代码和所述功能模块的应用程序安装包;
或,将所述功能代码以及运行功能代码所需调用的资源封装为新的功能模块,将所述新的功能模块推送给用户终端;
或,将所述功能代码以及运行功能代码所需调用的资源封装为新的功能模块,将所述新的功能模块存储到云端服务器。
5.一种应用程序开发的装置,其特征在于,包括:
封装模块,用于将针对指定功能开发的功能代码以及运行功能代码所需调用的资源封装为功能模块,所述功能代码为包含自定义脚本语言的功能代码;
保存模块,用于将至少一个所述封装模块封装的所述功能模块存储到应用程序的原生文件目录中和/或至少一个所述功能模块存储到云端服务器;
编译打包模块,用于对应用程序的原生代码进行编译打包,所述原生代码包括应用程序的基础代码、运行应用程序需要调用的资源、用于调用所述功能模块的协议引擎和功能代码与基础代码调用映射关系库;
获得模块,用于得到包含所述编译打包模块编译后的应用程序原生代码和所述保存模块存储在应用程序的原生文件目录中的功能模块的应用程序安装包,或得到包含所述编译打包模块编译后的应用程序原生代码的应用程序安装包。
6.一种应用程序开发的***,其特征在于,包括开发客户端和至少一个用户终端,所述开发客户端设置有如权利要求5所述的应用程序开发的装置;
所述用户终端,用于接收所述开发客户端推送的应用程序安装包之后,运行所述安装包实现安装应用程序,并调用相应的资源运行所述应用程序。
7.如权利要求6所述的***,其特征在于,所述用户终端,具体用于:
根据功能代码与基础代码调用映射关系库,调用从所述原生文件目录和/或从云端服务器下载的需要运行的功能代码,在相应的协议引擎上运行调用的所述功能代码。
8.如权利要求7所述的***,其特征在于,所述用户终端,还用于:
当调用功能代码时,按照相应的方法解密所述功能代码所在的功能模块。
9.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,当该指令被处理器执行时实现权利要求1-4任一所述的应用程序开发的方法。
CN201910143169.5A 2019-02-26 2019-02-26 一种应用程序开发的方法、装置和相关*** Active CN111610982B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910143169.5A CN111610982B (zh) 2019-02-26 2019-02-26 一种应用程序开发的方法、装置和相关***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910143169.5A CN111610982B (zh) 2019-02-26 2019-02-26 一种应用程序开发的方法、装置和相关***

Publications (2)

Publication Number Publication Date
CN111610982A CN111610982A (zh) 2020-09-01
CN111610982B true CN111610982B (zh) 2023-05-16

Family

ID=72205324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910143169.5A Active CN111610982B (zh) 2019-02-26 2019-02-26 一种应用程序开发的方法、装置和相关***

Country Status (1)

Country Link
CN (1) CN111610982B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113918170A (zh) * 2021-11-19 2022-01-11 杭州涂鸦信息技术有限公司 一种软件产品开发方法、装置、设备及介质
CN116991380B (zh) * 2023-09-21 2024-01-09 腾讯科技(深圳)有限公司 一种应用程序的构建方法、装置、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105373390A (zh) * 2015-12-03 2016-03-02 北京小鸟科技发展有限责任公司 面向oem的在线软件定制打包发布的方法和装置
CN105630522A (zh) * 2014-10-31 2016-06-01 阿里巴巴集团控股有限公司 一种Web应用的更新方法、装置和***
WO2017087801A1 (en) * 2015-11-20 2017-05-26 Google Inc. Dynamic update of an application in compilation and deployment
CN106919398A (zh) * 2017-03-06 2017-07-04 山东浪潮云服务信息科技有限公司 一种软件发布方法及装置
CN107193544A (zh) * 2017-04-01 2017-09-22 北京五八信息技术有限公司 一种应用程序组件化开发方法及装置
US10007501B1 (en) * 2017-05-19 2018-06-26 Central South University Method of deploying applications rapidly based on customized android platform
CN108595200A (zh) * 2018-04-19 2018-09-28 北京微播视界科技有限公司 代码更新方法、图形更新方法、装置、存储介质和终端
CN108897562A (zh) * 2018-06-27 2018-11-27 腾讯科技(深圳)有限公司 安装包更新方法、装置、介质以及设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105630522A (zh) * 2014-10-31 2016-06-01 阿里巴巴集团控股有限公司 一种Web应用的更新方法、装置和***
WO2017087801A1 (en) * 2015-11-20 2017-05-26 Google Inc. Dynamic update of an application in compilation and deployment
CN105373390A (zh) * 2015-12-03 2016-03-02 北京小鸟科技发展有限责任公司 面向oem的在线软件定制打包发布的方法和装置
CN106919398A (zh) * 2017-03-06 2017-07-04 山东浪潮云服务信息科技有限公司 一种软件发布方法及装置
CN107193544A (zh) * 2017-04-01 2017-09-22 北京五八信息技术有限公司 一种应用程序组件化开发方法及装置
US10007501B1 (en) * 2017-05-19 2018-06-26 Central South University Method of deploying applications rapidly based on customized android platform
CN108595200A (zh) * 2018-04-19 2018-09-28 北京微播视界科技有限公司 代码更新方法、图形更新方法、装置、存储介质和终端
CN108897562A (zh) * 2018-06-27 2018-11-27 腾讯科技(深圳)有限公司 安装包更新方法、装置、介质以及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黎桐辛 ; 韩心慧 ; 简容 ; 肖建国 ; .支持加壳应用的Android非侵入式重打包方法研究.北京大学学报(自然科学版).2018,(第06期),全文. *

Also Published As

Publication number Publication date
CN111610982A (zh) 2020-09-01

Similar Documents

Publication Publication Date Title
JP6815385B2 (ja) アプリケーションのコード難読化のためのシステムおよび方法
CN104731625B (zh) 一种加载插件的方法、装置和移动终端
EP2798494B1 (en) Virtual channel for embedded process communication
CN103914637B (zh) 一种安卓平台的可执行程序加密方法
US20130185799A1 (en) Trusted installation of a software application
CN104462959A (zh) 一种安卓应用的加固保护方法、服务器和***
CN104714827A (zh) 插件更新方法及装置
US9141363B2 (en) Application construction for execution on diverse computing infrastructures
CN104680039A (zh) 一种应用程序安装包的数据保护方法及装置
CN108647032B (zh) 应用加载方法及装置、计算机装置和计算机可读存储介质
CN113568680B (zh) 应用程序的动态链接库保护方法、装置、设备及介质
CN111610982B (zh) 一种应用程序开发的方法、装置和相关***
CN111930382A (zh) 应用页面的接入方法、装置及设备
CN107508846B (zh) 应用客户端的更新方法和***及终端设备
US10223526B2 (en) Generating packages for managed applications
CN116755713A (zh) 应用程序的生成方法、装置、设备及存储介质
US20210160272A1 (en) Methods and apparatus for defending against exploitation of vulnerable software
CN109343970B (zh) 基于应用程序的操作方法、装置、电子设备及计算机介质
KR101823226B1 (ko) 코드 보호 방법 및 시스템
CN111782239A (zh) 软件打包和源码版本信息获取方法、装置及存储介质
US20150195376A1 (en) Machine-Specific Instruction Set Translation
CN113220314B (zh) App资源加载及apk生成方法、装置、设备及介质
CN106648770B (zh) 一种应用程序安装包的生成方法、加载方法及装置
CN110502251B (zh) 应用安装方法及装置
CN113420313A (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
GR01 Patent grant
GR01 Patent grant