APK Maker: turn your HTML app or game into an Android APK
Add your app or game files, get a ready-to-build Android project. Signed release APK, Android 14 ready, plays offline. Pick a folder, files or a ZIP with your index.html, JS, CSS and assets. Everything stays in your browser.
- Folder, files or ZIP upload
- Works offline
- Fullscreen mode
- Nothing uploaded to ToolDeck
Last updated:
1. Your app or game files
Add everything your app or game needs: index.html, JS, CSS, images, audio. Pick a folder, pick files, or pick one ZIP. The file named index.html is the start page.
What is an APK maker for apps and games?
In short: an APK maker packs your HTML app or game (index.html, JavaScript, CSS, images and audio) into an Android app shell and outputs an installable APK file. The result opens your project full screen, with its own name and launcher icon, and installs like any other app.
Unlike a website wrapper, your files live inside the app. That means it starts fast and works with no internet connection. The trade-off is that updates need a new APK, and a WebView app is not fully native, so heavy 3D games may run slower than an engine export. For web tools, dashboards, puzzle, arcade, casual and canvas games, it is exactly the right level of effort.
ToolDeck’s version generates the project locally in your browser, so your files are never sent to us. It is also built to install cleanly: a modern target SDK, a proper release signature and minimal permissions, which avoids the most common causes of the "App not installed" error.
How it works
Three steps, no coding. Most people have a signed APK on their phone about ten minutes after they start.
- 1
Add your app or game files
Choose your project folder, files or a ZIP with index.html, JS, CSS, images and audio. Add the app name and an icon.
- 2
Download the project ZIP
The tool builds a complete Android project in your browser with your files inside it, plus a GitHub Actions workflow.
- 3
Build the APK for free
Push the folder to a private GitHub repository and run the workflow. Download the signed APK and install it.
What makes this APK maker different
Your app runs offline
Your files are packed inside the APK and served locally, so it starts instantly and works with no internet connection.
Add files your way
Pick a whole project folder, a handful of files, or a single ZIP. The tool finds your index.html and sets it as the start page automatically.
Built for apps and games
Fullscreen mode, keep-screen-on, orientation lock, audio without a tap, saved progress through localStorage and double-back-to-exit.
Catches mistakes early
The tool checks your index.html for missing scripts, styles and images, wrong file names and paths Android would ignore, before you build.
Clean and readable
HTTPS-only networking, no obfuscation and no hidden ad or tracking SDKs. The app is a plain WebView project that you own and can inspect.
Private by design
Your files and icon are processed in your browser. ToolDeck never receives your files. The build runs in your own GitHub account.
ToolDeck vs other ways to turn HTML into an APK
There are four common routes from HTML to an Android app. This table compares them on what decides whether an APK installs, who controls it, and what it costs.
| Feature | ToolDeck APK Maker | Typical online APK generators | Game engine export | Manual (Android Studio) |
|---|---|---|---|---|
| Where your files are processed | In your browser. The build runs in your own GitHub | On the provider’s servers (your files are uploaded) | On your computer or a cloud service | On your computer |
| Account needed | None for ToolDeck (a free GitHub account for the build) | Often required | Depends on the engine | None (Android Studio install) |
| Cost | Free | Free tier with limits, or paid | Free to paid | Free |
| Works offline | Yes, files are inside the APK | Varies. Some only wrap a URL | Yes | Yes, if you bundle files |
| Signed release APK | Yes, signed with a release key in your workflow | Varies. Some give unsigned or debug files | You set up signing | You set up signing yourself |
| "App not installed" risk | Low: SDK 34 target and release signing | Higher with debug-signed or old-SDK builds | Low if set up well | Depends on your setup |
| Branding or watermark | None | Sometimes (splash screen, badge or ads) | None | None |
| Ad or tracking SDKs | None | Some add ad or analytics SDKs | Depends on plugins | None unless you add them |
| Time to first APK | About 10 minutes | A few minutes | Hours the first time | Hours the first time |
| Skill needed | None. Follow 3 steps | None | Engine knowledge | Basic Android development |
The other columns describe common patterns across providers, not any single product. Features, limits and pricing vary, so check a provider’s current terms before you choose.
Which route should you pick? Choose ToolDeck if you have a finished HTML app or game and want a free, clean APK that you own. Choose an engine export if your project needs native performance or plugins. Choose Android Studio if you plan to write custom native code.
Who an HTML to APK maker is for
HTML, CSS and JavaScript apps
Turn a finished web app, tool, calculator or dashboard into an installable Android app with its own icon and name.
HTML5 and JavaScript games
Turn a finished browser game into an installable Android app with fullscreen play and saved progress.
Phaser, Three.js and canvas games
Anything that runs in a mobile browser from an index.html file can be packed, including canvas, WebGL and audio.
Game jam and hackathon entries
Share your entry as an APK so friends and judges install it in one tap and use it offline.
Educational apps and quizzes
Package learning tools, quizzes and puzzles so they open from the home screen without a browser.
Portfolios and demos
Hand a client or publisher a working Android build of your project, signed and ready to test.
Testing and prototyping
Check how your project behaves in a real Android WebView before investing in a fully native version.
Prepare your files: a quick checklist
- An app or game that starts from a file named exactly index.html (lowercase). Test it first by opening it in your phone browser.
- Relative paths for every file, for example ./app.js or assets/hero.png. Paths that start with "/" will not work inside the app.
- File names that match exactly, including capital letters. Android is case-sensitive, so Hero.png and hero.png are different files.
- No folders that begin with "_" and no files that begin with ".". Android skips them when it packs the app.
- A square logo, ideally 512 × 512 px PNG. If you do not have one, the tool creates a letter icon for you.
- A free GitHub account (private repositories are fine) for the cloud build, or Android Studio if you prefer to build locally.
Technical specifications
| Target SDK | Android 14 (SDK 34) |
|---|---|
| Minimum Android version | Android 7.0 and up |
| Output | Signed release APK (an AAB can be built with gradle bundleRelease) |
| Local loading | Files stored in app assets and served over a local HTTPS address using the AndroidX WebViewAssetLoader |
| Input | A project folder, individual files or a ZIP. index.html is the start page |
| Permissions | INTERNET only |
| App features | Fullscreen, keep screen on, orientation lock, audio autoplay, localStorage, back button handling |
| Icons | All five Android launcher icon densities, center-cropped from one upload |
| Customisation | App name, package name, version, theme color and screen orientation |
| Build method | GitHub Actions workflow (included) or Android Studio / Gradle |
| Data handling | Project generated client-side in your browser. Nothing is sent to ToolDeck |
| Price | Free |
Troubleshooting common problems
Most problems come down to file names, file paths or signing keys. Find your symptom below.
| Symptom | Likely cause | Fix |
|---|---|---|
| No index.html found | The start file is missing or named differently, such as Index.html or main.html. | Rename the start page to index.html (all lowercase) and add your files again. |
| White or blank screen in the app | A script or style file is missing, or a path starts with "/". | Read the yellow warnings in the tool, use relative paths like ./app.js and match file name capitals exactly. |
| Works in browser but not in the app | The browser forgives wrong capitals or file names, Android does not. | Check that every file name in your code matches the real file name, including .css versus .css.css. |
| Images or sounds missing | The files sit in a folder starting with "_" or are named with a leading dot. | Rename those folders and files, for example _assets to assets. |
| "App not installed" when updating | The new APK is signed with a different key than the installed copy. | Uninstall the old version and install the new APK. Keep the same keystore for future builds. |
| "App not installed" on first install | Package-name clash, a damaged download or not enough storage. | Change the package name, download the APK again, free up space and allow installs from your file manager or browser. |
| Play Protect warning | Apps installed outside the Play Store from an unknown developer can trigger a prompt. | Tap More details, then Install anyway. Publishing on Google Play removes the prompt for everyone. |
| GitHub build fails | The ZIP was uploaded inside an extra folder, or Actions is not enabled. | Upload the project root (the folder with app and settings.gradle.kts), enable Actions, then run "Build signed APK". |
Free tools that make your app better
These ToolDeck tools run in your browser too. Use them to prepare your icon and share your finished APK.
Prepare your app icon
Get a clean, square logo so the launcher icon looks sharp on every phone.
- Image ResizerResize photos to exact pixel or millimetre sizes and keep aspect ratio.
- Aspect Ratio CropperCrop images to any aspect ratio: 1:1, 4:5, 9:16, 16:9, or freeform.
- Background RemoverRemove the background from any photo automatically, right in your browser.
- Image ConverterConvert 18 formats: JPG, PNG, WebP, AVIF, HEIC, GIF, PDF, SVG and more.
- Image CompressorShrink JPG, PNG and WebP photos to a target size like 50KB or 100KB.
Share and verify your APK
Send the finished app to testers and prove the file has not been changed.
Have a live website instead?
Wrap any HTTPS website into an Android app.
Browse every tool on the ToolDeck home page.
Questions people ask
What is an APK maker for apps and games?
It packs your HTML, CSS, JavaScript and asset files into an Android app shell (a WebView) and produces an APK file you can install on a phone. The app opens your project full screen with its own icon and name.
Which apps and games work?
Anything that runs in a mobile browser from an index.html file: plain HTML and JavaScript apps, canvas and WebGL games, Phaser, Three.js, Construct or other HTML5 exports. Put all files inside one folder or ZIP.
Does it work offline?
Yes. Your files are stored inside the APK, so it loads without internet. Online features such as leaderboards still need a connection.
What should my folder look like?
Put index.html at the top of the folder with your JS, CSS, images and audio beside it or in sub-folders. Use relative paths like ./app.js. The tool warns you about missing files before you build.
Can I upload a ZIP of my project?
Yes. Choose one ZIP file and the tool unpacks it in your browser. If the files sit inside an extra folder, the tool finds index.html and uses its folder as the app root.
Is saved data kept?
Yes. localStorage and sessionStorage are enabled, so saved scores and progress stay on the device between sessions.
Why do other APKs say "App not installed"?
Common causes are an unsigned or debug-only APK, an app targeting a very old Android SDK, a package-name clash, or installing a build signed with a new key over an older version. This project avoids them. If you still see the error, uninstall any older copy first.
How do I update my app later?
Replace the files in app/src/main/assets/www in your GitHub repository, raise versionCode in app/build.gradle.kts and run the workflow again. Keep the same signing key so the update installs over the old version.
Can I publish it on Google Play?
The project builds a signed APK, and you can build an AAB with gradle bundleRelease for Play. Google Play can reject apps that add little beyond a wrapped web page, so check the current Play policies for your game.
Can I show ads inside the app?
Ad networks have separate policies for ads shown inside app WebViews. Check the current Google AdSense and AdMob policies before you rely on ads. The generated project itself contains no ad SDKs.
Is anything uploaded to ToolDeck?
No. The project files are generated in your browser. The build step happens in your own GitHub account or in Android Studio on your computer.
Can I make an iPhone app too?
No. This tool creates Android APK files only. Apple apps use a different packaging and publishing process.
Do I need to know Android or code?
No. Add your files, download the ZIP, upload it to a private GitHub repository, open the Actions tab and run "Build signed APK". About three minutes later you can download the APK.
Is it free?
Yes. The tool is free, and GitHub Actions has a free tier for private repositories that covers many builds.
Your project stays with you
The Android project is generated in your browser and downloaded as a ZIP. ToolDeck does not receive your files, icon or settings. The final build runs in your own GitHub account or on your computer. See why ToolDeck is different.