【Egret】Nativeプロジェクト熱更新

4060 ワード

http://docs.egret-labs.org/post/tools/native/hot-upgrade.html
 
概要
Egretのパッケージ項目はAndroidでもiOSでも熱更新に対応しています.ここでは主にAndroidプラットフォームを例にとって説明しますが、iOSプラットフォームはそれぞれの構成とiOSエントリクラスコードの中で異なる変更構成だけが必要です.
基本設定
  • まず、私達は先にegretProperties.jsonにおけるnativeの関連配置データについて説明します.
  • 図1 Egret項目設定ファイルにおける熱更新に関するフィールド
  • releaseフィールド:これはプロジェクトリリースディレクトリであり、特定のリリースディレクトリを指定する必要があれば、このパス値(現在のディレクトリに対するパス)を変更します.指定しない(またはこのフィールドがない、デフォルトは空です)とH 5アイテムのreleaseフォルダに投稿されます.
  • nativeフィールドの下で、path_ignoreフィールド:リストを無視する、すなわち、nativeパケット内に出現するファイル(フォルダ)を望まない、無視リストの中のファイル(クリップ)はH 5プロジェクトディレクトリ内であり、現在のディレクトリに対する相対パスでなければならない.図1の["release"]は、現在のH 5ディレクトリの下のフォルダである.
  • nativeフィールドでは、android_pathフィールド:android_pathは、Androidプロジェクトが現在のフォルダに対して相対的なパスであり、Androidがない場合、対応するandroid_pathは存在しないか、または空の文字列である.
  • 図1のAndroidは、egretコマンドを使用して作成されたAndroidプロジェクト(proj.android、thirdpartyを含む)であり、単なるフォルダではない.図のように:
    Native更新メカニズム原理
    Androidの入口コードには、Androidがファイルを読み込む方法を提供するgetLoaderUrlがある.
    1、空の文字列.つまり、現在のカバンは一番オリジナルのフォーマットを使用します.egret b -e --runtime nativeの後のデータ構造.
    2、「ガメコード.zip」.publishの後、最新の資源パッケージをAndroidプロジェクトにコピーします.この場合、Android項目でテストが必要であれば、戻り値を対応するgamecode.zipの名前に変更する必要があり、図中のように返すべき文字列は「gamecode 1418351650.zip」である.
    3、http://www.example.com/game_code.zip(サーバ方式であり、絶対アドレスであり、「http:/」ヘッダを含む).この方式を用いるだけで熱更新機構がある.エンジンは、提供されたgamecode.zipの名称(例えば「gamecode 1418351650.zip」ではなく、パスを「http://www.example.com/1111/gamecode.zipに変更するhttp://www.example.com/2222/game_code.zipダウンロードが必要かどうかを判断します.したがって、更新が必要な場合は、返したzipパッケージのファイル名はバージョンごとに異なるはずです.この需要を達成するために、2つの参考案を以下に提供する.
    a) java          ,         zip      。
    b)                 ,     zip    。
    バージョンリリース手順
  • は、egret b -e --runtime nativeを実行し、nativeプロジェクトをコンパイルする.
  • は、egret publish --runtime native -compileを実行し、最新の更新可能なリソースパケットを発行する.
  • 実行後、H 5プロジェクトのrelease/androidに現在リリースされているバージョンデータが生成されます.図中のフォルダ1418351650は最新バージョンであり、フォルダ内のリソースは更新が必要なリソースであり、このフォルダ1418351650をサーバにアップロードすればいい.
  • は、サーバ構成のgamecode.zipパケットの最新アドレス(絶対アドレス、および「http:/」ヘッダを含む)を変更する.http://www.example.com/gamecode_1418351650.zip「です
  • カスタムページ読み込み
  • は更新されていますので、必ず関連するローディング進捗表示を更新する必要があります.native_loader.jsでは、簡単な読み込み進捗コードが提供されます.egret_native.init LoadingUI()は、ロードページを初期化する.egret_native.set Prograss()は、ロードの進捗を修正します.egret_native.loadErr()リソース更新エラー.egret_native.removeUI()は、ロードページを削除します.
  • 熱更新はエンジンコードのロード後に実行されるので、エンジンのクラスおよび方法(例えば、egrett.Bitmap、egret.TextField)を使用することができる.
    jsファイルですので、エラー宣言などの種類がないようにしてください.
    注意事項
  • .nativeパッケージに熱的なアップデートが必要であれば、get LoaderUrl()方法で戻ってきたサーバのzipパケットアドレスは書き込みできません.
  • nativeプロジェクトはH 5工程内で作成しないでください.