From 05c9e5c24a860d8d4a9b0f00ba1b6fbef0dd1b1d Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Fri, 26 Oct 2018 22:34:06 -0700 Subject: [PATCH] Convert statsd and incidentd to Android.bp See build/soong/README.md for more information. Test: m checkbuild Merged-In: I8c80878cec46c9299234c6f4c1e0e19efc0a221e Change-Id: I8c80878cec46c9299234c6f4c1e0e19efc0a221e --- Android.bp | 24 +- cmds/incident/Android.bp | 46 ++++ cmds/incident/Android.mk | 48 ---- cmds/incidentd/Android.bp | 117 ++++++++++ cmds/incidentd/Android.mk | 156 ------------- cmds/statsd/Android.bp | 257 ++++++++++++++++++++- cmds/statsd/Android.mk | 306 -------------------------- cmds/statsd/tools/Android.mk | 20 -- cmds/statsd/tools/dogfood/Android.bp | 37 ++++ cmds/statsd/tools/dogfood/Android.mk | 33 --- cmds/statsd/tools/loadtest/Android.bp | 37 ++++ cmds/statsd/tools/loadtest/Android.mk | 33 --- libs/incident/Android.bp | 50 +++++ libs/incident/Android.mk | 43 ---- 14 files changed, 563 insertions(+), 644 deletions(-) create mode 100644 cmds/incident/Android.bp delete mode 100644 cmds/incident/Android.mk create mode 100644 cmds/incidentd/Android.bp delete mode 100644 cmds/incidentd/Android.mk delete mode 100644 cmds/statsd/Android.mk delete mode 100644 cmds/statsd/tools/Android.mk create mode 100644 cmds/statsd/tools/dogfood/Android.bp delete mode 100644 cmds/statsd/tools/dogfood/Android.mk create mode 100644 cmds/statsd/tools/loadtest/Android.bp delete mode 100644 cmds/statsd/tools/loadtest/Android.mk create mode 100644 libs/incident/Android.bp delete mode 100644 libs/incident/Android.mk diff --git a/Android.bp b/Android.bp index 867816160e253..433979b0673e7 100644 --- a/Android.bp +++ b/Android.bp @@ -223,8 +223,7 @@ java_defaults { "core/java/android/os/IDeviceIdentifiersPolicyService.aidl", "core/java/android/os/IDeviceIdleController.aidl", "core/java/android/os/IHardwarePropertiesManager.aidl", - "core/java/android/os/IIncidentManager.aidl", - "core/java/android/os/IIncidentReportStatusListener.aidl", + ":libincident_aidl", "core/java/android/os/IMaintenanceActivityListener.aidl", "core/java/android/os/IMessenger.aidl", "core/java/android/os/INetworkActivityListener.aidl", @@ -237,8 +236,7 @@ java_defaults { "core/java/android/os/IRecoverySystemProgressListener.aidl", "core/java/android/os/IRemoteCallback.aidl", "core/java/android/os/ISchedulingPolicyService.aidl", - "core/java/android/os/IStatsCompanionService.aidl", - "core/java/android/os/IStatsManager.aidl", + ":statsd_aidl", "core/java/android/os/ISystemUpdateManager.aidl", "core/java/android/os/IThermalEventListener.aidl", "core/java/android/os/IThermalService.aidl", @@ -707,6 +705,22 @@ java_defaults { } +filegroup { + name: "libincident_aidl", + srcs: [ + "core/java/android/os/IIncidentManager.aidl", + "core/java/android/os/IIncidentReportStatusListener.aidl", + ], +} + +filegroup { + name: "statsd_aidl", + srcs: [ + "core/java/android/os/IStatsCompanionService.aidl", + "core/java/android/os/IStatsManager.aidl", + ], +} + java_library { name: "framework", defaults: ["framework-defaults"], @@ -913,12 +927,14 @@ gensrcs { "core/proto/android/os/batterytype.proto", "core/proto/android/os/cpufreq.proto", "core/proto/android/os/cpuinfo.proto", + "core/proto/android/os/data.proto", "core/proto/android/os/kernelwake.proto", "core/proto/android/os/pagetypeinfo.proto", "core/proto/android/os/procrank.proto", "core/proto/android/os/ps.proto", "core/proto/android/os/system_properties.proto", "core/proto/android/util/event_log_tags.proto", + "core/proto/android/util/log.proto", ], // Append protoc-gen-cppstream tool's PATH otherwise aprotoc can't find the plugin tool diff --git a/cmds/incident/Android.bp b/cmds/incident/Android.bp new file mode 100644 index 0000000000000..2a5ec5bfacafc --- /dev/null +++ b/cmds/incident/Android.bp @@ -0,0 +1,46 @@ +// Copyright (C) 2016 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +cc_binary { + name: "incident", + + srcs: [ + "main.cpp", + ":incident_sections", + ], + + shared_libs: [ + "libbase", + "libbinder", + "libcutils", + "liblog", + "libutils", + "libincident", + ], + + cflags: [ + "-Wall", + "-Werror", + "-Wno-missing-field-initializers", + "-Wno-unused-variable", + "-Wunused-parameter", + ], +} + +genrule { + name: "incident_sections", + tools: ["incident-section-gen"], + out: ["incident_sections.cpp"], + cmd: "$(location incident-section-gen) incident > $(out)", +} diff --git a/cmds/incident/Android.mk b/cmds/incident/Android.mk deleted file mode 100644 index 8615f9b63e439..0000000000000 --- a/cmds/incident/Android.mk +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (C) 2016 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := \ - main.cpp - -LOCAL_MODULE := incident - -LOCAL_SHARED_LIBRARIES := \ - libbase \ - libbinder \ - libcutils \ - liblog \ - libutils \ - libincident - -LOCAL_CFLAGS += \ - -Wall -Werror -Wno-missing-field-initializers -Wno-unused-variable -Wunused-parameter - -LOCAL_MODULE_CLASS := EXECUTABLES -gen_src_dir := $(local-generated-sources-dir) - -gen := $(gen_src_dir)/incident_sections.cpp -$(gen): $(HOST_OUT_EXECUTABLES)/incident-section-gen -$(gen): PRIVATE_CUSTOM_TOOL = \ - $(HOST_OUT_EXECUTABLES)/incident-section-gen incident > $@ -$(gen): $(HOST_OUT_EXECUTABLES)/incident-section-gen - $(transform-generated-source) -LOCAL_GENERATED_SOURCES += $(gen) - -gen_src_dir:= -gen:= - -include $(BUILD_EXECUTABLE) diff --git a/cmds/incidentd/Android.bp b/cmds/incidentd/Android.bp new file mode 100644 index 0000000000000..1e970f46b01d2 --- /dev/null +++ b/cmds/incidentd/Android.bp @@ -0,0 +1,117 @@ +// Copyright (C) 2016 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// ========= +// incidentd +// ========= + +cc_binary { + name: "incidentd", + + srcs: [ + "src/**/*.cpp", + ":incidentd_section_list", + ], + + cflags: [ + "-Wall", + "-Werror", + "-Wno-missing-field-initializers", + "-Wno-unused-variable", + "-Wunused-parameter", + + // Allow implicit fallthrough in IncidentService.cpp:85 until it is fixed. + "-Wno-error=implicit-fallthrough", + + // optimize for size (protobuf glop can get big) + "-Os", + //"-g", + //"-O0", + ], + + local_include_dirs: ["src"], + generated_headers: ["gen-platform-proto-constants"], + + shared_libs: [ + "libbase", + "libbinder", + "libdebuggerd_client", + "libdumputils", + "libincident", + "liblog", + "libprotoutil", + "libservices", + "libutils", + ], + + init_rc: ["incidentd.rc"], +} + +// ============== +// incidentd_test +// ============== + +cc_test { + name: "incidentd_test", + test_suites: ["device-tests"], + + cflags: [ + "-Werror", + "-Wall", + "-Wno-unused-variable", + "-Wunused-parameter", + + // Allow implicit fallthrough in IncidentService.cpp:85 until it is fixed. + "-Wno-error=implicit-fallthrough", + ], + + local_include_dirs: ["src"], + generated_headers: ["gen-platform-proto-constants"], + + srcs: [ + "tests/**/*.cpp", + "src/PrivacyBuffer.cpp", + "src/FdBuffer.cpp", + "src/Privacy.cpp", + "src/Reporter.cpp", + "src/Section.cpp", + "src/Throttler.cpp", + "src/incidentd_util.cpp", + "src/report_directory.cpp", + ], + + data: ["testdata/**/*"], + + static_libs: ["libgmock"], + + shared_libs: [ + "libbase", + "libbinder", + "libdebuggerd_client", + "libdumputils", + "libincident", + "liblog", + "libprotobuf-cpp-lite", + "libprotoutil", + "libservices", + "libutils", + ], +} + +genrule { + name: "incidentd_section_list", + tools: ["incident-section-gen"], + out: ["section_list.cpp"], + cmd: "$(location incident-section-gen) incidentd > $(out)", +} diff --git a/cmds/incidentd/Android.mk b/cmds/incidentd/Android.mk deleted file mode 100644 index eba558653b041..0000000000000 --- a/cmds/incidentd/Android.mk +++ /dev/null @@ -1,156 +0,0 @@ -# Copyright (C) 2016 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -LOCAL_PATH:= $(call my-dir) - -# proto files used in incidentd to generate cppstream proto headers. -PROTO_FILES:= \ - frameworks/base/core/proto/android/os/backtrace.proto \ - frameworks/base/core/proto/android/os/data.proto \ - frameworks/base/core/proto/android/util/log.proto - -# ========= # -# incidentd # -# ========= # - -include $(CLEAR_VARS) - -LOCAL_MODULE := incidentd - -LOCAL_SRC_FILES := $(call all-cpp-files-under, src) \ - -LOCAL_CFLAGS += \ - -Wall -Werror -Wno-missing-field-initializers -Wno-unused-variable -Wunused-parameter - -# Allow implicit fallthrough in IncidentService.cpp:85 until it is fixed. -LOCAL_CFLAGS += -Wno-error=implicit-fallthrough - -ifeq (debug,) - LOCAL_CFLAGS += \ - -g -O0 -else - # optimize for size (protobuf glop can get big) - LOCAL_CFLAGS += \ - -Os -endif -LOCAL_C_INCLUDES += $(LOCAL_PATH)/src - -LOCAL_SHARED_LIBRARIES := \ - libbase \ - libbinder \ - libdebuggerd_client \ - libdumputils \ - libincident \ - liblog \ - libprotoutil \ - libservices \ - libutils - -LOCAL_MODULE_CLASS := EXECUTABLES - -gen_src_dir := $(local-generated-sources-dir) - -# generate section_list.cpp -GEN_LIST := $(gen_src_dir)/src/section_list.cpp -$(GEN_LIST): $(HOST_OUT_EXECUTABLES)/incident-section-gen -$(GEN_LIST): PRIVATE_CUSTOM_TOOL = \ - $(HOST_OUT_EXECUTABLES)/incident-section-gen incidentd > $@ -$(GEN_LIST): $(HOST_OUT_EXECUTABLES)/incident-section-gen - $(transform-generated-source) -LOCAL_GENERATED_SOURCES += $(GEN_LIST) -GEN_LIST:= - -# generate cppstream proto, add proto files to PROTO_FILES -GEN_PROTO := $(gen_src_dir)/proto.timestamp -$(GEN_PROTO): $(HOST_OUT_EXECUTABLES)/aprotoc $(HOST_OUT_EXECUTABLES)/protoc-gen-cppstream $(PROTO_FILES) -$(GEN_PROTO): PRIVATE_GEN_SRC_DIR := $(gen_src_dir) -$(GEN_PROTO): PRIVATE_CUSTOM_TOOL = \ - $(HOST_OUT_EXECUTABLES)/aprotoc --plugin=protoc-gen-cppstream=$(HOST_OUT_EXECUTABLES)/protoc-gen-cppstream \ - --cppstream_out=$(PRIVATE_GEN_SRC_DIR) -Iexternal/protobuf/src -I . \ - $(PROTO_FILES) \ - && touch $@ -$(GEN_PROTO): $(HOST_OUT_EXECUTABLES)/aprotoc - $(transform-generated-source) -LOCAL_GENERATED_SOURCES += $(GEN_PROTO) -GEN_PROTO:= - -gen_src_dir:= - -LOCAL_INIT_RC := incidentd.rc - -include $(BUILD_EXECUTABLE) - -# ============== # -# incidentd_test # -# ============== # - -include $(CLEAR_VARS) - -LOCAL_MODULE := incidentd_test -LOCAL_COMPATIBILITY_SUITE := device-tests -LOCAL_MODULE_TAGS := tests - -LOCAL_CFLAGS := -Werror -Wall -Wno-unused-variable -Wunused-parameter - -# Allow implicit fallthrough in IncidentService.cpp:85 until it is fixed. -LOCAL_CFLAGS += -Wno-error=implicit-fallthrough - -LOCAL_C_INCLUDES += $(LOCAL_PATH)/src - -LOCAL_SRC_FILES := $(call all-cpp-files-under, tests) \ - src/PrivacyBuffer.cpp \ - src/FdBuffer.cpp \ - src/Privacy.cpp \ - src/Reporter.cpp \ - src/Section.cpp \ - src/Throttler.cpp \ - src/incidentd_util.cpp \ - src/report_directory.cpp \ - -LOCAL_STATIC_LIBRARIES := \ - libgmock \ - -LOCAL_SHARED_LIBRARIES := \ - libbase \ - libbinder \ - libdebuggerd_client \ - libdumputils \ - libincident \ - liblog \ - libprotobuf-cpp-lite \ - libprotoutil \ - libservices \ - libutils \ - -LOCAL_TEST_DATA := $(call find-test-data-in-subdirs, $(LOCAL_PATH), *, testdata) - -LOCAL_MODULE_CLASS := NATIVE_TESTS -gen_src_dir := $(local-generated-sources-dir) -# generate cppstream proto for testing -GEN_PROTO := $(gen_src_dir)/test.proto.timestamp -$(GEN_PROTO): $(HOST_OUT_EXECUTABLES)/aprotoc $(HOST_OUT_EXECUTABLES)/protoc-gen-cppstream $(PROTO_FILES) -$(GEN_PROTO): PRIVATE_GEN_SRC_DIR := $(gen_src_dir) -$(GEN_PROTO): PRIVATE_CUSTOM_TOOL = \ - $(HOST_OUT_EXECUTABLES)/aprotoc --plugin=protoc-gen-cppstream=$(HOST_OUT_EXECUTABLES)/protoc-gen-cppstream \ - --cppstream_out=$(PRIVATE_GEN_SRC_DIR) -Iexternal/protobuf/src -I . \ - $(PROTO_FILES) \ - && touch $@ -$(GEN_PROTO): $(HOST_OUT_EXECUTABLES)/aprotoc - $(transform-generated-source) -LOCAL_GENERATED_SOURCES += $(GEN_PROTO) -GEN_PROTO:= - -gen_src_dir:= - -include $(BUILD_NATIVE_TEST) diff --git a/cmds/statsd/Android.bp b/cmds/statsd/Android.bp index f1bf10cfa7674..5c3d17e305859 100644 --- a/cmds/statsd/Android.bp +++ b/cmds/statsd/Android.bp @@ -1,5 +1,5 @@ // -// Copyright (C) 2015 The Android Open Source Project +// Copyright (C) 2017 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -42,6 +42,261 @@ cc_library_host_shared { } +cc_defaults { + name: "statsd_defaults", + aidl: { + include_dirs: ["frameworks/base/core/java"], + }, + + srcs: [ + ":statsd_aidl", + "src/statsd_config.proto", + "src/FieldValue.cpp", + "src/hash.cpp", + "src/stats_log_util.cpp", + "src/anomaly/AlarmMonitor.cpp", + "src/anomaly/AlarmTracker.cpp", + "src/anomaly/AnomalyTracker.cpp", + "src/anomaly/DurationAnomalyTracker.cpp", + "src/anomaly/subscriber_util.cpp", + "src/condition/CombinationConditionTracker.cpp", + "src/condition/condition_util.cpp", + "src/condition/SimpleConditionTracker.cpp", + "src/condition/ConditionWizard.cpp", + "src/condition/StateTracker.cpp", + "src/config/ConfigKey.cpp", + "src/config/ConfigListener.cpp", + "src/config/ConfigManager.cpp", + "src/external/Perfetto.cpp", + "src/external/StatsPuller.cpp", + "src/external/StatsCompanionServicePuller.cpp", + "src/external/SubsystemSleepStatePuller.cpp", + "src/external/ResourceHealthManagerPuller.cpp", + "src/external/ResourceThermalManagerPuller.cpp", + "src/external/StatsPullerManagerImpl.cpp", + "src/external/puller_util.cpp", + "src/logd/LogEvent.cpp", + "src/logd/LogListener.cpp", + "src/logd/LogReader.cpp", + "src/matchers/CombinationLogMatchingTracker.cpp", + "src/matchers/matcher_util.cpp", + "src/matchers/SimpleLogMatchingTracker.cpp", + "src/metrics/MetricProducer.cpp", + "src/metrics/EventMetricProducer.cpp", + "src/metrics/CountMetricProducer.cpp", + "src/metrics/DurationMetricProducer.cpp", + "src/metrics/duration_helper/OringDurationTracker.cpp", + "src/metrics/duration_helper/MaxDurationTracker.cpp", + "src/metrics/ValueMetricProducer.cpp", + "src/metrics/GaugeMetricProducer.cpp", + "src/metrics/MetricsManager.cpp", + "src/metrics/metrics_manager_util.cpp", + "src/packages/UidMap.cpp", + "src/perfetto/perfetto_config.proto", + "src/storage/StorageManager.cpp", + "src/StatsLogProcessor.cpp", + "src/StatsService.cpp", + "src/statscompanion_util.cpp", + "src/subscriber/IncidentdReporter.cpp", + "src/subscriber/SubscriberReporter.cpp", + "src/HashableDimensionKey.cpp", + "src/guardrail/StatsdStats.cpp", + "src/socket/StatsSocketListener.cpp", + ], + + local_include_dirs: [ + "src", + ], + + static_libs: [ + "libhealthhalutils", + "libplatformprotos", + ], + + shared_libs: [ + "libbase", + "libbinder", + "libincident", + "liblog", + "libutils", + "libservices", + "libprotoutil", + "libstatslog", + "libhardware", + "libhardware_legacy", + "libhidlbase", + "libhidltransport", + "libhwbinder", + "android.hardware.health@2.0", + "android.hardware.power@1.0", + "android.hardware.power@1.1", + "android.hardware.thermal@1.0", + "libpackagelistparser", + "libsysutils", + "libcutils", + ], +} + +// ========= +// statsd +// ========= + +cc_binary { + name: "statsd", + defaults: ["statsd_defaults"], + + srcs: ["src/main.cpp"], + + cflags: [ + "-Wall", + "-Wextra", + "-Werror", + "-Wno-unused-parameter", + // optimize for size (protobuf glop can get big) + "-Os", + // "-g", + // "-O0", + ], + + product_variables: { + eng: { + // Enable sanitizer and allow very verbose printing on eng builds + cflags: ["-DVERY_VERBOSE_PRINTING"], + sanitize: { + address: true, + }, + }, + }, + + proto: { + type: "lite", + }, + + shared_libs: ["libgtest_prod"], + + init_rc: ["statsd.rc"], +} + +// ============== +// statsd_test +// ============== + +cc_test { + name: "statsd_test", + defaults: ["statsd_defaults"], + test_suites: ["device-tests"], + + cflags: [ + "-Wall", + "-Werror", + "-Wno-missing-field-initializers", + "-Wno-unused-variable", + "-Wno-unused-function", + "-Wno-unused-parameter", + ], + + srcs: [ + "src/atom_field_options.proto", + "src/atoms.proto", + "src/stats_log.proto", + "tests/AlarmMonitor_test.cpp", + "tests/anomaly/AlarmTracker_test.cpp", + "tests/anomaly/AnomalyTracker_test.cpp", + "tests/ConfigManager_test.cpp", + "tests/external/puller_util_test.cpp", + "tests/indexed_priority_queue_test.cpp", + "tests/LogEntryMatcher_test.cpp", + "tests/LogReader_test.cpp", + "tests/LogEvent_test.cpp", + "tests/MetricsManager_test.cpp", + "tests/StatsLogProcessor_test.cpp", + "tests/StatsService_test.cpp", + "tests/UidMap_test.cpp", + "tests/FieldValue_test.cpp", + "tests/condition/CombinationConditionTracker_test.cpp", + "tests/condition/SimpleConditionTracker_test.cpp", + "tests/condition/StateTracker_test.cpp", + "tests/metrics/OringDurationTracker_test.cpp", + "tests/metrics/MaxDurationTracker_test.cpp", + "tests/metrics/CountMetricProducer_test.cpp", + "tests/metrics/DurationMetricProducer_test.cpp", + "tests/metrics/EventMetricProducer_test.cpp", + "tests/metrics/ValueMetricProducer_test.cpp", + "tests/metrics/GaugeMetricProducer_test.cpp", + "tests/guardrail/StatsdStats_test.cpp", + "tests/metrics/metrics_test_helper.cpp", + "tests/statsd_test_util.cpp", + "tests/e2e/WakelockDuration_e2e_test.cpp", + "tests/e2e/MetricConditionLink_e2e_test.cpp", + "tests/e2e/Alarm_e2e_test.cpp", + "tests/e2e/Attribution_e2e_test.cpp", + "tests/e2e/GaugeMetric_e2e_push_test.cpp", + "tests/e2e/GaugeMetric_e2e_pull_test.cpp", + "tests/e2e/ValueMetric_pull_e2e_test.cpp", + "tests/e2e/DimensionInCondition_e2e_combination_AND_cond_test.cpp", + "tests/e2e/DimensionInCondition_e2e_combination_OR_cond_test.cpp", + "tests/e2e/DimensionInCondition_e2e_simple_cond_test.cpp", + "tests/e2e/Anomaly_count_e2e_test.cpp", + "tests/e2e/Anomaly_duration_sum_e2e_test.cpp", + "tests/e2e/ConfigTtl_e2e_test.cpp", + "tests/e2e/PartialBucket_e2e_test.cpp", + ], + + static_libs: ["libgmock"], + + proto: { + type: "full", + include_dirs: ["external/protobuf/src"], + }, + + shared_libs: ["libprotobuf-cpp-full"], + +} + +//############################# +// statsd micro benchmark +//############################# + +cc_benchmark { + name: "statsd_benchmark", + defaults: ["statsd_defaults"], + + srcs: [ + "src/atom_field_options.proto", + "src/atoms.proto", + "src/stats_log.proto", + "benchmark/main.cpp", + "benchmark/hello_world_benchmark.cpp", + "benchmark/log_event_benchmark.cpp", + "benchmark/stats_write_benchmark.cpp", + "benchmark/filter_value_benchmark.cpp", + "benchmark/get_dimensions_for_condition_benchmark.cpp", + "benchmark/metric_util.cpp", + "benchmark/duration_metric_benchmark.cpp", + ], + + proto: { + type: "full", + include_dirs: ["external/protobuf/src"], + }, + + cflags: [ + "-Wall", + "-Werror", + "-Wno-unused-parameter", + "-Wno-unused-variable", + "-Wno-unused-function", + + // Bug: http://b/29823425 Disable -Wvarargs for Clang update to r271374 + "-Wno-varargs" + ], + + shared_libs: [ + "libgtest_prod", + "libstatslog", + "libprotobuf-cpp-full", + ], +} // ==== java proto device library (for test only) ============================== java_library { diff --git a/cmds/statsd/Android.mk b/cmds/statsd/Android.mk deleted file mode 100644 index 3dc81fa986735..0000000000000 --- a/cmds/statsd/Android.mk +++ /dev/null @@ -1,306 +0,0 @@ -# Copyright (C) 2017 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -LOCAL_PATH:= $(call my-dir) - -statsd_common_src := \ - ../../core/java/android/os/IStatsCompanionService.aidl \ - ../../core/java/android/os/IStatsManager.aidl \ - src/statsd_config.proto \ - src/FieldValue.cpp \ - src/hash.cpp \ - src/stats_log_util.cpp \ - src/anomaly/AlarmMonitor.cpp \ - src/anomaly/AlarmTracker.cpp \ - src/anomaly/AnomalyTracker.cpp \ - src/anomaly/DurationAnomalyTracker.cpp \ - src/anomaly/subscriber_util.cpp \ - src/condition/CombinationConditionTracker.cpp \ - src/condition/condition_util.cpp \ - src/condition/SimpleConditionTracker.cpp \ - src/condition/ConditionWizard.cpp \ - src/condition/StateTracker.cpp \ - src/config/ConfigKey.cpp \ - src/config/ConfigListener.cpp \ - src/config/ConfigManager.cpp \ - src/external/Perfetto.cpp \ - src/external/StatsPuller.cpp \ - src/external/StatsCompanionServicePuller.cpp \ - src/external/SubsystemSleepStatePuller.cpp \ - src/external/ResourceHealthManagerPuller.cpp \ - src/external/ResourceThermalManagerPuller.cpp \ - src/external/StatsPullerManagerImpl.cpp \ - src/external/puller_util.cpp \ - src/logd/LogEvent.cpp \ - src/logd/LogListener.cpp \ - src/logd/LogReader.cpp \ - src/matchers/CombinationLogMatchingTracker.cpp \ - src/matchers/matcher_util.cpp \ - src/matchers/SimpleLogMatchingTracker.cpp \ - src/metrics/MetricProducer.cpp \ - src/metrics/EventMetricProducer.cpp \ - src/metrics/CountMetricProducer.cpp \ - src/metrics/DurationMetricProducer.cpp \ - src/metrics/duration_helper/OringDurationTracker.cpp \ - src/metrics/duration_helper/MaxDurationTracker.cpp \ - src/metrics/ValueMetricProducer.cpp \ - src/metrics/GaugeMetricProducer.cpp \ - src/metrics/MetricsManager.cpp \ - src/metrics/metrics_manager_util.cpp \ - src/packages/UidMap.cpp \ - src/perfetto/perfetto_config.proto \ - src/storage/StorageManager.cpp \ - src/StatsLogProcessor.cpp \ - src/StatsService.cpp \ - src/statscompanion_util.cpp \ - src/subscriber/IncidentdReporter.cpp \ - src/subscriber/SubscriberReporter.cpp \ - src/HashableDimensionKey.cpp \ - src/guardrail/StatsdStats.cpp \ - src/socket/StatsSocketListener.cpp - -statsd_common_c_includes := \ - $(LOCAL_PATH)/src \ - $(LOCAL_PATH)/../../libs/services/include - -statsd_common_aidl_includes := \ - $(LOCAL_PATH)/../../core/java - -statsd_common_static_libraries := \ - libhealthhalutils \ - libplatformprotos \ - -statsd_common_shared_libraries := \ - libbase \ - libbinder \ - libincident \ - liblog \ - libutils \ - libservices \ - libprotoutil \ - libstatslog \ - libhardware \ - libhardware_legacy \ - libhidlbase \ - libhidltransport \ - libhwbinder \ - android.hardware.health@2.0 \ - android.hardware.power@1.0 \ - android.hardware.power@1.1 \ - android.hardware.thermal@1.0 \ - libpackagelistparser \ - libsysutils \ - libcutils - -# ========= -# statsd -# ========= - -include $(CLEAR_VARS) - -LOCAL_MODULE := statsd - -LOCAL_SRC_FILES := \ - $(statsd_common_src) \ - src/main.cpp - -LOCAL_CFLAGS += \ - -Wall \ - -Wextra \ - -Werror \ - -Wno-unused-parameter - -ifeq (debug,) - LOCAL_CFLAGS += \ - -g -O0 -else - # optimize for size (protobuf glop can get big) - LOCAL_CFLAGS += \ - -Os -endif -LOCAL_PROTOC_OPTIMIZE_TYPE := lite - -LOCAL_AIDL_INCLUDES := $(statsd_common_aidl_includes) -LOCAL_C_INCLUDES += $(statsd_common_c_includes) - -LOCAL_STATIC_LIBRARIES := $(statsd_common_static_libraries) - -LOCAL_SHARED_LIBRARIES := $(statsd_common_shared_libraries) \ - libgtest_prod - -LOCAL_MODULE_CLASS := EXECUTABLES - -# Enable sanitizer and allow very verbose printing on eng builds -ifeq ($(TARGET_BUILD_VARIANT),eng) - LOCAL_CLANG := true - LOCAL_SANITIZE := address - LOCAL_CFLAGS += \ - -DVERY_VERBOSE_PRINTING -endif - -LOCAL_INIT_RC := statsd.rc - -include $(BUILD_EXECUTABLE) - - -# ============== -# statsd_test -# ============== - -include $(CLEAR_VARS) - -LOCAL_MODULE := statsd_test -LOCAL_COMPATIBILITY_SUITE := device-tests -LOCAL_MODULE_TAGS := tests - -LOCAL_AIDL_INCLUDES := $(statsd_common_aidl_includes) -LOCAL_C_INCLUDES += $(statsd_common_c_includes) - -LOCAL_CFLAGS += \ - -Wall \ - -Werror \ - -Wno-missing-field-initializers \ - -Wno-unused-variable \ - -Wno-unused-function \ - -Wno-unused-parameter - -LOCAL_SRC_FILES := \ - $(statsd_common_src) \ - src/atom_field_options.proto \ - src/atoms.proto \ - src/stats_log.proto \ - tests/AlarmMonitor_test.cpp \ - tests/anomaly/AlarmTracker_test.cpp \ - tests/anomaly/AnomalyTracker_test.cpp \ - tests/ConfigManager_test.cpp \ - tests/external/puller_util_test.cpp \ - tests/indexed_priority_queue_test.cpp \ - tests/LogEntryMatcher_test.cpp \ - tests/LogReader_test.cpp \ - tests/LogEvent_test.cpp \ - tests/MetricsManager_test.cpp \ - tests/StatsLogProcessor_test.cpp \ - tests/StatsService_test.cpp \ - tests/UidMap_test.cpp \ - tests/FieldValue_test.cpp \ - tests/condition/CombinationConditionTracker_test.cpp \ - tests/condition/SimpleConditionTracker_test.cpp \ - tests/condition/StateTracker_test.cpp \ - tests/metrics/OringDurationTracker_test.cpp \ - tests/metrics/MaxDurationTracker_test.cpp \ - tests/metrics/CountMetricProducer_test.cpp \ - tests/metrics/DurationMetricProducer_test.cpp \ - tests/metrics/EventMetricProducer_test.cpp \ - tests/metrics/ValueMetricProducer_test.cpp \ - tests/metrics/GaugeMetricProducer_test.cpp \ - tests/guardrail/StatsdStats_test.cpp \ - tests/metrics/metrics_test_helper.cpp \ - tests/statsd_test_util.cpp \ - tests/e2e/WakelockDuration_e2e_test.cpp \ - tests/e2e/MetricConditionLink_e2e_test.cpp \ - tests/e2e/Alarm_e2e_test.cpp \ - tests/e2e/Attribution_e2e_test.cpp \ - tests/e2e/GaugeMetric_e2e_push_test.cpp \ - tests/e2e/GaugeMetric_e2e_pull_test.cpp \ - tests/e2e/ValueMetric_pull_e2e_test.cpp \ - tests/e2e/DimensionInCondition_e2e_combination_AND_cond_test.cpp \ - tests/e2e/DimensionInCondition_e2e_combination_OR_cond_test.cpp \ - tests/e2e/DimensionInCondition_e2e_simple_cond_test.cpp \ - tests/e2e/Anomaly_count_e2e_test.cpp \ - tests/e2e/Anomaly_duration_sum_e2e_test.cpp \ - tests/e2e/ConfigTtl_e2e_test.cpp \ - tests/e2e/PartialBucket_e2e_test.cpp - -LOCAL_STATIC_LIBRARIES := \ - $(statsd_common_static_libraries) \ - libgmock - -LOCAL_PROTOC_OPTIMIZE_TYPE := full - -LOCAL_PROTOC_FLAGS := \ - -Iexternal/protobuf/src - -LOCAL_SHARED_LIBRARIES := $(statsd_common_shared_libraries) \ - libprotobuf-cpp-full - -include $(BUILD_NATIVE_TEST) - -############################## -# statsd micro benchmark -############################## - -include $(CLEAR_VARS) -LOCAL_MODULE := statsd_benchmark - -LOCAL_SRC_FILES := $(statsd_common_src) \ - src/atom_field_options.proto \ - src/atoms.proto \ - src/stats_log.proto \ - benchmark/main.cpp \ - benchmark/hello_world_benchmark.cpp \ - benchmark/log_event_benchmark.cpp \ - benchmark/stats_write_benchmark.cpp \ - benchmark/filter_value_benchmark.cpp \ - benchmark/get_dimensions_for_condition_benchmark.cpp \ - benchmark/metric_util.cpp \ - benchmark/duration_metric_benchmark.cpp - -LOCAL_STATIC_LIBRARIES := \ - $(statsd_common_static_libraries) - -LOCAL_PROTOC_OPTIMIZE_TYPE := full - -LOCAL_PROTOC_FLAGS := \ - -Iexternal/protobuf/src - -LOCAL_SHARED_LIBRARIES := $(statsd_common_shared_libraries) \ - libprotobuf-cpp-full - - -LOCAL_STATIC_JAVA_LIBRARIES := \ - platformprotoslite - -LOCAL_C_INCLUDES := $(statsd_common_c_includes) - -LOCAL_CFLAGS := -Wall \ - -Werror \ - -Wno-unused-parameter \ - -Wno-unused-variable \ - -Wno-unused-function \ - -# Bug: http://b/29823425 Disable -Wvarargs for Clang update to r271374 -LOCAL_CFLAGS += -Wno-varargs - -LOCAL_AIDL_INCLUDES := $(statsd_common_aidl_includes) - -LOCAL_STATIC_LIBRARIES := \ - $(statsd_common_static_libraries) - -LOCAL_SHARED_LIBRARIES := $(statsd_common_shared_libraries) \ - libgtest_prod \ - libstatslog - -LOCAL_MODULE_TAGS := eng tests - -include $(BUILD_NATIVE_BENCHMARK) - - -statsd_common_src:= -statsd_common_aidl_includes:= -statsd_common_c_includes:= -statsd_common_static_libraries:= -statsd_common_shared_libraries:= - - -include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/cmds/statsd/tools/Android.mk b/cmds/statsd/tools/Android.mk deleted file mode 100644 index 7253c9637026b..0000000000000 --- a/cmds/statsd/tools/Android.mk +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright (C) 2017 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# - -LOCAL_PATH := $(call my-dir) -include $(CLEAR_VARS) -#Include the sub-makefiles -include $(call all-makefiles-under,$(LOCAL_PATH)) \ No newline at end of file diff --git a/cmds/statsd/tools/dogfood/Android.bp b/cmds/statsd/tools/dogfood/Android.bp new file mode 100644 index 0000000000000..bb494a6025af9 --- /dev/null +++ b/cmds/statsd/tools/dogfood/Android.bp @@ -0,0 +1,37 @@ +// Copyright (C) 2017 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// + +android_app { + name: "StatsdDogfood", + platform_apis: true, + + srcs: ["src/**/*.java"], + + resource_dirs: ["res"], + static_libs: [ + "platformprotoslite", + "statsdprotolite", + ], + + privileged: true, + dex_preopt: { + enabled: false, + }, + certificate: "platform", + optimize: { + enabled: false, + }, +} diff --git a/cmds/statsd/tools/dogfood/Android.mk b/cmds/statsd/tools/dogfood/Android.mk deleted file mode 100644 index baf235bb91bef..0000000000000 --- a/cmds/statsd/tools/dogfood/Android.mk +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright (C) 2017 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_PACKAGE_NAME := StatsdDogfood -LOCAL_PRIVATE_PLATFORM_APIS := true - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res -LOCAL_STATIC_JAVA_LIBRARIES := platformprotoslite \ - statsdprotolite - -LOCAL_PRIVILEGED_MODULE := true -LOCAL_DEX_PREOPT := false -LOCAL_CERTIFICATE := platform -LOCAL_PROGUARD_ENABLED := disabled - -include $(BUILD_PACKAGE) diff --git a/cmds/statsd/tools/loadtest/Android.bp b/cmds/statsd/tools/loadtest/Android.bp new file mode 100644 index 0000000000000..bf87fc51dce1e --- /dev/null +++ b/cmds/statsd/tools/loadtest/Android.bp @@ -0,0 +1,37 @@ +// Copyright (C) 2017 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// + +android_app { + name: "StatsdLoadtest", + platform_apis: true, + + srcs: ["src/**/*.java"], + + resource_dirs: ["res"], + static_libs: [ + "platformprotoslite", + "statsdprotolite", + ], + + certificate: "platform", + privileged: true, + dex_preopt: { + enabled: false, + }, + optimize: { + enabled: false, + }, +} diff --git a/cmds/statsd/tools/loadtest/Android.mk b/cmds/statsd/tools/loadtest/Android.mk deleted file mode 100644 index 219cd9525bbd2..0000000000000 --- a/cmds/statsd/tools/loadtest/Android.mk +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright (C) 2017 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_PACKAGE_NAME := StatsdLoadtest -LOCAL_PRIVATE_PLATFORM_APIS := true - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res -LOCAL_STATIC_JAVA_LIBRARIES := platformprotoslite \ - statsdprotolite - -LOCAL_CERTIFICATE := platform -LOCAL_PRIVILEGED_MODULE := true -LOCAL_DEX_PREOPT := false -LOCAL_PROGUARD_ENABLED := disabled - -include $(BUILD_PACKAGE) diff --git a/libs/incident/Android.bp b/libs/incident/Android.bp new file mode 100644 index 0000000000000..0619a9c100dd2 --- /dev/null +++ b/libs/incident/Android.bp @@ -0,0 +1,50 @@ +// Copyright (C) 2016 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +cc_library_shared { + name: "libincident", + + cflags: [ + "-Wall", + "-Werror", + "-Wno-missing-field-initializers", + "-Wno-unused-variable", + "-Wunused-parameter", + ], + + shared_libs: [ + "libbinder", + "liblog", + "libutils", + ], + + aidl: { + include_dirs: ["frameworks/base/core/java"], + export_aidl_headers: true, + }, + + srcs: [ + ":libincident_aidl", + "proto/android/os/header.proto", + "proto/android/os/metadata.proto", + "src/IncidentReportArgs.cpp", + ], + + proto: { + type: "lite", + export_proto_headers: true, + }, + + export_include_dirs: ["include"], +} diff --git a/libs/incident/Android.mk b/libs/incident/Android.mk deleted file mode 100644 index 08c834699f407..0000000000000 --- a/libs/incident/Android.mk +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright (C) 2016 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_MODULE := libincident - -LOCAL_CFLAGS := \ - -Wall -Werror -Wno-missing-field-initializers -Wno-unused-variable -Wunused-parameter - -LOCAL_SHARED_LIBRARIES := \ - libbinder \ - liblog \ - libutils - -LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/../../core/java -LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/include - -LOCAL_SRC_FILES := \ - ../../core/java/android/os/IIncidentManager.aidl \ - ../../core/java/android/os/IIncidentReportStatusListener.aidl \ - proto/android/os/header.proto \ - proto/android/os/metadata.proto \ - src/IncidentReportArgs.cpp - -LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include -LOCAL_PROTO_OPTIMIZE_TYPE := lite - -include $(BUILD_SHARED_LIBRARY) -