背景
当我们需要开发一款系统级APP如Launcher、SystemUI时, 大概率需要用到framework中@hide修饰的隐藏api。 一般系统工程师会直接vi打开文件, 一个字母一个字母的把api敲上去, 而对于习惯了用Android studio的工程师,如果隐藏api能和普通api一样有自动补全和错误检查功能,会大概率提高生产效率。 下面就讲到如何实现隐藏api如何自动补全。
配置步骤
1. 拷贝classes.jar
classes.jar在android系统源码编译输出目录:out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/中, 该文件还没有对@hide修饰的api进行隐藏操作,所以android studio中引用该文件可实现自动补全功能, 进入app源码目录,执行以下操作把classes.jar拷贝到libs目录下:
cp out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar app/libs/framework.jar
2. 配置gradle文件
打开Module的build.gradle文件, 加入以下配置:
dependencies {
# start 新加代码
compileOnly files('libs/framework.jar') // system api
# end 新加代码
implementation fileTree(dir: 'libs', include: [&#