Android follows the package and class namespace conventions defined by the Java programming language. To ensure compatibility with third-party applications, device implementers MUST NOT make any prohibited modifications (see below) to these package namespaces:
java.*
javax.*
sun.*
android.*
androidx.*
com.android.*
That is, they:
Device implementers MAY modify the underlying implementation of the APIs, but such modifications:
However, device implementers MAY add custom APIs outside the standard Android namespace, but the custom APIs:
com.google.*
or similar namespace: only Google may do so. Similarly, Google MUST NOT add APIs to other companies' namespaces.If a device implementer proposes to improve one of the package namespaces above (such as by adding useful new functionality to an existing API, or adding a new API), the implementer SHOULD visit source.android.com and begin the process for contributing changes and code, according to the information on that site.
Note that the restrictions above correspond to standard conventions for naming APIs in the Java programming language; this section simply aims to reinforce those conventions and make them binding through inclusion in this Compatibility Definition.