android studio 使用系统源码编译出来的api

1、首先当然得先编译android源码

2、从android源码的如下目录中获取class.jar (这里的class.jar包含了系统中被标注了@hide的api)

out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar

为了便于辨认,可改名为framework.jar 。

3、将framework.jar拷贝到APP的工程目录的libs目录下.

4、在gradle工程中添加这个framework.jar,并设置为provided (表示只用来编译,不打包进apk)

5、在build.gradle(可在根目录的build.gradle也可在对应module的build.gradle)中添加如下内容:

allprojects {
    repositories {
        jcenter()
    }
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << '-Xbootclasspath/p:app/libs/framework.jar'
        }
    }
}
上面的“-Xbootclasspath/p:”后面的内容为framework.jar这个文件相对于根目录的路径。

6、至此,@hide的api和自定义的api可编译通过(尽管仍然显示为红色)。


你可能感兴趣的:(Android)