By now, everyone that has an Android probably knows what an APK is. APK files are analogous to other software packages such as APPX in Microsoft Windows or Deb packages in Debian-based operating systems like Ubuntu. But other than the fact that an APK file is an app that you can install, what else do you know about an APK? What is the full form of APK and what does it stand for? Why do most Android package names start with ‘com’?
If you have ever lurked around in the Android/data folder on your Android device, you would’ve noticed a number of folders with the initials ‘com’. An Android Package Kit, or APK, is named according to the java naming convention since most of the OS uses the said programming language. These package names are always written in lower case letters to avoid name conflicts with java classes.
APK naming convention
In general, a package name begins with the top-level domain name of the organization and then the organization’s domain and then any subdomains, listed in reverse order. The organization can then choose a specific name for its package. Subsequent components of the package name vary according to an organization’s own internal naming conventions.
Companies use their reversed internet domain as the application package name initials. For example, com.droidviews.mypackage would be the name for a package called mypackage created by someone at droidviews.com. If the app is developed by an employee from India, or the app is developed for the said region, we can choose to name it as com.droidviews.india.mypackage.
Since .com is the most popular domain name, we find most of the packages with the same initials. The reason for the reversed naming convention has something do with the layout on the storage media. This creates a path hierarchy if you consider each ‘.’ as a path separator. Thus, all applications from a publisher would sit together in the path hierarchy. Take some Android apps from Adobe for example. Packages from Adobe would be of the form:
- com.adobe.reader (Adobe Reader)
- com.adobe.photoshop (Adobe Photoshop)
- com.adobe.ideas (Adobe Ideas)
These can then be internally mapped (respectively) to:
As mentioned, this hierarchical package naming convention comes from the java programming language. It may not be of any consequence to the end user, but it can prove quite helpful for developers.
Editor’s pick: How to Setup Authy for Two-Factor Authentication on Android