一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

脱离源码编译环境开发Andriod系统应用的方法与流程

2022-04-14 00:09:20 来源:中国专利 TAG:

脱离源码编译环境开发andriod系统应用的方法
技术领域
1.本发明属于android软件开发技术领域,更具体涉及一种脱离源码编译环境开发andriod系统应用的方法。


背景技术:

2.现有android系统应用开发大多依赖源码编译环境,在开发系统应用的过程中,编译调试极为不方便,每当改动部分代码就需要将该模块执行编译并将生成的安装包push到对应设备进行测试,且由于没有调试工具,将无法观察代码改变后应用运行状态的改变,需要依赖日志系统检测变化,不但影响开发效率,增加了大量繁琐的工作,后期还需要清除代码中日志内容。针对当前汽车座舱领域的系统软件定制开发,一般而言,车机系统应用需要跟随系统版本升级替换,在对系统应用进行升级或者替换时往往需要系统升级才能实现,而整体系统升级的风险、成本和耗时都较高,使用不便。
3.我国专利cn201510666061.6公开了一种安卓系统应用程序的数据文件生成及调用方法和装置,所述安卓系统应用程序具有对应的数据库接口文件及编译文件的引用路径,所述的数据文件生成方法包括:在所述安卓系统应用程序中创建接口文件夹;将所述安卓系统应用程序的数据库接口文件移动至所述接口文件夹中;将所述安卓系统应用程序的编译文件的引用路径导向至所述接口文件夹;在所述安卓系统应用程序中生成所述数据文件,从而使得系统应用程序的数据文件能够在该应用程序中进行生成,脱离了手机进程对数据文件的控制。
4.另外,我国专利cn201510512780.2公开了一种编译安卓包开发文件的方法、服务器和系统,包括:接收各客户端上传的待编译的安卓包开发文件;在云端的服务器上对接收到的待编译的安卓包开发文件进行编译处理,得到编译后的安卓包开发文件;将编译后的安卓包开发文件返回给相应的客户端。本发明的技术方案实现了将编译工作与客户端的分离,采用工作性能更高的服务器进行编译工作,由于服务器的性能通常远好于客户端,这样大大减少了编译安卓包文件所需的时间。开发人员如需再次对编译好的安卓包开发文件进行处理,可以直接从服务器进行获取,减少了本地客户端需要保存安卓包而需要的存储资源的利用。
5.现有技术均在系统的源码环境下进行应用开发,均没有实现脱离源码编译环境进行系统应用开发,不便于开发者编译调试系统应用。


技术实现要素:

