Optimized Android-Apps mit Linux erstellen
Dieser Beitrag wurde vor mehr als drei Monaten veröffentlicht. Bedenke bitte, dass die hier angebotene Information nicht mehr aktuell und gültig sein könnte. Informiere dich daher bitte auch an anderer Stelle über dieses Thema. Sollten sich neue Informationen ergeben haben, so kannst du mich auch gerne auf diese über einen Kommentar hinweisen. Vielen Dank!Ich habe meine apps mit dem folgenden Bash-Skript optimiert, welches die Bild- & Sound-Dateien komprimiert, so dass die Apps kleiner werden und weniger Speicher verbrauchen...
Habe die optimierten Apps zu meinem Update-Pack für Spica hinzugefügt -> cyanogenmod + x
1.) Bash-Skript in einer Textdatei unter Linux speichern (Tweak_app.sh) & Ausführrechte setzen (chmod +x Tweak_app.sh)
2.) "optipng", "pngcrush", "sox" installieren (z.B. für Debian: apt-get install optipng pngcrush sox)
3.) android-sdk herunterladen & sudo cp .....android-sdk/android-sdk/zipalign /usr/bin/
4.) Folgendes Verzeichnis anlegen und zu optimierende Apps darin speichern (./place-apk-here-to-batch-optimize/)
5.) Tweak-Skript ausführen (./Tweak_app.sh) -> Fertig
#!/bin/bash
LOG_FILE="apk.log"
if [ \! -f `whereis optipng | cut -f 2 -d ' '` ] ; then
echo "ERROR: install optipng (apt-get install optipng)"
exit 1;
fi;
if [ \! -f `whereis pngcrush | cut -f 2 -d ' '` ] ; then
echo "ERROR: install pngcrush (apt-get install pngcrush)"
exit 1;
fi;
if [ \! -f `whereis sox | cut -f 2 -d ' '` ] ; then
echo "ERROR: install sox (apt-get install sox)"
exit 1;
fi;
if [ \! -f `whereis zipalign | cut -f 2 -d ' '` ] ; then
echo "ERROR: install zipalign (sudo cp ...android-sdk/android-sdk/zipalign /usr/bin/)"
exit 1;
fi;
rm -rf ./place-apk-here-to-batch-optimize/original/*
if [ -e $LOG_FILE ]; then
rm $LOG_FILE;
fi;
touch $LOG_FILE
mkdir -p ./place-apk-here-to-batch-optimize/original
find ./place-apk-here-to-batch-optimize -iname "*.apk" | while read APK_FILE ;
do
echo "Optimizing $APK_FILE"
7za x -o"./place-apk-here-to-batch-optimize/original" $APK_FILE
find ./place-apk-here-to-batch-optimize/original -iname "*.png" | while read PNG_FILE ;
do
if [ `echo "$PNG_FILE" | grep -c "\.9\.png$"` -eq 0 ] ; then
optipng -o99 "$PNG_FILE"
pngcrush -rem alla -reduce -brute "$PNG_FILE" tmp_img_file.png;
mv -f tmp_img_file.png $PNG_FILE;
fi
done;
find ./place-apk-here-to-batch-optimize/original -iname "*.ogg" | while read OGG_FILE ;
do
sox "$OGG_FILE" -C 0 tmp_audio_file.ogg
mv -f tmp_audio_file.ogg $OGG_FILE
done;
7za a -tzip "./place-apk-here-to-batch-optimize/temp.zip" ./place-apk-here-to-batch-optimize/original/* -mx9
FILE=`basename "$APK_FILE"`
DIR=`dirname "$APK_FILE"`
mv -f ./place-apk-here-to-batch-optimize/temp.zip "$DIR/optimized-$FILE"
zipalign -v -c 4 "$DIR/optimized-$FILE";
ZIPCHECK=$?;
if [ $ZIPCHECK -eq 1 ]; then
echo "ERROR $FILE" >> $LOG_FILE;
#rm "$DIR/optimized-$FILE"
elif [ $ZIPCHECK -eq 0 ]; then
echo "OK $FILE" >> $LOG_FILE;
else
echo "ERROR $FILE" >> $LOG_FILE;
#rm "$DIR/optimized-$FILE"
fi;
rm -rf ./place-apk-here-to-batch-optimize/original/*
done; 
