Question: What does AAPT (Android Asset Packaging Tool) mean? How does it work?

Can I ship the `.so` file of one application in the APK file of another application using AAPT?

Answer: 
`aapt` is about Android **resources** like `.xml` etc

> 
> AAPT stands for Android Asset Packaging Tool. The Android Asset Packaging Tool (aapt) takes your application resource files, such as the AndroidManifest.xml file and the XML files for your Activities, and compiles them.This is a great tool which help you to view, create, and update your APKs (as well as zip and jar files). It can also compile resources into binary assets. It is the base builder for Android aplications. This tool is a piece of the SDK (and assemble framework) and permits you to see, make, and redesign Zip-perfect chronicles (zip, jolt, apk)
> 
> 
> 

You can find it

```
..\android-sdk\build-tools\<buildToolsVersion>

```

1. `aapt package`, `aapt add` - Building Android Application Bundles (APKs)
2. `aapt dump` - Dumping information from an APK file via:

* read a VersionCode

```
aapt dump badging <name>.apk

```
* Check Your Permissions

```
aapt dump permissions <name>.apk

```

Also `aapt` take care of resources in ProGuard process[[About]](https://stackoverflow.com/a/59285427/4770877)

Read more [here](https://www.anexinet.com/blog/android-what-is-aapt/), [here](https://spin.atomicobject.com/2011/08/22/building-android-application-bundles-apks-by-hand/), [here](https://crushingcode.nisrulz.com/whats-in-the-apk/)
When your application is compiled, AAPT generates the R class, which contains resource IDs for all the resources in your `res/` directory. For each type of resource, there is an R subclass (for example, R.drawable for all drawable resources), and for each resource of that type, there is a static integer (for example, R.drawable.icon). This integer is the resource ID that you can use to retrieve your resource. 

SOURCE: <https://developer.android.com/guide/topics/resources/accessing-resources.html> (copy/pasted)