实现要求:添加系统api到sdk,公开给未签名app使用
1.将代码添加到 frameworks/base/core/java 目录下,创建自己的包名,这个路径下可以自动识别,更新到current.txt,不用改编译规则
比如:frameworks/base/core/java/qcd/app/Test.java
(注意,包名不要以com开头,不要问为什么)
2.设置基线检查,忽略自定义包名
修改: frameworks\base\StubLibraries.bp
packages_to document{
"qcd.app",//包名
修改: frameworks\base\Android.bp
metalava_framework_docs_args =
"--api-lint-ignore-prefix qcd.app.
3.如果要暴露系统hide接口给app,则需要自定义类继承原始类,复写UnsupportedAppUsage方法
- 单编java_library提供给app参与编译
java_library {
name: "qcds-app-sdk",
platform_apis: true,
sdk_version: "",
installable: true,
srcs: [
"qcd/app/*.java",
],
}
使用platform_apis为true 时,sdk_version 必须为空
这样app会运用系统API进行编译而不是SDK,使得App能访问到非SDK API