| // THIS IS A GENERATED FILE. DO NOT EDIT DIRECTLY. |
| // Generated by //wireless/android/play/playlog/tools:strip_proto_file |
| // from logs/proto/wireless/android/sdk/stats/studio_stats.proto |
| // Regenerate by running |
| // blaze build //logs/proto/wireless/android/sdk/stats:studio_stats_stripped |
| |
| // NOTE: Do not use oneof in this proto as we need to compile it with the |
| // open source 2.5 version of the protobuf compiler for Android Studio which |
| // does not support the oneof feature. |
| syntax = "proto2"; |
| |
| package android_studio; |
| |
| option java_package = "com.google.wireless.android.sdk.stats"; |
| option java_outer_classname = "AndroidStudioStats"; |
| |
| message AndroidStudioEvent { |
| // Describes a group of event kinds related to each other. |
| // This is redundant in the presence of EventKind + event specific message, |
| // and is only necessary for events originally sent to GA. |
| enum EventCategory { |
| // The event was not grouped into any specific category (default). |
| NO_EVENT_CATEGORY = 0; |
| // The event is related to deployment to a device or emulator. |
| DEPLOYMENT = 1; |
| // Stats on builds from Studio. |
| STUDIO_BUILD = 2; |
| // The event is related to usage of 'Google Developer Services' |
| // inside Android Studio. |
| DEVELOPER_SERVICES = 3; |
| // The event is related to interaction between Android Studio and Gradle. |
| GRADLE_SYNC = 4; |
| // The event is related to Performance Profiling. |
| PROFILING = 5; |
| // The event is related to Performance Monitoring. |
| MONITOR = 6; |
| // The event is related to the SDK Manager. |
| SDK_MANAGER = 7; |
| // The event is related to project/file templates. |
| TEMPLATE = 8; |
| // The event is related to Theme Editor. |
| THEME_EDITOR = 9; |
| // The event is related to App Indexing integration. |
| // (http://go/studio-app-indexing) |
| APP_INDEXING = 10; |
| // The event is related to C++ debugging. |
| LLDB = 11; |
| // The event is related to Google Cloud Test Lab integration. |
| CLOUD_TESTING = 12; |
| // The event is a regular ping from the application. |
| PING = 13; |
| // The event is related to running tests. |
| TESTS = 14; |
| // The event is a meta event reporting metrics on metrics. |
| META = 15; |
| // The event is related to the Emulator UI |
| EMULATOR_UI = 16; |
| // The event describes System Info |
| SYSTEM = 17; |
| // The event is related to the Project Structure Dialog. |
| PROJECT_STRUCTURE_DIALOG = 18; |
| // The event is from the Android Gradle plugin. |
| GRADLE = 19; |
| // The event is related to the Firebase assistant. |
| FIREBASE_ASSISTANT = 20; |
| // The event is related to the GPU Profiler. |
| GPU_PROFILER = 21; |
| // the event is related to the test recorder (Cassette) |
| TEST_RECORDER = 22; |
| // the event is related to the Android Studio UI. |
| STUDIO_UI = 23; |
| } |
| // Specific kind of event, primary separation key of all Android Studio |
| // related events. |
| enum EventKind { |
| UNKNOWN_EVENT_KIND = 0; |
| // An APK (android application) is deployed. |
| DEPLOYMENT_APK = 1; |
| // A deployment to the emulator. |
| DEPLOYMENT_TO_EMULATOR = 2; |
| // The developer added a Google Developer Service to their app. |
| DEVELOPER_SERVICES_INSTALLED = 3; |
| // The developer removed a Google Developer Service from their app. |
| DEVELOPER_SERVICES_REMOVED = 4; |
| // A sync between Android Studio and Gradle started. |
| GRADLE_SYNC_STARTED = 5; |
| // A sync between Android Studio and Gradle ended. |
| GRADLE_SYNC_ENDED = 6; |
| // A sync between Android Studio and Gradle was skipped. |
| GRADLE_SYNC_SKIPPED = 7; |
| // A sync between Android Studio and Gradle failed. |
| GRADLE_SYNC_FAILURE = 8; |
| // A sync between Android Studio and Gradle C++ support completed. |
| GRADLE_CPP_SYNC_COMPLETED = 9; |
| // Performance profiling capture started. |
| PROFILING_CAPTURE = 10; |
| // Performance profiling capture opened in the IDE. |
| PROFILING_OPEN = 11; |
| // Conversion of hprof profiling data in progress. |
| PROFILING_CONVERT_HPROF = 12; |
| // Analysis of the profiling data in progress. |
| PROFILING_ANALYSIS_RUN = 13; |
| // Performance monitoring has been activated. |
| MONITOR_ACTIVATED = 14; |
| // Performance monitoring is running. |
| MONITOR_RUNNING = 15; |
| // The user selected an action from the SDK Manager Toolbar. |
| SDK_MANAGER_TOOLBAR_CLICKED = 16; |
| // The standalone SDK Manager was launched. |
| SDK_MANAGER_STANDALONE_LAUNCHED = 17; |
| // The built-in SDK Manager was launched. |
| SDK_MANAGER_LOADED = 18; |
| // A new file/project is created based on a template. |
| TEMPLATE_RENDER = 19; |
| // User opened the Theme Editor. |
| THEME_EDITOR_OPEN = 20; |
| // A deep link was created for app indexing. |
| APP_INDEXING_DEEP_LINK_CREATED = 21; |
| // An api code was created for app indexing. |
| APP_INDEXING_API_CODE_CREATED = 22; |
| // An app indexing deep link was launched. |
| APP_INDEXING_DEEP_LINK_LAUNCHED = 23; |
| // An app indexing quick fix was applied. |
| APP_INDEXING_TRIGGER_QUICKFIX = 24; |
| // App Indexing Fetch As Google dialog is shown. |
| APP_INDEXING_SHOW_FEAG_DIALOG = 25; |
| // App Indexing Fetch As Google task has started. |
| APP_INDEXING_START_FEAG_TASK = 26; |
| // Native debugger is launched. |
| LLDB_LAUNCHED = 27; |
| // Native debugger session has started. |
| LLDB_SESSION_STARTED = 28; |
| // Native debugger session has failed. |
| LLDB_SESSION_FAILED = 29; |
| // Native debugger session has completed successfully. |
| LLDB_SESSION_COMPLETED = 30; |
| // SDK Manager QuickFix Wizard is invoked to install LLDB package. |
| LLDB_INSTALL_STARTED = 31; |
| // SDK Manager QuickFix Wizard invocation to install LLDB package failed. |
| LLDB_INSTALL_FAILED = 32; |
| // SDK Manager QuickFix Wizard invocation to install LLDB package completed |
| // successfully. |
| LLDB_INSTALL_COMPLETED = 33; |
| // A watchpoint was added to native code. |
| LLDB_SESSION_USED_WATCHPOINTS = 34; |
| // A Cloud Device was configured for Cloud Testing. |
| CLOUD_TESTING_CONFIGURE_CLOUD_DEVICE = 35; |
| // A Matrix of Cloud Devices was configured for Cloud Testing. |
| CLOUD_TESTING_CONFIGURE_MATRIX = 36; |
| // A Cloud Devices was launched for Cloud Testing. |
| CLOUD_TESTING_LAUNCH_CLOUD_DEVICE = 37; |
| // A Matrix of Cloud Devices was run for Cloud Testing. |
| CLOUD_TESTING_RUN_TEST_MATRIX = 38; |
| // Cloud Testing reported a backend error. |
| CLOUD_TESTING_BACKEND_ERROR = 39; |
| // A Debug session was launched from Cloud Testing results. |
| CLOUD_TESTING_DEBUG_FROM_RESULTS = 40; |
| // The compare screenshots window was opened from a Cloud Testing run. |
| CLOUD_TESTING_COMPARE_SCREENSHOTS_OPENED = 41; |
| // Studio crash statistics were sent. |
| STUDIO_CRASH = 42; |
| // A Gradle Build was run and statistics are available. |
| GRADLE_BUILD_DETAILS = 44; |
| // Stats on Instant Run. |
| INSTANT_RUN = 45; |
| // Daily Android Studio ping with version & os details. |
| STUDIO_PING = 46; |
| // Daily emulator ping with version & os details. |
| EMULATOR_PING = 47; |
| // Metrics on Metrics. |
| META_METRICS = 48; |
| // User ran tests. |
| TEST_RUN = 50; |
| // User clicked something in the Emulator UI. |
| EMULATOR_UI_EVENT = 51; |
| // Information on the host OS's hypervisor support. |
| HYPERVISOR = 52; |
| // Provides info on the Emulator Host |
| EMULATOR_HOST = 53; |
| // Various UI events in the Project Structure Dialog. |
| PROJECT_STRUCTURE_DIALOG_OPEN = 54; |
| PROJECT_STRUCTURE_DIALOG_SAVE = 55; |
| PROJECT_STRUCTURE_DIALOG_TOP_TAB_CLICK = 56; |
| PROJECT_STRUCTURE_DIALOG_TOP_TAB_SAVE = 57; |
| PROJECT_STRUCTURE_DIALOG_LEFT_NAV_CLICK = 58; |
| PROJECT_STRUCTURE_DIALOG_LEFT_NAV_SAVE = 59; |
| // A gradle build profile |
| GRADLE_BUILD_PROFILE = 60; |
| // The LLDB Frontend has unexpectedly exited |
| LLDB_FRONTEND_EXITED = 61; |
| // The Firebase assistant created a project. |
| FIREBASE_ASSISTANT_PROJECT_CREATED = 62; |
| // The Firebase assistant failed to create a project. |
| FIREBASE_ASSISTANT_PROJECT_CREATE_FAILED = 63; |
| // The Firebase assistant upgraded a project. |
| FIREBASE_ASSISTANT_PROJECT_UPGRADED = 64; |
| // The Firebase assistant failed to upgrade a project. |
| FIREBASE_ASSISTANT_PROJECT_UPGRADE_FAILED = 66; |
| // The Firebase assistant failed to create a config. |
| FIREBASE_ASSISTANT_PROJECT_CONFIG_CREATE_FAILED = 67; |
| // The Firebase assistant updated a project. |
| FIREBASE_ASSISTANT_PROJECT_UPDATED = 68; |
| // The Firebase assistant failed to update a project. |
| FIREBASE_ASSISTANT_PROJECT_UPDATE_FAILED = 69; |
| // The Firebase assistant failed to write the project config. |
| FIREBASE_ASSISTANT_PROJECT_CONFIG_WRITE_FAILED = 70; |
| // The Firebase assistant failed as the user did not accept the TOS. |
| FIREBASE_ASSISTANT_TOS_FAILED = 71; |
| // The Firebase assistant is trying to login. |
| FIREBASE_ASSISTANT_ATTEMPT_LOGIN = 72; |
| // The Firebase assistant successfully logged in. |
| FIREBASE_ASSISTANT_LOGIN_SUCCESS = 73; |
| // The Firebase assistant showed the dialog to offer to reconnect. |
| FIREBASE_ASSISTANT_RECONNECT_DIALOG_SYNC = 74; |
| // The Firebase assistant was requested to connect to the server. |
| FIREBASE_ASSISTANT_CONNECT_REQUESTED = 75; |
| // The Firebase assistant panel was opened. |
| FIREBASE_ASSISTANT_OPEN = 76; |
| // The Firebase assistant connect dialog was opened. |
| FIREBASE_ASSISTANT_CONNECT_DIALOG_OPENED = 77; |
| // The Firebase assistant connect dialog was asked to connect. |
| FIREBASE_ASSISTANT_CONNECT_DIALOG_SYNC = 78; |
| // The Firebase assistant presented an error to the user. |
| FIREBASE_ASSISTANT_ERROR_PRESENTED = 79; |
| // The Firebase assistant encounted an error but didn't inform the user. |
| FIREBASE_ASSISTANT_SILENT_ERROR = 80; |
| // The Firebase assistant reconnect dialog was opened. |
| FIREBASE_ASSISTANT_RECONNECT_DIALOG_OPENED = 81; |
| // The GPU Debugger tracing had an initialization failure. |
| GFX_TRACE_INIT_ERROR = 82; |
| // The GPU Debugger tracing was closed. |
| GFX_TRACE_CLOSED = 83; |
| // The GPU Debugger tracing had a parameter edited. |
| GFX_TRACE_PARAMETER_EDITED = 84; |
| // The GPU Debugger tracing was started. |
| GFX_TRACE_TRACE_STARTED = 85; |
| // The GPU Debugger tracing was stopped. |
| GFX_TRACE_TRACE_STOPPED = 86; |
| // A UI command influencing the the GPU Debugger was selected. |
| GFX_TRACE_COMMAND_SELECTED = 87; |
| // A link from the GPU Debugger tracing results was clicked. |
| GFX_TRACE_LINK_CLICKED = 88; |
| // A memory snapshot from the GPU Debugger tracing results was clicked. |
| GFX_TRACE_MEMORY_VIEWED = 89; |
| // A texture from the GPU Debugger tracing results was viewed. |
| GFX_TRACE_TEXTURE_VIEWED = 90; |
| // A "legacy" IntelliJ style project was loaded. |
| LEGACY_IDEA_ANDROID_PROJECT = 91; |
| // The user requested the test recorder to generate a test class. |
| TEST_RECORDER_GENERATE_TEST_CLASS = 92; |
| // The test recorder failed as the project is missing espresso dependencies. |
| TEST_RECORDER_MISSING_ESPRESSO_DEPENDENCIES = 93; |
| // The test recorder failed as the instrumentation test folder is missing. |
| TEST_RECORDER_MISSING_INSTRUMENTATION_TEST_FOLDER = 94; |
| // The test recorder was launched. |
| TEST_RECORDER_LAUNCH = 95; |
| // A GPU Debugger Trace session was opened but not started yet. |
| GFX_TRACE_OPEN = 96; |
| // Statistics on user actions in the Android Studio UI. |
| STUDIO_UI_ACTION_STATS = 97; |
| // Stats on the current running Android Studio process. |
| STUDIO_PROCESS_STATS = 98; |
| // Stats on Studio's performance |
| STUDIO_PERFORMANCE_STATS = 99; |
| } |
| // Represents different Performance Monitoring types. |
| enum MonitorType { |
| UNKNOWN_MONITOR_TYPE = 0; |
| CPU = 1; |
| GPU = 2; |
| MEMORY = 3; |
| NETWORK = 4; |
| } |
| // Represents different Performance Profiler Capture types. |
| enum ProfilerCaptureType { |
| UNKNOWN_PROFILER_CAPTURE_TYPE = 0; |
| ALLOCATION = 1; |
| FILE = 2; |
| GFX_TRACE = 3; |
| HEAP = 4; |
| SYSTEM_INFO = 5; |
| VM_TRACE = 6; |
| METHOD_TRACING = 7; |
| LAYOUT_INSPECTOR_SNAPSHOT = 8; |
| HIERARCHY_VIEW = 9; |
| } |
| // Represents the different Run Configurations the debugger supports. |
| enum RunConfigurationType { |
| UNKNOWN_RUN_CONFIGURATION_TYPE = 0; |
| ANDROID = 1; |
| ANDROID_NATIVE = 2; |
| ANDROID_TEST = 3; |
| } |
| // Represents the different debugger types supported. |
| enum DebuggerType { |
| UNKNOWN_DEBUGGER_TYPE = 0; |
| JAVA = 1; |
| HYBRID = 2; |
| NATIVE = 3; |
| } |
| // Represents the different Google Developer Services that can be |
| // (semi-)automatically integrated into Android Applications. |
| enum DeveloperServiceKind { |
| UNKNOWN_DEVELOPER_SERVICE_KIND = 0; |
| GOOGLE_CLOUD_MESSAGING = 1; |
| AD_MOB = 2; |
| GOOGLE_SIGN_IN = 3; |
| GOOGLE_ANALYTICS = 4; |
| FIREBASE = 5; |
| REALTIME_DATABASE = 6; |
| AUTHENTICATION = 7; |
| CRASH_REPORTING = 8; |
| NOTIFICATIONS = 9; |
| REMOTE_CONFIG = 10; |
| STORAGE = 11; |
| APP_INVITES = 12; |
| DYNAMIC_LINKS = 13; |
| } |
| // The various templates the template engine could be asked to render. |
| enum TemplateRenderer { |
| UNKNOWN_TEMPLATE_RENDERER = 0; |
| CUSTOM_TEMPLATE_RENDERER = 1; |
| ANDROID_MODULE = 2; |
| ANDROID_PROJECT = 3; |
| EMPTY_ACTIVITY = 4; |
| BLANK_ACTIVITY = 5; |
| LAYOUT_XML_FILE = 6; |
| FRAGMENT_BLANK = 7; |
| NAVIGATION_DRAWER_ACTIVITY = 8; |
| VALUES_XML_FILE = 9; |
| GOOGLE_MAPS_ACTIVITY = 10; |
| LOGIN_ACTIVITY = 11; |
| ASSETS_FOLDER = 12; |
| TABBED_ACTIVITY = 13; |
| SCROLLING_ACTIVITY = 14; |
| FULLSCREEN_ACTIVITY = 15; |
| SERVICE = 16; |
| JAVA_LIBRARY = 17; |
| SETTINGS_ACTIVITY = 18; |
| FRAGMENT_LIST = 19; |
| MASTER_DETAIL_FLOW = 20; |
| ANDROID_WEAR_MODULE = 21; |
| BROADCAST_RECEIVER = 22; |
| AIDL_FILE = 23; |
| INTENT_SERVICE = 24; |
| JNI_FOLDER = 25; |
| JAVA_FOLDER = 26; |
| CUSTOM_VIEW = 27; |
| ANDROID_TV_MODULE = 28; |
| GOOGLE_ADMOBS_ADS_ACTIVITY = 29; |
| ALWAYS_ON_WEAR_ACTIVITY = 30; |
| RES_FOLDER = 31; |
| ANDROID_TV_ACTIVITY = 32; |
| BLANK_WEAR_ACTIVITY = 33; |
| BASIC_ACTIVITIY = 34; |
| APP_WIDGET = 35; |
| } |
| // Reasons Gradle sync failed. |
| enum GradleSyncFailure { |
| UNKNOWN_GRADLE_FAILURE = 0; |
| CONNECTION_DENIED = 1; |
| CLASS_NOT_FOUND = 2; |
| DSL_METHOD_NOT_FOUND = 3; |
| FAILED_TO_PARSE_SDK = 4; |
| METHOD_NOT_FOUND = 5; |
| MISSING_ANDROID_PLATFORM = 6; |
| MISSING_ANDROID_SUPPORT_REPO = 7; |
| MISSING_BUILD_TOOLS = 8; |
| OUT_OF_MEMORY = 9; |
| SDK_NOT_FOUND = 10; |
| UNKNOWN_HOST = 11; |
| UNSUPPORTED_ANDROID_MODEL_VERSION = 12; |
| UNSUPPORTED_GRADLE_VERSION = 13; |
| } |
| // Describes a group of event kinds related to each other. |
| // Necessary only for events that were originally being reported to Google |
| // Analytics (GA). |
| optional .android_studio.AndroidStudioEvent.EventCategory category = 1; |
| // Specific kind of event, primary separation key of all Android Studio |
| // related events. |
| optional .android_studio.AndroidStudioEvent.EventKind kind = 2; |
| // The session id is a UUID tracking a single instance of Android Studio |
| // to associate events together such as kind = TEST_RUN |
| optional string studio_session_id = 3; |
| // set when kind = STUDIO_PING |
| // or kind = EMULATOR_PING |
| // or ANDROID_STUDIO_TEST |
| // or ANDROID_STUDIO_THROUGH_GRADLE |
| optional .android_studio.ProductDetails product_details = 4; |
| // set when kind = MONITOR_ACTIVATED or kind = MONITOR_RUNNING |
| optional .android_studio.AndroidStudioEvent.MonitorType monitor_type = 5; |
| // set when kind = MONITOR_RUNNING |
| optional bool monitor_paused = 6; |
| // set when kind = PROFILING_OPEN or PROFILING_CAPTURE |
| optional .android_studio.AndroidStudioEvent.ProfilerCaptureType profiler_capture_type = 7; |
| // set when kind = CLOUD_TESTING_BACKEND_ERROR |
| optional string cloud_testing_error_message = 8; |
| // set when kind = CLOUD_TESTING_COMPARE_SCREENSHOTS_OPENED |
| optional int32 cloud_testing_loaded_screenshots_count = 9; |
| // set when kind = LLDB_SESSION_STARTED |
| optional .android_studio.AndroidStudioEvent.RunConfigurationType run_configuration_type = 10; |
| // set when kind = LLDB_SESSION_STARTED |
| optional .android_studio.AndroidStudioEvent.DebuggerType debugger_type = 11; |
| // set when kind = LLDB_LAUNCHED |
| // or kind = DEPLOYMENT_APK |
| // or kind = DEPLOYMENT_EMULATOR |
| // or kind = CLOUD_TESTING_CONFIGURE_CLOUD_DEVICE |
| // or kind = CLOUD_TESTING_LAUNCH_CLOUD_DEVICE |
| // or kind = CLOUD_TESTING_DEBUG_FROM_RESULTS |
| // or kind = TEST_RUN |
| optional .android_studio.DeviceInfo device_info = 12; |
| // set when kind = LLDB_SESSION_FAILED or kind = LLDB_INSTALL_FAILED |
| // e.g. 'failed to get reply to handshake packet' |
| optional string lldb_session_failure_message = 13; |
| // set when kind = DEVELOPER_SERVICES_INSTALLED |
| // or kind = DEVELOPER_SERVICES_REMOVED |
| optional .android_studio.AndroidStudioEvent.DeveloperServiceKind developer_service_kind = 14; |
| // set when category = GRADLE_SYNC |
| optional string gradle_version = 15; |
| // e.g. '2.10' |
| // set when kind = GRADLE_SYNC_FAILURE |
| optional .android_studio.AndroidStudioEvent.GradleSyncFailure gradle_sync_failure = 16; |
| // set when kind = GRADLE_SYNC_FAILURE and gradle_sync_failure = *_NOT_FOUND |
| // e.g. 'org.gradle.api.internal.DemoClass.demoMethod' |
| optional string gradle_missing_signature = 17; |
| // set when kind = TEMPLATE_RENDERER |
| optional .android_studio.AndroidStudioEvent.TemplateRenderer template_renderer = 18; |
| // set when kind = STUDIO_CRASH |
| optional .android_studio.StudioCrash studio_crash = 19; |
| // set when kind = GRADLE_BUILD_DETAILS |
| optional .android_studio.GradleBuildDetails gradle_build_details = 20; |
| // set when kind = INSTANT_RUN |
| optional .android_studio.InstantRun instant_run = 21; |
| // set when kind = META_METRICS |
| optional .android_studio.MetaMetrics meta_metrics = 22; |
| // set when kind = EMULATOR_PING |
| optional .android_studio.EmulatorDetails emulator_details = 23; |
| // set when kind = TEST_RUN |
| optional .android_studio.TestRun test_run = 24; |
| // set when kind = EMULATOR_UI_EVENT |
| optional .android_studio.EmulatorUiEvent emulator_ui_event = 25; |
| // set when kind = HYPERVISOR |
| optional .android_studio.Hypervisor hypervisor = 26; |
| // set when kind = EMULATOR_HOST |
| optional .android_studio.EmulatorHost emulator_host = 27; |
| // set when kind = GRADLE_BUILD_PROFILE |
| optional .android_studio.GradleBuildProfile gradle_build_profile = 28; |
| // set when kind = LLDB_FRONTEND_EXITED |
| optional .android_studio.LLDBFrontendDetails lldb_frontend_details = 29; |
| // set when kind = FIREBASE_ASSISTANT_ERROR_PRESENTED or |
| // kind FIREBASE_ASSISTANT_SILENT_ERROR |
| optional .android_studio.FirebaseErrorDetails firebase_error_details = 30; |
| // Client-side salted (rotating every 28 days), sha256 of the project id. |
| // set when kind = PROJECT_STRUCTURE_*. |
| optional string project_id = 31; |
| // set when kind = GFX_TRACE_* |
| optional .android_studio.GfxTracingDetails gfx_tracing_details = 32; |
| // set when kind = TEST_RECORDER_GENERATE_TEST_CLASS |
| optional .android_studio.TestRecorderDetails test_recorder_details = 33; |
| // set when kind = STUDIO_UI_ACTION_STATS |
| optional .android_studio.UIActionStats ui_action_stats = 34; |
| // set when kind = STUDIO_PING |
| optional .android_studio.MachineDetails machine_details = 35; |
| // set when kind = STUDIO_PING |
| optional .android_studio.JvmDetails jvm_details = 36; |
| // set when kind = STUDIO_PROCESS_STATS |
| optional .android_studio.JavaProcessStats java_process_stats = 37; |
| // set when kind = STUDIO_PERFORMANCE_STATS |
| optional .android_studio.StudioPerformanceStats studio_performance_stats = 38; |
| } |
| |
| // Describes a product, e.g. Android Studio or Emulator. |
| message ProductDetails { |
| // Various states in the software life cycle this software could be in. |
| enum SoftwareLifeCycleChannel { |
| UNKNOWN_LIFE_CYCLE_CHANNEL = 0; |
| CANARY = 1; |
| DEV = 2; |
| BETA = 3; |
| STABLE = 4; |
| } |
| // Describes the various Products related to Android Studio. |
| enum ProductKind { |
| UNKNOWN_PRODUCT = 0; |
| STUDIO = 1; |
| EMULATOR = 2; |
| GRADLE = 3; |
| DDMS = 4; |
| } |
| // Describes the various OS platforms our products run on. |
| enum OSKind { |
| UNKNOWN_OS_KIND = 0; |
| OTHER_OS = 1; |
| // Known but not in our list. |
| WINDOWS = 2; |
| MAC_OSX = 3; |
| LINUX = 4; |
| FREE_BSD = 5; |
| } |
| // Chip the software is running on. |
| enum CpuArchitecture { |
| UNKNOWN_CPU_ARCHITECTURE = 0; |
| X86 = 1; |
| X86_64 = 2; |
| } |
| // The product this event relates to. |
| optional .android_studio.ProductDetails.ProductKind product = 1; |
| // The build ID of Android Studio. |
| optional string build = 2; |
| // e.g. AI-141.2178183 |
| // The version of the product. |
| optional string version = 3; |
| // e.g. 2.0.0.11 |
| // Historical: never used as it was not providing enough info. Use channel |
| // instead as it distinguishes between different kinds of preview releases. |
| optional bool preview = 4; |
| // The CPU archtecture the product is running on. |
| optional .android_studio.ProductDetails.CpuArchitecture os_architecture = 5; |
| // The state in the software lifecycle of this product. |
| optional .android_studio.ProductDetails.SoftwareLifeCycleChannel channel = 6; |
| } |
| |
| // Describes a emulator or physical Android Device. |
| message DeviceInfo { |
| // Describes tthe ABI of the device/emulator. |
| enum ApplicationBinaryInterface { |
| UNKNOWN_ABI = 0; |
| ARME_ABI_V7A = 1; |
| X86_ABI = 2; |
| ARM64_V8A_ABI = 3; |
| X86_64_ABI = 4; |
| ARME_ABI = 5; |
| MIPS_ABI = 6; |
| MIPS_R2_ABI = 7; |
| ARME_ABI_V6L = 8; |
| ARME_ABI_V6J = 9; |
| } |
| // Describes the kind of device being deployed/tested on. |
| enum DeviceType { |
| UNKNOWN_DEVICE_TYPE = 0; |
| LOCAL_PHYSICAL = 1; |
| LOCAL_EMULATOR = 2; |
| CLOUD_EMULATOR = 3; |
| CLOUD_PHYSICAL = 4; |
| } |
| // serial number of the device, salted & sha256ed on the client. |
| optional string anonymized_serial_number = 1; |
| // Tags used to build the android version on this device. |
| // e.g. 'release-keys' or 'test-keys' or 'A100_V001' |
| // TODO(jvg): ask loglaunch folks: ST_SOFTWARE_ID datapol? |
| optional string build_tags = 2; |
| // Type of build this device is running. |
| // e.g. 'user' or 'userdebug' or 'eng' or 'alphabuild' |
| // TODO(jvg): ask loglaunch folks: ST_SOFTWARE_ID datapol? |
| optional string build_type = 3; |
| // Android version e.g. '5.1.1' |
| optional string build_version_release = 4; |
| // Historic: doesn't support api levels for code names such as 'N'. |
| optional int32 build_api_level = 5; |
| // ABI of the device, e.g. 'armeabi-v7a' or 'x86' |
| optional .android_studio.DeviceInfo.ApplicationBinaryInterface cpu_abi = 6; |
| // Device manufacturer, e.g. 'Motorola' or 'Samsung' |
| optional string manufacturer = 7; |
| // Device model, e.g. 'Nexus 5' or 'GT-I9500'. |
| optional string model = 8; |
| // What kind of device is this? Physicial/Emulator/Cloud etc... |
| optional .android_studio.DeviceInfo.DeviceType device_type = 9; |
| // android api level e.g. '23' or 'N' |
| optional string build_api_level_full = 10; |
| } |
| |
| // Metrics on crashes in Android Studio. |
| message StudioCrash { |
| // number of actions since last crash report. |
| optional int64 actions = 1; |
| // number of exceptions since last crash report. |
| optional int64 exceptions = 2; |
| // number of crashes since last crash report. |
| optional int64 crashes = 3; |
| // number of exceptions from plugins bundled with Android Studio. |
| optional int64 bundled_plugin_exceptions = 4; |
| // number of exceptions from plugins not bundled with Android Studio. |
| optional int64 non_bundled_plugin_exceptions = 5; |
| } |
| |
| // Emulator guest image's GL info. |
| message EmulatorGuestGlInfo { |
| // GL Driver vendor. |
| optional string vendor = 1; |
| // GL Driver name. |
| optional string renderer = 2; |
| // GL Driver version number. |
| optional string version = 3; |
| } |
| |
| // Emulator: Host GPU info. |
| message EmulatorGpuInfo { |
| // Make of the Graphics card. |
| optional string make = 1; |
| // Model of the Graphics card. |
| optional string model = 2; |
| // Device id of the Graphics card. |
| optional string device_id = 3; |
| // Revision of the graphics card. |
| optional string revision_id = 4; |
| // Version of the graphics card driver. |
| optional string version = 5; |
| // Name of the graphics card driver. |
| optional string renderer = 6; |
| } |
| |
| // Set of emulator feature flags to report ones used during current session. |
| message EmulatorFeatures { |
| optional bool gps = 1; |
| optional bool sensors = 2; |
| } |
| |
| // Metrics related to the Emulator. |
| message EmulatorDetails { |
| // Emulator instance liveness as determined via adb connectivity. |
| enum EmulatorAdbLiveness { |
| UNKNOWN_EMULATOR_ADB_LIVENESS = 0; |
| FAILURE_NO_ADB = 1; |
| ADB_ONLINE = 2; |
| FAILURE_ADB_SERVER_DEAD = 3; |
| FAILURE_EMULATOR_DEAD = 4; |
| } |
| // In What phase of the lifetime of the Emulator were the metrics reported. |
| enum EmulatorSessionPhase { |
| UNKNOWN_EMULATOR_SESSION_PHASE = 0; |
| // The custom emulator launcher is running. |
| LAUNCHER = 1; |
| // Final emulator target is parsing command line arguments. |
| PARSE_OPTIONS = 2; |
| // Initialization - general. |
| INIT_GENERAL = 3; |
| // Initializing GPU |
| INIT_GPU = 4; |
| // Initializing hardware acceleration. |
| INIT_ACCEL = 5; |
| // Main use case -- init done, emulator is up. |
| RUNNING_GENERAL = 6; |
| // Exiting |
| EXIT_GENERAL = 7; |
| } |
| // Chip the emulator is emulating for. |
| enum GuestCpuArchitecture { |
| UNKNOWN_GUEST_CPU_ARCHITECTURE = 0; |
| X86 = 1; |
| X86_64 = 2; |
| ARM = 3; |
| ARM_64 = 4; |
| MIPS = 5; |
| MIPS_64 = 6; |
| } |
| // Rendering method emulator uses for the reporter session. |
| enum EmulatorRenderer { |
| UNKNOWN_EMULATOR_RENDERER = 0; |
| HOST = 1; |
| OFF = 2; |
| GUEST = 3; |
| MESA = 4; |
| SWIFTSHADER = 5; |
| ANGLE = 6; |
| ERROR_IN_EMULATOR_RENDERER = 255; |
| } |
| // Cpu architecture of the guest. |
| optional .android_studio.EmulatorDetails.GuestCpuArchitecture guest_arch = 1; |
| // cpu time spent in kernel mode in milliseconds since last metrics report. |
| optional int64 system_time = 2; |
| // cpu time spent in user mode in milliseconds since last metrics report. |
| optional int64 user_time = 3; |
| // number of crashes since last metrics report. |
| optional int64 crashes = 4; |
| // real time in milliseconds since last metrics report. |
| optional int64 wall_time = 5; |
| // True iff a crash occurred while process started its exit routines. |
| optional bool exit_started = 6; |
| // The API level of the running guest image. |
| optional int64 guest_api_level = 7; |
| // The value of guest gpu option (ro.kernel.qemu.gles) |
| optional bool guest_gpu_enabled = 8; |
| // True if we were able to correctly initialize opengl on the host. |
| optional bool is_opengl_alive = 10; |
| // Connectivity from adb of the running emulator instance. |
| optional .android_studio.EmulatorDetails.EmulatorAdbLiveness adb_liveness = 11; |
| // Information about the gl implementation in the guest image. |
| optional .android_studio.EmulatorGuestGlInfo guest_gl = 12; |
| // Information about the host GPUs (one per GPU). |
| repeated .android_studio.EmulatorGpuInfo host_gpu = 13; |
| // The "phase" of an emulator session where crash happened. |
| optional .android_studio.EmulatorDetails.EmulatorSessionPhase session_phase = 14; |
| // The emulator core version (e.g. QEMU engine's version). |
| optional string core_version = 15; |
| // Renderer of the current emulator session. |
| optional .android_studio.EmulatorDetails.EmulatorRenderer renderer = 16; |
| // Flags for the used featurs. |
| optional .android_studio.EmulatorFeatures used_features = 17; |
| } |
| |
| // Describes a user clicking on some part of the Emulator UI. |
| message EmulatorUiEvent { |
| // Tracks the type of the emulator UI Event. |
| enum EmulatorUiEventType { |
| UNKONWN_EMULATOR_UI_EVENT_TYPE = 0; |
| BUTTON_PRESS = 1; |
| // Generated when a user action changes the value of certain field from |
| // its default value. |
| OPTION_SET_TO_NON_DEFAULT = 2; |
| // Generated to report the index of an option selected by the user in a |
| // drop-down menu / radio button etc. |
| OPTION_SELECTED = 3; |
| } |
| // Tracks the context of the Emulator UI. |
| enum EmulatorUiEventContext { |
| UNKNOWN_EMULATOR_UI_EVENT_CONTEXT = 0; |
| EXTENDED_WINDOW_OPEN = 1; |
| } |
| // Id of the UI element, baked in the emulator binary. |
| // TODO(jvg): ask logs ticket folks what kind of datapol annotation |
| // it is not freeform, but we cannot make this an enum |
| optional string element_id = 1; |
| // The type of UI event |
| optional .android_studio.EmulatorUiEvent.EmulatorUiEventType type = 2; |
| // The current context of the event. |
| optional .android_studio.EmulatorUiEvent.EmulatorUiEventContext context = 3; |
| // This value is an opaque numeric type. The exact schema of the UI metrics |
| // is not specific here. e.g., |value| may represent a boolean, a "count", or |
| // an index into the list of items in a drop down menu. |
| optional int64 value = 4; |
| } |
| |
| // Details about a single Gradle run. |
| message GradleBuildDetails { |
| // Version of our Gradle plugin supporting android builds. e.g. '2.0-beta1' |
| optional string android_plugin_version = 1; |
| // Version of the open source Gradle application used. |
| optional string gradle_version = 2; |
| // indicates whether the user has instant run enabled in settings |
| optional bool user_enabled_ir = 3; |
| // indicates whether the IDE thinks whether this plugin version supports IR |
| optional bool model_supports_ir = 4; |
| // indicates whether the current variant supports IR, but this can be changed |
| // without a notification |
| optional bool variant_supports_ir = 5; |
| // per library metrics. |
| repeated .android_studio.GradleLibrary libraries = 6; |
| // per module metrics. |
| repeated .android_studio.GradleModule modules = 7; |
| // per android module metrics. |
| repeated .android_studio.GradleAndroidModule android_modules = 8; |
| // per native android module metrics |
| repeated .android_studio.GradleNativeAndroidModule native_android_modules = 9; |
| } |
| |
| // Per library Gradle metrics. |
| message GradleLibrary { |
| // Number of jar dependencies in this library. |
| optional int64 jar_dependency_count = 1; |
| // Number of aar dependencies in this library. |
| optional int64 aar_dependency_count = 2; |
| } |
| |
| // Per module Gradle metrics. |
| message GradleModule { |
| // Total number of modules in this app. |
| optional int64 total_module_count = 1; |
| // Number of aar modules in this app. |
| optional int64 app_module_count = 2; |
| // Number of library modules in this app.. |
| optional int64 lib_module_count = 3; |
| } |
| |
| // Per Android module Gradle metrics. |
| message GradleAndroidModule { |
| // Client-side salted, sha256 of the application id |
| // the app_id is the id for the user's android app |
| // which we salt with a client unique salt and then sha256 |
| // so it is anonymized and is unique per user, but has a 1-N relation. |
| optional string app_id = 1; |
| // Client-side salted, sha256 of the module name. |
| optional string module_name = 2; |
| // True if this module is a library. |
| optional bool is_library = 3; |
| // Number of different build types for this module. |
| optional int64 build_type_count = 4; |
| // Number of different flavor types for this module. |
| optional int64 flavor_count = 5; |
| // Number of different flavor dimensions for this module. |
| optional int64 flavor_dimension = 6; |
| // Number of signing configurations for this module. |
| optional int64 signing_config_count = 7; |
| } |
| |
| // per "native" (C++) android module Gradle metrics. |
| message GradleNativeAndroidModule { |
| // The various native build systems we support to be used from Gradle. |
| enum NativeBuildSystemType { |
| UNKNOWN_NATIVE_BUILD_SYSTEM_TYPE = 0; |
| // The Gradle epxerimental plugin |
| GRADLE_EXPERIMENTAL = 1; |
| // The compilation part of NDK builds (Android's native build system). |
| NDK_COMPILE = 2; |
| // full NDK builds (Android's native build system). |
| NDK_BUILD = 3; |
| // CMake is a very common C++ build system. |
| CMAKE = 4; |
| } |
| // Client-side salted, sha256 of the application id |
| // the app_id is the id for the user's android app |
| // which we salt with a client unique salt and then sha256 |
| // so it is anonymized and is unique per user, but has a 1-N relation. |
| optional string app_id = 1; |
| // Client-side salted, sha256 of the module name. |
| optional string module_name = 2; |
| // True if this module is a library. |
| optional .android_studio.GradleNativeAndroidModule.NativeBuildSystemType build_system_type = 3; |
| } |
| |
| // Metrics on InstantRun usage. |
| message InstantRun { |
| // What Instant Run Deployment was used |
| enum InstantRunDeploymentKind { |
| UNKNOWN_INSTANT_RUN_DEPLOYMENT_KIND = 0; |
| LEGACY = 1; |
| FULL_APK = 2; |
| SPLIT_APK = 3; |
| DEX = 4; |
| HOT_SWAP = 5; |
| WARM_SWAP = 6; |
| NO_CHANGES = 7; |
| } |
| // The different reasons Instant Run had to do a full build. |
| enum InstantRunBuildCause { |
| UNKNOWN_INSTANT_RUN_BUILD_CAUSE = 0; |
| COMPATIBLE = 1; |
| MANIFEST_CHANGE = 2; |
| FIELD_TYPE_CHANGE = 3; |
| FIELD_REMOVED = 4; |
| FIELD_ADDED = 5; |
| METHOD_DELETED = 6; |
| METHOD_ADDED = 7; |
| CLASS_ADDED = 8; |
| STATIC_INITIALIZER_CHANGE = 9; |
| CLASS_ANNOTATION_CHANGE = 10; |
| RESOURCE_CHANGE = 11; |
| IMPLEMENTS_INTERFACE_CHANGE = 12; |
| R_CLASS_CHANGE = 13; |
| PARENT_CLASS_CHANGE = 14; |
| METHOD_ANNOTATION_CHANGE = 15; |
| API_LEVEL_UNSUPPORTED = 16; |
| REFLECTION_USED = 17; |
| } |
| // The different reasons InstantRun chose the build mode it did from the IDE's |
| // perspective. |
| enum InstantRunIdeBuildCause { |
| // reasons for clean build |
| UNKNOWN_INSTANT_RUN_IDE_BUILD_CAUSE = 0; |
| NO_DEVICE = 1; |
| APP_NOT_INSTALLED = 2; |
| MISMATCHING_TIMESTAMPS = 3; |
| USER_REQUESTED_CLEAN_BUILD = 4; |
| // reasons for full build |
| API_TOO_LOW_FOR_INSTANT_RUN = 5; |
| // first installation in this Android Studio session |
| FIRST_INSTALLATION_TO_DEVICE = 6; |
| MANIFEST_RESOURCE_CHANGED = 7; |
| FREEZE_SWAP_REQUIRES_API21 = 8; |
| FREEZE_SWAP_REQUIRES_WORKING_RUN_AS = 9; |
| // reasons for forced cold swap build |
| APP_NOT_RUNNING = 10; |
| APP_USES_MULTIPLE_PROCESSES = 11; |
| INCREMENTAL_BUILD = 12; |
| NO_INSTANT_RUN = 13; |
| } |
| // What kind of Instant Run deployment was chosen. |
| optional .android_studio.InstantRun.InstantRunDeploymentKind deployment_kind = 1; |
| // what was the reason for chosing that kind of deployment from the gradle |
| // side. |
| optional .android_studio.InstantRun.InstantRunBuildCause instant_run_build_cause = 3; |
| // time the InstantRun enabled took in milliseconds. |
| optional int64 build_time = 4; |
| // The session id is a UUID within a single run of Android Studio |
| // tracking multiple HOT_SWAP & DEX builds in the same |
| // IR session (starting at FULL_APK and ending before FULL_APK). |
| optional string session_id = 5; |
| // what was the reason for chosing that kind of deployment from the IDE |
| // side. |
| optional .android_studio.InstantRun.InstantRunIdeBuildCause ide_build_cause = 6; |
| } |
| |
| // describes Metrics on Metrics. |
| message MetaMetrics { |
| // number of times connecting to the clearcut server failed since |
| // the last successful upload. |
| optional int32 failed_connections = 1; |
| // number of bytes used to send metrics in the last upload. |
| optional int64 bytes_sent_in_last_upload = 2; |
| // number of times the clearcut server failed with an http error since |
| // the last successful upload. |
| optional int32 failed_server_replies = 3; |
| } |
| |
| // Describes a set of tests run. |
| message TestRun { |
| // Describes how tests where invoked. |
| enum TestInvocationType { |
| UNKNOWN_TEST_INVOCATION_TYPE = 0; |
| // Tests were run from the command-line. |
| GRADLE_TEST = 1; |
| // Tests were run by Android Studio run configurations logic. |
| ANDROID_STUDIO_TEST = 2; |
| // Tests were run by Gradle, but invoked through AS UI. |
| ANDROID_STUDIO_THROUGH_GRADLE_TEST = 3; |
| } |
| // What kind of test is run. |
| enum TestKind { |
| UNKNOWN_TEST_KIND = 0; |
| UNIT_TEST = 1; |
| INSTRUMENTATION_TEST = 2; |
| } |
| // Describes how tests where invoked. |
| optional .android_studio.TestRun.TestInvocationType test_invocation_type = 1; |
| // Total number of tests that ran. |
| optional int32 number_of_tests_executed = 2; |
| // What kind of test is run. |
| optional .android_studio.TestRun.TestKind test_kind = 3; |
| // Whether the test run finished successfully (regardless of results) or |
| // tooling error happened. |
| optional bool crashed = 4; |
| // Set when test_invocation_type = GRADLE or ANDROID_STUDIO_THROUGH_GRADLE |
| optional string gradle_version = 5; |
| // e.g. '2.10' |
| // Did the user/project enable code coverage on this test run? |
| optional bool code_coverage_enabled = 6; |
| // Provides details on commonly used test libraries. |
| optional .android_studio.TestLibraries test_libraries = 7; |
| } |
| |
| // Provides details on commonly used test libraries. |
| message TestLibraries { |
| // The exact version of the given library that this project uses. |
| // Not present if project doesn't use a given library. |
| optional string test_support_library_version = 1; |
| // e.g. '0.5' |
| optional string espresso_version = 2; |
| // e.g. '2.2.2' |
| optional string robolectric_version = 3; |
| // e.g. '3.0' |
| optional string mockito_version = 4; |
| // e.g. '1.10.19' |
| } |
| |
| // Describes the status of various Hypervisors |
| message Hypervisor { |
| // Status of the Hyper-V hypervisor. |
| enum HyperVState { |
| UNKNOWN_HYPERV_STATE = 0; |
| // Have no idea |
| HYPERV_ABSENT = 1; |
| // No hyper-V found |
| HYPERV_INSTALLED = 2; |
| // Hyper-V is installed but not running |
| HYPERV_RUNNING = 3; |
| // Hyper-V is up and running |
| HYPERV_CHECK_ERROR = 4; |
| // Failed to detect status (emulator-check error) |
| } |
| optional .android_studio.Hypervisor.HyperVState hyper_v_state = 1; |
| } |
| |
| // Describes the status of the machine running the emulator. |
| message EmulatorHost { |
| // CPU manufacturer of the host, used as certain hypervisors are limited |
| // to a certain manufacturer. |
| optional string cpu_manufacturer = 1; |
| // AMD, INTEL, ... |
| // Does the host support virtualization technology |
| optional bool virt_support = 2; |
| // Is the host itself running inside a virtual machine. |
| optional bool running_in_vm = 3; |
| // May differ from os_architecture field as it is calculated differently, |
| // trying to compensate the JVM bittness. |
| optional int64 os_bit_count = 4; |
| } |
| |
| // Detailed profiling information for the gradle build. |
| message GradleBuildProfile { |
| // Version of the open source Gradle application used. |
| // e.g. "2.14" or "3.0-20160617000025+0000" |
| optional string gradle_version = 2; |
| // The value of the "os.name" system property. |
| // e.g. "Linux" |
| optional string os_name = 6; |
| // The value of the "os.version" system property. |
| // e.g. "3.13.0-86-generic" |
| optional string os_version = 7; |
| // The value of the "java.version" system property. |
| // e.g. "1.8.0_40-ea" |
| optional string java_version = 8; |
| // The value of the "java.vm.version" system property. |
| // e.g. "25.40-b25" |
| optional string java_vm_version = 9; |
| // The value of Runtime.getRuntime().maxMemory() |
| optional int64 max_memory = 10; |
| // The total time taken for this build in milliseconds. |
| // This does not include Gradle's startup (before plugin apply) or shutdown |
| // (after BuildListener#buildFinished(BuildResult) called. |
| optional int64 build_time = 11; |
| // The number of garbage collections during this build |
| optional int64 gc_count = 12; |
| // The time spent garbage collecting during this build. |
| optional int64 gc_time = 13; |
| // The projects that make up this multi-project build. |
| repeated .android_studio.GradleBuildProject project = 14; |
| // Samples of the memory state of the daemon during the build. |
| repeated .android_studio.GradleBuildMemorySample memory_sample = 15; |
| // The fine-grained execution spans which record granular timings. |
| repeated .android_studio.GradleBuildProfileSpan span = 16; |
| // For instant run builds: the resulting instant run build info. |
| optional .android_studio.InstantRunStatus instant_run_status = 17; |
| // Client-side salted, sha256 of the root project path. |
| // This exists to allow multiple instant run builds in one project by one |
| // user to be correlated. |
| // |
| // The salt is rotated every 28 days, so it is not a permenant pseudonymous |
| // identifier. It is anonymized and is unique per user, but has a 1-N |
| // relation. |
| optional string project_id = 18; |
| } |
| |
| message GradleBuildProject { |
| enum PluginType { |
| UNKNOWN_PLUGIN_TYPE = 0; |
| // The 'com.android.application' or 'com.android.model.application' plugins. |
| APPLICATION = 1; |
| // The 'com.android.library' or 'com.android.model.library' plugins. |
| LIBRARY = 2; |
| // The 'com.android.test' plugin. |
| TEST = 3; |
| // The 'com.android.atom' plugin. |
| ATOM = 4; |
| // The 'com.android.instantapp' plugin. |
| INSTANTAPP = 5; |
| } |
| enum PluginGeneration { |
| UNKNOWN_PLUGIN_GENERATION = 0; |
| // The 'com.android.[application,library,test,atom,instantapp] plugins. |
| FIRST = 1; |
| // The 'com.android.model.[application,library]' plugins |
| COMPONENT_MODEL = 2; |
| } |
| // Identifier, local to the containing AndroidStudioEvent, for the project. |
| // Can be used to correlate spans (GradleBuildProfileSpan) with this |
| // project for this build only. Is created by sequentially |
| // numbering projects as they are encountered. |
| // Is not stable across build invocations. |
| optional int64 id = 1; |
| // Version of our Android Gradle plugin supporting android builds. |
| // e.g. '2.0-beta1' |
| // For the experimental plugin this is the gradle-core version. |
| optional string android_plugin_version = 2; |
| // Which Android Gradle plugin is used. |
| optional .android_studio.GradleBuildProject.PluginType android_plugin = 3; |
| // Which plugin generation is used. |
| optional .android_studio.GradleBuildProject.PluginGeneration plugin_generation = 4; |
| // The build tools version used, e.g. '24.0.0 rc2' |
| optional string build_tools_version = 5; |
| // Statistics about the project build. |
| // Will be used to characterize and bucket projects for subgroup analysis. |
| optional .android_studio.GradleBuildProjectMetrics metrics = 6; |
| // The variants in this project |
| repeated .android_studio.GradleBuildVariant variant = 7; |
| // For instantApps, the number of dependent atoms. |
| optional int64 atoms = 8; |
| } |
| |
| message GradleBuildProjectMetrics { |
| // The time taken to collect these metrics |
| optional int64 metrics_time_ns = 1; |
| // The size of the APK built, if relevant. |
| optional int64 apk_size = 2; |
| // The size of the resources_ap included in that apk. |
| optional int64 resources_ap_size = 3; |
| } |
| |
| message GradleBuildVariant { |
| // The nature of this variant. |
| // The test variants have an associated tested variant. |
| // See com.android.builder.core.VariantType |
| enum VariantType { |
| // For building an APK. |
| APPLICATION = 0; |
| // For building an AAR. |
| LIBRARY = 1; |
| // For building a test APK. |
| ANDROID_TEST = 2; |
| // For building unit tests to run locally. |
| UNIT_TEST = 3; |
| // For building an atombundle. |
| ATOM = 4; |
| // For building an IAPK. |
| INSTANTAPP = 5; |
| } |
| // Identifier, local to this AndroidStudioEvent, for the variant. |
| // Can be used to correlate spans (GradleBuildProfileSpan) with this |
| // project for this build only. Is created by sequentially |
| // numbering variants as they are created. |
| // Is not stable across build invocations. |
| optional int64 id = 1; |
| // Whether the variant is debuggable. |
| optional bool is_debug = 2; |
| // Whether the variant is compiled using jack |
| optional bool use_jack = 3; |
| // Whether the variant is minified |
| optional bool minify_enabled = 4; |
| // Is multidex enabled for the variant |
| optional bool use_multidex = 5; |
| // Is legacy (pre-api 19) multidex enabled for the variant. |
| // Only can true if use_multidex is also true. |
| optional bool use_legacy_multidex = 6; |
| // The type of variant. |
| optional .android_studio.GradleBuildVariant.VariantType variant_type = 7; |
| // For test variants, the tested variant id. (See GradleBuildVariant.id) |
| optional int64 tested_id = 8; |
| } |
| |
| message GradleBuildMemorySample { |
| // Garbage collection time since the current daemon started. |
| optional int64 gc_time_ms = 1; |
| // Garbage collection count since the current daemon started. |
| optional int64 gc_count = 2; |
| // Time that the memory stats were collected. |
| optional int64 timestamp = 3; |
| } |
| |
| // A single execution span from a build. |
| // For example, a task execution or creation of some tasks for a variant. |
| message GradleBuildProfileSpan { |
| // The type of execution. |
| // This was originally com.android.builder.profile.ExecutionType. |
| enum ExecutionType { |
| SOME_RANDOM_PROCESSING = 1; |
| BASE_PLUGIN_PROJECT_CONFIGURE = 2; |
| BASE_PLUGIN_PROJECT_BASE_EXTENSION_CREATION = 3; |
| BASE_PLUGIN_PROJECT_TASKS_CREATION = 4; |
| BASE_PLUGIN_BUILD_FINISHED = 5; |
| TASK_MANAGER_CREATE_TASKS = 6; |
| BASE_PLUGIN_CREATE_ANDROID_TASKS = 7; |
| VARIANT_MANAGER_CREATE_ANDROID_TASKS = 8; |
| VARIANT_MANAGER_CREATE_TASKS_FOR_VARIANT = 9; |
| VARIANT_MANAGER_CREATE_LINT_TASKS = 10; |
| VARIANT_MANAGER_CREATE_TESTS_TASKS = 11; |
| VARIANT_MANAGER_CREATE_VARIANTS = 12; |
| RESOLVE_DEPENDENCIES = 13; |
| TASK_EXECUTION = 14; |
| INITIAL_METADATA = 100; |
| FINAL_METADATA = 101; |
| GENERAL_CONFIG = 102; |
| VARIANT_CONFIG = 103; |
| VARIANT_MANAGER_EXTERNAL_NATIVE_CONFIG_VALUES = 104; |
| APK_METRICS = 105; |
| // ApplicationTaskManager per variant tasks. |
| APP_TASK_MANAGER_CREATE_MERGE_MANIFEST_TASK = 1000; |
| APP_TASK_MANAGER_CREATE_GENERATE_RES_VALUES_TASK = 1001; |
| APP_TASK_MANAGER_CREATE_CREATE_RENDERSCRIPT_TASK = 1002; |
| APP_TASK_MANAGER_CREATE_MERGE_RESOURCES_TASK = 1003; |
| APP_TASK_MANAGER_CREATE_MERGE_ASSETS_TASK = 1004; |
| APP_TASK_MANAGER_CREATE_BUILD_CONFIG_TASK = 1005; |
| APP_TASK_MANAGER_CREATE_PROCESS_RES_TASK = 1006; |
| APP_TASK_MANAGER_CREATE_AIDL_TASK = 1007; |
| APP_TASK_MANAGER_CREATE_COMPILE_TASK = 1008; |
| APP_TASK_MANAGER_CREATE_NDK_TASK = 1009; |
| APP_TASK_MANAGER_CREATE_SPLIT_TASK = 1010; |
| APP_TASK_MANAGER_CREATE_PACKAGING_TASK = 1011; |
| APP_TASK_MANAGER_CREATE_PREPROCESS_RESOURCES_TASK = 1012; |
| APP_TASK_MANAGER_CREATE_BACKPORT_RESOURCES_TASK = 1013; |
| APP_TASK_MANAGER_CREATE_LINT_TASK = 1014; |
| APP_TASK_MANAGER_CREATE_MERGE_JNILIBS_FOLDERS_TASK = 1015; |
| APP_TASK_MANAGER_CREATE_SHADER_TASK = 1016; |
| APP_TASK_MANAGER_CREATE_EXTERNAL_NATIVE_BUILD_TASK = 1017; |
| APP_TASK_MANAGER_CREATE_STRIP_NATIVE_LIBRARY_TASK = 1018; |
| // LibraryTaskManager per variant tasks. |
| LIB_TASK_MANAGER_CREATE_MERGE_MANIFEST_TASK = 2000; |
| LIB_TASK_MANAGER_CREATE_GENERATE_RES_VALUES_TASK = 2001; |
| LIB_TASK_MANAGER_CREATE_CREATE_RENDERSCRIPT_TASK = 2002; |
| LIB_TASK_MANAGER_CREATE_MERGE_RESOURCES_TASK = 2003; |
| LIB_TASK_MANAGER_CREATE_MERGE_ASSETS_TASK = 2004; |
| LIB_TASK_MANAGER_CREATE_BUILD_CONFIG_TASK = 2005; |
| LIB_TASK_MANAGER_CREATE_PROCESS_RES_TASK = 2006; |
| LIB_TASK_MANAGER_CREATE_AIDL_TASK = 2007; |
| LIB_TASK_MANAGER_CREATE_COMPILE_TASK = 2008; |
| LIB_TASK_MANAGER_CREATE_NDK_TASK = 2009; |
| LIB_TASK_MANAGER_CREATE_SPLIT_TASK = 2010; |
| LIB_TASK_MANAGER_CREATE_PACKAGING_TASK = 2011; |
| LIB_TASK_MANAGER_CREATE_MERGE_PROGUARD_FILE_TASK = 2012; |
| LIB_TASK_MANAGER_CREATE_POST_COMPILATION_TASK = 2013; |
| LIB_TASK_MANAGER_CREATE_PROGUARD_TASK = 2014; |
| LIB_TASK_MANAGER_CREATE_PACKAGE_LOCAL_JAR = 2015; |
| LIB_TASK_MANAGER_CREATE_BACKPORT_RESOURCES_TASK = 2016; |
| LIB_TASK_MANAGER_CREATE_LINT_TASK = 2017; |
| LIB_TASK_MANAGER_CREATE_SHADER_TASK = 2018; |
| LIB_TASK_MANAGER_CREATE_EXTERNAL_NATIVE_BUILD_TASK = 2019; |
| // Task execution: Deprecated, use TASK_EXECUTION and |
| // GradleTaskExecution#Type instead. |
| // Deprecated July 2016. |
| GENERIC_TASK_EXECUTION = 3000; |
| TASK_AIDL_COMPILE = 3001; |
| TASK_DELETE = 3002; |
| TASK_CHECK_MANIFEST = 3003; |
| TASK_PREPARE_DEPENDENCIES_TASK = 3004; |
| TASK_RENDERSCRIPT_COMPILE = 3005; |
| TASK_GENERATE_BUILD_CONFIG = 3006; |
| TASK_MERGE_ASSETS = 3007; |
| TASK_GENERATE_RES_VALUES = 3008; |
| TASK_MERGE_RESOURCES = 3009; |
| TASK_MERGE_MANIFESTS = 3010; |
| TASK_PROCESS_ANDROID_RESOURCES = 3011; |
| TASK_JAVA_COMPILE = 3012; |
| TASK_NDK_COMPILE = 3013; |
| TASK_PRE_DEX = 3014; |
| TASK_DEX = 3015; |
| TASK_PACKAGE_SPLIT_RES = 3016; |
| TASK_PROCESS_RESOURCES = 3017; |
| TASK_VALIDATE_SIGNING_TASK = 3018; |
| TASK_PACKAGE_APPLICATION = 3019; |
| TASK_SPLIT_ZIP_ALIGN = 3020; |
| TASK_ZIP_ALIGN = 3021; |
| TASK_COPY = 3022; |
| TASK_LINT = 3023; |
| TASK_FILE_VERIFICATION = 3026; |
| TASK_EXTERNAL_NATIVE_BUILD_GENERATE_JSON_PROCESS_PER_ABI = 3027; |
| TASK_EXTERNAL_NATIVE_BUILD_GENERATE_JSON_PROCESS = 3028; |
| // Transform execution |
| TASK_TRANSFORM_PREPARATION = 3024; |
| TASK_TRANSFORM = 3025; |
| // AtomTaskManager per variant tasks. |
| ATOM_TASK_MANAGER_CREATE_MERGE_MANIFEST_TASK = 4000; |
| ATOM_TASK_MANAGER_CREATE_GENERATE_RES_VALUES_TASK = 4001; |
| ATOM_TASK_MANAGER_CREATE_CREATE_RENDERSCRIPT_TASK = 4002; |
| ATOM_TASK_MANAGER_CREATE_MERGE_RESOURCES_TASK = 4003; |
| ATOM_TASK_MANAGER_CREATE_MERGE_ASSETS_TASK = 4004; |
| ATOM_TASK_MANAGER_CREATE_BUILD_CONFIG_TASK = 4005; |
| ATOM_TASK_MANAGER_CREATE_PROCESS_RES_TASK = 4006; |
| ATOM_TASK_MANAGER_CREATE_AIDL_TASK = 4007; |
| ATOM_TASK_MANAGER_CREATE_SHADER_TASK = 4008; |
| ATOM_TASK_MANAGER_CREATE_NDK_TASK = 4009; |
| ATOM_TASK_MANAGER_CREATE_EXTERNAL_NATIVE_BUILD_TASK = 4010; |
| ATOM_TASK_MANAGER_CREATE_MERGE_JNILIBS_FOLDERS_TASK = 4011; |
| ATOM_TASK_MANAGER_CREATE_COMPILE_TASK = 4012; |
| ATOM_TASK_MANAGER_CREATE_BUNDLING_TASK = 4013; |
| ATOM_TASK_MANAGER_CREATE_LINT_TASK = 4014; |
| // InstantAppTaskManager per variant tasks. |
| INSTANTAPP_TASK_MANAGER_CREATE_MERGE_MANIFEST_TASK = 5000; |
| INSTANTAPP_TASK_MANAGER_CREATE_ATOM_PACKAGING_TASKS = 5001; |
| INSTANTAPP_TASK_MANAGER_CREATE_PROCESS_RES_TASK = 5002; |
| INSTANTAPP_TASK_MANAGER_CREATE_PACKAGING_TASK = 5003; |
| } |
| // Identifier for this span, created by sequentially allocating IDs to spans |
| // as they start. Used only for the parent-child relationship of spans, to |
| // show execution that is part of another span. |
| // Not stable or meaningful across builds. |
| optional int64 id = 1; |
| // For nested spans: the id for containing span. |
| // See GradleBuildProfileSpan.id. |
| optional int64 parent_id = 2; |
| // The start time of this event |
| optional int64 start_time_in_ms = 3; |
| // The duration of this event. May be zero. |
| optional int64 duration_in_ms = 4; |
| // The type of event recorded |
| optional .android_studio.GradleBuildProfileSpan.ExecutionType type = 5; |
| // More informations about the execution of TransformTasks. |
| // Only used when executionType is TASK_TRANSFORM_PREPARATION or |
| // TASK_TRANSFORM. |
| optional .android_studio.GradleTransformExecution transform = 6; |
| // More informations about the execution of Tasks. |
| // Only used when executionType is TASK_EXECUTION |
| optional .android_studio.GradleTaskExecution task = 9; |
| // Session id of the GradleBuildProject that this span is part of. |
| // The ID is not stable nor meaningful over multiple GradleBuildProfile. |
| // See GradleBuildProfile.id |
| optional int64 project = 7; |
| // Session id of the GradleBuildVariant that this span is part of. |
| // The ID is not stable nor meaningful over multiple GradleBuildProfile. |
| // See GradleBuildVariant.id |
| optional int64 variant = 8; |
| } |
| |
| message GradleTaskExecution { |
| enum Type { |
| UNKNOWN_TASK_TYPE = 0; |
| AIDL_COMPILE = 1; |
| ANDROID_JAR = 2; |
| ANDROID_JAVA_COMPILE = 3; |
| ANDROID_REPORT = 4; |
| ANDROID_UNIT_TEST = 5; |
| BUILD_EMULATOR = 6; |
| BUILD_INFO_LOADER = 7; |
| CHECK_MANIFEST = 8; |
| COMPATIBLE_SCREENS_MANIFEST = 9; |
| CREATE_MANIFEST_KEEP_LIST = 10; |
| DATA_BINDING_EXPORT_BUILD_INFO = 11; |
| DATA_BINDING_PROCESS_LAYOUTS = 12; |
| DEPENDENCY_REPORT = 13; |
| DEVICE_PROVIDER_INSTRUMENT_TEST = 14; |
| EXTERNAL_BUILD_ANCHOR = 15; |
| EXTERNAL_NATIVE_BUILD_JSON = 16; |
| EXTERNAL_NATIVE_BUILD = 17; |
| EXTRACT_ANNOTATIONS = 18; |
| EXTRACT_JAVA_RESOURCES = 19; |
| EXTRACT_PROGUARD_FILES = 20; |
| FAST_DEPLOY_RUNTIME_EXTRACTOR = 21; |
| FILTERED_JAR_COPY = 22; |
| GENERATE_APK_DATA = 23; |
| GENERATE_BUILD_CONFIG = 24; |
| GENERATE_INSTANT_RUN_APP_INFO = 25; |
| GENERATE_RES_VALUES = 26; |
| GENERATE_SPLIT_ABI_RES = 27; |
| GOOGLE_SERVICES = 28; |
| INCREMENTAL_SAFEGUARD = 29; |
| INSTALL_VARIANT = 30; |
| INSTANT_RUN_SPLIT_APK_BUILDER = 31; |
| INSTANT_RUN_WRAPPER = 32; |
| INVOKE_MANIFEST_MERGER = 33; |
| JACK_JACOCO_REPORT = 34; |
| JACOCO_REPORT = 35; |
| LINT = 36; |
| LINT_COMPILE = 37; |
| MERGE_FILE = 38; |
| MERGE_MANIFESTS = 39; |
| MERGE_RESOURCES = 40; |
| MERGE_SOURCE_SET_FOLDERS = 41; |
| MOCKABLE_ANDROID_JAR = 42; |
| NDK_COMPILE = 43; |
| NDK = 44; |
| PACKAGE_APPLICATION = 45; |
| PACKAGE_SPLIT_ABI = 46; |
| PACKAGE_SPLIT_RES = 47; |
| PRE_COLD_SWAP = 48; |
| PREPARE_DEPENDENCIES = 49; |
| PREPARE_LIBRARY = 50; |
| PROCESS_ANDROID_RESOURCES = 51; |
| PROCESS_MANIFEST = 52; |
| PROCESS_TEST_MANIFEST = 53; |
| RENDERSCRIPT_COMPILE = 54; |
| SHADER_COMPILE = 55; |
| SIGNING_REPORT = 56; |
| SINGLE_FILE_COPY = 57; |
| SOURCE_SETS = 58; |
| SPLIT_ZIP_ALIGN = 59; |
| STREAM_BASED = 60; |
| STRIP_DEBUG_SYMBOL = 61; |
| STRIP_DEPENDENCIES = 62; |
| TEST_MODULE_PRO_GUARD = 63; |
| TEST_SERVER = 64; |
| TRANSFORM = 65; |
| UNINSTALL = 66; |
| VALIDATE_SIGNING = 67; |
| ZIP_ALIGN = 68; |
| JAVA_COMPILE = 69; |
| BUILD_INFO_WRITER = 70; |
| BUNDLE_ATOM = 71; |
| CHECK_MANIFEST_IN_INSTANT_RUN_MODE = 72; |
| EXTERNAL_NATIVE_CLEAN = 73; |
| GENERATE_ATOM_METADATA = 74; |
| GENERATE_INSTANT_APP_METADATA = 75; |
| JAVA_PRE_COMPILE = 76; |
| MERGE_DEX_ATOM_RES_CLASS = 77; |
| PACKAGE_ATOM = 78; |
| PACKAGE_INSTANT_APP = 79; |
| PREPARE_ATOM = 80; |
| PROCESS_INSTANT_APP_RESOURCES = 81; |
| } |
| // The task implementing class. |
| // Custom tasks are recorded as UNKNOWN_TASK_TYPE. |
| optional .android_studio.GradleTaskExecution.Type type = 1; |
| // Whether the task did work (TaskState#getDidWork()) |
| // This is not necessarily the inverse of up_to_date: see |
| // https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/TaskState.html#getDidWork() |
| optional bool did_work = 2; |
| // Whether the task was skipped (TaskState#getSkipped()) |
| optional bool skipped = 3; |
| // Whether the task was up to date (TaskState#getUpToDate()) |
| optional bool up_to_date = 4; |
| // Whether the task failed |
| optional bool failed = 5; |
| } |
| |
| message GradleTransformExecution { |
| // The transform class. |
| enum Type { |
| UNKNOWN_TRANSFORM_TYPE = 0; |
| DEX = 1; |
| EXTRACT_JARS = 2; |
| INSTANT_RUN_DEX = 3; |
| INSTANT_RUN_SLICER = 4; |
| INSTANT_RUN = 5; |
| INSTANT_RUN_VERIFER = 6; |
| JACK_PRE_DEX = 7; |
| JACK = 8; |
| JACOCO = 9; |
| JAR_MERGING = 10; |
| LIBRARY_JAR = 11; |
| LIBRARY_JNI_LIBS = 12; |
| MERGE_JAVA_RESOURCES = 13; |
| MULTI_DEX = 14; |
| NEW_SHRINKER = 15; |
| NO_CHANGES_VERIFIER = 16; |
| PRO_GUARD = 17; |
| SHRINK_RESOURCES = 18; |
| DATA_BINDING_MERGE_ARTIFACTS = 19; |
| INSTANT_RUN_VERIFIER = 20; |
| STRIP_DEBUG_SYMBOL = 21; |
| } |
| // The transform implementing class. |
| // Custom transforms are recorded as UNKNOWN_TRANSFORM_TYPE. |
| optional .android_studio.GradleTransformExecution.Type type = 1; |
| // Whether the transform could be (in the case of TASK_TRANSFORM_PREPARATION) |
| // or was (in the case of TASK_TRANSFORM) incremental. |
| optional bool is_incremental = 2; |
| } |
| |
| message InstantRunStatus { |
| enum BuildMode { |
| UNKNOWN_BUILD_MODE = 0; |
| HOT_WARM = 1; |
| COLD = 2; |
| FULL = 3; |
| } |
| enum PatchingPolicy { |
| UNKNOWN_PATCHING_POLICY = 0; |
| // No Cold swap is possible |
| PRE_LOLLIPOP = 1; |
| // Cold swap done by shipping dex classes to the Instant Run runtime |
| MULTI_DEX = 2; |
| // Cold swap done by reinstalling APK splits. |
| MULTI_APK = 3; |
| } |
| enum VerifierStatus { |
| UNKNOWN_VERIFIER_STATUS = 0; |
| COMPATIBLE = 1; |
| // the verifier did not run successfully. |
| NOT_RUN = 2; |
| // InstantRun disabled on element like a method, class or package. |
| INSTANT_RUN_DISABLED = 3; |
| // Any inability to run the verifier on a file will be tagged as such |
| INSTANT_RUN_FAILURE = 4; |
| // A new class was added. |
| CLASS_ADDED = 5; |
| // changes in the hierarchy |
| PARENT_CLASS_CHANGED = 6; |
| IMPLEMENTED_INTERFACES_CHANGE = 7; |
| // class related changes. |
| CLASS_ANNOTATION_CHANGE = 8; |
| STATIC_INITIALIZER_CHANGE = 9; |
| // changes in constructors, |
| CONSTRUCTOR_SIGNATURE_CHANGE = 10; |
| // changes in method |
| METHOD_SIGNATURE_CHANGE = 11; |
| METHOD_ANNOTATION_CHANGE = 12; |
| METHOD_DELETED = 13; |
| METHOD_ADDED = 14; |
| // changes in fields. |
| FIELD_ADDED = 15; |
| FIELD_REMOVED = 16; |
| // change of field type or kind (static | instance) |
| FIELD_TYPE_CHANGE = 17; |
| R_CLASS_CHANGE = 18; |
| // reflection use |
| REFLECTION_USED = 19; |
| JAVA_RESOURCES_CHANGED = 20; |
| DEPENDENCY_CHANGED = 21; |
| MANIFEST_FILE_CHANGE = 22; |
| // the binary manifest file changed, probably due to references to resources which ID changed |
| // since last build. |
| BINARY_MANIFEST_FILE_CHANGE = 23; |
| COLD_SWAP_REQUESTED = 24; |
| FULL_BUILD_REQUESTED = 25; |
| INITIAL_BUILD = 26; |
| NO_CHANGES = 27; |
| CHANGE_IN_SERIALIZABLE_CLASS_WITHOUT_VERSION_UID = 28; |
| } |
| // The type of artifacts built in this invocation. |
| // e.g. COLD for when the changes cannot be hot-swapped, either due to the |
| // app not running on the users device or the changes cannot be hot swapped. |
| optional .android_studio.InstantRunStatus.BuildMode build_mode = 1; |
| // The type of deploy that the build can generate artifacts for. |
| optional .android_studio.InstantRunStatus.PatchingPolicy patching_policy = 2; |
| // The result of the verifier run, whether the users change can be hot-swapped |
| // or requires a cold swap or full build is determined by the verifier. |
| optional .android_studio.InstantRunStatus.VerifierStatus verifier_status = 3; |
| // The built artifacts stored in the build info. |
| // Artifacts that were built, but superseeded (e.g. a main APK contains |
| // resources, so the resources do not need to be reported separately) are |
| // not included. |
| repeated .android_studio.InstantRunArtifact artifact = 4; |
| } |
| |
| message InstantRunArtifact { |
| enum Type { |
| // Main APK file for 19, and 21 platforms when using |
| // PatchingPolicy.MULTI_DEX. |
| MAIN = 1; |
| // Main APK file when application is using PatchingPolicy.MULTI_DEX. |
| SPLIT_MAIN = 2; |
| // Reload dex file that can be used to patch application live. |
| RELOAD_DEX = 3; |
| // Restart.dex file that can be used for Dalvik to restart applications |
| // with minimum set of changes delivered. |
| RESTART_DEX = 4; |
| // Shard dex file that can be used to replace originally installed |
| // multi-dex shard. |
| DEX = 5; |
| // Pure split (code only) that can be installed individually on M+ devices. |
| SPLIT = 6; |
| // Resources: res.ap_ file |
| RESOURCES = 7; |
| } |
| optional .android_studio.InstantRunArtifact.Type type = 1; |
| } |
| |
| // Details about the LLDB Frontend process |
| message LLDBFrontendDetails { |
| // the value returned when the LLDB Frontend process exited. |
| optional int32 exit_code = 1; |
| } |
| |
| // Error details from the Firebase Assistant. |
| message FirebaseErrorDetails { |
| // The error message presented to the user upon Firebase errors. |
| optional string error_message = 1; |
| } |
| |
| // Details on the GPU Debugger tracing run |
| message GfxTracingDetails { |
| // total time the trace took |
| optional int64 total_time = 1; |
| // class name of the UI command selected to affect the tracing. |
| optional string command = 2; |
| // Error message when tracing fails. |
| optional string error_message = 3; |
| // A path describing the kind of details from the trace. This is a mix |
| // of class names (of our code) and random ids generated for the trace. |
| // e.g. 'Capture(7c6e72eebe2e6d76751b0328971e7fb29ceed82b).Atoms[6307].' + |
| // 'Resource<e1b2a028ce62a97b235172963ddee35f386c6940>.' + |
| // 'Thumbnail<RGBA,100x100>.As<RGBA>' |
| optional string trace_path = 4; |
| // the image format of the gpu image being traced. e.g. 'image/png' |
| optional string image_format = 5; |
| // the width of the image being traced. |
| optional int64 image_width = 6; |
| // the height of the image being traced. |
| optional int64 image_height = 7; |
| } |
| |
| // Details of an invocation of the TestRecorder to generate tests. |
| message TestRecorderDetails { |
| // The number of events in the test generated by the test recorder. |
| optional int64 event_count = 1; |
| // The number of assertions in the test generated by the test recorder. |
| optional int64 assertion_count = 2; |
| } |
| |
| // Reports aggregated information about how users invoke available UI actions. |
| message UIActionStats { |
| // The way an UI action was invocated by the user. |
| enum InvocationKind { |
| UNKNOWN_INVOCATION_KIND = 0; |
| TOOLBAR = 1; |
| MENU = 2; |
| KEYBOARD_SHORTCUT = 3; |
| MACRO = 4; |
| MOUSE = 5; |
| } |
| // java class name (our code, not customer) of the UI Action reported on |
| // e.g. 'com.android.build.instant_run.HotSwapBuildAction' |
| optional string action_class_name = 1; |
| // How often since the last report this action was invoked. |
| optional int64 invocations = 2; |
| // The way this action was invocated by the user. |
| optional .android_studio.UIActionStats.InvocationKind invocation_kind = 3; |
| } |
| |
| // Details about the machine this process is running on. |
| message MachineDetails { |
| // Amount of total memory available in megabytes. |
| optional int64 total_ram = 1; |
| // Amount of total disk available in megabytes. |
| optional int64 total_disk = 2; |
| // Information about the display screens on the machine (resolution etc..) |
| repeated .android_studio.DisplayDetails display = 3; |
| // Number of processors on the machine. |
| optional int32 available_processors = 4; |
| } |
| |
| // Details of a display screen. |
| message DisplayDetails { |
| // Width of the display screen in pixels. |
| optional int64 width = 1; |
| // Height of the display screen in pixels. |
| optional int64 height = 2; |
| // Densitiy of the pixels on the screen horiziontally. |
| optional int32 dots_per_inch_horizontal = 3; |
| // Densitiy of the pixels on the screen vertically. |
| optional int32 dots_per_inch_vertical = 4; |
| } |
| |
| // Stats on the current running java process. |
| message JavaProcessStats { |
| // Number of bytes of memory in use as heap memory. |
| optional int64 heap_memory_usage = 1; |
| // Number of bytes of memory in use as non heap memory. |
| optional int64 non_heap_memory_usage = 2; |
| // Current amount of java classes loaded. |
| optional int32 loaded_class_count = 3; |
| // Current amount of threads. |
| optional int32 thread_count = 4; |
| // Statistics about the garbage collectors used in this process. |
| repeated .android_studio.GarbageCollectionStats garbage_collection_stats = 5; |
| } |
| |
| // Statistics about the garbage collector. |
| message GarbageCollectionStats { |
| // Name of the garbage collector (e.g. 'ConcurrentMarkSweep') |
| optional string name = 1; |
| // Number of garbage collector invocations since last report. |
| optional int64 gc_collections = 2; |
| // Time spent garbage collecting since last report in milliseconds. |
| optional int64 gc_time = 3; |
| } |
| |
| // Details about the JVM used in this process. |
| message JvmDetails { |
| // Various garbage collectors that could be chosen through VM Options. |
| enum GarbageCollector { |
| UNSPECIFIED_GC = 0; |
| CONCURRENT_MARK_SWEEP_GC = 1; |
| GARBAGE_FIRST_GC = 2; |
| PARALLEL_GC = 3; |
| PARALLEL_OLD_GC = 4; |
| SERIAL_GC = 5; |
| } |
| // Name of the JVM (e.g. "OpenJDK 64-Bit Server by JetBrains s.r.o"). |
| optional string name = 1; |
| // Version of the JVM (e.g. "1.8.0_76-release-b198 amd") |
| optional string version = 2; |
| // Vendor of the JVM (e.g. "JetBrains s.r.o.") |
| optional string vendor = 3; |
| // VM Option specified to set minimum heap_size in bytes ("-Xms" flag). |
| optional int64 minimum_heap_size = 4; |
| // VM Option specified to set maximum heap_size in bytes ("-Xmx" flag). |
| optional int64 maximum_heap_size = 5; |
| // VM Option specified to set maximum permanent space size in bytes. |
| // ("-XX:MaxPermSize" flag) |
| optional int64 maximum_permanent_space_size = 6; |
| // VM Option specified to set maximum permanent space size in bytes. |
| // ("-XX:ReservedCodeCacheSize" flag) |
| optional int64 maximum_code_cache_size = 7; |
| // VM Option specified to set time soft referenced objects remain alive in ms. |
| // ("-XX:SoftRefLRUPolicyMSPerMB" flag) |
| optional int64 soft_reference_lru_policy = 8; |
| // Type of Garbage Collector to use (various VM Option flags). |
| optional .android_studio.JvmDetails.GarbageCollector garbage_collector = 9; |
| } |
| |
| // Stats on Studio's performance |
| message StudioPerformanceStats { |
| // Time for which the UI was blocked in milliseconds |
| optional int32 ui_freeze_time_ms = 1; |
| } |
| |
| |