Documentation – FreeWebAPK
FreeWebAPK Logo
1

Getting Started

FreeWebAPK turns any responsive website, web app, or PWA into a native Android application (.apk and .aab). You do not need to install Android Studio, configure Gradle scripts, or learn Java/Kotlin.

Prerequisites for Conversion:

  • A public, live website URL (e.g. https://yourwebsite.com).
  • A responsive viewport tag in your HTML: <meta name="viewport" content="width=device-width, initial-scale=1.0">
  • A square PNG image (512 × 512px) to use as your application launcher icon.
2

APK Generator Workflow

When you initiate a build, our cloud compilation workers execute an automated 5-step packaging pipeline:

Step 1: Website Validation

Verifies SSL certificates, HTTP response status (200 OK), and web manifest accessibility.

Step 2: Manifest Generation

Creates the AndroidManifest.xml package metadata, intent filters, and activity declarations.

Step 3: Asset Packaging

Resizes mipmap icons, sets up splash screen XML, and links hardware permissions.

Step 4: Gradle Build & Zipalign

Compiles Dalvik bytecode, optimizes resource alignment, and signs with a release keystore.

3

App Customization

Customize package identifiers, launcher names, status bar colors, and pull-to-refresh gestures.

Package Name Conventions (Reverse DNS):

Always use lowercase letters with at least two dot-separated segments. Example: com.brandname.shop

4

App Icons & Densities

Android displays app icons across diverse screen densities. FreeWebAPK generates every density automatically:

  • mdpi: 48 × 48 px
  • hdpi: 72 × 72 px
  • xhdpi: 96 × 96 px
  • xxhdpi: 144 × 144 px
  • xxxhdpi: 192 × 192 px
  • Play Store: 512 × 512 px (32-bit PNG)
5

Splash Screens

Starting with Android 12, the OS manages splash screens via the official SplashScreen API. We generate clean vector drawables and background color tokens to ensure smooth zero-flicker app startups.

6

Android Permissions Guide

Permissions allow your web application to communicate with Android hardware. When your website invokes web APIs (such as navigator.geolocation or navigator.mediaDevices.getUserMedia), the container handles the native runtime permission dialog.

7

Push Notifications

Support for Firebase Cloud Messaging (FCM) and OneSignal. You provide your App ID in your FreeWebAPK settings, and your mobile users are automatically subscribed when they accept notification prompts.

8

PWA & Offline Support

Progressive Web Apps utilize Service Workers to cache assets and provide offline fallbacks. FreeWebAPK's container honors your site's CacheStorage and IndexedDB offline strategies.

9

Google Play Publishing

Publishing on Google Play requires an Android App Bundle (.aab) signed with your private keystore. Pro and Business plans generate 100% compliant .aab files targeting API 34+.

10

Troubleshooting Common Issues

Issue: Cleartext HTTP traffic not permitted

Android 9+ blocks unencrypted HTTP requests by default. Ensure your website redirects all traffic to HTTPS, or enable cleartext traffic in settings.

Issue: White screen on startup

Check browser console for fatal JavaScript errors or CORS blocks that prevent your website frontend from rendering.

11

Cloud REST API Reference

Automate APK generation directly from your CI/CD pipeline or SaaS dashboard using our REST API.

POST /api/generate-apk

Submits a new APK compilation job to the cloud build queue.

Request Body (JSON):
{
  "appName": "StorePulse",
  "websiteUrl": "https://storepulse.example.com",
  "packageName": "com.storepulse.app",
  "themeColor": "#10B981",
  "permissions": ["INTERNET", "CAMERA", "ACCESS_FINE_LOCATION"]
}
Response (200 OK):
{
  "jobId": "job_9481a8f0b7c12",
  "status": "queued",
  "estimatedSeconds": 28
}
GET /api/generate-apk/{jobId}

Polls the status of an ongoing build job until completion.

Completed Response (200 OK):
{
  "jobId": "job_9481a8f0b7c12",
  "status": "completed",
  "downloadUrl": "https://downloads.freewebapk.com/builds/storepulse-release.apk",
  "apkSizeMb": "4.82 MB",
  "sha256": "3F:A8:12:9C:B5:E4:01:88:99:A2:CC:5D:87:EE:64:12"
}