APK · Android package
Open an APK file online
An APK is a ZIP archive with a fixed layout. Drop one in and browse everything Android packs inside it — without installing the app, and without the file leaving your device.
Select any .apk and it opens the same way a ZIP does. The file is read in this browser tab; no copy is sent anywhere.
Drop a ZIP file here
Supports .zip, .jar, .apk, .epub, .docx, .xlsx and other ZIP containers
Open a ZIP from a URL
Paste a direct link to a .zip file and open it without downloading it first.
You will be asked to sign in to Google. Only the file you pick is shared with this page.
Drop files or folders here
Or choose them from your device. They are zipped in your browser and never uploaded.
Files to include
Encrypted with AES-256. Anyone opening the archive will need this password, and it cannot be recovered if you lose it.
This archive is password-protected.
0
Files
—
Uncompressed
—
Archive size
—
Saved
Select a file to preview it. Images, text, code, PDFs, audio and video open here — and a ZIP inside this ZIP can be opened in place.
What Android puts inside an APK
Every APK carries the same handful of parts. Some are plain text you can read on sight, most are compiled formats that open but need a decoder to make sense of.
| Path | What it holds | Reads as |
|---|---|---|
AndroidManifest.xml | Permissions, activities, services, and the minimum Android version the app will run on. | compiled |
classes.dex | The app's compiled Java and Kotlin, as Dalvik bytecode. Large apps split this across classes2.dex, classes3.dex and so on. | compiled |
resources.arsc | The compiled resource table — every string, colour and dimension, for every locale the app ships. | compiled |
res/ | Layouts, drawables and icons. PNG and WebP files here preview directly; the XML layouts beside them are compiled. | previews |
assets/ | Files the developer bundled untouched — fonts, ML models, JSON config, sometimes an entire web app. | readable |
lib/<abi>/ | Native .so libraries, one folder per CPU architecture: arm64-v8a, armeabi-v7a, x86_64. | compiled |
META-INF/ | The signing block — MANIFEST.MF plus the certificate and signature files that establish who built this package. | readable |
AndroidManifest.xml is the one that surprises people. Inside an APK it is stored as Android Binary XML, not the readable file you see in a project's source tree. It will open and extract here, but it reads as binary until you run it through a decoder such as apktool.
Why an APK opens like a ZIP
An Android package is a ZIP file with rules about what goes where. The format was chosen precisely because it was already everywhere — every platform could already produce and read one, and Android could add its own conventions on top rather than inventing a container from scratch.
That inheritance is why no special tooling is needed to look inside. A ZIP reader that follows the spec — this one uses zip.js — walks an APK's central directory exactly as it walks any other archive. Renaming the file to .zip is a well-known trick, and it is not even necessary here: the viewer checks the ZIP magic bytes rather than trusting the extension.
What you can read, and what you can't
It is worth being precise about this, because tools in this category tend to imply more than they deliver. You can browse the complete file tree, see every entry's compressed and uncompressed size, preview any image under res/, read anything plain-text under assets/, and extract any individual file.
You cannot read the app's source code. classes.dex is compiled bytecode, and turning it back into Java is a separate job for a decompiler such as jadx. AndroidManifest.xml and resources.arsc are compiled too. This page shows you the structure and hands you the bytes; it does not pretend to decompile them.
Looking at an APK before you install it
Sideloading an APK from outside the Play Store means trusting whoever built it. Opening the package first tells you a few useful things cheaply: which native architectures it targets, roughly how much of its size is code versus assets, whether META-INF/ holds a real signature block, and what has been bundled under assets/.
Reading an archive is not the same as running what is inside it. Nothing here executes — the viewer parses file entries and never installs anything. For the sharper question of whether an archive is actively hostile, see checking a ZIP before you extract it, which covers the path-traversal and executable flags this viewer raises.
Questions about APK files
How do I open an APK file without installing it?
Select the APK above. Because an APK is a ZIP archive, it opens as a browsable file tree in this tab — you see the manifest, the DEX bytecode, resources and native libraries without Android ever being involved. Nothing is installed, executed, or uploaded.
What is inside an APK file?
Seven things, near enough always: AndroidManifest.xml for permissions and components, one or more classes.dex files of compiled code, resources.arsc, a res/ folder of layouts and images, an assets/ folder of raw bundled files, lib/ for native libraries, and META-INF/ holding the signature.
Why is AndroidManifest.xml unreadable?
Because inside a built APK it is not XML text. Android compiles it to a binary format (AXML) to make parsing fast on device. You can extract the file here, but reading it as markup needs a decoder such as apktool or aapt2. The readable version only exists in the app's source tree.
Can I open an APK on my phone?
Yes. The viewer runs in mobile browsers the same way it runs on desktop, so you can inspect an APK on the device without granting install permission to anything. Very large packages are limited by available memory rather than by any cap we impose.
Is it safe to open an APK here?
The file is read by JavaScript inside your own browser tab and is never transmitted, so no server holds a copy. Opening is also inert — the viewer parses ZIP entries and never executes code. The risk with an APK comes at install time, which this page does not do.