System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及系统应用移植技术,尤其涉及一种用于安卓平台的应用移植方法及系统、存储介质。
技术介绍
1、随着智能终端技术的发展,为了满足不同用户群体的需求,一些定制开发移动终端系统的企业,时常会基于android操作系统原生应用做二次开发,然而android系统平台的更新十分频繁,因此为了使更新后的android系统平台还能沿用原平台二次开发后的应用,则需要做好应用移植工作。
2、目前现有android系统平台的应用移植手段,通常是通过对比android旧平台(即原有二次开发应用所在原平台)与新平台(即目标移植平台)修改前后的应用文件,将对比差异代码移植到新平台。然而一个现实的问题在于,如果新旧平台应用代码差异较大时,很难准确区分原代码与修改后的二次开发代码,因此采用对比代码差异的方式进行移植,方案不够灵活且工作量巨大。由此可见,如何高效灵活的将二次开发应用移植到新平台,是目前本领域亟待改进的问题。
技术实现思路
1、为此,本专利技术的主要目的在于提供一种用于安卓平台的应用移植方法及系统、存储介质,以便于二次开发应用在新旧安卓平台间移植。
2、为了实现上述目的,根据本专利技术的第一个方面,提供了一种用于安卓平台的应用移植方法,其步骤包括:在原平台创建移植应用对象类文件,通过继承方法继承原始应用对象类b的源码;通过重写方法重写移植应用对象类文件,将自研方法代码加入所述继承的原始应用对象类b的公有方法a中;在原平台创建注解文件,以标记移植应用对象类文件的代码;将
3、在可能的优选实施方式中,所述的用于安卓平台的应用移植方法,其中步骤还包括:通过继承方法获取原始应用对象类b的字段,并通过重写方法在移植应用对象类中修改对应的字段值。
4、在可能的优选实施方式中,其中在原平台创建注解文件的步骤包括:定义注解范围,以允许使用于类上;定义注解作用于class字节码上,生命周期只在编译期间有效;定义注解类型的特定名称。
5、在可能的优选实施方式中,其中根据注解筛选出移植应用对象类文件的公有方法a的字节码的步骤包括:通过注解处理器扫描出带注解标记的移植应用对象类文件代码,以获取移植应用对象类的信息;使用字节码操作库根据移植应用对象类的信息,提取出公有方法a的字节码。
6、在可能的优选实施方式中,其中通过注解处理器扫描出带注解标记的移植应用对象类文件代码,以获取移植应用对象类的信息的步骤包括:自定义注解处理器,构建脚本及配置,以扫描带有特定名称的注解类型,筛选出移植应用对象类文件代码,获取包含移植应用对象类的包名、方法名在内的信息。
7、在可能的优选实施方式中,其中字节码操作库根据移植应用对象类的信息,提取出公有方法a的字节码的步骤包括:使用javassist依据移植应用对象类的信息,加载出移植应用对象类的字节码文件,获取移植应用对象类的ctclass对象;使用ctclass对象的getdeclaredmethod方法获取公有方法a的ctmethod对象;通过ctmethod对象的getmethodinfo方法获取公有方法a的methodinfo对象后,使用getcodeattribute方法获取公有方法a的字节码属性codeattribute;通过codeattribute对象的getcode方法获取公有方法a的字节码。
8、在可能的优选实施方式中,其中将公有方法a的字节码与目标移植平台上原始应用对象类b’的源码中对应的公有方法a’的字节码进行替换的步骤包括:使用javassist依据目标移植平台上原始应用对象类b’的信息,加载出其对应的字节码文件,获取原始应用对象类b’的ctclass对象;使用ctclass对象的getdeclaredmethod方法获取公有方法a’的ctmethod对象;通过ctmethod对象的setbody方法,将公有方法a的字节码替换公有方法a’的字节码,并写回原始应用对象类b’的字节码。
9、在可能的优选实施方式中,其中注解文件及移植应用对象类文件,创建在原平台同一工程目录下。
10、为了实现上述目的,根据本专利技术的第二个方面,还提供了一种用于安卓平台的应用移植系统,其包括:包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时,所述系统现如上任一所述用于安卓平台的应用移植方法的步骤。
11、为了实现上述目的,根据本专利技术的第二个方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其中所述计算机程序被执行时,实现如上任一所述用于安卓平台的应用移植方法的步骤。
12、通过本专利技术提供的该用于安卓平台的应用移植方法及系统、存储介质,巧妙的利用了java继承特性并结合注解手段,以将应用源码与二次开发功能改动的代码解耦,并且构思上通过采用修改字节码的方式,以将二次开发功能改动代码对应的字节码,替换掉新平台上应用源码中对应的字节码部分,来实现应用的移植,经此方式,不但可保留安卓原平台和新平台的应用源码不做修改,同时也无需再关注新旧平台应用所有代码的差异,从而可灵活高效的完成安卓应用的移植工作。
本文档来自技高网...【技术保护点】
1.一种用于安卓平台的应用移植方法,步骤包括:
2.根据权利要求1所述的用于安卓平台的应用移植方法,其中步骤还包括:通过继承方法获取原始应用对象类B的字段,并通过重写方法在移植应用对象类中修改对应的字段值。
3.根据权利要求1所述的用于安卓平台的应用移植方法,其中在原平台创建注解文件的步骤包括:定义注解范围,以允许使用于类上;定义注解作用于class字节码上,生命周期只在编译期间有效;定义注解类型的特定名称。
4.根据权利要求1所述的用于安卓平台的应用移植方法,其中根据注解筛选出移植应用对象类文件的公有方法A的字节码的步骤包括:通过注解处理器扫描出带注解标记的移植应用对象类文件代码,以获取移植应用对象类的信息;
5.根据权利要求4所述的用于安卓平台的应用移植方法,其中通过注解处理器扫描出带注解标记的移植应用对象类文件代码,以获取移植应用对象类的信息的步骤包括:自定义注解处理器,构建脚本及配置,以扫描带有特定名称的注解类型,筛选出移植应用对象类文件代码,获取包含移植应用对象类的包名、方法名在内的信息。
6.根据权利要求4所
7.根据权利要求1所述的用于安卓平台的应用移植方法,其中将公有方法A的字节码与目标移植平台上原始应用对象类B’的源码中对应的公有方法A’的字节码进行替换的步骤包括:
8.根据权利要求1所述的用于安卓平台的应用移植方法,其中注解文件及移植应用对象类文件,创建在原平台同一工程目录下。
9.一种用于安卓平台的应用移植系统,其包括:包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时,所述系统实现如权利要求1至8中任一项所述用于安卓平台的应用移植方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其中所述计算机程序被执行时,实现如权利要求1至8任一项所述用于安卓平台的应用移植方法的步骤。
...【技术特征摘要】
1.一种用于安卓平台的应用移植方法,步骤包括:
2.根据权利要求1所述的用于安卓平台的应用移植方法,其中步骤还包括:通过继承方法获取原始应用对象类b的字段,并通过重写方法在移植应用对象类中修改对应的字段值。
3.根据权利要求1所述的用于安卓平台的应用移植方法,其中在原平台创建注解文件的步骤包括:定义注解范围,以允许使用于类上;定义注解作用于class字节码上,生命周期只在编译期间有效;定义注解类型的特定名称。
4.根据权利要求1所述的用于安卓平台的应用移植方法,其中根据注解筛选出移植应用对象类文件的公有方法a的字节码的步骤包括:通过注解处理器扫描出带注解标记的移植应用对象类文件代码,以获取移植应用对象类的信息;
5.根据权利要求4所述的用于安卓平台的应用移植方法,其中通过注解处理器扫描出带注解标记的移植应用对象类文件代码,以获取移植应用对象类的信息的步骤包括:自定义注解处理器,构建脚本及配置,以扫描带有特定名称的注解类型,筛选出移植应用对象类文件代码,获取...
【专利技术属性】
技术研发人员:张旭,梅俊明,江南,
申请(专利权)人:上海卓易科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。