PreEmptive Protection - DashO v8.0 User Guide

Eclipse(Ant)から Android Studio(Gradle)への移行

Google は新しいビルド システムをリリースし、Eclipse や Ant ベースのツールから移行することを勧めています。この移行には 3 つの主要部分があります。新しい IDE に切り替えること、PreEmptive Protection - DashO プロジェクトを更新すること、そしてそれを新しい Gradle ベースのビルドに統合することです。以下の指示は、Android Studio v1.0.1 および Eclipse ADT プラグイン v23.0.2 に基づいていますが、その他ほとんどのバージョンに適用されるはずです。

IDE の移行

http://developer.android.com/sdk/installing/migrate.html の指示に従って、新しい IDE に移行します。ADT プラグインに Gradle ビルド スクリプトを生成させるか、または Android Studio で Eclipse プロジェクトのインポートおよび変換を可能にすることができます。移行方法によっては、Android Studio は、サポートされていないバージョンの Android Gradle プラグインをプロジェクトが使用していることについて言及するかもしれません。その場合は、先へ進んで更新してください。プロジェクトがセットアップされたら、続行する前に、プロジェクトをビルドし、Android Studio から適切に実行されることを確認します。

PreEmptive Protection - DashO プロジェクトの更新

project.dox ファイルは本来、DashO の Android Ant ウィザードを使用したときに作成されています。ウィザードを使用してこの構成ファイルを作成しなかった場合でも、以下の指示に従うことはできますが、一部の値が異なるかもしれません。手順は以下のとおりです。

1.DashO で project.dox を開きます。

2.Input パネルで、${out.classes.dir}${gradleInput} に変更します。

3.Input > Support パネルで、${sdk.dir}\platforms\android-${target}\android.jar${sdk.dir}\platforms${sdk.target}\android.jar に変更します。

4.その同じパネル上で、${gradleSupport:-} の新しいエントリを作成します。

5.Input > Non-Class Files パネルで、ソースを ${AndroidManifestFile}、出力先を ${AndroidManifestOutput} とする新しいエントリを作成します。

6.Output パネルで、${dasho.results.jar}${gradleOutput} に変更します。

7.project.dox を保存します。

上記は、DashO の Gradle プラグインと統合するために必要な最小限の変更です。DashO の中からプロジェクトをテストしたい場合は、上記で使用される User Properties の既定値の設定が必要になります。Properties パネルへ移動して、以下の変更を行います。

  • out.classes.dir プロパティを削除します。

  • dasho.results.jar プロパティを削除します。

  • target プロパティを削除します。

  • sdk.target の値を android-?? に変更します(?? は前に入っていた数値です)。

  • dasho.results.dir の値を ${build.dir}/dasho-results/${buildType} に変更します。

  • build.dir プロパティを値 build で追加します。

  • buildType プロパティを値 debug で追加します。

  • gradleInput プロパティを値 ${build.dir}/intermediates/classes/${buildType} で追加します。

  • gradleSupport プロパティを空白値で追加します。

  • gradleOutput プロパティを値 ${build.dir}/dasho/${buildType}/classes.jar で追加します。

  • AndroidManifestFile プロパティを値 ${build.dir}/intermediates/manifests/full/${buildType}/AndroidManifest.xml で追加します。

  • AndroidManifestOutput プロパティを値 ../../../intermediates/manifests/full/dasho-${buildType} で追加します。

メモ:

上記のパス値は、お使いの個々のビルド環境に合わせて微調整する必要があるかもしれません。

Gradle 統合

新しい IDE への移行に用いた方法によっては、1 つまたは 2 つの build.gradle ファイルが必要になる場合があります。Android Studio によって Eclipse プロジェクトのコピーが作成された場合は、おそらく build.gradle はルートに 1 つと、アプリケーションのサブディレクトリにもう 1 つあるでしょう。ファイルが 2 つある場合は、下記のように正しいファイルを適切なタイミングで操作していることを確認してください。

