Android studio如何使用定制的framework
目前eclipse能够设置优先编译定制系统的framework.jar中的相关方法,但是在Android studio中如何来导入定制的framework.jar呢?
详细步骤如下所示:
1. 在工程添加库
将所需要的framework.jar放到工程的libs的目录下
2. 添加app模块对framework.jar的依赖
依次打开 File –> Project Structure –> Modules 中找到 app ,在右边选择 Dependencies 选项卡,点击左下角的 + 按钮,选择 File dependency ,在弹出的 Select Path 窗口中选择 libs 中的 framework.jar
3. 修改依赖库作用优先级
在新增的 Dependencies 记录的右边,将 Compile 修改为 Provided ,点 击 OK 保存修改,Provided 的作用是只参与编译,但不打包到apk中
这时可以看到app模块build.grade文件中已经变成了想要的形式了
4. 修改project的build.grade
allprojects {
repositories {
jcenter()
}
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs.add('-Xbootclasspath/p:app\\libs\\framework.jar')
}
}
}
Xbootclasspath/p:是java编译的寻址优先设置,先找缺省路径还是全路径
5. 调用framework.jar中的相关方法
完成以上的步骤可以进行相关的代码编写,但是会存在一个问题就是无法调用到隐藏的api,如果调用到了也会提示method not find,如遇到此问题的童鞋请参照第七条
6. 修改app.iml
问题5出现的原因还是在编译的时候android.jar调用的优先级要高于自己添加的framework.jar,那么是否只需要将framework.jar的编译优先级高于android.jar就可以了呢?答案是肯定的!
这时只需要将app.iml中framework.jar的调用顺序提到调用android api之前;
7. 保存,重启studio