Android 9でのキャッシュ処理

ネットワークセキュリティ設定

Audience Network Android SDKでは、127.0.0.1 (localhost)をキャッシュプロキシとして使い、メディアファイルをSDKにキャッシュしています。Android 9以降、平文トラフィック(暗号化されていないHTTP)はデフォルトでブロックされるようになります。このことはSDKのメディアキャッシュ機能に影響し、ユーザーエクスペリエンスや広告収益にも影響が及ぶ可能性があります。

この影響を緩和するために、アドレス127.0.0.1(デバイスそのもののローカルアドレス)への平文トラフィックを許可リストに登録することができます。

これはAndroidネットワークセキュリティ設定を使うことによって可能です。

すでにカスタムのネットワークセキュリティ設定を使って平文トラフィックをオプトアウトしている場合は、必ず、許可されたドメインとして127.0.0.1を追加してください。

ネットワークセキュリティ設定ファイルを追加する

ネットワークセキュリティ設定機能では、アプリの設定が指定されているXMLファイルを使います。アプリリソースのxmlフォルダでまだアプリの設定を指定していない場合は、新しいXMLファイルres/xml/network_security_config.xmlを作成できます。

その後アプリケーションマニフェストAndroidManifest.xmlで、次のようにアプリケーション属性に設定を追加します。

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config"
... >
...
</application>
</manifest>

許可された平文トラフィックドメインにlocalhostを追加する

res/xml/network_security_config.xmlファイルに以下を追加することにより、許可された平文トラフィックドメインにlocalhostを追加できます。

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
...
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">127.0.0.1</domain>
</domain-config>
...
</network-security-config>

こうしておけば、Audience Network SDKでキャッシュは正しく機能するはずです。