Android モード
PreEmptive Protection™ DashO™ for Android & Java には、R8 を使用する Android ビルド プロセスの一部として、Android 用の DashO Gradle プラグインと連携するように特別に設計された、Android モード が含まれています。 DashO は、それが Android モード プロジェクト ファイルを処理するときが、DashO Gradle プラグイン(Android 用)によるビルド中であっても、あるいはプロジェクト ファイルが DashO GUI に読み込まれる場合であっても、必ず Android モードで動作します。
これに対し、Android モード プロジェクト ファイルが DashO で使用されない場合には、必ず標準モードが使用されます。 標準モードは、Java プロジェクトに使用されたり、APK を後処理するために使用されたりします。
メモ:
DashO が既存の Android プロジェクト ビルドと統合されている場合に、そのビルドを Android モードに変換するには、アップグレード手順を参照してください。
R8 と連携する
DashO Gradle プラグイン(Android 用)は、Android Gradle プラグインおよび R8 と連携して動作することで、お客様のアプリケーションを保護します。 以下に示す、R8 で実行されるいくつかの変換は、DashO でも実行されるので、DashO の Android モードではこれらの変換が自動的に無効化されます。
上記の変換は DashO では実行されなくなるため、アプリケーションを保護するには、Android プロジェクト内で DashO と共に R8 を有効化する必要があります。
また、DashO の名前変更と除去で使用されるエントリ ポイントも、Android モードでは無効化されています。
Android モードでのその他の変更
DashO のいくつかの変換は、Android プロジェクトでは適用できないかサポートされていないため、無効化されています。
自動入力管理
Android モードでは、入力、依存関係、および出力は、パスの割り当てファイルを使って DashO Gradle プラグイン(Android 用)によって制御されるため、プロジェクト ファイルや DashO GUI では構成できません。
Android モード プロジェクトをビルドする際、DashO が入力、依存関係、および出力を指定するのに使用するパスの割り当ての場所を自動的にキャッシュすることで、DashO GUI により、使用する入力が特定され、クラス、メソッド、フィールドの一覧が作成されます。 DashO GUI で Android モード プロジェクトを開くと、DashO はこのキャッシュを検索し、キャッシュが見つからない場合はビルドを実行するようにユーザーに求めます。 また、DashO GUI を開いているときにプロジェクトをビルドすると、そのプロジェクトが DashO に検出されて、この直近のビルドを反映するようにクラスの一覧を更新する必要があるかどうかを尋ねられます。
ビルド バリアントが異なれば、それに設定されるパスの割り当ては必ず異なるほか、設定されるクラス、メソッド、フィールドの組み合わせも異なる場合があります。 DashO では、プロジェクトが読み込まれた際、直近にビルドされたビルド バリアントのキャッシュが使用されます。 いくつかのビルド バリアントでのみ使用可能なクラスに関する規則をプロジェクト ファイルに含めたい場合は、バリアント固有のプロジェクト ファイルを作成することもできます。
メモ:
[Path Map](パスの割り当て)に表示されている場所は、お使いの.dox
ファイルが含まれているのと同じディレクトリの下にある.dasho/{project file name}.cache
ディレクトリ内の{variantName}.pathmap
ファイル(例:./.dasho/project.dox.cache/release.pathmap
)にキャッシュされています。
Android モードの GUI
Android モード プロジェクト ファイルを DashO GUI で読み込むと、DashO により Android モードの GUI が使用されます。 この UI は、Android モード用に最適化されているため、不要な画面、ボタン、メニュー オプションが非表示になっています。
プロジェクト ファイルの構文の違い
Android モードをプロジェクト ファイル内で有効化するには、最上位レベルにある <dasho>
要素で mode
属性を使用します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<dasho mode="android" version="10.0.0">
Android モードでは、以下のプロジェクト ファイルの要素は無視され、警告が生成されます。
<classpath>
<entrypoints>
<exclude>
(<global>
の下で入れ子になっている)<includenonclassfiles>
<inputpath>
<make-synthetic>
<methodCallRemoval>
<optimization>
<output>
<premark>
<preverifier>
<removal>
<renaming>
<report>
<seInput>
<seOutput>
<signjar>
Android モードでは、以下の <global>
のオプションは無視され、警告が生成されます。