環境
・Mac OS X 10.8.4
・Android Studio (I/O Preview) 0.2.6
build.gradle
1. runProguard trueでProGuardを有効化
2. proguardFile file('proguard-project.txt')でプロジェクト固有のProGuard設定ファイルを指定
(proguard-project.txtをルートプロジェクトのルートディレクトリに作成)
3. proguardFile getDefaultProguardFile('proguard-android.txt')でプロジェクト共通のProGuard設定ファイルを指定
(<sdk-root>/tools/proguard/proguard-android.txtが参照される)
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android' repositories { mavenCentral() } android { compileSdkVersion 18 buildToolsVersion "18.0.1" defaultConfig { minSdkVersion 7 targetSdkVersion 18 } signingConfigs { releaseConfig { storeFile=file(project.properties.storeFile) storePassword=project.properties.storePassword keyAlias=project.properties.keyAlias keyPassword=project.properties.keyPassword } } buildTypes { release { runProguard true proguardFile file('../proguard-project.txt') proguardFile getDefaultProguardFile('proguard-android.txt') signingConfig signingConfigs.releaseConfig } } } dependencies { compile 'com.android.support:support-v4:18.0.0' }
ビルド
ルートプロジェクトのルートディレクトリに移動。
下記のコマンドを実行して暫し待つ。
./gradlew assembleReleaseビルドが成功すると、サブプロジェクトの
build/apk/の下に<プロジェクト名>-release.apkのファイル名でAPKファイルが
build/proguard/release/の下にmapping.txt等のProGuardのファイルが作成される。
確認
ProGuardの有効化を下記のコードで確認。(かなり無理矢理ですが... )
package com.example.app; import android.os.Bundle; import android.app.Activity; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); checkProGuard(); } private void checkProGuard(){ throw new RuntimeException("Check ProGuard"); } }デバッグビルドとリリースビルドで実行してstack traceを確認したところ、mapping.txtの設定に従ってメソッド名がcheckProGuard() -> a()に変更されていた。
※proguard-project.txtについては、Eclipseでプロジェクトを作成した時に自動生成されるファイル(設定は空)を持ってきただけなので、こちらに設定した内容が正常に反映されるかは未確認。
Android Studioでのリリースビルドについてはこちらの記事を参照。
Androidアプリをコマンドラインからリリースビルド(Android Studio/Gradle編)
http://neta-abc.blogspot.jp/2013/08/androidandroid-studiogradle.html
0 件のコメント:
コメントを投稿