Android Studio使用自定义framework.jar

开发中,有时需要用到非公开的API,在以前,一般是通过反射去调用隐藏的API,但是这样就会存在性能隐患。这里介绍如何将 framework.jar 导入到 Android Studio 中,以去掉反射

1. 准备 framewrok.jar

因为我是做系统应用开发,经常需要编译整个系统源码,所以 framework.jar 可以直接得到。路径:
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar

改名得到 framework.jar

2. 把 framework.jar 放到项目中

把 framework.jar 放到 app 模块的 libs 目录下

3. 添加 app 模块对 framework.jar 的依赖

依次打开 File –> Project Structure –> Modules 中找到 app ,在右边选择 Dependencies 选项卡,点击左下角的 + 按钮,选择 File dependency ,在弹出的 Select Path 窗口中选择 libs 中的 framework.jar

4. 修改 Scope 为 Provided

在新增的 Dependencies 记录的右边,将 Compile 修改为 Provided ,点击 OK 保存修改,Provided 的作用是只参与编译,但不打包到apk中

5. 修改项目根目录的 build.gradle 文件

在项目根 build.gradle 中加入以下内容

allprojects {
    repositories {
        jcenter()
    }
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << '-Xbootclasspath/p:app/libs/framework.jar'
        }
    }
}

6. 编写代码

按照以上5步修改完成后,就可以写代码了,需要注意的是,隐藏的API依然关联不到,显示红色的,但是可以顺利编译通过。

最后

解释一下代码的作用 allprojects 是要作用到所有的子模块上,tasks.withType(JavaCompile) 是在 javac 的 task 中加入一个参数,就是在 Xbootclasspath 增加自己的 jar 包

更多文章请关注公众号



作者:菜刀文
链接:http://www.jianshu.com/p/a25a85b6372d
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转载于:https://my.oschina.net/u/2542649/blog/1531410

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值