技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种应用程序的路由表生成方法、装置、设备和存储介质与流程  >  正文

一种应用程序的路由表生成方法、装置、设备和存储介质与流程

  • 国知局
  • 2024-10-09 15:51:15

本技术涉及路由信息处理,特别是涉及一种应用程序的路由表生成方法、装置、计算机设备和存储介质。

背景技术:

1、android开发中,随着项目规模的逐渐庞大,越来越多的团队都会使用模块化以及组件化的方式进行开发,模块化以及组件化不仅可以将复杂的项目分模块解耦,提高开发测试效率,还提高了代码的复用性。

2、模块化以及组件化带来诸多优点的同时,也带来了模块间通信困难的新问题,没有依赖关系或是独立的模块之间无法直接引用代码,进而无法直接跳转页面。通常情况下,路由方案可以很好的解决该问题,路由方案提供了一种中心化的路由管理机制,将应用程序的所有模块中的页面和路由名称动态生成路由表,统一管控模块间的页面跳转。

3、在应用程序的apk包运行时查找所有模块的路由表类,最终生成总的路由表。要在应用程序的apk包运行时查找并加载所有模块的路由表类,传统采用扫描dex文件的方式得到。即,应用程序的apk包运行时获取所有的dex文件,遍历所有类找到指定包名的模块路由表类,缺点如下:

4、a)需要io操作并且遍历所有类,耗时较长。

5、b)加固后无法直接访问dex文件,导致加载失败。

技术实现思路

1、基于此,有必要针对上述技术问题,提供一种应用程序的路由表生成方法、装置、计算机设备和存储介质,查找并加载所有模块的路由表类时,无需扫描dex文件,根据用户自定义的路由类集合的生成任务即可得到路由表,编译耗时短并且能够提高路由表类的加载成功率。

2、一种应用程序的路由表生成方法,包括:获取用户自定义的路由类集合的生成任务,路由类集合的生成任务用于在编译阶段遍历应用程序的app模块和多个依赖于app模块的功能模块,得到各个模块的路由信息,并根据各个模块的路由信息生成路由类集合;从app模块的配置文件中查找mergeassets任务,mergeassets任务用于在编译阶段将应用程序的assets目录的文件打包到apk包;配置路由类集合的生成任务与mergeassets任务的依赖关系,以使得在编译阶段将路由类集合打包到应用程序的apk包;在应用程序的apk包被运行时,基于路由类集合生成应用程序的路由表。

3、在其中一个实施例中,各个模块的路由信息包括第一路由信息和多个第二路由信息,第一路由信息通过遍历app模块的配置文件中引入的路由库的依赖信息得到,各第二路由信息通过遍历各功能模块的配置文件中引入的路由库的依赖信息得到。

4、在其中一个实施例中,各个模块的路由信息包括第一路由类文件和多个第二路由类文件,第一路由类文件通过在编译阶段遍历app模块的各个类文件并从各个类文件中识别得到,各第二路由类文件通过在编译阶段遍历各功能模块的各个类文件并从各个类文件中识别得到;路由类集合为包含第一路由类文件和多个第二路由类文件的路由类列表。

5、在其中一个实施例中,在应用程序的apk包被运行时,基于路由类集合生成应用程序的路由表的步骤之前,还包括:对应用程序的app模块和多个依赖于app模块的功能模块进行编译;在编译过程执行路由类集合的生成任务时,遍历应用程序的app模块和各功能模块,识别出第一路由类文件和多个第二路由类文件,将第一路由类文件的路由类名和各第二路由类文件的路由类名添加到路由类列表中,并将路由类列表写入应用程序的assets目录的文件中;在编译过程执行mergeassets任务时,将应用程序的assets目录的文件打包到apk包。

6、在其中一个实施例中,在应用程序的apk包被运行时,基于路由类集合生成应用程序的路由表,包括:运行应用程序的apk包,从路由类列表中读取第一路由类文件的路由类名和各第二路由类文件的路由类名;基于第一路由类文件的路由类名调用第一路由类文件的加载方法,将第一路由类文件的加载方法添加到应用程序的全局路由表;基于各第二路由类文件的路由类名调用各第二路由类文件的加载方法,将各第二路由类文件的加载方法添加到应用程序的全局路由表;基于添加第一路由类文件的加载方法以及各第二路由类文件的加载方法后的全局路由表得到应用程序的路由表。

7、在其中一个实施例中,获取用户自定义的路由类集合的生成任务的步骤之前,还包括:在应用程序的app模块的配置文件中引入路由库依赖并在app模块的页面组件中配置路由名称,以使得在编译阶段生成app模块的路由信息;在应用程序的各依赖于app模块的功能模块的配置文件中引入路由库依赖并在各依赖于app模块的功能模块的页面组件中配置路由名称,以使得在编译阶段生成各依赖于app模块的功能模块的路由信息。

8、在其中一个实施例中,app模块包括多个页面组件,各页面组件中配置对应的路由名称,app模块的路由信息包含各个页面组件对应的路由名称;各依赖于app模块的功能模块包括多个页面组件,各页面组件中配置对应的路由名称,各依赖于app模块的功能模块的路由信息包含各个页面组件对应的路由名称。

9、一种应用程序的路由表生成装置,包括:获取模块,用于获取用户自定义的路由类集合的生成任务,路由类集合的生成任务用于在编译阶段遍历应用程序的app模块和多个依赖于app模块的功能模块,得到各个模块的路由信息,并根据各个模块的路由信息生成路由类集合;查找模块,用于从app模块的配置文件中查找mergeassets任务,mergeassets任务用于在编译阶段将应用程序的assets目录的文件打包到apk包;配置模块,用于配置路由类集合的生成任务与mergeassets任务的依赖关系,以使得在编译阶段将路由类集合打包到应用程序的apk包;生成模块,用于在应用程序的apk包被运行时,基于路由类集合生成应用程序的路由表。

10、一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一实施例方法的步骤。

11、一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例方法的步骤。

12、上述一种应用程序的路由表生成方法、装置、计算机设备和存储介质,获取用户自定义的路由类集合的生成任务,路由类集合的生成任务用于在编译阶段遍历应用程序的app模块和多个依赖于app模块的功能模块,得到各个模块的路由信息,并根据各个模块的路由信息生成路由类集合;从app模块的配置文件中查找mergeassets任务,mergeassets任务用于在编译阶段将应用程序的assets目录的文件打包到apk包;配置路由类集合的生成任务与mergeassets任务的依赖关系,以使得在编译阶段将路由类集合打包到应用程序的apk包;在应用程序的apk包被运行时,基于路由类集合生成应用程序的路由表。

13、综上,在应用程序的开发阶段,用户可以自定义路由类集合的生成任务,通过路由类集合的生成任务在编译阶段遍历应用程序的app模块和多个依赖于app模块的功能模块,得到各个模块的路由信息并根据各个模块的路由信息生成路由类集合,再使mergeassets任务的依赖于路由类集合的生成任务。在编译阶段,由应用程序的app模块触发构建任务,mergeassets任务将assets目录中的文件打到apk包时,由于mergeassets任务依赖于路由类集合的生成任务,由此执行路由类集合的生成任务得到的路由类集合在assets目录中,因此在编译阶段将路由类集合打包到应用程序的apk包,在应用程序的apk包被运行时基于路由类集合生成应用程序的路由表。由此,无需扫描dex文件,根据预置的路由类集合完成路由表的初始化。编译耗时短,路由表初始化快,并且接入成本比较低。

本文地址:https://www.jishuxx.com/zhuanli/20240929/310440.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。