I wanted to know if I have to add payloads or anything else to apk file if I want others to use it via the apk file ?
An APK file is an archive that usually contains the following files and directories:
META-INF directory:
MANIFEST.MF: the Manifest file
CERT.RSA: The certificate of the application.
CERT.SF: The list of resources and a SHA-1 digest of the corresponding lines in the MANIFEST.MF file; for example:
Signature-Version: 1.0
Created-By: 1.0 (Android)
SHA1-Digest-Manifest: wxqnEAI0UA5nO5QJ8CGMwjkGGWE=
...
Name: res/layout/exchange_component_back_bottom.xml
SHA1-Digest: eACjMjESj7Zkf0cBFTZ0nqWrt7w=
Name: res/drawable-hdpi/icon.png
SHA1-Digest: DGEqylP8W0n0iV/ZzBx3MW0WGCA=
lib: the directory containing the compiled code that is platform dependent, the directory is split into more directories within it:
armeabi: compiled code for all ARM based processors only
armeabi-v7a: compiled code for all ARMv7 and above based processors only
arm64-v8a: compiled code for all ARMv8 arm64 and above based processors only[8]
x86: compiled code for x86 processors only
x86_64: compiled code for x86 64 processors only
mips: compiled code for MIPS processors only
res: the directory containing resources not compiled into resources.arsc (see below).
assets: a directory containing applications assets, which can be retrieved by AssetManager. AndroidManifest.xml: An additional Android manifest file, describing the name, version, access rights, referenced library files for the application. This file may be in Android binary XML that can be converted into human-readable plaintext XML with tools such as AXMLPrinter2, apktool, or Androguard.
classes.dex: The classes compiled in the dex file format understandable by the Dalvik virtual machine and by the Android Runtime.
resources.arsc: a file containing precompiled resources, such as binary XML for example.
So, APK suppose to have all binaries and resources to use your app.