Skip to main content

Convert any website URL or ZIP file into an Android APK — run it locally or deploy it anywhere

Project description

APK Builder – Web to Android APK Converter

Convert any website URL or ZIP file containing HTML/CSS/JS into an installable Android APK — with a single pip install.


Features

Feature Description
🌐 URL → APK Wrap any live website in a native Android WebView
📦 ZIP → APK Package your local web app ZIP (must contain index.html)
⬇️ Offline mode Download & bundle a website for offline use
⚙️ Custom config App name, package ID, version, orientation, status-bar color
🎨 Custom icon Upload a PNG icon (512×512 recommended)
📲 Dual output Direct APK download or Android Studio project ZIP
🔴 Real-time log Live build output streamed to the browser
🔧 Auto-setup JDK 17 & Android SDK downloaded automatically on first run

Quick Start

Prerequisites

Requirement Notes
Python ≥ 3.9 python.org
Java JDK 17+ Auto-downloaded if not found
Android SDK Auto-downloaded if not found

Java and Android SDK are installed automatically into ~/.apk-builder/ on first run. You don’t need to install anything manually.


Install & Run

pip install apk-builder-web
apk-builder

The browser opens automatically at http://localhost:3000.

Custom port:

apk-builder --port 8080

Don’t open browser automatically:

apk-builder --no-open

Build an APK

  1. Open http://localhost:3000
  2. Choose Web URL or ZIP File tab
  3. Fill in app name, package name (e.g. com.yourname.appname)
  4. Click Build APK
  5. Watch the real-time build log
  6. Download the APK or the Android Studio project ZIP

Project Structure

apk_builder/
├── server.py              ← Flask + Socket.IO server
├── cli.py                 ← `apk-builder` CLI entry point
├── utils/
│   ├── build_apk.py       ← Android project generator + Gradle runner
│   ├── web_scraper.py     ← Website downloader (offline mode)
│   ├── zip_handler.py     ← ZIP extractor
│   └── env_setup.py       ← Auto-installs JDK & Android SDK
├── public/
│   ├── index.html         ← Web UI
│   ├── style.css
│   └── script.js
├── templates/
│   └── android/           ← Android project template
pyproject.toml
requirements.txt

How It Works

  1. On startup — JDK 17 and Android SDK are checked and auto-downloaded if missing
  2. ZIP/URL source → web files extracted/downloaded to a temp folder
  3. Android project created from the template with your app settings applied
  4. Web files copied into app/src/main/assets/www/
  5. MainActivity.java generated to load file:///android_asset/www/index.html (or the live URL in online mode)
  6. Gradle builds the APK
  7. APK (or project ZIP) served for download

FAQ

Q: The APK installs but shows a blank screen.
A: Make sure your web app works from index.html at the root of the ZIP. All asset paths must be relative (e.g. ./style.css not /style.css).

Q: I see “Gradle not found” in the log.
A: Download the project ZIP, open in Android Studio, and click ▶ Run.

Q: How do I sign the APK for the Play Store?
A: The debug APK is for testing. For release, open the project in Android Studio → Build → Generate Signed Bundle/APK.

Q: Where are JDK and Android SDK installed?
A: In ~/.apk-builder/jdk and ~/.apk-builder/android-sdk. Delete that folder to force a re-download.

Q: Can I run this on a VPS/server?
A: Yes. The auto-setup works on Linux servers too. Set the PORT env var to change the port:

PORT=8080 apk-builder --no-open

License

MIT


Quick Start

Prerequisites

Requirement Notes
Node.js ≥ 18 nodejs.org
Java JDK 17+ Required for Gradle
Android SDK Part of Android Studio

Without Java/Android SDK the tool still works — it generates an Android Studio project ZIP you can open and build manually.


1. Install & Run

Windows:

install.bat

macOS / Linux:

chmod +x install.sh && ./install.sh

Manual:

npm install
node server.js

Open http://localhost:3000 in your browser.


