Skip to content

Instantly share code, notes, and snippets.

@hasanisaeed
Created June 29, 2021 12:40
Show Gist options
  • Save hasanisaeed/e9174f54dffa42c1d2b28a19961bf77d to your computer and use it in GitHub Desktop.
Save hasanisaeed/e9174f54dffa42c1d2b28a19961bf77d to your computer and use it in GitHub Desktop.
Generate APK file without IDE
#!/bin/bash
#mkdir -p { src/com/example/hellovirgool, obj, bin, res/layout, res/values, res/drawable}
#Define the help function
function help() {
echo "Options:"
echo "-package Package Name"
echo "-sdk SDK Path"
echo "-name Application Name"
exit 1
}
packageName="hellovirgool"
appName="my_app"
#Define the getopts variables
options="package:sdk:name:"
#Start the getopts code
while getopts "$options" opt; do
case $opt in
package) packageName=$OPTARG ;;
sdk) sdk=$OPTARG ;;
name) appName=$OPTARG ;;
?) help ;;
esac
done
SRC_PATH="src/com/$packageName"
mkdir -p "$SRC_PATH" obj bin res/layout res/values res/drawable
export PROJECT_PATH="$PWD"
export SDK="$sdk"
cd "$SDK/build-tools/29.0.2/"
./aapt package -f -m -J "$PRJ/src" -M "$PRJ/AndroidManifest.xml" -S "$PRJ/res" -I "$SDK/platforms/android-29/android.jar"
javac -source 1.7 -target 1.7 -d obj -classpath src -sourcepath "$SDK/platforms/android-29/android.jar" "$SRC_PATH/*.java"
cd "$SDK/build-tools/29.0.2/"
./dx --dex --output="$PRJ/bin/classes.dex" "$PRJ/obj"
./aapt package -f -m -F "$PRJ/bin/$appName.apk" -M "$PRJ/AndroidManifest.xml" -S "$PRJ/res" -I "$SDK/platforms/android-29/android.jar"
cp "$PRJ/bin/classes.dex" .
./aapt add "$PRJ/bin/$appName.apk" classes.dex
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment