So there are tools out there to convert to and from a human readable representation. The most common human readable format is known as Smali. We can say that Smali acting like assembly language.
You can convert ("disassembler") dex to smali using baksmali tool
Example
int x =42//java
13 00 2A 00 //dex file contains this hex sequence
const/16 v0, 42 //smali
Apktool
Apktool is a tool for reverse engineering Android apps. It can decode (and disassemble) resources to nearly original form and rebuild them after making some modifications. (and other stuff)
apktool d -o App/ <app_name>.apk
In this way you can read .smali code (so you don't need baksmali), AndroidManifest.xml, etc.
(NOTE: even if you can extract apk like it was a zip, you can't read file such as AndroidManifest.xml because it's compiled...)
Jadx
Decompile to (near) source code. (Dex to Java).
jadx -d App <app_name>.apk
jadx-gui
decode AndroidManifest.xml and other resources from resources.arsc