Input(入力)
Input セクションは、プロジェクトへの入力を構成するために使用されます。これには、処理される jar ファイルの場所とクラスのディレクトリ、およびアプリケーションの動的な流れを分析するために使用される、これらのクラスへのエントリ ポイントが含まれます。
Input — Jars and Classes
Input セクションは Input — Jars and Classes から始まります。ここには、処理するクラスの場所が設定されます。DashO はディレクトリや、クラスパス内のクラス、zip ファイル、および jar ファイルを処理することができます。また、単一の APK ファイルもサポートしています。エントリは、[Add]ボタンを使用してファイル システムからそれらを選択することによって追加できます。[New]ボタンを使ってエントリを作成し、名前を編集することもできます。入力の項目を追加または削除した後、ツール バーにある「クラス一覧の更新」アイコンを使用するか、ショートカット メニューから[Refresh List]を使用してください。
メモ: エントリを追加または削除すると、クラス ツリーは自動的に更新されます。ただし、手で名前を入力した場合は自動的に更新されません。名前の編集が終わったら、更新ボタンを使用してください。
入力エントリの作成の詳細については、<inputpath> セクションを参照してください。
Input — Supporting Classpath
DashO は、Java または Android ランタイムのクラスと、サード パーティの jar ファイルまたはモジュール内のクラスにアクセスする必要があります。ここで参照されるクラスは、DashO の分析に必要なだけで処理されません。エントリは、[Add]ボタンを使用してファイル システムからそれらを選択することによって追加できます。[New]ボタンを使ってエントリを作成し、名前を編集することもできます。
Include JDK(JDK の導入)
指定した JDK ホーム ディレクトリに含まれるすべてのブートストラップ クラスおよび拡張クラスを検索します。
これらのクラスは、入力の依存関係を評価する際に使用されます。
Android API または J2ME を使用するプロジェクトには、JDK を導入したり、最新の Java ランタイムを追加したりしないでください。
このようなプロジェクトは、これら特定の環境用のランタイム jar ファイル、たとえば Android.jar
や midpapi10.jar
を必要とします。
JDK ホーム ディレクトリの既定値 ${JDK_HOME:-}
は、環境変数 JDK_HOME
によって解決されます。
この環境変数が設定されていない場合は、ユーザー プロパティJDK_HOME
を設定することができます。
また、プロパティを使用する代わりに、JDK の場所(例:C:\Program Files\Java\jdk-9.0.4
や /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
)を参照することもできます。
メモ:
Include JDK は、Append current Java runtime(最新の Java ランタイムの追加)を上書きするので、この設定や Use Classpath from Environment(環境のクラスパスを使用)設定と一緒に使用することはできません。
導入された JDK は、jarsigner など他のプログラムを検索、実行する場合にも使用されます。
Set JDK_HOME and JAVA_HOME properties(JDK_HOME および JAVA_HOME プロパティの設定)
Include JDK(JDK の導入)が有効になっている場合に、JDK_HOME
および JAVA_HOME
プロパティに指定された JDK 値を設定します。
Append current Java runtime(最新の Java ランタイムの追加)(非推奨)
上で指定されたエントリに最新の Java ランタイムを追加します。 これは非推奨になりました。 代わりに、JDK ホーム ディレクトリを指定して Include JDK(JDK の導入)を使用してください。
メモ:
この設定は、DashO を Java 9(以降)で実行する場合には使用できないため、Include JDK(JDK の導入)と一緒に使用することはできません。
Use Classpath from Environment(環境のクラスパスを使用)(非推奨)
上で指定されたエントリに環境の CLASSPATH
(クラスパス)を Prepend(先頭に追加)したり、Append(末尾に追加)したりします。
メモ:
指定されたエントリへの環境のクラスパスの追加は、非推奨になりました。
この設定は、DashO を Java 9(以降)で実行する場合には使用できないため、Include JDK(JDK の導入)と一緒に使用することはできません。
新しいクラスパス エントリの作成の詳細については、<classpath> セクションを参照してください。
Input — Global Processing Exclusions
Input — Global Processing Exclusions パネルでは、すべての処理から除外しなければならないクラスやパッケージを指定できます。
この UI では、クラスのグローバルな対象除外の規則を定義します。詳細については、グラフィカルな規則エディターを参照してください。ここで設定した規則はすべての機能の除外セクションにあるかのように、規則に一致するあらゆるクラスが除外されます。詳細については、<globalProcessingExclude> セクションを参照してください。
メモ:
一致したクラスはまた、文字列の復号の候補、Constant Pool Tag、および SourceFile Tag の追加からも除外されます。他の UI 画面のクラス一覧は、再読み込みした後に影響を受け、グローバルに除外されたクラスが表示されなくなります。
Input — Included Non-Class Files
Input — Included Non-Class Files パネルでは、アプリケーションに含まれていなければならないイメージ、プロパティ、構成ファイルなどの、非クラスの内容のソースを指定できます。
[Add]ボタンを使って既存のファイルを選択することにより、ディレクトリ、個々のファイル、または jar ファイルを一覧に追加することができます。[New]ボタンを使ってエントリを作成し、名前を編集することもできます。ディレクトリおよび jar ファイルの場合、非クラスのすべてのファイルは DashO の出力にコピーされます。ディレクトリ エントリには、特定のファイルの種類を選択するための *
文字を使ったワイルドカード パターンを含めることができます。
ディレクトリ、zip、および jar ソース内部の非クラス ファイルは、それらの相対的な内部ディレクトリを保持して出力先にコピーされます。指定した非クラス ファイルが出力先にコピーされます。詳細については、<includenonclassfiles> セクションを参照してください。
メモ:
非クラス ファイルの処理中に検出された XML 構成ファイルは更新される可能性があります。この更新により、クラス名やメソッド名を変更できるようになります。
入力をマージするとき、入力に非クラス ファイルが含まれている場合は、[Auto Copy]をオンにするか、ここでそれらを参照することができます。入力をマージしない場合は、DashO が入力 jar ファイル内のすべての非クラス ファイルを自動的にコピーします。ただし、入力ディレクトリに現れる非クラス ファイルはコピーされません。詳細については、Auto copy を参照してください。
Input — Options
このパネルは、DashO が入力クラスの分析時に使用するいくつかの基本的なオプションを制御します。
Ignore Missing Classes
DashO は、アプリケーションが呼び出そうとするすべてのクラスの分析を試みます。このオプションを選択することで、見つからないクラスを無視するよう DashO に指示できます。
メモ:
DashO は、アプリケーションが拡張または実装するクラスとインターフェイスを無視できません。
Ignore Missing Methods
DashO は分析の一環として、メソッドの具体的な実装を探そうとします。このオプションをオンにすると、目的のメソッドを見つけられない場合でも処理が進められるようになります。このオプションは慎重に使用してください。
Bypass DashO Processing
このオプションをオンにすると、DashO は何も処理を実行しないように構成されます。単に、入力が出力にコピーされます。このオプションは、マージされていないディレクトリまたは APK を出力するときにサポートされます。
Reflection Halts Build
DashO の分析では、リフレクションのターゲットを識別できるように、アプリケーションでのリフレクションの使用状況を記録します。アプリケーションのどの部分がリフレクションを使用しているか判断している場合には、このオプションをオンにします。
メモ:差し込まれたコードがリフレクションを使用することがあるため、このオプションを有効にしている場合はチェックを無効にする必要があるかもしれません。
Determine Reflected Classes
DashO は、リフレクションの一部のターゲットを決定し、これらのクラスが出力に現れることを自動的に確認することができます。この処理によって、ビルド時間が長くなる可能性があることに注意してください。
Rename Reflected Classes
既定では、リフレクションのターゲットの名前は変更されません。これらのクラスの名前を変更できるようにするには、このオプションを使用します。