Files
frameworks_base/services/Android.bp
Jiyong Park 119afc0695 SystemApi is parameterized
We have decided to reuse the existing annotation @SystemApi for all Java
APIs regardless of whether they are for apps or platform internal
modules. This was because introducing new annotation types every time
when we have to create new API surfaces will only increase the confusion
without giving much benefit.

Instead, to differenciate the different API surfaces of @SystemApi, the
annotation type is parameterized. Specifically, it has to axises.

client: specifies the intended client of the API.

process: specifies the process(es) that the API is available.

The default for client and process are priv-apps and all, respectively,
which corresponds to the today's @SystemApi for privileged apps like
GMS.

Bug: 140202860
Test: m
Change-Id: I3305b71e22970e80db95f3daf3d7713603c7d68d
2019-12-13 14:58:16 +09:00

131 lines
3.5 KiB
Plaintext

filegroup {
name: "services-main-sources",
srcs: ["java/**/*.java"],
path: "java",
visibility: ["//visibility:private"],
}
filegroup {
name: "services-sources",
srcs: [
":services.core-sources",
":services.accessibility-sources",
":services.appprediction-sources",
":services.appwidget-sources",
":services.autofill-sources",
":services.backup-sources",
":backuplib-sources",
":services.companion-sources",
":services.contentcapture-sources",
":services.contentsuggestions-sources",
":services.coverage-sources",
":services.devicepolicy-sources",
":services.midi-sources",
":services.net-sources",
":services.print-sources",
":services.restrictions-sources",
":services.startop.iorap-sources",
":services.systemcaptions-sources",
":services.usage-sources",
":services.usb-sources",
":services.voiceinteraction-sources",
],
visibility: ["//visibility:private"],
}
// merge all required services into one jar
// ============================================================
java_library {
name: "services",
installable: true,
dex_preopt: {
app_image: true,
profile: "art-profile",
},
srcs: [":services-main-sources"],
// The convention is to name each service module 'services.$(module_name)'
static_libs: [
"services.core",
"services.accessibility",
"services.appprediction",
"services.appwidget",
"services.autofill",
"services.backup",
"services.companion",
"services.contentcapture",
"services.contentsuggestions",
"services.coverage",
"services.devicepolicy",
"services.midi",
"services.net",
"services.print",
"services.restrictions",
"services.startop",
"services.systemcaptions",
"services.usage",
"services.usb",
"services.voiceinteraction",
"android.hidl.base-V1.0-java",
],
libs: [
"android.hidl.manager-V1.0-java",
],
plugins: [
"compat-changeid-annotation-processor",
],
// Uncomment to enable output of certain warnings (deprecated, unchecked)
//javacflags: ["-Xlint"],
}
// native library
// =============================================================
cc_library_shared {
name: "libandroid_servers",
defaults: ["libservices.core-libs"],
whole_static_libs: ["libservices.core"],
}
platform_compat_config {
name: "services-platform-compat-config",
src: ":services",
}
filegroup {
name: "art-profile",
srcs: ["art-profile"],
}
// API stub
// =============================================================
droidstubs {
name: "services-stubs.sources",
srcs: [":services-sources"],
installable: false,
// TODO: remove the --hide options below
args: " --show-single-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.INTERNAL,process=android.annotation.SystemApi.Process.SYSTEM_SERVER\\)" +
" --hide-annotation android.annotation.Hide" +
" --hide-package com.google.android.startop.iorap" +
" --hide ReferencesHidden" +
" --hide DeprecationMismatch" +
" --hide HiddenTypedefConstant",
libs: [
"framework-all",
],
visibility: ["//visibility:private"],
}
java_library {
name: "services-stubs",
srcs: [":services-stubs.sources"],
installable: false,
}