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;

