オンデマンド モジュールを使う場合は、必ず Play Core Library の SplitCompat を使うようにしてください。
R8 最適化が行われていることを確認するには、Android Studio の APK Analyzer 内にある DEX Viewer を使い、ベース DEX ファイルから ServiceLoader クラスの参照を検索します。R8 が正常に働いている場合、何も見つかりません。
ServiceLoader.load() の呼び出しが表示されている場合(上のアニメーション)、最適化が動作していないため、呼び出しスレッドでディスク I/O オペレーションが発生し、アプリがフリーズする可能性があります。そのため、ServiceLoader パターンを使う場合は、必ず最適化が有効になっていることを確認してください。
どのアプローチを使う場合でも、アプリに DFM APK をインストールした後、StorageFeature オブジェクト グラフのみをインスタンス化する必要があります。
DFM が条件付きまたはオンデマンドで配信される場合は、最初に SplitInstallManager.installedModules を使って確認するようにしてください。