HTMLtoApphtmltoapp.net Build free
start here

HTML to Android app: the complete guide

14 min readUpdated 2026-10-05By the HTML to App team

You can turn HTML into an Android app in three ways: package the files inside an APK that shows them in a WebView (an HTML 2 APK builder does this without code), build the same wrapper yourself in Android Studio, or use a hybrid framework such as Capacitor. For most HTML sites, tools and games, a builder is fastest: upload the HTML or a ZIP, set the name and icon, and download a signed APK — or an AAB for Google Play.

The three routes from HTML to an app

HTML 2 APK builderAndroid Studio WebViewCapacitor / Cordova
Skills neededNoneKotlin or Java, GradleNode, CLI, Android SDK
Machine neededAny phone or computer8 GB+ RAM, ~10 GB diskSame as Android Studio
Time to first APKMinutesHours to daysHours
Native plugins (IAP, AdMob, Bluetooth)NoAnything you writeLarge plugin ecosystem
Splash, tabs, pushBuilt in (Pro)Write themPlugins + config
MaintenanceRebuild when content changesYearly SDK upgradesYearly SDK + plugin upgrades

All three produce the same kind of app: a native Android shell whose main screen is a WebView showing your HTML. The difference is who writes and maintains the shell. If your HTML already does what you want, you do not need to — that is what HTML to App is for. If you need a native SDK (in-app purchases, an ad SDK, Bluetooth), use Capacitor; see Capacitor vs HTML to App.

How an HTML app works inside

An Android app is an APK: a ZIP file with compiled code, resources, a manifest and a signature. An HTML app's code is small and generic — an activity that creates a full-screen WebView, plus the code for the splash screen, tabs, loader, offline screen and permissions. Your HTML, CSS, JavaScript and media go into the APK's assets/ folder, untouched.

At launch the WebView asks for https://appassets.androidplatform.net/web/index.html. Android routes that reserved hostname to an asset loader that reads the file from inside the APK — no network involved. Your page believes it is on an ordinary https site. That detail matters more than any other: under file://, which older wrappers use, Chromium blocks ES modules, fetch() of local JSON, WebAssembly streaming and more. Over an https origin, they all work.

The WebView is the Android System WebView, the same Chromium as Chrome, updated through Google Play on every phone running Android 7 or later. So the compatibility rule is simple: if it works in Chrome on Android, it works in the app.

Choosing the input: HTML file, ZIP or URL

  • One HTML file with inline CSS and JS — calculators, single-page tools, small games. HTML to APK.
  • A ZIP of a static site or a framework build — multi-page sites, course material, Phaser games, React apps. ZIP to APK.
  • A URL when the HTML is generated by a server — WordPress, shops, logins. Website URL to app.

Bundled HTML works offline and updates with a rebuild. A URL app needs a connection and updates instantly. That is the whole trade-off.

Preparing HTML so it behaves like an app

  1. Viewport. <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">. Without it Android renders a 980-pixel desktop page shrunk to fit.
  2. Relative paths. img/logo.png, not /img/logo.png and never C:\ or localhost. ZIP preparation checklist.
  3. No CDN dependencies for anything the app needs offline. Download the library, bundle it. CDN scanner.
  4. Hash routing for single-page apps. Why history-mode routing breaks.
  5. Touch, not hover. Tap targets of at least 48×48 px, nothing that only appears on hover.
  6. App-like CSS. overscroll-behavior: none, -webkit-tap-highlight-color: transparent, and user-select: none on controls make a page stop feeling like a page.

What the app adds to your HTML

A browser tab cannot put an icon on the home screen with your name, launch on your colours, show tabs at the bottom or send a notification when it is closed. An app can. HTML to App adds, around your unmodified files:

  • Launcher icon, app name, package name, version, theme colour — free.
  • Page loader, pull-to-refresh, offline screen, camera / microphone / location permission handling.
  • Splash screen, onboarding slides, native bottom tab bar, push notifications and branded loaders — Pro.

See every feature, with screenshots of the screens it produces, on the features page.

What an HTML app cannot do

Be honest with yourself about these before you build — they are WebView limits, not builder limits:

  • No background execution: JavaScript stops when the app is closed.
  • No Web Push, Web Share, Web Bluetooth, WebUSB, Web NFC or speech recognition.
  • No file downloads, PDF viewing or window.print().
  • No home-screen widgets, no in-app purchases through Google Play Billing.

The full list, with workarounds: Which JavaScript APIs work in an Android WebView.

Signing, APK and AAB

Android installs only signed apps, so every build is signed. An APK installs directly — use it to test and to share. An AAB is what Google Play requires for new apps; Play turns it into per-device APKs. Free builds are APKs signed with a shared key. Pro builds AABs signed with your own key, which you must keep to publish updates. Signing keys, explained · HTML to AAB.

Getting onto Google Play

Play accepts HTML apps that offer real functionality — tools, games, offline content, apps with push and native navigation. It rejects apps that are a bookmark in disguise. You need a $25 developer account, a privacy policy, a Data safety declaration and, on new personal accounts, a 14-day closed test with at least 12 testers. Play Store requirements for HTML apps.

Testing before you ship

Install the APK on two phones, one cheap and old. Launch from cold, use the back button on every screen, rotate, open the keyboard on every form, turn on airplane mode and relaunch. Then install your next version over the old one and confirm saved data survives. The testing checklist.

Questions people ask

Can HTML be converted to an Android app?

Yes. An Android app can display HTML in a full-screen WebView, so any HTML, CSS and JavaScript project can be packaged as an APK. A builder generates and signs the Android project; you only supply the files, a name and an icon.

Is an HTML app a real app?

Yes. It is a signed APK with its own package name, launcher icon and app storage, installed like any other app. Its interface is drawn by a WebView, which is also how many well-known apps render parts of their screens.

Do I need Android Studio to make an app from HTML?

No. Android Studio is only needed if you want to write and maintain the native wrapper yourself. A cloud HTML 2 APK builder does the compile and signing steps for you.

Can an HTML app access the camera or location?

Yes. getUserMedia and the Geolocation API work once the app declares the Android permission, which you switch on in the builder. The app asks the user at launch.

How much does it cost to turn HTML into an app?

With HTML to App a signed APK is free. Pro ($5/month, via Google Play) adds AAB output for Play, your own signing key, splash, onboarding, tabs and push. Google charges $25 once for a developer account if you publish.

Your HTML is one upload away from an app

Install the free builder, drop in your HTML file or ZIP, and download a signed APK in a few minutes. No watermark, no card, no Android Studio.

Build my APK free