DashO を Gradle ビルドに統合するには、プラグインを追加し、それを構成するという 2 つの手順があります。

build.gradle ファイルで次のようなセクションを探します。

buildscript {
    repositories {
        jcenter() //または mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:{x.y.z}'
    }
}

repositories セクション内の jcenter() の上に、flatDir dirs: "{DashO's Installation Directory}/gradle" という行を追加します。この行は、{DashO's Installation Directory} を DashO がインストールされているパスに変更します。フォルダーを区切るにはスラッシュを使用します。

dependencies セクション内、classpath エントリの 'com.android.tools.build:gradle:{x.y.z}' の上に、classpath "com.preemptive:dasho:{x.y}.+" という行を追加します。正しいバージョンの DashO Gradle プラグインが使用されていることを確認してください。『DashO Gradle Plugin User Guide』の Version Compatibility セクションを参照してください。

build.gradle ファイルで、apply: 'com.android.application' または apply: 'android' を探します。apply: 行の下に、apply from: 'dasho.gradle' という行を追加します。

project.dox ファイルが、この build.gradle ファイルと同じディレクトリにあることを確認してください。この同じディレクトリに、次の内容を含んでいる dasho.gradle という名前のファイルを作成します。

dashOConfig {
    dashOHome = '{DashO's Installation Directory}'
    doxFilename = 'project.dox'
}

もう一度、{DashO's Installation Directory} を DashO がインストールされているパスに変更します。

このディレクトリに AndroidManifest_pre_ob.xml という名前のファイルがある場合は、それを削除します。このファイルは Ant 統合で使用されるもので、Gradle 統合では問題が発生する原因となります。

これで、コマンド ラインまたは Android Studio のいずれかから、DashO を使ってプロジェクトをビルドできるようになりました。

メモ:

詳細については、『Android Gradle Plugin User Guide』および『DashO Gradle Plugin User Guide』を参照してください。

統合の相違点

Ant 環境と Gradle 環境の間にはいくつかの違いがあります。Ant スクリプトは、Eclipse 内でコンパイルする場合には使用されず、Gradle スクリプトは、Android Studio 内でコンパイルする場合には使用されません。Ant スクリプトが無分別にコードを再コンパイルするのに対し、Gradle スクリプトは、どの手順を実行する必要があるかを判断することができます。また、DashO と統合する方法にもいくつかの違いがあります。

Ant ベースの統合では、DashO はコマンド ラインに明示的に含まれている場合に実行されます(たとえば、ant obfuscate debugant debug)。Gradle では、DashO は常に、dasho.gradle ファイルで構成されている方法に基づいて実行されます。たとえば、デバッグ ビルド時は DashO を実行したくない場合は、dasho.gradledasho.gradle セクション内に次の行を追加します。

disabledForBuildTypes = ['debug']

Ant ベースの統合は、デバッグ ビルド時にはクラスからデバッグ情報を削除せず、リリース ビルド時にはそれらを削除するよう、DashO を自動的に構成します。これは Gradle 統合を介しても可能ですが、動作が少し異なります。DashO Gradle プラグインは、dasho.gradledashOConfig セクションで dox ファイルが構成されていない場合は、ビルドの種類に基づいて、使用する .dox ファイルを決定することができます。doxFilename 設定を削除して、デバッグ情報を保持するように構成された debug.dox ファイルを作成し、それを削除するように構成された release.dox ファイルを作成することができます。ただし、その後、他の構成の変更について、これら 2 つのファイル間で同期が保たれていることを確認する必要があります。

Ant 統合では、.dox ファイル内の構成を操作したり、Ant スクリプト内で構成を完全に定義したりすることが可能でした。この機能は、Gradle 統合では利用できません。



PreEmptive Protection - DashO Version 8.0.0. Copyright © 2016 PreEmptive Solutions, LLC