Getting started

How to convert HTML to an Android APK

A complete walkthrough: what you need before you start, how the conversion works, what Android demands along the way, and how to end up with an app that installs and runs.

9 min read Updated September 2026

Converting a website into an Android app means wrapping your pages in a native shell that renders them in a WebView — Android's built-in browser engine, without the browser around it. Your HTML, CSS and JavaScript run exactly as they do on the web. What changes is everything around them: a launcher icon, a splash screen, a package name, a version number, and a signature that makes the whole thing installable.

This guide covers the whole path, in the order you will actually hit it.

What you need before you start

Less than people expect. There are two viable routes, and neither needs you to write Kotlin:

Either way you need the same four things ready: your web content, a square logo, a package name, and a decision about whether the app bundles your site or loads it live.

The HTML to APK converter home page showing HTML and ZIP files being turned into an Android app
Both routes start the same way: content in, configuration, signed app out.

Step 1 — Get your web content in order

Two shapes work. A single HTML file is the simplest case: everything inline, one file, done. A ZIP of your site is the usual case — an index.html at the root plus your CSS, JavaScript, images and fonts alongside it.

Three rules decide whether it will work once bundled:

The last one catches nearly everyone, so it is worth checking before you spend a build on it.

HTML ValidatorCheck HTML for problems that break inside an app Open the tool
The HTML validator listing blocking problems including a missing DOCTYPE, absolute paths and ES modules
The validator checks the WebView-specific failures a standards validator ignores.

Step 2 — Decide: bundled or online

This choice shapes everything else about the app.

Bundled offlineLoads a live URL
Works without a connectionYesNo
First screen appearsInstantlyAfter the network responds
Updating contentNeeds a new app releaseChange the site, done
App sizeRuntime + your filesRuntime only, ~4–5 MB
Good forBrochures, tools, catalogues, gamesShops, dashboards, anything that changes daily

If your content changes more often than you want to ship releases, load the URL. If it must work on a plane, bundle it. Many apps sensibly do both: bundle the shell and fetch the data.

Step 3 — Make the icon

Android does not want one icon. It wants five launcher sizes, a round variant, an adaptive foreground, and a 512×512 for the Play Store listing — each in a specific folder. Generating them from one square image takes seconds and avoids the blurry-icon problem that comes from letting the system upscale a small PNG.

APK Icon GeneratorEvery Android launcher size from one image Open the tool
Generated Android launcher icons at 48, 72, 96, 144, 192 pixels plus round and adaptive variants
One 1024×1024 source becomes every size Android asks for, in the right folder names.

Design it for the small end. At 48 pixels a detailed logo becomes a smudge — one shape, strong contrast, no text. Full detail in the app icon guide.

Step 4 — Choose a package name you cannot change later

The package name (applicationId) is your app's permanent identity: com.yourdomain.yourapp. It is how Play identifies the listing and how Android decides whether an install is an update. Once published, it is fixed forever — changing it means a brand new listing with zero installs and zero reviews.

Rules that bite: lowercase only, at least two dot-separated segments, no segment starting with a digit, no hyphens, no Java keywords, and never com.example — Play rejects that outright.

Package Name GeneratorBuild and validate a valid applicationId Open the tool
The package name generator turning example.com and My Shop into com.example.myshop with a Gradle snippet
Reverse your domain, add the app name, and check it before you build rather than after.

Step 5 — Set the version

Two fields, two jobs. versionName is the string people see ("1.0"). versionCode is an integer Android compares to decide what is newer — and Play refuses any upload whose code is not higher than your previous one. For a first release, 1 and "1.0" are correct.

The version code generator converting version name 1.4.2 into version code 10402
Pick a scheme now and the arithmetic stays obvious for years.

Step 6 — Build it

With a build service, this is where you hand over the settings and wait: the service assembles an Android project around your content, compiles it, signs it, and hands back an APK. A few minutes, typically.

The builder sign-in screen offering Google and email sign-in
Builds are tied to an account so your projects, downloads and settings persist between sessions.

Two things are worth knowing about what comes back. First, the app is signed — Android refuses to install an unsigned APK, so every build gets a key. Second, if you ever plan to publish to Play, the key that signs your first release must sign every release after it. Losing it means you cannot update your own app.

Step 7 — Install and test on a real device

Copy the APK to an Android phone and open it. The system will ask permission to install apps from this source — that is expected for anything not from the Play Store, and the toggle is per-app in Settings.

Then test the things emulators and browsers hide:

How big will it be?

The Android runtime is roughly 4–5 MB before your content. Text compresses to about a quarter of its size inside the package, so a large HTML site often adds only a few hundred kilobytes. Images and video do not compress and dominate everything else.

The APK size calculator showing an estimated APK and Play download size with a breakdown by file type
Measured by actually compressing the files, so images and text are counted honestly.
APK Size CalculatorEstimate your app's size before you build Open the tool

What to do next

If the app works on your device, you have two directions. To share it directly — a client, a test group, a QR code on a poster — the APK is already what you need. To publish on Google Play, you need an App Bundle (AAB) instead, a developer account, and a store listing: see APK vs AAB and publishing to Google Play.

Questions people ask

Can I convert an HTML file to an APK without coding?

Yes. A build service takes your HTML file or ZIP plus a few settings — app name, icon, package name — and returns a signed APK with no Android code involved. Writing the Android project yourself is the alternative, and it is only worth it if you need native features the WebView cannot provide.

Do I need Android Studio to make an APK?

No. Android Studio is one way to build an APK, not the only one. A cloud build service does the compiling for you, which avoids an install of several gigabytes and a toolchain you would otherwise have to learn.

Will my app work without an internet connection?

Only if you bundle the content inside the app. An app that loads a live URL needs a connection for every screen. Bundled content is served from the device itself and works in airplane mode.

Why does my converted app show a white screen?

Most often because the page uses <script type="module">, which browsers block on file:// pages, so none of your JavaScript runs. The other frequent causes are absolute paths to your own computer and a missing DOCTYPE. All three are checked by the HTML validator.

Is an APK from a converter safe to install?

It is as safe as the content you put into it — the wrapper adds no code of its own beyond the WebView shell. Android will warn that the app comes from outside the Play Store, which is standard for any APK installed directly, not a judgement about the file.

Can I put a converted website on Google Play?

Yes, provided the app offers real functionality rather than being a bare link to a website — Play's policy rejects apps that are only a thin wrapper with no added value. Bundled content, offline support, push notifications and native navigation all count as added value.

Read next

Ready to turn your site into an app?

Upload an HTML file or a ZIP, set your icon and name, and download a signed Android app. No Android Studio, no command line.

Open the builder