引言
场景
:做系统开发或者想使用隐藏的api时,通常只能使用反射的方式,
缺点
:需要使用的api或变量太多时不方便使用。
解决办法
:将需要在编译时使用的jar包参与编译,不编译到产品apk里,使app运行时调用的是系统api
步骤(每一步都必须正确)
1、将jar包放入libs目录,如下图(jar包自行编译或到github下载
https://github.com/anggrayudi/android-hidden-api
)
2、在app 的build.gradle加入参与编译的jar
dependencies {
compileOnly files('libs/framework.jar')
}
3、调整 .iml里配置的引用库的优先级。
作用是使待使用的jar包优先于android.jar.
在app 的build.gradle加入以下代码,注意App.iml的路径
preBuild {
doLast {
//***需要使用你项目中的App.iml的路径 (不同的项目结构路径不一样,请在自己的项目中找,路径不对就会达不到效果)***
def imlFile = file("../.idea/modules/App/App.iml")
println
版权声明:本文为forget_zhx原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。