android官方对编译属性的解释
https://source.android.com/compatibility/12/android-12-cdd#32_soft_api_compatibility
3.2.2. Build Parameters
The Android APIs include a number of constants on the android.os.Build class that are intended to describe the current device.
- [C-0-1] To provide consistent, meaningful values across device implementations, the table below includes additional restrictions on the formats of these values to which device implementations MUST conform.
Parameter | Details |
---|---|
VERSION.RELEASE | The version of the currently-executing Android system, in human-readable format. This field MUST have one of the string values defined in 12 . |
VERSION.SDK | The version of the currently-executing Android system, in a format accessible to third-party application code. For Android 12, this field MUST have the integer value 12_INT. |
VERSION.SDK_INT | The version of the currently-executing Android system, in a format accessible to third-party application code. For Android 12, this field MUST have the integer value 12_INT. |
VERSION.INCREMENTAL | A value chosen by the device implementer designating the specific build of the currently-executing Android system, in human-readable format. This value MUST NOT be reused for different builds made available to end users. A typical use of this field is to indicate which build number or source-control change identifier was used to generate the build. The value of this field MUST be encodable as printable 7-bit ASCII and match the regular expression “^[^ :\/~]+$”. |
BOARD | A value chosen by the device implementer identifying the specific internal hardware used by the device, in human-readable format. A possible use of this field is to indicate the specific revision of the board powering the device. The value of this field MUST be encodable as 7-bit ASCII and match the regular expression “^[a-zA-Z0-9_-]+$”. |
BRAND | A value reflecting the brand name associated with the device as known to the end users. MUST be in human-readable format and SHOULD represent the manufacturer of the device or the company brand under which the device is marketed. The value of this field MUST be encodable as 7-bit ASCII and match the regular expression “^[a-zA-Z0-9_-]+$”. |
SUPPORTED_ABIS | The name of the instruction set (CPU type + ABI convention) of native code. See section 3.3. Native API Compatibility . |
SUPPORTED_32_BIT_ABIS | The name of the instruction set (CPU type + ABI convention) of native code. See section 3.3. Native API Compatibility . |
SUPPORTED_64_BIT_ABIS | The name of the second instruction set (CPU type + ABI convention) of native code. See section 3.3. Native API Compatibility . |
CPU_ABI | The name of the instruction set (CPU type + ABI convention) of native code. See section 3.3. Native API Compatibility . |
CPU_ABI2 | The name of the second instruction set (CPU type + ABI convention) of native code. See section 3.3. Native API Compatibility . |
DEVICE | A value chosen by the device implementer containing the development name or code name identifying the configuration of the hardware features and industrial design of the device. The value of this field MUST be encodable as 7-bit ASCII and match the regular expression “^[a-zA-Z0-9_-]+$”. This device name MUST NOT change during the lifetime of the product. |
FINGERPRINT | A string that uniquely identifies this build. It SHOULD be reasonably human-readable. It MUST follow this template:
$(BRAND)/$(PRODUCT)/ For example: acme/myproduct/ The fingerprint MUST NOT include whitespace characters. The value of this field MUST be encodable as 7-bit ASCII. |
HARDWARE | The name of the hardware (from the kernel command line or /proc). It SHOULD be reasonably human-readable. The value of this field MUST be encodable as 7-bit ASCII and match the regular expression “^[a-zA-Z0-9_-]+$”. |
HOST | A string that uniquely identifies the host the build was built on, in human-readable format. There are no requirements on the specific format of this field, except that it MUST NOT be null or the empty string (""). |
ID | An identifier chosen by the device implementer to refer to a specific release, in human-readable format. This field can be the same as android.os.Build.VERSION.INCREMENTAL, but SHOULD be a value sufficiently meaningful for end users to distinguish between software builds. The value of this field MUST be encodable as 7-bit ASCII and match the regular expression “^[a-zA-Z0-9._-]+$”. |
MANUFACTURER | The trade name of the Original Equipment Manufacturer (OEM) of the product. There are no requirements on the specific format of this field, except that it MUST NOT be null or the empty string (""). This field MUST NOT change during the lifetime of the product. |
SOC_MANUFACTURER | The trade of name of the manufacturer of the primary system on chip (SOC) used in the product. Devices with the same SOC manufacturer should use the same constant value. Please ask the SOC manufacturer for the correct constant to use. The value of this field MUST be encodable as 7-bit ASCII, MUST match the regular expression “^([0-9A-Za-z ]+)”, MUST NOT start or end with whitespace, and MUST NOT be equal to “unknown”. This field MUST NOT change during the lifetime of the product. |
SOC_MODEL | The model name of the primary system on a chip (SOC) used in the product. Devices with the same SOC model should use the same constant value. Please ask the SOC manufacturer for the correct constant to use. The value of this field MUST be encodable as 7-bit ASCII and match the regular expression “^([0-9A-Za-z ._/+-]+)$”, MUST NOT start or end with whitespace, and MUST NOT be equal to “unknown”. This field MUST NOT change during the lifetime of the product. |
MODEL | A value chosen by the device implementer containing the name of the device as known to the end user. This SHOULD be the same name under which the device is marketed and sold to end users. There are no requirements on the specific format of this field, except that it MUST NOT be null or the empty string (""). This field MUST NOT change during the lifetime of the product. |
PRODUCT | A value chosen by the device implementer containing the development name or code name of the specific product (SKU) that MUST be unique within the same brand. MUST be human-readable, but is not necessarily intended for view by end users. The value of this field MUST be encodable as 7-bit ASCII and match the regular expression “^[a-zA-Z0-9_-]+$”. This product name MUST NOT change during the lifetime of the product. |
ODM_SKU | An optional value chosen by the device implementer that contains SKU (Stock Keeping Unit) used to track specific configurations of the device, for example, any peripherals included with the device when sold. The value of this field MUST be encodable as 7-bit ASCII and match the regular expression “[0-9A-Za-z.,_-])" |
SERIAL | MUST return "UNKNOWN". |
TAGS | A comma-separated list of tags chosen by the device implementer that further distinguishes the build. The tags MUST be encodable as 7-bit ASCII and match the regular expression “^[a-zA-Z0-9._-]+” and MUST have one of the values corresponding to the three typical Android platform signing configurations: release-keys, dev-keys, and test-keys. |
TIME | A value representing the timestamp of when the build occurred. |
TYPE | A value chosen by the device implementer specifying the runtime configuration of the build. This field MUST have one of the values corresponding to the three typical Android runtime configurations: user, userdebug, or eng. |
USER | A name or user ID of the user (or automated user) that generated the build. There are no requirements on the specific format of this field, except that it MUST NOT be null or the empty string (""). |
SECURITY_PATCH | A value indicating the security patch level of a build. It MUST signify that the build is not in any way vulnerable to any of the issues described up through the designated Android Public Security Bulletin. It MUST be in the format [YYYY-MM-DD], matching a defined string documented in the Android Public Security Bulletin or in the Android Security Advisory , for example "2015-11-01". |
BASE_OS | A value representing the FINGERPRINT parameter of the build that is otherwise identical to this build except for the patches provided in the Android Public Security Bulletin. It MUST report the correct value and if such a build does not exist, report an empty string (""). |
BOOTLOADER | A value chosen by the device implementer identifying the specific internal bootloader version used in the device, in human-readable format. The value of this field MUST be encodable as 7-bit ASCII and match the regular expression “^[a-zA-Z0-9._-]+$”. |
getRadioVersion() | MUST (be or return) a value chosen by the device implementer identifying the specific internal radio/modem version used in the device, in human-readable format. If a device does not have any internal radio/modem it MUST return NULL. The value of this field MUST be encodable as 7-bit ASCII and match the regular expression “^[a-zA-Z0-9._-,]+$”. |
getSerial() | MUST (be or return) a hardware serial number, which MUST be available and unique across devices with the same MODEL and MANUFACTURER. The value of this field MUST be encodable as 7-bit ASCII and match the regular expression “^[a-zA-Z0-9._-,]+$”. |