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-v8ajniLibs/armeabi-v7aにあります:

  1. 2つのZIPパッケージのMD5値を計算します。Macでは、コマンドラインでmd5ファイルパス/ファイル名を使用して直接MD5を計算することができます。または他のツールソフトウェアで計算することもできます。
  2. 圧縮パッケージをサーバーにアップロードして、ダウンロードURLを取得します。
  3. DemoプロジェクトのResDownloadConfigにある次の定数値を更新します:
  4. 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リソースのダイナミックダウンロードについての具体的な操作は以下のとおりです:

  1. ローカルプロジェクトのassetsで構成を行います。
    • 2.4.0以降のバージョン:ローカルassetsのディレクトリにファイルを保存する必要はありません。
    • 2.4.0より前のバージョン:Licenseファイルとbrand_name.jsondevice_config.jsonphone_info.jsonscore_phone.jsonの4つのJSON構成ファイルを保存してください。
  2. SDKでパッケージ化されたdownload_assets.zipを見つけます。
  3. 上記のsoファイルの処理方法と同じように、このZIPパッケージのMD5を計算し、サーバーにアップロードしてダウンロードアドレスを取得します。
    1. 下図に示すダウンロードアドレスとMD5を更新します。
    2. ResDownloadUtil.checkOrDownloadFilesを呼び出してダウンロードを開始し、ResDownloadUtil.getValidAssetsDirectoryを呼び出してダウンロード後のassetsのパスを取得します。詳しい方法については、LaunchActivity.java`をご参照ください。
注意:

  • 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のプレフィックスに置き換えてください。