Output(出力)
Output — Options
Output — Options ページでは、PreEmptive Protection™ DashO™ for Android & Java がビルドの結果を配置する場所と、それらの結果がとる形式を制御します。
Create Directory/Single Jar/APK
DashO はビルドの結果をディレクトリ、単一 jar、または APK に置くことができます。 メインの出力の種類を変更すると、このパネル上の他の設定もそれらの既定値に変更される可能性があります。 出力を構成する方法については、<output> 要素を参照してください。
Merge Inputs
ディレクトリへ出力する際、DashO は、難読化された結果を結合して単一のディレクトリまたは jar に入れるか、または入力クラスの元のパッケージを保持することができます。
Auto Copy
Auto copy は、入力をマージするときに非クラス ファイルをどのように処理するかを制御します。 これはマージが On の場合に利用でき、次のように機能します。
Merge Off
- jar 入力の非クラス ファイルはコピーされます。 入力ディレクトリの非クラス ファイルはコピーされません。
Merge On
Auto Copy On – 入力ディレクトリと入力 jar の両方の非クラス ファイルが出力にコピーされます。
Auto Copy Off – 非クラス ファイルは出力にコピーされません。
メモ:
非クラス ファイルの処理中に検出された XML 構成ファイルは、クラス名やメソッド名を変更できるように更新されることがあります。
Name と Manifest
[Name]フィールドには、出力ディレクトリまたは jar の名前を指定します。 マージがオフの場合にのみ、ディレクトリを使用できます。 DashO は、出力のルートとしてこれを使用し、元の入力 jar ファイルとディレクトリの階層を再作成しようとします。
マージされた単一の jar ファイルを DashO で作成した場合、DashO はその jar ファイルにマニフェスト ファイルを追加することができます。 マニフェストは、テキスト ファイルでも jar ファイルでもかまいません。 DashO は jar ファイルからマニフェストを抽出できます。
Jar Options
Compress:データを格納するだけでなく圧縮もします。
Level:ファイルの圧縮を実行するレベル。 有効な値の範囲は、
0
(圧縮なし/最速)から9
です。 既定値は6
です。Exclude Directory Entries:ファイルのエントリのみ格納し、ディレクトリのエントリは格納しません。
Preserve Jars With No Classes:クラスが残っていない jar を出力します。 これは、リソース jar を出力する場合に使用できます。
Constant Pool Tag
結果として生じる出力のすべてのクラスに、任意の定数プールのタグ テキストが挿入されます。 詳細については、<constpooltag> セクションを参照してください。
SourceFile Tag
結果として生じる出力のすべてのクラスの SourceFile
属性が、指定した値に設定されます。
詳細については、<sourcefile> セクションを参照してください。
Output — APK
Output — APK ページでは、APK 出力に固有の設定を構成します。
Build Tools Directory
Android ビルド ツールの場所を指定します。
指定されたディレクトリには、zipalign
コマンドが含まれている必要があります。
Zipalign
出力 APK を整列させる(zipalign
を使用する)必要があるかどうかを指定します。
このボックスは、APK が署名されている場合にのみ有効になります。
AAPT バージョン
出力 APK を生成するのに AAPT
または AAPT2
を使用する必要があるかどうかを指定します。
Output — Reports
Output — Reports ページでは、ビルドの結果を詳述するレポートの生成を構成します。
Report file
DashO によって実行された、クラスとメンバーの除去および名前の変更を概説するレポートの名前と場所を指定します。
全体のメソッド/フィールド/定数プール エントリだけでなく、DashO 実行後における最終的な削減の数とパーセンテージを詳述する要約が提供されます。
また、これには、リフレクションや Class.forName()
呼び出しも含め、動的に読み込まれるクラスに関する情報も含まれます。
Renaming Report File
これは、名前変更されたクラスとそれらの名前変更されたメンバーの、古い名前と新しい名前を列挙するレポートの名前と場所を指定します。
Output — Preverification
DashO がクラス ファイルの処理を完了した後、CLDC アプリケーションに対して Preverifier を実行するかどうかを選択できます。 [Run Preverifier]チェック ボックスをオン/オフにすることにより、事前検証を有効または無効にできます。
既定では、DashO はシステム パスで事前検証アプリケーション preverify
を探そうとします。
特定のバージョンの Preverifier を実行する必要がある場合は、実行するアプリケーションを明示的に指定することができます。
No Finalize
preverifier に -nofinalize
を渡す:入力でファイナライザーは許可されません。
No Floating Point
preverifier に -nofp
を渡す:入力で浮動小数点演算は許可されません。
No Native Methods
preverifier に -nonative
を渡す:ネイティブ メソッドは許可されません。
Output — Signing
DashO が生成する出力 jar ファイルまたは APK ファイルに署名させることができます。 [Sign Jars/APK]チェック ボックスをクリックすることにより、署名を有効または無効にできます。
既定では、DashO は構成されている JDK の場所で署名アプリケーション jarsigner
を探そうとします。
JDK を導入しない場合、特定のバージョンの jarsigner
を実行する必要がある場合、または apksigner
を実行したい場合は、このパスを明示的に指定してください。
メモ:システム パス上にある署名ツールの実行可能ファイル、
jarsigner
を使用したい場合は、jarsigner
を入力するだけです。
Key Store
この情報は、署名に使用される非公開鍵を格納するキー ストアを定義します。
必須項目は[Password]のみです。
[Type]の既定値として使用されるのは、DashO を実行する JVM(例:JKS
または PKCS12
)によって指定された型です。
[Location]の既定値は、ホーム ディレクトリにある .keystore
ファイルです。
プロパティ参照を含んでいないパスワードは、暗号化された形式でプロジェクト ファイルに格納されます。
Signing Key
この情報は、署名を実行するために使用される非公開鍵を指定します。 必須項目は[Alias]値のみです。 [Password]は既定値として、キー ストアで指定したパスワードが使用されます。 このパスワードも、プロパティ参照を含んでいなければ、暗号化されてプロジェクト ファイルに格納されます。
Options
Signature File
これは、jarsigner
の -sigFile
オプション、および apksigner
の --v1-signer-name
オプションに対応しています。
Internals .SF および Sections Only
これらの値は、jarsigner
の -internalsf
および -sectionsonly
オプションに対応しています。
これらは apksigner
には適用されません。
Additional Arguments
このフィールドでは、任意の追加フラグを指定できます。
jarsigner
を使用して APK に署名する場合は、追加の引数を入力する必要があるかもしれません(たとえば、-sigalg SHA1withRSA -digestalg SHA1
)。
apksigner
を使用する場合は、APK の署名スキームを決定するために、追加の引数を入力してください(たとえば、--v1-signing-enabled [true|false] --v2-signing-enabled [true|false]
または --min-sdk-version nn --max-sdk-version nn
(nn
は sdk バージョン))。
メモ:
署名は、コマンド ラインではなく環境を介してパスワードを渡します。 これをサポートしていない、古いバージョンのjarsigner
を使用する必要がある場合は、SIGN_WITH_PLAINTEXT_PASSWORDS
という名前のユーザー プロパティを追加し、それをtrue
に設定します。
引数の詳細については、jarsigner および apksigner のドキュメントを参照してください。