Bescottee苦しいときは伸びてるとき、楽なときは伸びていないとき

3 SDK Tools r15 の ant から proguard 利用方法

admin to KnowHow, development — Tags: , ,  

Android SDK tools-r15 ant proguard error

android SDK Tools r15 での and build に興味がある方は、まずandroid SDK Tools r15 での and build のエラー対処方法を見てみてください。

このエントリでは、その次のフェーズとして、proguard を利用したい場合の紹介をします。

既に ant build できる環境が構築できている場合は、以下のどちらかのコマンドを実行したと思います。

android update project

もしくは

android create project

これらのコマンドが成功していれば、例えば以下のように proguard.cfg というファイルが生成されているはずです。

# android.bat update project -p ./
Updated local.properties
Added file \toGmail\proguard.cfg

このファイルは proguard を利用するうえで、大変重要なファイルです。中身は以下のような内容になっています。
中身の詳細説明は、ProGuardを使っての難読化方法に詳しい解説がありますのでこちらをご覧ください。

# cat proguard.cfg
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
native ;
}

-keepclasseswithmembers class * {
public (android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
public (android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}

-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}

まずは特に proguard.cfg はいじらずに標準設定のままで利用するのがよいでしょう。利用方法は以下になります。
まず、ant.properties の中に以下の1行を追加します。これによって、ant release ビルドのときに proguard が有効になりビルドプロセスの中に組これます。

proguard.config=proguard.cfg

なんとこれだけです。SDK Tools r14 以前では、ここここのように必要なxmlファイルをダウンロードしてきたり、build.xml に追記が必要だったりしましたが、r15(r14からの機能かもしれませんが)からは断然簡単になりました。

標準状態で作成された ant の target では、releaseビルド時のみ proguard が有効になるため、出来上がった apk には適切な署名でサインしてからインストールしましょう。

結論

標準設定のままなら proguard を書けるのは大変簡単!ソフトウェア資産を守るだけでなく、バイナリサイズも小さくなるというユーザへのメリットもあるため(Android Market からのダウンロード時間の短縮や、データ通信料の削減(世の中の流れはデータ通信の定額化の廃止のため))是非活用していきましょう。

3件のコメント »

  1. わかめ より:

    SDK Tools r15 の ant から proguard 利用方法 – http://andbrowser.com/develop...

  2. kimukou2628 より:

    なんか状況が見えないんだけど、android update project でproguard.cfgを新規に作ってくれないんだよな r19 なんでだろ?http://t.co/khgPXpGG の手順をみると認識はあっているっぽい

このコメント欄の RSS フィード トラックバック URL

コメントをどうぞ