车载系统应用开发集成系统API

背景

车载开发中,我们为了快速迭代,降低开发成本,往往都会把一些系统应用,剥离出来,做成普通的应用进行开发,这样做,环境配置更简单,编译效率更高,学习成本更低,开发和调试的速度也大大提高。但是我们在开发过程不可避免需要用到某些系统的某些API,如果所有的方法都用反射的话,会大大降低开发的效率。那么我们就需要集成一些系统编译的空方法和类。但是加载这个jar包,会有很多问题。

问题

隐藏的API和systemAPI 会爆红,编译也会失败,无法引用到jar里面的内容

通用解决方法

需要在指定模块gradle中 增加如下代码,把这个jar导入到编译链中。

groovy 复制代码
allprojects {
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile).tap {
            configureEach {


                List<File> newFileList = new ArrayList<>();
                //相对位置,根据存放的位置修改路径
                newFileList.add(new File("./libs/framework.jar"))


                if (options.bootstrapClasspath != null && options.bootstrapClasspath.getFiles() != null) {
                    Set<File> fileSet = options.bootstrapClasspath.getFiles()
                    newFileList.addAll(fileSet)
                }

                options.bootstrapClasspath = files(newFileList.toArray())
            }
        }
    }
}

其他问题

但是在使用更高级别的工程上的时候,我们使用了更高级别的jdk的时候,这样使用就不生效,怎么都编译不过。

解决办法

这种集成framework.jar的方式,只针对 jdk8 有效,所以必须强制指定这个module 为jdk 8。并且和其他的代码隔离。才能使用,并且吧lint编译关闭,不关注报错,才行。

groovy 复制代码
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
    lintOptions {
        abortOnError false
        absolutePaths false
    }

总结

  • 需要先把jar加载到工程中
  • 然后再设置 模块的jdk
相关推荐
私人珍藏库28 分钟前
[Android] PeakFinder AR v4.8.89 (山峰全景识别+增强现实山峰查看器)
android·人工智能·智能手机·ar·工具·软件
researcher-Jiang1 小时前
高性能计算之OpenMP——超算习堂学习1
android·java·学习
alexhilton2 小时前
Kotlin DSL深度解析:从Gradle脚本到构建你自己的DSL
android·kotlin·android jetpack
烽火聊员2 小时前
查看Android Studio错误日志
android·ide·android studio
星空语7 小时前
音频001_Android+Linux车载/手机音频全链路分层架构图
android·linux·音视频
CyL_Cly8 小时前
解决官网下载慢!Android Studio 最新版网盘下载
android·ide·android studio
智塑未来8 小时前
鸿蒙系统对比安卓、iOS,核心优势是什么?
android·ios·harmonyos
AI刀刀8 小时前
豆包智能体对话导出后,如何构建长期归档与高效检索体系?
android·人工智能·word·excel·ai导出鸭
初雪云10 小时前
iOS 上架入门:证书、描述文件、IPA 上传到底是什么关系?
android·ios·自动化·产品经理·iphone
玩机达人8812 小时前
一加12/Ace5/Ace3pro手机ColorOS16降级回锁BL熔断变黑砖怎么办
android·智能手机·电脑