Android
パケットのサイズを小さくするために、SDKに必要なassetsリソース、soライブラリ、およびダイナミックエフェクトリソースMotionRes(一部のベーシック版SDKにはダイナミックエフェクトリソースはありません)をネットワークからのダウンロードに変更することができます。ダウンロード完了後、上記ファイルのパスをSDKに設定します。
Demoのダウンロードロジックを再利用することをお勧めします。当然のことながら、既存のダウンロードサービスを使用することもできます。
Demoのダウンロードロジックを再利用する場合は、次の点に注意してください:Demoでは、ブレークポイントからのダウンロード再開機能がデフォルトで有効になっています。これにより、ダウンロードが異常に中断された場合、次回の時に中断された場所から引き続きダウンロードできます。ブレークポイントからのダウンロード再開機能を有効にする場合は、ダウンロードサーバーがブレークポイントからのダウンロード再開機能をサポートしていることを確認してください。
検査方法
サーバーがブレークポイントからのダウンロード再開機能をサポートしているかどうかを判断するには、WebサーバーがRangeリクエストをサポートしているかどうかを確認してください。テスト方法は、コマンドラインで以下のcurlコマンドを実行することです:
curl -i --range 0-9 https://您的服务器地址/待下载的文件名
例:
curl -i --range 0-9 https://mediacloud-76607.gzc.vod.tencent-cloud.com/TencentEffect/Android/2.4.1.119/xmagic_S1-04_android_2.4.1.119.zip
返された内容にContent-Rangeフィールドがある場合は、サーバーがブレークポイントからのダウンロード再開機能をサポートしていることを意味します。
soのダイナミックダウンロード
下図に示すように、so圧縮パッケージは jniLibs/arm64-v8a
とjniLibs/armeabi-v7a
にあります:
- 2つのZIPパッケージのMD5値を計算します。Macでは、コマンドラインで
md5ファイルパス/ファイル名
を使用して直接MD5を計算することができます。または他のツールソフトウェアで計算することもできます。 - 圧縮パッケージをサーバーにアップロードして、ダウンロードURLを取得します。
- DemoプロジェクトのResDownloadConfigにある次の定数値を更新します:
ResDownloadUtil.checkOrDownloadFiles
を呼び出すことで、ダウンロードを開始します。
注意:
- SDKのバージョン更新により、対応するsoが変更される可能性があります。そのため、これらのsoを再度ダウンロードしてください。Demoのメソッドを参照し、検証にMD5を使用することをお勧めします。
- 自分でsoをダウンロードするか、Demoのダウンロードサービスを再利用するかにかかわらず、SDKのauthインターフェースを呼び出す前に、soがダウンロードされているかどうかを先に確認してください。ResDownloadUtilは、以下の確認方法を提供しています。すでにダウンロードされている場合は、SDKでパスを以下のように設定します:
String validLibsDirectory = ResDownloadUtil.getValidLibsDirectory(LaunchActivity.this,
isCpuV8a() ? ResDownloadConfig.DOWNLOAD_MD5_LIBS_V8A : ResDownloadConfig.DOWNLOAD_MD5_LIBS_V7A);
if (validLibsDirectory == null) {
Toast.makeText(LaunchActivity.this,"libsがダウンロードされていない場合は先にダウンロードしてください",Toast.LENGTH_LONG).show();
return;
}
XmagicApi.setLibPathAndLoad(validLibsDirectory);
auth();
assetsリソースのダイナミックダウンロード
assetsリソースのダイナミックダウンロードについての具体的な操作は以下のとおりです:
- ローカルプロジェクトのassetsで構成を行います。
- 2.4.0以降のバージョン:ローカルassetsのディレクトリにファイルを保存する必要はありません。
- 2.4.0より前のバージョン:Licenseファイルと
brand_name.json
、device_config.json
、phone_info.json
、score_phone.json
の4つのJSON構成ファイルを保存してください。
- SDKでパッケージ化された
download_assets.zip
を見つけます。 - 上記のsoファイルの処理方法と同じように、このZIPパッケージのMD5を計算し、サーバーにアップロードしてダウンロードアドレスを取得します。
- 下図に示すダウンロードアドレスとMD5を更新します。
ResDownloadUtil.checkOrDownloadFiles
を呼び出してダウンロードを開始し、ResDownloadUtil.getValidAssetsDirectoryを呼び出してダウンロード後のassetsのパスを取得します。詳しい方法については、
LaunchActivity.java`をご参照ください。
- 下図に示すダウンロードアドレスとMD5を更新します。
注意:
- SDKのバージョン更新により、対応するassetsが変更される可能性があります。互換性を確保するために、これらのassetsを再度ダウンロードしてください。Demoのメソッドを参照し、検証にMD5を使用することをお勧めします。
- 自分でassetsをダウンロードするか、Demoのダウンロードサービスを再利用するかにかかわらず、撮影する前に、assetsがダウンロードされているかどうかを先に確認してください。ResDownloadUtilは、以下の確認方法を提供しています。すでにダウンロードされている場合は、XmagicResParserでパスを設定します。詳しい方法については、
LaunchActivity.java
をご参照ください。
String validAssetsDirectory = ResDownloadUtil.getValidAssetsDirectory(LaunchActivity.this,ResDownloadConfig.DOWNLOAD_MD5_ASSETS);
if (validAssetsDirectory == null) {
Toast.makeText(LaunchActivity.this,"assetsがダウンロードされていない場合は先にダウンロードしてください",Toast.LENGTH_LONG).show();
return;
}
XmagicResParser.setResPath(validAssetsDirectory);
startActivity(intent);
ダイナミックエフェクトリソースMotionResのダウンロード
一部のベーシックパッケージにはダイナミックエフェクトリソースがありません。この場合は、このセクションをスキップしてもかまいません。
ダイナミックエフェクトは6つのカテゴリーに分類され、それぞれに複数のZIPパッケージがあり、各ZIPパッケージは1種類のダイナミックエフェクトです。購入したパッケージタイプによって、そのファイルの内容は異なります。
ダイナミックエフェクトリソースは、必要に応じて(たとえば、ユーザーが関連する機能ページに入った後、またはダイナミックエフェクトのアイコンをクリックした後など)ダウンロードできます。
これらのZIPパッケージをサーバーにアップロードし、各ZIPパッケージのダウンロードアドレスを取得する必要があります。
注意:ダイナミックエフェクトリソースのダウンロード後のディレクトリMotionResは、前のセクションのlight_assetsおよびlight_materialと同じレイヤーにある必要があります。また、下図に示すように、ZIPパッケージを直接配置するのではなく、各エフェクトを解凍してください:
MotionResをダウンロードするには、ResDownloadUtil.checkOrDownloadMotionsメソッドをご参照ください。必要に応じて1つずつダウンロードすることをお勧めします。
Demoでダウンロードサービスを再利用したい場合は、ResDownloadConfigのMOTION_RES_DOWNLOAD_PREFIX定数値を自分のダウンロードURLのプレフィックスに置き換えてください。