2. Set up Android SDK (for direct APK building)

  1. Install Android Studio
  2. Open Android Studio → SDK Manager → Install Android SDK Platform 34
  3. Set ANDROID_HOME environment variable:
    • Windows: %LOCALAPPDATA%\Android\Sdk
    • macOS: ~/Library/Android/sdk
    • Linux: ~/Android/Sdk
  4. Add Gradle to PATH (Android Studio bundles it at <studio>/plugins/gradle/lib/gradle-launcher-*.jar)

3. Build an APK

  1. Open http://localhost:3000
  2. Choose Web URL or ZIP File tab
  3. Fill in app name, package name (e.g. com.yourname.appname)
  4. Click Build APK
  5. Watch the real-time build log
  6. Download the APK or the Android Studio project

Project Structure

APK BUILDER/
├── server.js              ← Express + Socket.io server
├── package.json
├── public/
│   ├── index.html         ← Web UI
│   ├── style.css
│   └── script.js
├── utils/
│   ├── buildApk.js        ← Android project generator + Gradle runner
│   ├── webScraper.js      ← Website downloader (offline mode)
│   └── zipHandler.js      ← ZIP extractor
├── templates/
│   └── android/           ← Android project template
│       ├── app/
│       │   ├── build.gradle
│       │   └── src/main/
│       │       ├── AndroidManifest.xml
│       │       ├── assets/www/    ← web files placed here
│       │       ├── java/          ← MainActivity.java (generated)
│       │       └── res/
│       ├── build.gradle
│       ├── settings.gradle
│       ├── gradle.properties
│       └── gradlew / gradlew.bat
├── uploads/               ← Temporary upload storage (auto-created)
└── builds/                ← Build outputs (auto-created)
    └── <buildId>/
        ├── app-debug.apk  ← Built APK (if Gradle available)
        └── project.zip    ← Android Studio project

How It Works

  1. ZIP/URL source → web files extracted/downloaded to a temp folder
  2. Android project created from the template with app settings applied
  3. Web files copied into app/src/main/assets/www/
  4. MainActivity.java generated to load file:///android_asset/www/index.html (or the live URL in online mode)
  5. Gradle builds the APK if Android SDK is available
  6. APK (or project ZIP) served for download

Deploying to Another Machine / Server

# On the target machine
git clone <this-repo>   # or copy the folder
npm install
node server.js

Set PORT env var to change the port:

PORT=8080 node server.js

FAQ

Q: The APK installs but shows a blank screen.
A: Make sure your web app works from index.html at the root of the ZIP. Paths must be relative.

Q: I see "Gradle not found" in the log.
A: That's fine — download the project ZIP, open in Android Studio, and click ▶ Run.

Q: How do I sign the APK for release / Play Store?
A: The debug APK is self-signed. For release, open the project in Android Studio → Build → Generate Signed Bundle/APK.

Q: Can I run this on a VPS/server?
A: Yes. Without Android SDK on the server, users always get a project ZIP. With Android SDK installed server-side (e.g. via sdkmanager), you get full APK builds.


License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apk_builder_web-3.0.3.tar.gz (109.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apk_builder_web-3.0.3-py3-none-any.whl (111.7 kB view details)

Uploaded Python 3

File details

Details for the file apk_builder_web-3.0.3.tar.gz.

File metadata

  • Download URL: apk_builder_web-3.0.3.tar.gz
  • Upload date:
  • Size: 109.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for apk_builder_web-3.0.3.tar.gz
Algorithm Hash digest
SHA256 3eb3321323accd6bc6399373663c0719b965ceb18ab000d2f581679511859a04
MD5 9cc42cb696046e9e6e077956ae884d37
BLAKE2b-256 934d44697ed382484c20577787197c5d545c4a0785a545bd573306c29c406b28

See more details on using hashes here.

File details

Details for the file apk_builder_web-3.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for apk_builder_web-3.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fc809fc7802c3c156ab3d17149617e17ce223b1803ed6d4c3883966afad3b9e0
MD5 644bfd4ca95f2e44cf49cf0727c366df
BLAKE2b-256 cc90d50b346a7b975faf7574d89239e4452570a635abb40f6458858054f0dcad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page