{
  "id": "android_package_name",
  "kind": "datatype",
  "status": "draft",
  "name": "Android application ID (package name)",
  "doc": "Identifier of an Android app on the device and in Google Play, set by applicationId in the Gradle build and stored as the package attribute of the merged AndroidManifest.xml; Android APIs such as Context.getPackageName() call it the package name. It looks like a Java package name in reverse-domain order. Android requires at least two segments separated by dots, each segment starting with a letter, and only the characters a-z, A-Z, 0-9 and underscore. Google Play treats an upload with a different application ID as a different app. VirusTotal reports it as the androguard Package of an APK. The format also matches many domain names and Java class names, so use the field name or context.",
  "is_pii": false,
  "categories": [
    "software"
  ],
  "langs": [
    "common"
  ],
  "classification": "identifier",
  "regexp": "^[A-Za-z][A-Za-z0-9_]*(?:\\.[A-Za-z][A-Za-z0-9_]*)+$",
  "examples": [
    {
      "value": "com.example.myapp",
      "description": "Example application ID in the Android developer documentation",
      "valid": true
    },
    {
      "value": "ru.oneme.app",
      "description": "Package name of an APK in its VirusTotal report",
      "valid": true
    },
    {
      "value": "myapp",
      "description": "Only one segment",
      "valid": false
    },
    {
      "value": "com.example.2app",
      "description": "Segment starts with a digit",
      "valid": false
    },
    {
      "value": "com.example.my-app",
      "description": "Hyphen is not allowed",
      "valid": false
    }
  ],
  "mappings": {
    "wikidata": "P3418"
  },
  "links": [
    {
      "type": "doc",
      "url": "https://developer.android.com/build/configure-app-module#set-application-id"
    },
    {
      "type": "wikidata",
      "url": "https://www.wikidata.org/wiki/Property:P3418"
    }
  ],
  "quality": {
    "score": 85,
    "missing": [
      "translation",
      "detector coverage"
    ]
  },
  "source": {
    "path": "data/datatypes/any/software/android_package_name.yaml",
    "url": "https://github.com/apicrafter/metacrafter-registry/blob/main/data/datatypes/any/software/android_package_name.yaml",
    "edit_url": "https://github.com/apicrafter/metacrafter-registry/edit/main/data/datatypes/any/software/android_package_name.yaml"
  },
  "urls": {
    "html": "https://registry.apicrafter.io/datatype/android_package_name",
    "json": "https://registry.apicrafter.io/api/v1/datatypes/android_package_name.json"
  }
}