6.为解决上述问题,本发明提供了脱离源码编译环境开发andriod系统应用的方法,针对当前汽车座舱领域的系统软件定制开发有着较大的效率提升作用,在android官方ide中快速构建编译系统级应用,能够在不影响原有系统源码结构与内容的情况下方便开发者编译调试系统应用,从而可以在不升级系统的情况下将系统应用安装到车机系统中,适用一些快速修复的场景,而不用考虑整体系统升级的风险和耗时。
7.为了解决上述技术问题,本发明采用的技术方案是这样的:一种脱离源码编译环境开发andriod系统应用的方法,包括如下步骤,s1、确定需要脱离源码编译环境的系统应用项目在系统源码目录中的位置,并分析其依赖关系;s2、新建空的工程主目录,并将所述系统应用项目的源码拷贝在该工程主目录中;s3、引用系统应用项目开发的相关依赖源码和资源,并配置运行环境,调整编译引用顺序,设置相关依赖源码与资源的引用目录;s4、试编译并处理报错后整体编译通过完成。
8.作为优化,还包括在执行步骤s1前将系统源码完整编译一次以获取系统应用项目编译过程中所使用的库文件的步骤。
9.作为优化,所述配置运行环境包括将系统源码编译环境下的framework.jar文件作为系统应用项目所依赖的基础sdk,并设定其在系统应用项目编译过程中的优先级。
10.作为优化,所述设置相关依赖源码与资源的引用目录包括配置对应的源码和资源目录,并通过gradle脚本进行管理。
11.作为优化,所述配置对应的源码和资源目录包括将工程主目录放置在系统源码的根目录,并通过配置相对路径来指定源码与资源引用目录。
12.作为优化,所述配置相对路径为通过脚本属性sourcesets进行配置。
13.作为优化,所述步骤s3还包括根据系统应用项目的依赖关系增加代码和资源依赖模块,单独作为依赖引入,并放置在引用目录中,利用gradle脚本进行管理。
14.作为优化,将所述系统应用项目所依赖的模块在脚本中配置为依赖,并根据其原依赖关系确定依赖形式,根据该依赖形式调整依赖顺序。
15.作为优化,所述依赖形式包括编译中依赖,运行中依赖和全状态依赖。
16.与现有技术相比,本发明具有如下优点:本发明通过确定需要从系统源码目录中剥离的系统应用模块,查看其android.mk,了解项目依赖情况;根据项目依赖情况新建android studio项目,将无关内容剔除,根据原mk文件新建主工程与各个模块,将源码拷贝到工程主目录;引用相关依赖及源码,配置运行环境,调整编译引用顺序,设置相关源码与资源引用目录;试编译排除模块报错,处理具体报错内容后整体编译通过完成。本发明是一种新的系统应用开发流程,利用现代化的ide使系统应用如普通应用一样可以快速编译、调试,能够在不影响原有系统源码结构与内容的情况下方便开发者编译调试系统应用。针对当前汽车座舱领域的系统软件定制开发有着较大的效率提升作用,可以在不升级系统的情况下将系统应用安装到车机系统中,适用一些快速修复的场景,而不用考虑整体系统升级的风险和耗时。
附图说明
17.图1为android系统编译流程图;图2为本发明的整体迁移流程图。
具体实施方式
18.下面将结合附图及实施例对本发明作进一步说明。
19.实施例:参见图1-图2,一种脱离源码编译环境开发andriod系统应用的方法,包括如下步骤,s1、确定需要脱离源码编译环境的系统应用项目在系统源码目录中的位置,并分析其依赖关系。在执行步骤s1前将系统源码完整编译一次以获取系统应用项目编译过程中所使用的库文件。
20.s2、新建空的工程主目录,并将所述系统应用项目的源码拷贝在该工程主目录中。
21.s3、引用系统应用项目开发的相关依赖源码和资源,并配置运行环境,调整编译引用顺序,设置相关依赖源码与资源的引用目录。
22.所述配置运行环境包括将系统源码编译环境下的framework.jar文件作为系统应用项目所依赖的基础sdk,并设定其在系统应用项目编译过程中的优先级。所述设置相关依赖源码与资源的引用目录包括配置对应的源码和资源目录,并通过gradle脚本进行管理。所述配置对应的源码和资源目录包括将工程主目录放置在系统源码的根目录,并通过配置相对路径来指定源码与资源引用目录。所述配置相对路径为通过脚本属性sourcesets进行配置。还包括根据系统应用项目的依赖关系增加代码和资源依赖模块,单独作为依赖引入,并放置在引用目录中,利用gradle脚本进行管理。将所述系统应用项目所依赖的模块在脚本中配置为依赖,并根据其原依赖关系确定依赖形式,根据该依赖形式调整依赖顺序。所述依赖形式包括编译中依赖,运行中依赖和全状态依赖。
23.s4、试编译并处理报错后整体编译通过完成。
24.具体的,由于系统应用与普通应用区别在于所需权限更高,代码中与系统源码部分耦合更多,依赖的系统级接口更多,但是只要是单独的项目能根据目录下的mk文件厘清依赖关系,便可以单独抽取作为独立应用编译,不再依赖源码环境。
25.首要准备工作是将整个源码完整编译一次,既是为保证源码的准确无错漏,同时利用全量编译生成需要在系统应用编译过程中使用的库文件,如图1所示。在源码对应目录找到所需的库文件,一般来说,系统应用依赖的库文件编译后存放在out/target/common/obj/java_libraries内,通过搜索可以找到对应的classes.jar文件,另有部分依赖可根据名称直接从相关仓库引用即可。同时由于系统应用往往引用了大量系统隐藏api,普通android工程使用的sdk往往无法保证编译通过,所以需要在out/target/common/obj/java_libraries/framework_intermediates目录找到当前系统编译的framework.jar文件作为系统应用依赖的基础sdk,并且指定其在编译过程中的优先级,关于android studio gradle脚本项目依赖引用的具体设置方法已有相关资料参考,此处不再赘述。
26.其次需要配置对应的资源与代码(源码)目录,使得gradle脚本可以管理对应的文件内容。为了源码同步,同时得益于android studio编译脚本的灵活性,可以将源码目录放置在android项目的根目录,通过配置相对路径来指定源码与资源目录,如图1所示,这样既不改变原有项目结构,同时也能支持android studio编译通过,也就是说项目根目录下会有系统应用在源码中的完整目录,各个模块及主工程仅仅只是通过配置文件引用该目录下的文件内容参与编译。此部分通过脚本属性sourcesets来进行配置,相关内容可查阅官方文档。
27.再次由于系统应用引用的相关资源文件繁杂,有可能引用到其他项目或不同包名的资源文件,此时有必要增加项目模块,单独作为依赖引入,将资源文件放置其中,利用
gradle编译出其他包名的资源文件引用。
28.最后需要将主工程依赖的模块在脚本中配置为依赖,根据原项目的mk确定依赖形式,确定依赖是在编译中依赖,运行中依赖还是全状态依赖,根据这一准则调整依赖顺序,确保编译后运行不报错,此时项目中可能会有资源文件识别错误,代码或源码引用错误等,按照提示进行解决即可。
29.本发明通过确定需要从系统源码目录中剥离的系统应用模块,查看其android.mk,了解项目依赖情况;根据项目依赖情况新建android studio项目,将无关内容剔除,根据原mk文件新建主工程与各个模块,将源码拷贝到工程主目录;引用相关依赖及源码,配置运行环境,调整编译引用顺序,设置相关源码与资源引用目录;试编译排除模块报错,处理具体报错内容后整体编译通过完成。本发明是一种新的系统应用开发流程,利用现代化的ide使系统应用如普通应用一样可以快速编译,调试,能够在不影响原有系统源码结构与内容的情况下方便开发者编译调试系统应用。针对当前汽车座舱领域的系统软件定制开发有着较大的效率提升作用,可以在不升级系统的情况下将系统应用安装到车机系统中,适用一些快速修复的场景,而不用考虑整体系统升级的风险和耗时。
30.最后需要说明的是,以上实施例仅用以说明本发明的技术方案而非限制技术方案,本领域的普通技术人员应当理解,那些对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,均应涵盖在本发明的权利要求范围当中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献