Table 1 Structure of Android APK file.

From: AndroDex: Android Dex Images of Obfuscated Malware

Files and Folders

Description

Manifest (AndroidManifext.xml)

A required configuration file contains Key information about the application. For example, the application’s package name, its components i.e., activities, resources, permissions requires to run and to access this application’s information by other apps, compatibility features i.e., minimum Android version and supported devices16.

Delvik Bytecode (classes.dex)

The only runnable file on the Dalvik virtual machine, which contains all the operating instructions of the application and runtime data. APK files may contain more than one classes.dex file that will be numbered as classes2.dex, classes3.dex, and so forth16.

Resources (res/)

stores pictures, symbols, User Interface (UI) formats and all the resource files stored in the folder hierarchy required by the APK and to be used by the developer16

Native Libraries (libs/)

The library folder that contains native libraries (machine code)16

Assets (assets/)

store static files that need to be packaged into APK16.

Signatures (META-INF)

Folder that contains verification information and store application signatures and certificates to ensure the integrity of APK packages and system security. This means that any change in the APK file must require resigning the APK, otherwise, the OS will reject the installation16.

Compiled Resources (resources.arsc)

the compiled binary resource file that contains information that links the code (classes.dex) to the resources (res)16.