環境
・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 件のコメント:
コメントを投稿