环境:
rk3399 +android7.1.2源码
使用背景:
在开发应用过程中想要使用系统@hide的函数。
步骤如下:
1、先编译android7.1.2源码,编译完成之后会以下目录生成classes.jar
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar
2、为了和应用中使用到的libs区别,可以创建一个syslib目录,然后将classess.jar 放到syslibs目录,因为我将classes.jar改了framework.jar.结构如下:
3、app下的build.gradle中使用此jar包,此时主要使用的是compileOnly,表示只在编译时使用。
compileOnly files('syslibs/framework.jar')
需要了解的知识:
compileOnly : 只在编译时有效,不会参与打包
implementation:
只能在内部使用此模块,比如我在一个libiary中使用implementation依赖了okhttp库,然后我的主项目依赖了libiary,那么,我的主项目就无法访问gson库中的方法。这样的好处是编译速度会加快,推荐使用implementation的方式去依赖
4、然后就可以在项目中调用系统的类和函数了。在项目中可能会提示异常,但是不影响apk正常运行。
祝君成功!