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可编译通过(尽管仍然显示为红色)。