No description
Find a file
2024-12-25 22:58:32 +01:00
app remove non-ascii from shell-script 2024-12-25 22:57:16 +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 try link to line #L127 2024-12-25 22:58:32 +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

benefits of this (compared to AndroidStudio)

  • no need to install rather bloated hell of software (i.e AndroidStudio) and all
  • less hidding of internals (i.e Makefile allows to see how app.apk is made)
  • small app.apk file
  • oftentimes faster compile time (as compared with AndroidStudio Gradle builds)
  • quick "webview" which can serve as starting point for people that can to PWA and websites
  • Assisted initial configuration provides access to configure almost all types of Android app permissions
  • no need to have Kotlin, Gradle setup /

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