Android Studio 优先源码编译的framework.jar(使用系统隐藏的api)

  • Post author:
  • Post category:其他



引言



场景

:做系统开发或者想使用隐藏的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 版权协议,转载请附上原文出处链接和本声明。