No description
Find a file
2024-12-25 22:43:14 +01:00
app add index.html webview 2024-12-25 22:07:11 +01:00
.gitignore fix issues with java pkgname = pathname 2024-12-25 21:32:27 +01:00
build-android-app.sh setup in-docker Makefile to install SDK 2024-12-25 13:51:02 +01:00
README.md put usage first in README.md 2024-12-25 22:43:14 +01:00

Android App (build via docker/podman)

The goal of this repo, is to create a container that can serve to produce an "empty android Application" (i.e app.apk file). As such the philosophy is to keep the process "simple" as to now make the understanding too difficult.

usage

  1. clone this repo
  2. run
./build-android-app.sh
  1. follow the configuration
  2. upon success the apk file created is in app/result/app.apk and can be installed via adb
adb install -r app/result/app.apk 

basic ideas

  • work within container (debian based image)
  • use Makefile as a build tool

basic info

This repo should allow to generate an empty "android app". by simply cloning this repo and

./build-android-app.sh

It does so via:

  1. building a container (in any of the runtime/daemons it finds: i.e. docker,podman,etc..)
  2. running this container having the ./app folder being mounted within as /app
  3. executing the app/Makefile which will then:
  4. either work with the configuration stored in an app/app-config.sh in case such file exists or
  5. if not go through a whiptail text menu wizzard to configure a new empty app. (Makefile recipe: ./app-config.sh)
  6. it will then download the required android sdk files as necessary (Makefile recipe: ./android-sdk/installed)
  7. go through the further steps to setup the blank app.

files and purpose

Upon clone of this repo the app folder is setup with these files:

# The (GNU) Makefile which...
app/Makefile
# ... has recipes that call scripts in folder....
app/.Makefile.scripts
# .. which creates an `app-config.sh`, a file to keep
# the configuration (app name,lable,api-levels,permissions etc)...
app/.Makefile.scripts/make--app-config.sh
# .. which creates an `AndroidManifest.xml`
app/.Makefile.scripts/make--AndroidManifest.xml
# .. which creates an `AppActivity.java` file (which just setup a Webview and loads `assets/index.html`)
app/.Makefile.scripts/make--AppActivity.java.sh
# .. which installs the necessary Android SDK in the correct versions
app/.Makefile.scripts/make--android-sdk.sh
app/assets
# the index.html file 
app/assets/index.html
app/res
app/res/drawable
# the icon of the app
app/res/drawable/appicon.xml

Upon further ./build-android-app.sh execution more folders will appear

# a folder in which the Android-sdk stuff (installed via sdkmanager) is stored
android-sdk  
# folders used during build...
# ... for temporary files 
bin/
obj/
result/
# app configuration resulting from text whiptail menu
app-config.sh
# the Manifest file as resulted from data from app-config.sh
AndroidManifest.xml