android 11添加系统api供app使用

实现要求:添加系统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方法

  1. 单编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

相关推荐
baidu_2474386133 分钟前
Android ViewModel定时任务
android·开发语言·javascript
有位神秘人1 小时前
Android中Notification的使用详解
android·java·javascript
·云扬·1 小时前
MySQL Binlog落盘机制深度解析:性能与安全性的平衡艺术
android·mysql·adb
独自破碎E2 小时前
【BISHI9】田忌赛马
android·java·开发语言
代码s贝多芬的音符4 小时前
android 两个人脸对比 mlkit
android
darkb1rd6 小时前
五、PHP类型转换与类型安全
android·安全·php
gjxDaniel6 小时前
Kotlin编程语言入门与常见问题
android·开发语言·kotlin
csj506 小时前
安卓基础之《(22)—高级控件(4)碎片Fragment》
android
峥嵘life7 小时前
Android16 【CTS】CtsMediaCodecTestCases等一些列Media测试存在Failed项
android·linux·学习
stevenzqzq7 小时前
Compose 中的状态可变性体系
android·compose