(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022027529
(43)【公開日】2022-02-10
(54)【発明の名称】ボーディングアプリケーションのコンパイル最適化方法、装置、電子機器及び読み取り可能な記憶媒体
(51)【国際特許分類】
G06F 8/60 20180101AFI20220203BHJP
G06F 8/41 20180101ALI20220203BHJP
【FI】
G06F8/60
G06F8/41 130
【審査請求】有
【請求項の数】23
【出願形態】OL
(21)【出願番号】P 2021117431
(22)【出願日】2021-07-15
(31)【優先権主張番号】202010752207.X
(32)【優先日】2020-07-30
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】512015127
【氏名又は名称】バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】チェン、ドゥ
(72)【発明者】
【氏名】リウ、ユエケン
(72)【発明者】
【氏名】ジャン、ファン
(72)【発明者】
【氏名】チャン、ホンタオ
(72)【発明者】
【氏名】チェン、ユツェン
【テーマコード(参考)】
5B081
5B376
【Fターム(参考)】
5B081CC21
5B376AB11
5B376AB27
5B376AB41
5B376DA05
(57)【要約】 (修正有)
【課題】ボーディングアプリケーションのコンパイル最適化方法、装置、電子機器及び読み取り可能な記憶媒体を提供する。
【解決手段】方法は、開発者ツールによりボーディングアプリケーションのソースコードに基づいてコンパイル処理を最適化する前の第1のコンパイル結果と、コンパイル処理を最適化した後の第2のコンパイル結果とをそれぞれ構築して、管理プラットフォームにアップロードする。管理プラットフォームは、ボーディングアプリケーション実行環境の環境データに基づいて、コンパイル結果に対応する伝達を行って、ホストアプリケーションがボーディングアプリケーション実行環境を利用して、取得したコンパイル結果を実行する。
【効果】ボーディングアプリケーションのコンパイル処理の最適化をスムーズに行うことによって、最適化後のボーディングアプリケーション実行の効率と信頼性を効果的に向上させる。
【選択図】
図2
【特許請求の範囲】
【請求項1】
ボーディングアプリケーションのコンパイル最適化方法であって、
ホストアプリケーションから送信されたボーディングアプリケーションの取得要求を受信したことに応答して、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データを取得するステップと、
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに基づいて、開発者ツールによってアップロードされた前記ボーディングアプリケーションのコンパイル結果において照会処理を行って、前記ホストアプリケーションが実行可能な一つのコンパイル結果を取得するステップであって、前記ボーディングアプリケーションのコンパイル結果は、コンパイル処理を最適化する前の第1のコンパイル結果とコンパイル処理を最適化した後の第2のコンパイル結果とを含むステップと、
前記ホストアプリケーションが当該ホストアプリケーションによって提供されるボーディングアプリケーション実行環境を利用して、取得された前記ホストアプリケーションが実行可能な一つのコンパイル結果を実行するように、当該一つのコンパイル結果を前記ホストアプリケーションに伝達するステップと、を含む、
ボーディングアプリケーションのコンパイル最適化方法。
【請求項2】
前記第2のコンパイル結果は、少なくとも一つのコンパイル結果を含む、
請求項1に記載のボーディングアプリケーションのコンパイル最適化方法。
【請求項3】
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに基づいて、開発者ツールによってアップロードされた前記ボーディングアプリケーションのコンパイル結果において照会処理を行って、前記ホストアプリケーションが実行可能な一つのコンパイル結果を取得するステップの前に、
開発者ツールによってアップロードされた前記ボーディングアプリケーションのコンパイル結果を取得するステップと、
前記ボーディングアプリケーションのコンパイル結果における各コンパイル結果に対して審査処理を行うステップと、
前記各コンパイル結果の審査処理結果に基づいて、前記審査処理結果が通過であるコンパイル結果に対して、実行可能な環境のラベリング処理を行うステップと、をさらに含む、
請求項1に記載のボーディングアプリケーションのコンパイル最適化方法。
【請求項4】
前記ボーディングアプリケーションのコンパイル結果における各コンパイル結果に対して審査処理を行うステップは、
前記第1のコンパイル結果及び前記第2のコンパイル結果に対してそれぞれ審査処理を行って、前記第1のコンパイル結果の審査処理結果及び前記第2のコンパイル結果の審査処理結果を取得するステップと、
前記第1のコンパイル結果の審査処理結果が通過である場合、前記第2のコンパイル結果の審査処理結果を調整しないステップと、
前記第1のコンパイル結果の審査処理結果が非通過である場合、前記第2のコンパイル結果の審査処理結果を非通過に調整するステップと、を含む、
請求項3に記載のボーディングアプリケーションのコンパイル最適化方法。
【請求項5】
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データは、
前記ホストアプリケーションのバージョンデータと、
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境のバージョンデータとのうちの少なくとも一つを含む、
請求項1~4のいずれか一項に記載のボーディングアプリケーションのコンパイル最適化方法。
【請求項6】
ボーディングアプリケーションのコンパイル最適化方法であって、
ボーディングアプリケーションのソースコードを取得するステップと、
前記ボーディングアプリケーションのソースコードに基づいて、前記ボーディングアプリケーションのコンパイル結果を構築するステップであって、前記ボーディングアプリケーションのコンパイル結果は、コンパイル処理を最適化する前の第1のコンパイル結果とコンパイル処理を最適化した後の第2のコンパイル結果とを含むステップと、
管理プラットフォームに前記ボーディングアプリケーションのコンパイル結果をアップロードするステップとを含む、
ボーディングアプリケーションのコンパイル最適化方法。
【請求項7】
前記第2のコンパイル結果は、少なくとも一つのコンパイル結果を含む、
請求項6に記載のボーディングアプリケーションのコンパイル最適化方法。
【請求項8】
前記管理プラットフォームに前記ボーディングアプリケーションのコンパイル結果をアップロードするステップは、
前記ボーディングアプリケーションのコンパイル結果に基づいて、各コンパイル結果のバージョンデータを生成するステップであって、前記各コンパイル結果のバージョンデータは、前記第1のコンパイル結果のバージョンデータと、前記第1のコンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンデータと、前記第2のコンパイル結果のバージョンデータと、前記第2のコンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンデータとを含むステップと、
前記管理プラットフォームに前記各コンパイル結果及び前記各コンパイル結果のバージョンデータをアップロードするステップと、を含む、
請求項6に記載のボーディングアプリケーションのコンパイル最適化方法。
【請求項9】
前記ボーディングアプリケーションのコンパイル結果に基づいて、各コンパイル結果のバージョンデータを生成するステップは、
前記ボーディングアプリケーションの統一コンパイルバージョン生成ルールに基づいて、順次に従って前記各コンパイル結果のバージョンデータを順番生成するステップと、又は
前記ボーディングアプリケーションの今回コンパイルバージョン生成ルールに基づいて、順次に従って前記各コンパイル結果のバージョンデータを順番生成するステップと、を含む、
請求項8に記載のボーディングアプリケーションのコンパイル最適化方法。
【請求項10】
ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データは、
前記ホストアプリケーションのバージョンデータと、
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境のバージョンデータとのうちの少なくとも一つを含む、
請求項6~9のいずれか一項に記載のボーディングアプリケーションのコンパイル最適化方法。
【請求項11】
ボーディングアプリケーションのコンパイル最適化装置であって、
ホストアプリケーションから送信されたボーディングアプリケーションの取得要求を受信したことに応答して、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データを取得するための取得ユニットと、
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに基づいて、開発者ツールによってアップロードされた前記ボーディングアプリケーションのコンパイル結果において照会処理を行って、前記ホストアプリケーションが実行可能な一つのコンパイル結果を取得するための照会ユニットであって、前記ボーディングアプリケーションのコンパイル結果は、コンパイル処理を最適化する前の第1のコンパイル結果とコンパイル処理を最適化した後の第2のコンパイル結果とを含む照会ユニットと、
前記ホストアプリケーションが当該ホストアプリケーションによって提供されるボーディングアプリケーション実行環境を利用して、取得された前記ホストアプリケーションが実行可能な一つのコンパイル結果を実行するように、当該一つのコンパイル結果を前記ホストアプリケーションに伝達するための伝達ユニットと、を含む、
ボーディングアプリケーションのコンパイル最適化装置。
【請求項12】
前記第2のコンパイル結果は、少なくとも一つのコンパイル結果を含む、
請求項11に記載のボーディングアプリケーションのコンパイル最適化装置。
【請求項13】
前記装置は、審査ユニットをさらに含み、前記審査ユニットは、
開発者ツールによってアップロードされた前記ボーディングアプリケーションのコンパイル結果を取得し、
前記ボーディングアプリケーションのコンパイル結果における各コンパイル結果に対して審査処理を行い、
前記各コンパイル結果の審査処理結果に基づいて、前記審査処理結果が通過であるコンパイル結果に対して、実行可能な環境のラベリング処理を行うために用いられる、
請求項11に記載のボーディングアプリケーションのコンパイル最適化装置。
【請求項14】
前記審査ユニットは、具体的には、
前記第1のコンパイル結果及び前記第2のコンパイル結果に対してそれぞれ審査処理を行って、前記第1のコンパイル結果の審査処理結果及び前記第2のコンパイル結果の審査処理結果を取得し、
前記第1のコンパイル結果の審査処理結果が通過である場合、前記第2のコンパイル結果の審査処理結果を調整せず、
前記第1のコンパイル結果の審査処理結果が非通過である場合、前記第2のコンパイル結果の審査処理結果を非通過に調整するために用いられる、
請求項13に記載のボーディングアプリケーションのコンパイル最適化装置。
【請求項15】
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データは、
前記ホストアプリケーションのバージョンデータと、
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境のバージョンデータとのうちの少なくとも一つを含む、
請求項11~14のいずれか一項に記載のボーディングアプリケーションのコンパイル最適化装置。
【請求項16】
ボーディングアプリケーションのコンパイル最適化装置であって、
ボーディングアプリケーションのソースコードを取得するための取得ユニットと、
前記ボーディングアプリケーションのソースコードに基づいて、前記ボーディングアプリケーションのコンパイル結果を構築するための構築ユニットであって、前記ボーディングアプリケーションのコンパイル結果は、コンパイル処理を最適化する前の第1のコンパイル結果とコンパイル処理を最適化した後の第2のコンパイル結果とを含む構築ユニットと、
管理プラットフォームに前記ボーディングアプリケーションのコンパイル結果をアップロードするアップロードユニットと、を含む、
ボーディングアプリケーションのコンパイル最適化装置。
【請求項17】
前記第2のコンパイル結果は、少なくとも一つのコンパイル結果を含む、
請求項16に記載のボーディングアプリケーションのコンパイル最適化装置。
【請求項18】
前記アップロードユニットは、具体的には、
前記ボーディングアプリケーションのコンパイル結果に基づいて、各コンパイル結果のバージョンデータを生成し、前記各コンパイル結果のバージョンデータは、前記第1のコンパイル結果のバージョンデータと、前記第1のコンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンデータと、前記第2のコンパイル結果のバージョンデータと、前記第2のコンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンデータとを含み、
前記管理プラットフォームに前記各コンパイル結果及び前記各コンパイル結果のバージョンデータをアップロードするために用いられる、
請求項16に記載のボーディングアプリケーションのコンパイル最適化装置。
【請求項19】
前記アップロードユニットは、具体的には、
前記ボーディングアプリケーションの統一コンパイルバージョン生成ルールに基づいて、順次に従って前記各コンパイル結果のバージョンデータを順番生成するか、又は
前記ボーディングアプリケーションの今回コンパイルバージョン生成ルールに基づいて、順次に従って前記各コンパイル結果のバージョンデータを順番生成するために用いられる、
請求項18に記載のボーディングアプリケーションのコンパイル最適化装置。
【請求項20】
ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データは、
前記ホストアプリケーションのバージョンデータと、
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境のバージョンデータとのうちの少なくとも一つを含む、
請求項16~19のいずれか一項に記載のボーディングアプリケーションのコンパイル最適化装置。
【請求項21】
電子機器であって、
少なくとも一つのプロセッサと、
前記少なくとも一つのプロセッサに通信接続されたメモリと、を含み、
前記メモリに前記少なくとも一つのプロセッサにより実行可能な命令が記憶されており、前記命令が前記少なくとも一つのプロセッサにより実行されると、前記少なくとも一つのプロセッサが請求項1~10のいずれか一項に記載の方法を実行する、
電子機器。
【請求項22】
コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、
前記コンピュータ命令は、コンピュータに請求項1~10のいずれかの一つに記載の方法を実行させる、
コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項23】
コンピュータに請求項1~10のいずれか一項に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
コンピュータ技術の分野に関し、具体的には、アプリケーションコンパイル技術の分野に関し、さらに、ミニプログラム技術の分野に関し、特に、ボーディングアプリケーションのコンパイル最適化方法、装置、電子機器及び読み取り可能な記憶媒体に関する。
【背景技術】
【0002】
インターネットの発展の深化に伴い、端末に適用されるアプリケーション(APPlication、APP)が次々に出現している。いくつかのアプリケーションは、ホストアプリケーションと呼ばれることができ、その中の特定の形式のアプリケーションを実行することによっていくつかの他のアプリケーションの特定のサービスを提供するこができる。これらの特定の形式のアプリケーションは端末にインストールする必要がなく、ボーディングアプリケーションと呼ばれることができ、例えば、バイドゥAPP中のバイドゥ知道(百度知道)ミニプログラム、百度文庫(バイドゥ文庫)ミニプログラムなどの特定のサービスのような様々なミニプログラムがある。通常、開発者は開発者ツールを使用してボーディングアプリケーションのソースコードに対してコンパイル処理を行う必要があり、開発者ツールによってコンパイル処理後のコンパイル結果をパッケージ化してアップロードした後にのみ、ユーザによって検索して使用されることができる。
【0003】
しかし、ホストアプリケーションで実行されているボーディングアプリケーションは、当該ホストアプリケーションに完全に依存するため、一部のユーザが使用する現在のバージョンのホストアプリケーションが最適化後のボーディングアプリケーションのコンパイル結果を取得し実行することができない可能性があるため、ボーディングアプリケーションのコンパイル処理の最適化が難しくなり、ボーディングアプリケーション実行の効率と信頼性が低下するようになる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の様々な態様は、ボーディングアプリケーション実行の効率と信頼性を向上させるためのボーディングアプリケーションのコンパイル最適化方法、装置、電子機器及び読み取り可能な記憶媒体を提供する。
【課題を解決するための手段】
【0005】
第1の態様によれば、ボーディングアプリケーションのコンパイル最適化方法を提供し、
ホストアプリケーションから送信されたボーディングアプリケーションの取得要求を受信したことに応答して、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データを取得するステップと、
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに基づいて、開発者ツールによってアップロードされた前記ボーディングアプリケーションのコンパイル結果において照会処理を行って、前記ホストアプリケーションが実行可能な一つのコンパイル結果を取得するステップであって、前記ボーディングアプリケーションのコンパイル結果は、コンパイル処理を最適化する前の第1のコンパイル結果とコンパイル処理を最適化した後の第2のコンパイル結果とを含むステップと、
前記ホストアプリケーションが当該ホストアプリケーションによって提供されるボーディングアプリケーション実行環境を利用して、取得された前記ホストアプリケーションが実行可能な一つのコンパイル結果を実行するように、当該一つのコンパイル結果を前記ホストアプリケーションに伝達するステップと、を含む。
【0006】
第2の態様によれば、別のボーディングアプリケーションのコンパイル最適化方法を提供し、
ボーディングアプリケーションのソースコードを取得するステップと、
前記ボーディングアプリケーションのソースコードに基づいて、前記ボーディングアプリケーションのコンパイル結果を構築するステップであって、前記ボーディングアプリケーションのコンパイル結果は、コンパイル処理を最適化する前の第1のコンパイル結果とコンパイル処理を最適化した後の第2のコンパイル結果とを含むステップと、
管理プラットフォームに前記ボーディングアプリケーションのコンパイル結果をアップロードするステップと、を含む。
【0007】
第3の態様によれば、ボーディングアプリケーションのコンパイル最適化装置を提供し、
ホストアプリケーションから送信されたボーディングアプリケーションの取得要求を受信したことに応答して、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データを取得するための取得ユニットと、
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに基づいて、開発者ツールによってアップロードされた前記ボーディングアプリケーションのコンパイル結果において照会処理を行って、前記ホストアプリケーションが実行可能な一つのコンパイル結果を取得するための照会ユニットであって、前記ボーディングアプリケーションのコンパイル結果は、コンパイル処理を最適化する前の第1のコンパイル結果とコンパイル処理を最適化した後の第2のコンパイル結果とを含む照会ユニットと、
前記ホストアプリケーションが当該ホストアプリケーションによって提供されるボーディングアプリケーション実行環境を利用して、取得された前記ホストアプリケーションが実行可能な一つのコンパイル結果を実行するように、当該一つのコンパイル結果を前記ホストアプリケーションに伝達するための伝達ユニットと、を含む。
【0008】
第4の態様によれば、別のボーディングアプリケーションのコンパイル最適化装置を提供し、
ボーディングアプリケーションのソースコードを取得するための取得ユニットと、
前記ボーディングアプリケーションのソースコードに基づいて、前記ボーディングアプリケーションのコンパイル結果を構築するための構築ユニットであって、前記ボーディングアプリケーションのコンパイル結果は、コンパイル処理を最適化する前の第1のコンパイル結果とコンパイル処理を最適化した後の第2のコンパイル結果とを含む構築ユニットと、
管理プラットフォームに前記ボーディングアプリケーションのコンパイル結果をアップロードするアップロードユニットと、を含む。
【0009】
第5の態様によれば、電子機器を提供し、
少なくとも一つのプロセッサと、
前記少なくとも一つのプロセッサに通信接続されたメモリと、を含み、
前記メモリに前記少なくとも一つのプロセッサにより実行可能な命令が記憶されており、前記命令が前記少なくとも一つのプロセッサにより実行されると、前記少なくとも一つのプロセッサが上記に記載の態様と任意の可能な実現方式の方法を実行することができる。
【0010】
第6の態様によれば、コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体を提供し、前記コンピュータ命令は、前記コンピュータに上記に記載の態様と任意の可能な実現方式の方法を実行させる。
【0011】
上記の技術案から分かるように、本開示の実施例は開発者ツールがボーディングアプリケーションのソースコードに基づいてコンパイル処理を最適化する前のボーディングアプリケーションの第1のコンパイル結果と、コンパイル処理を最適化した後のボーディングアプリケーションの第2のコンパイル結果とをそれぞれ構築し、それを管理プラットフォームにアップロードし、管理プラットフォームがホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに基づいて、コンパイル結果に対応する伝達を行って、前記ホストアプリケーションが当該ホストアプリケーションによって提供されるボーディングアプリケーション実行環境を利用して、取得されたコンパイル結果を実行するようにし、ボーディングアプリケーションのコンパイル処理の最適化がユーザが使用するホストアプリケーションのバージョンにより限定されないため、ボーディングアプリケーションのコンパイル処理の最適化をスムーズに行うことによって、最適化後のボーディングアプリケーション実行の効率と信頼性を効果的に向上させる。
【0012】
また、本開示によって提供される技術案を使用して、開発者ツールがコンパイル処理を最適化した後のボーディングアプリケーションの第2のコンパイル結果を構築するだけでなく、コンパイル処理を最適化する前のボーディングアプリケーションの第1のコンパイル結果も構築することによって、開発者ツールがコンパイル処理を最適化するプロセス中にホストアプリケーションの履歴バージョンに対する互換性の負担を取り除くことができ、開発者ツールの内部コードがより明確になり、そのコンパイル産物もより効率的になり、開発者ツールのコンパイル効率を向上させる。
【0013】
また、本開示によって提供される技術案を使用して、構築されたコンパイル産物の変化の迅速なオンラインについて新たな道を効果的に開き、より大きな収益が得られる。
【0014】
また、本開示によって提供される技術案を使用して、ユーザの体験を効果的に向上させることができる。
【0015】
本明細書に説明された内容は、本開示の実施例のキー又は重要な特徴を識別することを意図するものではなく、本開示の範囲を限定することを意図するものでもないことを理解されたい。本開示の他の特徴は、以下の説明によって容易に理解される。
【図面の簡単な説明】
【0016】
本開示の実施例における技術案をより明確に説明するために、以下、実施例又は既存の技術の説明において使用する必要がある図面を簡単に説明する。明らかに、以下に説明する図面は本開示のいくつかの実施例であり、当業者にとって、創造的な労力なしで、これらの図面に基づいて他の図面を取得することもできる。図面は本技術案よりよく理解するためにのみ使用され、本開示に対する限定を構成しない。
【
図6】本開示の実施例のボーディングアプリケーションのコンパイル最適化方法を実現するための電子機器の概略図である。
【発明を実施するための形態】
【0017】
以下、図面に基づいて、本開示の例示的な実施例を説明する。理解を容易にするために、本開示の実施例の様々な詳細が含まれており、それらは単なる例示と見なされるべきである。従って、当業者は、本開示の範囲及び精神から逸脱することなく、本明細書に記載の実施形態に対して様々な変更及び修正を行うことができることを認識するはずである。同様に、簡明のために、以下の説明では、よく知られた機能と構造の説明は省略される。
【0018】
明らかに、説明された実施例は本開示の一部の実施例であるが、すべての実施例ではない。本開示の実施例によれば、当業者は創造的な労働なしに取得されたすべての他の実施例は、すべて本開示の保護の範囲に属する。
【0019】
なお、本開示の実施例に関する端末デバイスは、携帯電話、携帯情報端末(PerSonal Digital ASSiStant、PDA)、ワイヤレスハンドヘルドデバイス、タブレットコンピュータ(Tablet Computer)などのスマートデバイスを含むことができるが、これらに限定しない。ディスプレイデバイスは、パーソナルコンピュータ、テレビなどのディスプレイ機能を備える機器を含むことができるが、これらに限定しない。
【0020】
また、本明細書の用語「及び/又は」は、関連対象の関連関係のみを説明するものであり、3種類の関係が存在可能であることを表し、例えば、A及び/又はBは、Aのみが存在するか、A及びBが同時に存在するか、Bのみが存在するという3つの場合を表すことができる。符号「/」は、一般的に前後の関連対象が「又は」の関係であることを表すことを理解されたい。
【0021】
本開示に係るボーディングアプリケーションは、ミニプログラムなどの端末にインストールする必要がないアプリケーションであってもよく、レンダリング層とロジック層を介して物理的に隔離された純粋にオフラインで動作可能なランタイムエコロジーであってもよい。ボーディングアプリケーションは、例えば、ミニプログラム実行時のソフトウェア開発キッ(Software DeVelopment Kit、SDK)などの、ホストアプリケーションによって統合されたボーディングアプリケーション実行プラットフォーム上で実行する必要があり、当該ボーディングアプリケーション実行プラットフォーム上でボーディングアプリケーションフレームワークがロードされている。標準的なJS拡張に基づくドメイン特化言語(Domain Specific Language、DSL)文法は、開発者ツールがコンパイルしてパッケージ化した後、管理プラットフォームにアップロードした後のみ、ユーザによって検索して使用されることができる。
【0022】
ミニプログラムを例として、ミニプログラムの開発者は、開発者ツールがミニプログラムを開発する時、ミニプログラムのソースコードは開発者ツールがコンパイルしてパッケージ化した後、ミニプログラムの管理プラットフォームにアップロードし、ミニプログラム実行時にSDKがミニプログラムを実行する時に開発者ツールのビルド産物に対して一定の順次に従ってロードして実行することができる。
【0023】
ミニプログラムを秒で開くことは、我々がミニプログラム側のユーザの究極な体験を向上させるための大きなビジョンであり、ミニプログラム開発の全体のプロセスから最適化する必要がある。既存のミニプログラム生産段階で行われている最適化は、ミニプログラムに関するコンパイル産物が異なることにより、開発者使用の開発者ツールのバージョン、バイドゥスマートミニプログラムコアフレームワーク(SwanJS)のようなミニプログラムフレームワークの最低バージョン、及びホストアプリケーションのバージョンに依存することができる。従って、既存のメカニズムでは、ミニプログラムの生産段階における最適化方案は、迅速にオンラインして実験することができなくなる。
【0024】
要約すると、開発者ツールによって構築されたコンパイル産物に変化が発生した後ミニプログラムの生産段階の全体のプロセスリンク上のすべての生産段階に依存することができる。
1、開発者が現在使用している開発者ツール(最新バージョンを使用するか否か)への依存であり、
2、SwanJSの最低バージョンのような、開発者ツールがミニプログラムの管理プラットフォームで表現されるミニプログラムフレームワークへの依存であり、
3、ホストアプリケーションのバージョンと、SwanJSバージョンのような現在実行されているミニプログラムフレームワークへの依存である。
【0025】
開発者ツールを実行するコンパイル産物の最新バージョンを最適化できる必要がある場合、上記のこれらの依存を同時に満たす必要がある。その中、特に、依存2にとって、開発者が低いバージョンのホストアプリケーションで配布されたミニプログラムを積極的に放棄する必要があり、これは開発者の1日あたりのアクティブユーザ数(Daily ActiVe USer、DAU)のユーザに対して一部の損失をもたらし、既存のメカニズムにおいて上記の条件を同時に満たすことが困難である。従って、開発者ツールは、例えばコンパイル産物に変化が発生すると、オンラインできない。
【0026】
従って、既存の方案では、以下のような二つの技術的問題が存在する。
1、開発者ツールの最新バージョンは、常に、履歴バージョンコードに対する互換性のロジックをメンテナンスする必要があり、その構築されたコンパイル産物は、ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の全バージョン上で常に実行される必要がある。
【0027】
2、上記の依存条件は同時に満たすことができず、開発者ツールがコンパイル産物の変化に関する機能と最適化が、遅れてオンラインできない。
【0028】
本開示はボーディングアプリケーションのコンパイル最適化方法を提供し、ボーディングアプリケーションのコンパイル産物が異なる時に迅速にオンラインすることを実現することができ、ユーザが現在使用しているホストアプリケーションとSwanJSバージョンに基づいて最適なビルド産物バージョンを伝達することをサポートすることができ、既存のボーディングアプリケーションの生産段階のコンパイルによるビルド産物に変化が発生した後の最適化手段又は機能が遅れて実現できない窮屈を解決することができる。
【0029】
図1に示すように、
図1は、本開示の第1の実施例による概略図である。
【0030】
101、ホストアプリケーションによって送信されたボーディングアプリケーションの取得要求を受信したことに応答して、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データを取得する。
【0031】
102、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに基づいて、開発者ツールによってアップロードされた前記ボーディングアプリケーションのコンパイル結果において照会処理を行って、前記ホストアプリケーションが実行可能な一つのコンパイル結果を取得し、前記ボーディングアプリケーションのコンパイル結果は、コンパイル処理を最適化する前の第1のコンパイル結果とコンパイル処理を最適化した後の第2のコンパイル結果とを含む。
【0032】
103、取得された前記ホストアプリケーションが実行可能な一つのコンパイル結果を前記ホストアプリケーションに伝達して、前記ホストアプリケーションが当該ホストアプリケーションによって提供されるボーディングアプリケーション実行環境を利用して、当該一つのコンパイル結果を実行するようにする。
【0033】
なお、101~103の実行主体の一部又は全部は、ネットワーク側のサーバにある処理エンジンであってもよく、ネットワーク側にある分散システムであってもよく、例えば、ネットワーク側の管理プラットフォームにおける処理エンジン又は分散システムなどについて、本実施例ではこれについて特に限定されない。
【0034】
前記ホストアプリケーションは、ローカル端末にインストールされたローカルプログラム(natiVeAPP)であってもよく、ローカル端末上のブラウザの一つのウェブプログラム(webAPP)であってもよく、本実施例ではこれについて限定されないことを理解することができる。
【0035】
本開示では、ボーディングアプリケーションの第1のコンパイル結果とボーディングアプリケーションの第2のコンパイル結果は、いずれも開発者ツールがボーディングアプリケーションの同じソースコードに基づいて構築されており、その違いは、前記第1のコンパイル結果は、開発者ツールのコンパイル処理に対して最適化する前の元のコンパイル結果であってもよく、前記第2のコンパイル結果は、開発者ツールのコンパイル処理に対して最適化した後の最適化コンパイル結果であってもよい。
【0036】
具体的には、前記第1のコンパイル結果は、開発者ツールのコンパイル処理に対して最適化する前の一つの元のコンパイル結果であってもよく、開発者が設置したボーディングアプリケーションフレームワークの最低バージョン以上の全部バージョンで実行することができ、前記第2のコンパイル結果は、開発者ツールのコンパイル処理に対して最適化した後の一つの又は複数の最適化コンパイル結果であってもよく、例えば、最新の一回のコンパイル処理を最適化した後の最新コンパイル結果、及び開発者ツールの履歴の一回又は複数回のコンパイル処理を最適化した後の中間コンパイル結果は、開発者ツールによって記録されたボーディングアプリケーションフレームワークの最低バージョン以上のバージョンで実行することができる。
【0037】
いわゆる元のコンパイル結果は、開発者ツールが任意の最適化を行っていない元の機能に関するビルド産物が変化されてない初期バージョン、例えば、任意の最適化をオープンしていないS1バージョンを指すことができ、いわゆる最新コンパイル結果は、開発者ツールがすべての最適化を行う機能に関するビルド産物が変化された変化バージョン、例えば、10つの最適化をオープンしたS5バージョンを指すことができ、いわゆる中間コンパイル結果は、開発者ツールが一部の最適化を行う機能に関するビルド産物が変化された変化バージョン、例えば、3つの最適化をオープンしたS2、5つの最適化をオープンしたS3、及び8つの最適化をオープンしたS4バージョンを指すことができる。
【0038】
このように、開発者ツールがボーディングアプリケーションのソースコードに基づいてコンパイル処理を最適化する前のボーディングアプリケーションの第1のコンパイル結果、及び複数回のコンパイル処理を最適化した後のボーディングアプリケーションの複数の第2のコンパイル結果をそれぞれ構築して、開発者ツールは単一バージョンの最適化コンパイル結果を提供できるだけでなく、複数のバージョンの最適化コンパイル結果をさらに提供できるようになることによって、ビルド産物の変化後のオンライン実行の信頼性を向上させることができる。
【0039】
操作を簡素化するために、前記第2のコンパイル結果は、好ましく開発者ツールの最新の一回のコンパイル処理を最適化した後の最新コンパイル結果とすることができ、このように、開発者ツールは、ビルド産物の最適化の中間結果、すなわち中間コンパイル結果を内部メンテナンスしなくてもよく、一方では、後続の配布設計がより簡単になることができ、別の一方では、開発者ツールと管理プラットフォーム処理がより簡単になることもできる。
【0040】
本開示では、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データは、
バイドゥAPPのバージョン番号などのような、前記ホストアプリケーションのバージョンデータと、
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境のバージョンデータとのうちの少なくとも一つのデータを含む。
【0041】
その中、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境のバージョンデータは、前記ホストアプリケーションによって統合されたボーディングアプリケーション実行プラットフォームのバージョンデータであってもよく、例えば、ミニプログラム実行時のソフトウェア開発キット(Software DeVelopment Kit、SDK)のバージョン番号などであり、又は前記ホストアプリケーションによって統合されたボーディングアプリケーション実行プラットフォームにロードされたボーディングアプリケーションフレームワークのバージョンデータであってもよく、例えば、バイドゥスマートミニプログラムコアフレームワーク(SwanJS)のバージョン番号などであり、本実施例ではこれについて特に限定されない。
【0042】
通常、ホストアプリケーションのバージョンデータと、ホストアプリケーションによって提供されるボーディングアプリケーション実行環境のバージョンデータは、1対1に対応することができるため、両者のうちの1つを決定すると、いずれも他の1つを決定することができる。同様に、ホストアプリケーションによって統合されたボーディングアプリケーション実行プラットフォームのバージョンデータと、ホストアプリケーションによって統合されたボーディングアプリケーション実行プラットフォームにロードされたボーディングアプリケーションフレームワークのバージョンデータは、1対1に対応することができるため、両者のうちの1つを決定すると、いずれも他の1つを決定することができる。
【0043】
いわゆるボーディングアプリケーション実行プラットフォームは、ホストアプリケーションでボーディングアプリケーションに実行環境を提供するために用いられ、ボーディングアプリケーションがホストアプリケーションで起動と実行する必要条件である。ボーディングアプリケーション実行プラットフォームは、ボーディングアプリケーションに表示しようとするインターフェースのテンプレート、ブラウザ及び異なるホストアプリケーション又は異なるオペレーティングシステムに対するパーソナライズサービスを提供することができる。
【0044】
選択可能に、本実施例の可能な実現方式では、102において、照会された前記ボーディングアプリケーションのコンパイル結果は、開発者ツールによって構築及びアップロードされる。
【0045】
具体的には、開発者ツールは具体的には、ボーディングアプリケーションのソースコードを取得することができ、さらに、前記ボーディングアプリケーションのソースコードに基づいて、前記ボーディングアプリケーションのコンパイル結果、すなわち前記第1のコンパイル結果と前記第2のコンパイル結果を構築し、管理プラットフォームに構築された前記ボーディングアプリケーションのコンパイル結果をアップロードすることができる。
【0046】
一つの具体的な実現プロセスでは、開発者ツールはボーディングアプリケーションの各コンパイル結果のアップロード順次について、所定の指定された順次に従う必要があり、例えば、まず第1のコンパイル結果をアップロードし、次に第2のコンパイル結果をアップロードする。
【0047】
これに対応して、開発者ツールが所定の指定された順次に従ってアップロードされた前記ボーディングアプリケーションの各コンパイル結果を受信した後、開発者ツールのアップロード順次に基づいて、各コンパイル結果に依存するボーディングアプリケーション実行環境に対してラベリング処理を行い、すなわち、各コンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンと、各コンパイル結果に依存するボーディングアプリケーション実行プラットフォームにロードされたボーディングアプリケーションフレームワークの最低バージョンなどの環境データに対してラベリング処理を行って、第2のコンパイル結果に依存するボーディングアプリケーション実行環境のバージョンデータが第1のコンパイル結果に依存するボーディングアプリケーション実行環境のバージョンデータより大きく、及び各第2のコンパイル結果に依存するボーディングアプリケーション実行環境のバージョンデータが最適化の機能の数に従って少ないものから多いもの順に増加することを確保することができる。
【0048】
例えば、開発者ツールはまず第1のコンパイル結果をアップロードし、当該第1のコンパイル結果を受信した後、当該第1のコンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンを開発者が設置したボーディングアプリケーション実行環境の最低バージョンとして記録することができ、S1として記録し、当該第1のコンパイル結果をVとして記録することができる。次に、開発者ツールは次に第2のコンパイル結果をアップロードし、複数のコンパイル結果がある場合、最適化の機能の数に従って少ないものから多いもの順に、各コンパイル結果を順番アップロードし、当該第2のコンパイル結果を受信した後、一つの第2のコンパイル結果を例として、当該第2のコンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンを開発者ツールによって記録されたボーディングアプリケーション実行環境の最低バージョンとして記録することができ、例えば、バイドゥスマートミニプログラムコアフレームワーク(SwanJS)の最低バージョンを、S2(S1<=S2)として記録し、当該第2のコンパイル結果をV1(V<V1)として記録することができる。
【0049】
別の具体的な実現プロセスでは、前記ボーディングアプリケーションのコンパイル結果を構築した後、開発者ツールは具体的には、前記ボーディングアプリケーションのコンパイル結果に基づいて、各コンパイル結果のバージョンデータを生成することができる。その中、前記各コンパイル結果のバージョンデータは、前記第1のコンパイル結果のバージョンデータ、前記第1のコンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンデータ、前記第2のコンパイル結果のバージョンデータ、及び前記第2のコンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンデータを含むことができるが、これらに限定されない。次に、開発者ツールは前記管理プラットフォームに前記各コンパイル結果及び前記各コンパイル結果のバージョンデータをアップロードすることができる。
【0050】
その中、ボーディングアプリケーションの各コンパイル結果(すなわち第1のコンパイル結果と第2のコンパイル結果)に依存するボーディングアプリケーション実行環境の最低バージョンデータは、依存するボーディングアプリケーション実行プラットフォームのバージョンデータであってもよく、例えば、ミニプログラム実行時のSDKのバージョン番号などであり、又は依存するボーディングアプリケーション実行プラットフォームにロードされたボーディングアプリケーションフレームワークの最低バージョンデータであってもよく、例えば、バイドゥスマートミニプログラムコアフレームワーク(SwanJS)のバージョン番号などであり、本実施例ではこれについて特に限定されない。
【0051】
当該実現プロセスでは、開発者ツールはボーディングアプリケーションの各コンパイル結果のアップロード順次について、ランダムの任意の順次であってもよく、所定の指定された順次に従う必要がない。開発者ツールによって生成された各コンパイル結果のバージョンデータは、ボーディングアプリケーションの今回コンパイル処理のバージョンラベリングを指示するために用いられることができ、例えば、開発者ツールは具体的には、前記ボーディングアプリケーションの今回コンパイルバージョン生成ルールに基づいて、順次に従って前記各コンパイル結果のバージョンデータを順番生成することができ、又はボーディングアプリケーションのすべてのコンパイル処理のバージョンラベリングを指示するために用いられることもでき、例えば、開発者ツールは具体的には、前記ボーディングアプリケーションの統一コンパイルバージョン生成ルールに基づいて、順次に従って前記各コンパイル結果のバージョンデータを順番生成することができる。
【0052】
これに対応して、開発者ツールによってアップロードされた前記ボーディングアプリケーションの各コンパイル結果及び各コンパイル結果のバージョンデータを受信した後、各コンパイル結果のバージョンデータに基づいて、各コンパイル結果に依存するボーディングアプリケーション実行環境に対してラベリング処理を行うことができ、すなわち各コンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンに対してラベリング処理を行うことができ、例えば、各コンパイル結果に依存するボーディングアプリケーション実行プラットフォームにロードされたボーディングアプリケーションフレームワークの最低バージョンなどの環境データなどである。
【0053】
選択可能に、本実施例の可能な実現方式では、102の前、さらに、開発者ツールによってアップロードされた前記ボーディングアプリケーションのコンパイル結果を取得することもでき、さらに、前記ボーディングアプリケーションのコンパイル結果における各コンパイル結果に対して審査処理を行うことができる。次に、前記各コンパイル結果の審査処理結果に基づいて、前記審査処理結果が通過であるコンパイル結果に対して、実行可能な環境のラベリング処理を行うことができる。
【0054】
最低バージョンのボーディングアプリケーション実行環境しか提供できないホストアプリケーションがボーディングアプリケーションのコンパイル結果を取得できることを確保するために、前記第1のコンパイル結果の審査処理結果を使用して、配置審査ポリシーに基づいて取得された前記第2のコンパイル結果の審査処理結果に対して関連性調整を行って、最適化後のボーディングアプリケーション実行の効率と信頼性を効果的に向上させることができる。
【0055】
具体的には、既存の配置審査ポリシーに基づいて、それぞれ前記第1のコンパイル結果及び前記第2のコンパイル結果に対して審査処理を行うことができる。
【0056】
例えば、ボーディングアプリケーションの各コンパイル結果(すなわち前記第1のコンパイル結果と前記第2のコンパイル結果)に依存するボーディングアプリケーション実行環境の最低バージョンデータに基づいて対応する宿主バージョンのQRコード(登録商標)を生成し、さらに、審査員が使用するホストアプリケーションが前記宿主バージョンのQRコードに基づいて各コンパイル結果を実行して、審査員が各コンパイル結果を審査し、例えば、各コンパイル結果の実行機能が正常であるか否か、及びボーディングアプリケーションの設計仕様に合わないいくつかの行為が存在するか否かなどである。
【0057】
前記第1のコンパイル結果及び前記第2のコンパイル結果に対してそれぞれ審査処理を行って、前記第1のコンパイル結果の審査処理結果及び前記第2のコンパイル結果の審査処理結果を取得した後、前記第1のコンパイル結果の審査処理結果が通過である場合、前記第2のコンパイル結果の審査処理結果を調整しなくてもよく、前記第1のコンパイル結果の審査処理結果が非通過である場合、さらに、前記第2のコンパイル結果の審査処理結果を非通過に調整することができる。
【0058】
各コンパイル結果の審査処理結果を取得した後、前記各コンパイル結果の審査処理結果とラベリングされた各コンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンとに基づいて、前記審査処理結果が通過であるコンパイル結果に対して、実行可能な環境のラベリング処理を行うことができる。
【0059】
例えば、ボーディングアプリケーションの第1のコンパイル結果の配布区間を[S1、正の無限大)としてラベリングし、すなわちホストアプリケーションが提供可能なボーディングアプリケーション実行環境のバージョン番号が[S1、正の無限大)範囲内で伝達可能であり、例えば、ホストアプリケーションで実行されるバイドゥスマートミニプログラムコアフレームワーク(SwanJS)のバージョン番号が[S1、正の無限大)範囲内で伝達可能である。
【0060】
又は、例えば、ボーディングアプリケーションの第2のコンパイル結果の配布区間を[S2、正の無限大)としてラベリングし、S1<=S2、すなわちホストアプリケーションが提供可能なボーディングアプリケーション実行環境のバージョン番号が[S2、正の無限大)範囲内で伝達可能であり、例えば、ホストアプリケーションで実行されるバイドゥスマートミニプログラムコアフレームワーク(SwanJS)のバージョン番号が[S2、正の無限大)範囲内で伝達可能である。
【0061】
選択可能に、本実施例の可能な実現方式では、102において、具体的には、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに対して第1回の判断処理を行って、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データがボーディングアプリケーションの第2のコンパイル結果の配布区間内にあるか否かを判断することができる。
【0062】
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データがボーディングアプリケーションの第2のコンパイル結果の配布区間内にある場合、前記ボーディングアプリケーションの第2のコンパイル結果を照会処理結果、すなわち当該ホストアプリケーションが実行可能な一つのコンパイル結果とすることができる。
【0063】
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データがボーディングアプリケーションの第2のコンパイル結果の配布区間内にない場合、さらに、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに対して第2回の判断処理を行って、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データがボーディングアプリケーションの第1のコンパイル結果の配布区間内にあるか否かを判断することができる。
【0064】
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データがボーディングアプリケーションの第1のコンパイル結果の配布区間内にある場合、前記ボーディングアプリケーションの第1のコンパイル結果を照会処理結果、すなわち当該ホストアプリケーションが実行可能な一つのコンパイル結果とすることができる。
【0065】
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データがボーディングアプリケーションの第1のコンパイル結果の配布区間内にない場合、ホストアプリケーションに提示処理を行って、ホストアプリケーションのアップグレードを提示することができる。
【0066】
よって、ホストアプリケーションにマッチングする実行可能な一つのコンパイル結果を取得する。取得されたホストアプリケーションが実行可能な一つのコンパイル結果を当該ホストアプリケーションに伝達し、当該ホストアプリケーションが当該ホストアプリケーションによって提供されるボーディングアプリケーション実行環境を利用して、当該一つのコンパイル結果を実行する。
【0067】
本開示の技術案を適用した後、一部の現在決定された最適化手段は実験を通じてオンラインして収益を取得し、このメカニズムを通じて、後続の最適化手段はいずれもこの通路を使用して迅速に実現することができる。
【0068】
本開示の技術案では、主に既存のボーディングアプリケーションの生産段階における依存2を解決することによって、開発者ツールがほとんどのユーザが現在使用可能なホストアプリケーションによって提供されるボーディングアプリケーション実行環境に基づいて、開発者の一つのボーディングアプリケーションのソースコードに対して異なるビルド産物バージョン、すなわち開発者ツールのコンパイル処理に対して最適化する前の元のコンパイル結果、及び開発者ツールのコンパイル処理に対して最適化した後の最適化コンパイル結果を構築し、さらに、構築されたビルド産物バージョンをボーディングアプリケーションの管理プラットフォームにアップロードし、ボーディングアプリケーションの管理プラットフォームがユーザが使用するホストアプリケーションによって提供されるボーディングアプリケーション実行環境に基づいて、対応するビルド産物バージョンをターゲット的に伝達し、依存1と依存3が比較的迅速に収束するため、例えば、新しいバージョンがリリースして1週間以内にいずれも80%+レベルに収束することができ、本開示の技術案を適用した後、ボーディングアプリケーションの生産段階の最適化手段がより短い時間内にオンラインでき、オンラインでより多くのユーザ流量バージョンをカバーすることを確保することができる。
【0069】
本実施例では、開発者ツールがボーディングアプリケーションのソースコードに基づいてコンパイル処理を最適化する前のボーディングアプリケーションの第1のコンパイル結果と、コンパイル処理を最適化した後のボーディングアプリケーションの第2のコンパイル結果とをそれぞれ構築し、それを管理プラットフォームにアップロードし、管理プラットフォームがホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに基づいて、コンパイル結果に対応する伝達を行って、前記ホストアプリケーションが当該ホストアプリケーションによって提供されるボーディングアプリケーション実行環境を利用して、取得されたコンパイル結果を実行するようにし、ボーディングアプリケーションのコンパイル処理の最適化がユーザが使用するホストアプリケーションのバージョンに限定されないため、ボーディングアプリケーションのコンパイル処理の最適化をスムーズに行うことによって、最適化後のボーディングアプリケーション実行の効率と信頼性を効果的に向上させる。
【0070】
また、本開示によって提供される技術案を使用して、開発者ツールがコンパイル処理を最適化した後のボーディングアプリケーションの第2のコンパイル結果を構築するだけでなく、コンパイル処理を最適化する前のボーディングアプリケーションの第1のコンパイル結果も構築することによって、開発者ツールがコンパイル処理を最適化するプロセス中にホストアプリケーションの履歴バージョンに対する互換性の負担を取り除くことができ、開発者ツールの内部コードがより明確になり、そのコンパイル産物もより効率的になり、開発者ツールのコンパイル効率を向上させる。
【0071】
また、本開示によって提供される技術案を使用して、コンパイル産物の変化と迅速なオンラインを効果的に構築できることに一つの新たな道を開き、より大きな収益が得られる。
【0072】
また、本開示によって提供される技術案を使用して、ユーザの体験を効果的に向上させることができる。
【0073】
【0074】
201、ボーディングアプリケーションのソースコードを取得する。
【0075】
202、前記ボーディングアプリケーションのソースコードに基づいて、前記ボーディングアプリケーションのコンパイル結果を構築し、前記ボーディングアプリケーションのコンパイル結果は、コンパイル処理を最適化する前の第1のコンパイル結果とコンパイル処理を最適化した後の第2のコンパイル結果とを含む。
【0076】
203、管理プラットフォームに前記ボーディングアプリケーションのコンパイル結果をアップロードする。
【0077】
なお、201~203の実行主体の一部又は全部は、ローカル端末にあるアプリケーションであってもよく、又はローカル端末にあるアプリケーションに設置されたプラグイン又はソフトウェア開発キット(Software DeVelopment Kit、SDK)などの機能ユニットであってもよく、又はネットワーク側のサーバにある処理エンジンであってもよく、ネットワーク側にある分散システムであってもよく、例えば、ネットワーク側の開発者ツール中の処理エンジン又は分散システムなどであり、本実施例ではこれについて特に限定されない。
【0078】
前記アプリケーションはローカル端末にインストールされたローカルプログラム(natiVeAPP)であってもよく、ローカル端末上のブラウザの一つのウェブプログラム(webAPP)であってもよく、本実施例ではこれについて限定されないことを理解することができる。
【0079】
本開示では、ボーディングアプリケーションの第1のコンパイル結果とボーディングアプリケーションの第2のコンパイル結果は、いずれも開発者ツールがボーディングアプリケーションの同じソースコードに基づいて構築されており、その違いは、前記第1のコンパイル結果は、開発者ツールのコンパイル処理に対して最適化する前の元のコンパイル結果であってもよく、前記第2のコンパイル結果は、開発者ツールのコンパイル処理に対して最適化した後の最適化コンパイル結果であってもよい。
【0080】
具体的には、前記第1のコンパイル結果開発者ツールのコンパイル処理に対して最適化する前の一つの元のコンパイル結果であってもよく、開発者が設置したボーディングアプリケーションフレームワークの最低バージョン以上の全部バージョンで実行することができ、前記第2のコンパイル結果は、開発者ツールのコンパイル処理に対して最適化した後の一つの又は複数の最適化コンパイル結果であってもよく、例えば、最新の一回のコンパイル処理を最適化した後の最新コンパイル結果、及び開発者ツールの履歴の一回又は複数回のコンパイル処理を最適化した後の中間コンパイル結果は、開発者ツールによって記録されたボーディングアプリケーションフレームワークの最低バージョン以上のバージョンで実行することができる。
【0081】
いわゆる元のコンパイル結果は、開発者ツールが任意の最適化を行っていない元の機能に関するビルド産物が変化されてない初期バージョン、例えば、任意の最適化をオープンしていないS1バージョンを指すことができ、いわゆる最新コンパイル結果は、開発者ツールがすべての最適化を行う機能に関するビルド産物が変化された変化バージョン、例えば、10つの最適化をオープンしたS5バージョンを指すことができ、いわゆる中間コンパイル結果は、開発者ツールが一部の最適化を行う機能に関するビルド産物が変化された変化バージョン、例えば、3つの最適化をオープンしたS2、5つの最適化をオープンしたS3、及び8つの最適化をオープンしたS4バージョンを指すことができる。
【0082】
このように、開発者ツールがボーディングアプリケーションのソースコードに基づいてコンパイル処理を最適化する前のボーディングアプリケーションの第1のコンパイル結果、及び複数回のコンパイル処理を最適化した後のボーディングアプリケーションの複数の第2のコンパイル結果をそれぞれ構築して、開発者ツールは単一バージョンの最適化コンパイル結果を提供できるだけでなく、複数のバージョンの最適化コンパイル結果をさらに提供できるようになることによって、ビルド産物の変化後のオンライン実行の信頼性を向上させることができる。
【0083】
操作を簡素化するために、前記第2のコンパイル結果は、好ましく開発者ツールの最新の一回のコンパイル処理を最適化した後の最新コンパイル結果とすることができ、このように、開発者ツールは、ビルド産物の最適化の中間結果、すなわち中間コンパイル結果を内部メンテナンスしなくてもよく、一方では、後続の配布設計がより簡単になることができ、別の一方では、開発者ツールと管理プラットフォーム処理がより簡単になることもできる。
【0084】
本開示では、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データは、
バイドゥAPPのバージョン番号などのような、前記ホストアプリケーションのバージョンデータと、
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境のバージョンデータとのうちの少なくとも一つのデータを含む。
【0085】
その中、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境のバージョンデータは、前記ホストアプリケーションによって統合されたボーディングアプリケーション実行プラットフォームのバージョンデータであってもよく、例えば、ミニプログラム実行時のソフトウェア開発キット(Software DeVelopment Kit、SDK)のバージョン番号などであり、又は前記ホストアプリケーションによって統合されたボーディングアプリケーション実行プラットフォームにロードされたボーディングアプリケーションフレームワークのバージョンデータであってもよく、例えば、バイドゥスマートミニプログラムコアフレームワーク(SwanJS)のバージョン番号などであり、本実施例ではこれについて特に限定されない。
【0086】
通常、ホストアプリケーションのバージョンデータと、ホストアプリケーションによって提供されるボーディングアプリケーション実行環境のバージョンデータは、1対1に対応することができるため、両者のうちの1つを決定すると、いずれも他の1つを決定することができる。同様に、ホストアプリケーションによって統合されたボーディングアプリケーション実行プラットフォームのバージョンデータと、ホストアプリケーションによって統合されたボーディングアプリケーション実行プラットフォームにロードされたボーディングアプリケーションフレームワークのバージョンデータは、1対1に対応することができるため、両者のうちの1つを決定すると、いずれも他の1つを決定することができる。
【0087】
いわゆるボーディングアプリケーション実行プラットフォームは、ホストアプリケーションでボーディングアプリケーションに実行環境を提供するために用いられ、ボーディングアプリケーションがホストアプリケーションで起動と実行する必要条件である。ボーディングアプリケーション実行プラットフォームは、ボーディングアプリケーションに表示しようとするインターフェースのテンプレート、ブラウザ及び異なるホストアプリケーション又は異なるオペレーティングシステムに対するパーソナライズサービスを提供することができる。
【0088】
選択可能に、本実施例の可能な実現方式では、203において、具体的には、異なる伝送ポリシーを使用して、管理プラットフォームに構築された前記ボーディングアプリケーションのコンパイル結果をアップロードすることができる。
【0089】
一つの具体的な実現プロセスでは、開発者ツールはボーディングアプリケーションの各コンパイル結果のアップロード順次について、所定の指定された順次に従う必要があり、例えば、まず第1のコンパイル結果をアップロードし、次に第2のコンパイル結果をアップロードする。
【0090】
これに対応して、開発者ツールが所定の指定された順次に従ってアップロードされた前記ボーディングアプリケーションの各コンパイル結果を受信した後、管理プラットフォームは開発者ツールのアップロード順次に基づいて、各コンパイル結果に依存するボーディングアプリケーション実行環境に対してラベリング処理を行い、すなわち、各コンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンと、各コンパイル結果に依存するボーディングアプリケーション実行プラットフォームにロードされたボーディングアプリケーションフレームワークの最低バージョンなどの環境データに対してラベリング処理を行って、第2のコンパイル結果に依存するボーディングアプリケーション実行環境のバージョンデータが第1のコンパイル結果に依存するボーディングアプリケーション実行環境のバージョンデータより大きく、及び各第2のコンパイル結果に依存するボーディングアプリケーション実行環境のバージョンデータが最適化の機能の数に従って少ないものから多いもの順に増加することを確保することができる。
【0091】
例えば、開発者ツールはまず第1のコンパイル結果をアップロードし、当該第1のコンパイル結果を受信した後、管理プラットフォーム当該第1のコンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンを開発者が設置したボーディングアプリケーション実行環境の最低バージョンとして記録することができ、S1として記録し、当該第1のコンパイル結果をVとして記録することができる。次に、開発者ツールは次に第2のコンパイル結果をアップロードし、複数のコンパイル結果がある場合、最適化の機能の数に従って少ないものから多いもの順に、各コンパイル結果を順番アップロードし、当該第2のコンパイル結果を受信した後、一つの第2のコンパイル結果を例として、管理プラットフォームは当該第2のコンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンを開発者ツールによって記録されたボーディングアプリケーション実行環境の最低バージョンとして記録することができ、例えば、バイドゥスマートミニプログラムコアフレームワーク(SwanJS)の最低バージョンを、S2(S1<=S2)として記録し、当該第2のコンパイル結果をV1(V<V1)として記録することができる。
【0092】
別の具体的な実現プロセスでは、前記ボーディングアプリケーションのコンパイル結果を構築した後、開発者ツールは具体的には、前記ボーディングアプリケーションのコンパイル結果に基づいて、各コンパイル結果のバージョンデータを生成することができる。その中、前記各コンパイル結果のバージョンデータは、前記第1のコンパイル結果のバージョンデータ、前記第1のコンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンデータ、前記第2のコンパイル結果のバージョンデータ、及び前記第2のコンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンデータを含むことができるが、これらに限定されない。次に、開発者ツールは前記管理プラットフォームに前記各コンパイル結果及び前記各コンパイル結果のバージョンデータをアップロードすることができる。
【0093】
その中、ボーディングアプリケーションの各コンパイル結果(すなわち第1のコンパイル結果と第2のコンパイル結果)に依存するボーディングアプリケーション実行環境の最低バージョンデータは、依存するボーディングアプリケーション実行プラットフォームのバージョンデータであってもよく、例えば、ミニプログラム実行時のSDKのバージョン番号などであり、又は依存するボーディングアプリケーション実行プラットフォームにロードされたボーディングアプリケーションフレームワークの最低バージョンデータであってもよく、例えば、バイドゥスマートミニプログラムコアフレームワーク(SwanJS)のバージョン番号などであり、本実施例ではこれについて特に限定されない。
【0094】
当該実現プロセスでは、開発者ツールはボーディングアプリケーションの各コンパイル結果のアップロード順次について、ランダムの任意の順次であってもよく、所定の指定された順次に従う必要がない。開発者ツールによって生成された各コンパイル結果のバージョンデータは、ボーディングアプリケーションの今回コンパイル処理のバージョンラベリングを指示するために用いられることができ、例えば、開発者ツールは具体的には、前記ボーディングアプリケーションの今回コンパイルバージョン生成ルールに基づいて、順次に従って前記各コンパイル結果のバージョンデータを順番生成することができ、又はボーディングアプリケーションのすべてのコンパイル処理のバージョンラベリングを指示するために用いられることもでき、例えば、開発者ツールは具体的には、前記ボーディングアプリケーションの統一コンパイルバージョン生成ルールに基づいて、順次に従って前記各コンパイル結果のバージョンデータを順番生成することができる。
【0095】
これに対応して、開発者ツールによってアップロードされた前記ボーディングアプリケーションの各コンパイル結果及び各コンパイル結果のバージョンデータを受信した後、管理プラットフォームは各コンパイル結果のバージョンデータに基づいて、各コンパイル結果に依存するボーディングアプリケーション実行環境に対してラベリング処理を行うことができ、すなわち各コンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンに対してラベリング処理を行うことができ、例えば、各コンパイル結果に依存するボーディングアプリケーション実行プラットフォームにロードされたボーディングアプリケーションフレームワークの最低バージョンなどの環境データなどである。
【0096】
選択可能に、本実施例の可能な実現方式では、203の後、管理プラットフォームは、さらに、開発者ツールによってアップロードされた前記ボーディングアプリケーションのコンパイル結果を取得することもでき、さらに、前記ボーディングアプリケーションのコンパイル結果における各コンパイル結果に対して審査処理を行うことができる。次に、前記各コンパイル結果の審査処理結果に基づいて、前記審査処理結果が通過であるコンパイル結果に対して、実行可能な環境のラベリング処理を行うことができる。
【0097】
最低バージョンのボーディングアプリケーション実行環境しか提供できないホストアプリケーションがボーディングアプリケーションのコンパイル結果を取得できることを確保するために、管理プラットフォームは、前記第1のコンパイル結果の審査処理結果を使用して、配置審査ポリシーに基づいて取得された前記第2のコンパイル結果の審査処理結果に対して関連性調整を行って、最適化後のボーディングアプリケーション実行の効率と信頼性を効果的に向上させることができる。
【0098】
具体的には、管理プラットフォームは既存の配置審査ポリシーに基づいて、それぞれ前記第1のコンパイル結果及び前記第2のコンパイル結果に対して審査処理を行うことができる。
【0099】
例えば、管理プラットフォームはボーディングアプリケーションの各コンパイル結果(すなわち前記第1のコンパイル結果と前記第2のコンパイル結果)に依存するボーディングアプリケーション実行環境の最低バージョンデータに基づいて対応する宿主バージョンのQRコードを生成し、さらに、審査員が使用するホストアプリケーションが前記宿主バージョンのQRコードに基づいて各コンパイル結果を実行して、審査員が各コンパイル結果を審査し、例えば、各コンパイル結果の実行機能が正常であるか否か、及びボーディングアプリケーションの設計仕様に合わないいくつかの行為が存在するか否かなどである。
【0100】
前記第1のコンパイル結果及び前記第2のコンパイル結果に対してそれぞれ審査処理を行って、前記第1のコンパイル結果の審査処理結果及び前記第2のコンパイル結果の審査処理結果を取得した後、前記第1のコンパイル結果の審査処理結果が通過である場合、管理プラットフォームは、前記第2のコンパイル結果の審査処理結果を調整しなくてもよく、前記第1のコンパイル結果の審査処理結果が非通過である場合、管理プラットフォームは、さらに、前記第2のコンパイル結果の審査処理結果を非通過に調整することができる。
【0101】
各コンパイル結果の審査処理結果を取得した後、管理プラットフォームは前記各コンパイル結果の審査処理結果とラベリングされた各コンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンとに基づいて、前記審査処理結果が通過であるコンパイル結果に対して、実行可能な環境のラベリング処理を行うことができる。
【0102】
例えば、管理プラットフォームはボーディングアプリケーションの第1のコンパイル結果の配布区間を[S1、正の無限大)としてラベリングし、すなわちホストアプリケーションが提供可能なボーディングアプリケーション実行環境のバージョン番号が[S1、正の無限大)範囲内で伝達可能であり、例えば、ホストアプリケーションで実行されるバイドゥスマートミニプログラムコアフレームワーク(SwanJS)のバージョン番号が[S1、正の無限大)範囲内で伝達可能である。
【0103】
又は、例えば、管理プラットフォームはボーディングアプリケーションの第2のコンパイル結果の配布区間を[S2、正の無限大)としてラベリングし、S1<=S2、すなわちホストアプリケーションが提供可能なボーディングアプリケーション実行環境のバージョン番号が[S2、正の無限大)範囲内で伝達可能であり、例えば、ホストアプリケーションで実行されるバイドゥスマートミニプログラムコアフレームワーク(SwanJS)のバージョン番号が[S2、正の無限大)範囲内で伝達可能である。
【0104】
よって、ボーディングアプリケーションの管理プラットフォームは、ボーディングアプリケーションの各コンパイル結果の配布を行う準備をすることができる。
【0105】
ホストアプリケーションによって送信されたボーディングアプリケーションの取得要求を受信した後、管理プラットフォームは、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データを取得することができ、さらに、当該管理プラットフォームは、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに基づいて、開発者ツールによってアップロードされた前記ボーディングアプリケーションのコンパイル結果において照会処理を行って、前記ホストアプリケーションが実行可能な一つのコンパイル結果を取得することができる。次に、管理プラットフォームは、取得された前記ホストアプリケーションが実行可能な一つのコンパイル結果を前記ホストアプリケーションに伝達して、前記ホストアプリケーションが当該ホストアプリケーションによって提供されるボーディングアプリケーション実行環境を利用して、当該一つのコンパイル結果を実行するようにすることができる。
【0106】
具体的には、管理プラットフォームは、具体的には、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに対して第1回の判断処理を行って、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データがボーディングアプリケーションの第2のコンパイル結果の配布区間内にあるか否かを判断することができる。
【0107】
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データがボーディングアプリケーションの第2のコンパイル結果の配布区間内にある場合、管理プラットフォームは前記ボーディングアプリケーションの第2のコンパイル結果を照会処理結果、すなわち当該ホストアプリケーションが実行可能な一つのコンパイル結果とすることができる。
【0108】
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データがボーディングアプリケーションの第2のコンパイル結果の配布区間内にない場合、管理プラットフォームは、さらに、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに対して第2回の判断処理を行って、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データがボーディングアプリケーションの第1のコンパイル結果の配布区間内にあるか否かを判断することができる。
【0109】
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データがボーディングアプリケーションの第1のコンパイル結果の配布区間内にある場合、管理プラットフォームは前記ボーディングアプリケーションの第1のコンパイル結果を照会処理結果、すなわち当該ホストアプリケーションが実行可能な一つのコンパイル結果とすることができる。
【0110】
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データがボーディングアプリケーションの第1のコンパイル結果の配布区間内にない場合、管理プラットフォームはホストアプリケーションに提示処理を行って、ホストアプリケーションのアップグレードを提示することができる。
【0111】
よって、管理プラットフォームはホストアプリケーションにマッチングする実行可能な一つのコンパイル結果を取得する。管理プラットフォームは取得されたホストアプリケーションが実行可能な一つのコンパイル結果を当該ホストアプリケーションに伝達し、当該ホストアプリケーションが当該ホストアプリケーションによって提供されるボーディングアプリケーション実行環境を利用して、当該一つのコンパイル結果を実行する。
【0112】
本開示の技術案を適用した後、一部の現在決定された最適化手段は実験を通じてオンラインして収益を取得し、このメカニズムを通じて、後続の最適化手段はいずれもこの通路を使用して迅速に実現することができる。
【0113】
本開示の技術案では、主に既存のボーディングアプリケーションの生産段階における依存2を解決することによって、開発者ツールがほとんどのユーザが現在使用可能なホストアプリケーションによって提供されるボーディングアプリケーション実行環境に基づいて、開発者の一つのボーディングアプリケーションのソースコードに対して異なるビルド産物バージョン、すなわち開発者ツールのコンパイル処理に対して最適化する前の元のコンパイル結果、及び開発者ツールのコンパイル処理に対して最適化した後の最適化コンパイル結果を構築し、さらに、構築されたビルド産物バージョンをボーディングアプリケーションの管理プラットフォームにアップロードし、ボーディングアプリケーションの管理プラットフォームがユーザが使用するホストアプリケーションによって提供されるボーディングアプリケーション実行環境に基づいて、対応するビルド産物バージョンをターゲット的に伝達し、依存1と依存3が比較的迅速に収束するため、例えば、新しいバージョンがリリースして1週間以内にいずれも80%+レベルに収束することができ、本開示の技術案を適用した後、ボーディングアプリケーションの生産段階の最適化手段がより短い時間内にオンラインでき、オンラインでより多くのユーザ流量バージョンをカバーすることを確保することができる。
【0114】
本実施例では、開発者ツールがボーディングアプリケーションのソースコードに基づいてコンパイル処理を最適化する前のボーディングアプリケーションの第1のコンパイル結果と、コンパイル処理を最適化した後のボーディングアプリケーションの第2のコンパイル結果とをそれぞれ構築し、それを管理プラットフォームにアップロードし、管理プラットフォームがホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに基づいて、コンパイル結果に対応する伝達を行って、前記ホストアプリケーションが当該ホストアプリケーションによって提供されるボーディングアプリケーション実行環境を利用して、取得されたコンパイル結果を実行するようにし、ボーディングアプリケーションのコンパイル処理の最適化がユーザが使用するホストアプリケーションのバージョンに限定されないため、ボーディングアプリケーションのコンパイル処理の最適化をスムーズに行うことによって、最適化後のボーディングアプリケーション実行の効率と信頼性を効果的に向上させる。
【0115】
また、本開示によって提供される技術案を使用して、開発者ツールがコンパイル処理を最適化した後のボーディングアプリケーションの第2のコンパイル結果を構築するだけでなく、コンパイル処理を最適化する前のボーディングアプリケーションの第1のコンパイル結果も構築することによって、開発者ツールがコンパイル処理を最適化するプロセス中にホストアプリケーションの履歴バージョンに対する互換性の負担を取り除くことができ、開発者ツールの内部コードがより明確になり、そのコンパイル産物もより効率的になり、開発者ツールのコンパイル効率を向上させる。
【0116】
また、本開示によって提供される技術案を使用して、コンパイル産物の変化と迅速なオンラインを効果的に構築できることに一つの新たな道を開き、より大きな収益が得られる。
【0117】
また、本開示によって提供される技術案を使用して、ユーザの体験を効果的に向上させることができる。
【0118】
なお、前述の各方法の実施例について、簡単に説明するために、それをすべて一連の動作の組み合わせとして表現するが、当業者は、本開示は説明された動作の順次によって制限されないことを理解されたい。本開示に基づいて、いくつかのステップは、他の順次を使用するか、又は同時に行うことができる。次に、当業者は、明細書に説明された実施例はいずれも好ましい実施例であり、関する動作及びモジュールは、本開示に必須ではないことも理解されたい。
【0119】
上記の実施例では、各実施例に対する説明はすべて重点があり、ある実施例で詳細に説明してない部分は、他の実施例の関連説明を参照することができる。
【0120】
図3は本開示の第3の実施例による概略図である。
図3に示すように、本実施例のボーディングアプリケーションのコンパイル最適化装置300は、取得ユニット301、照会ユニット302及び伝達ユニット303を含むことができる。その中、取得ユニット301は、ホストアプリケーションによって送信されたボーディングアプリケーションの取得要求を受信したことに応答して、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データを取得するために用いられ、照会ユニット302は、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに基づいて、開発者ツールによってアップロードされた前記ボーディングアプリケーションのコンパイル結果において照会処理を行って、前記ホストアプリケーションが実行可能な一つのコンパイル結果を取得するようにするために用いられ、前記ボーディングアプリケーションのコンパイル結果は、コンパイル処理を最適化する前の第1のコンパイル結果とコンパイル処理を最適化した後の第2のコンパイル結果とを含み、伝達ユニット303は、取得された前記ホストアプリケーションが実行可能な一つのコンパイル結果を前記ホストアプリケーションに伝達して、前記ホストアプリケーションが当該ホストアプリケーションによって提供されるボーディングアプリケーション実行環境を利用して、当該一つのコンパイル結果を実行するようにするために用いられる。
【0121】
なお、本実施例のボーディングアプリケーションのコンパイル最適化装置の一部又は全部は、ネットワーク側のサーバにある処理エンジンであってもよく、ネットワーク側にある分散システムであってもよく、例えば、ネットワーク側の管理プラットフォームにおける処理エンジン又は分散システムなどについて、本実施例ではこれについて特に限定されない。
【0122】
前記ホストアプリケーションはローカル端末にインストールされたローカルプログラム(natiVeAPP)であってもよく、ローカル端末上のブラウザの一つのウェブプログラム(webAPP)であってもよく、本実施例ではこれについて限定されないことを理解することができる。
【0123】
選択可能に、本実施例の可能な実現方式では、前記第2のコンパイル結果は一つのコンパイル結果であってもよく、又は2つ又は複数のコンパイル結果であってもよい。
【0124】
選択可能に、本実施例の可能な実現方式では、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データは、
バイドゥAPPのバージョン番号などのような、前記ホストアプリケーションのバージョンデータと、
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境のバージョンデータとのうちの少なくとも一つのデータを含む。
【0125】
選択可能に、本実施例の可能な実現方式では、
図4に示すように、本実施例により提供されるボーディングアプリケーションのコンパイル最適化装置400は、さらに審査ユニット401を含むことができ、前記審査ユニット401は、開発者ツールによってアップロードされた前記ボーディングアプリケーションのコンパイル結果を取得し、前記ボーディングアプリケーションのコンパイル結果における各コンパイル結果に対して審査処理を行い、前記各コンパイル結果の審査処理結果に基づいて、前記審査処理結果が通過であるコンパイル結果に対して、実行可能な環境のラベリング処理を行うことができる。
【0126】
具体的には、前記審査ユニット401は、具体的には、前記第1のコンパイル結果及び前記第2のコンパイル結果に対してそれぞれ審査処理を行って、前記第1のコンパイル結果の審査処理結果及び前記第2のコンパイル結果の審査処理結果を取得し、前記第1のコンパイル結果の審査処理結果が通過である場合、前記第2のコンパイル結果の審査処理結果を調整せず、前記第1のコンパイル結果の審査処理結果が非通過である場合、前記第2のコンパイル結果の審査処理結果を非通過に調整することができる。
【0127】
なお、
図1に対応する実施例における方法は、本実施例によって提供されるボーディングアプリケーションのコンパイル最適化装置によって実現することができる。詳細な説明は
図1に対応する実施例における関連内容を参照することができ、ここで省略する。
【0128】
本実施例では、開発者ツールがボーディングアプリケーションのソースコードに基づいてコンパイル処理を最適化する前のボーディングアプリケーションの第1のコンパイル結果と、コンパイル処理を最適化した後のボーディングアプリケーションの第2のコンパイル結果とをそれぞれ構築し、それを管理プラットフォームにアップロードし、それぞれ照会ユニットと伝達ユニットが取得ユニットによって取得されたホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに基づいて、コンパイル結果に対応する照会及び伝達を行い、前記ホストアプリケーションが当該ホストアプリケーションによって提供されるボーディングアプリケーション実行環境を利用して、取得されたコンパイル結果を実行するようにし、ボーディングアプリケーションのコンパイル処理の最適化がユーザが使用するホストアプリケーションのバージョンに限定されないため、ボーディングアプリケーションのコンパイル処理の最適化をスムーズに行うことによって、最適化後のボーディングアプリケーション実行の効率と信頼性を効果的に向上させる。
【0129】
また、本開示によって提供される技術案を使用して、開発者ツールがコンパイル処理を最適化した後のボーディングアプリケーションの第2のコンパイル結果を構築するだけでなく、コンパイル処理を最適化する前のボーディングアプリケーションの第1のコンパイル結果も構築することによって、開発者ツールがコンパイル処理を最適化するプロセス中にホストアプリケーションの履歴バージョンに対する互換性の負担を取り除くことができ、開発者ツールの内部コードがより明確になり、そのコンパイル産物もより効率的になり、開発者ツールのコンパイル効率を向上させる。
【0130】
また、本開示によって提供される技術案を使用して、コンパイル産物の変化と迅速なオンラインを効果的に構築できることに一つの新たな道を開き、より大きな収益が得られる。
【0131】
また、本開示によって提供される技術案を使用して、ユーザの体験を効果的に向上させることができる。
【0132】
図5は本開示の第5の実施例による概略図である。
図5に示すように、本実施例のボーディングアプリケーションのコンパイル最適化装置500は、取得ユニット501、構築ユニット502及びアップロードユニット503を含むことができる。その中、取得ユニット501は、ボーディングアプリケーションのソースコードを取得し、構築ユニット502は、前記ボーディングアプリケーションのソースコードに基づいて、前記ボーディングアプリケーションのコンパイル結果を構築し、前記ボーディングアプリケーションのコンパイル結果は、コンパイル処理を最適化する前の第1のコンパイル結果とコンパイル処理を最適化した後の第2のコンパイル結果とを含み、アップロードユニット503は、管理プラットフォームに前記ボーディングアプリケーションのコンパイル結果をアップロードする。
【0133】
なお、本実施例のボーディングアプリケーションのコンパイル最適化装置は、ローカル端末にあるアプリケーションであってもよく、又はローカル端末にあるアプリケーションに設置されたプラグイン又はソフトウェア開発キット(Software DeVelopment Kit、SDK)などの機能ユニットであってもよく、又はネットワーク側のサーバにある処理エンジンであってもよく、ネットワーク側にある分散システムであってもよく、例えば、ネットワーク側の開発者ツール中の処理エンジン又は分散システムなどであり、本実施例ではこれについて特に限定されない。
【0134】
前記アプリケーションはローカル端末にインストールされたローカルプログラム(natiVeAPP)であってもよく、ローカル端末上のブラウザの一つのウェブプログラム(webAPP)であってもよく、本実施例ではこれについて限定されないことを理解することができる。
【0135】
選択可能に、本実施例の可能な実現方式では、前記第2のコンパイル結果は一つのコンパイル結果であってもよく、又は2つ又は複数のコンパイル結果であってもよい。
【0136】
選択可能に、本実施例の可能な実現方式では、前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データは、
バイドゥAPPのバージョン番号などのような、前記ホストアプリケーションのバージョンデータと、
前記ホストアプリケーションによって提供されるボーディングアプリケーション実行環境のバージョンデータとのうちの少なくとも一つのデータを含む。
【0137】
選択可能に、本実施例の可能な実現方式では、前記アップロードユニット503は、具体的には、前記ボーディングアプリケーションのコンパイル結果に基づいて、各コンパイル結果のバージョンデータを生成し、前記各コンパイル結果のバージョンデータは、前記第1のコンパイル結果のバージョンデータと、前記第1のコンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンデータと、前記第2のコンパイル結果のバージョンデータと、前記第2のコンパイル結果に依存するボーディングアプリケーション実行環境の最低バージョンデータとを含み、前記管理プラットフォームに前記各コンパイル結果及び前記各コンパイル結果のバージョンデータをアップロードするために用いられることができる。
【0138】
具体的には、前記アップロードユニット503は、具体的には、前記ボーディングアプリケーションの統一コンパイルバージョン生成ルールに基づいて、順次に従って前記各コンパイル結果のバージョンデータを順番生成するか、又は前記ボーディングアプリケーションの今回コンパイルバージョン生成ルールに基づいて、順次に従って前記各コンパイル結果のバージョンデータを順番生成するために用いられることができる。
【0139】
なお、
図2に対応する実施例中の方法は、本実施例によって提供されるボーディングアプリケーションのコンパイル最適化装置によって実現することができる。詳細な説明は
図2に対応する実施例における関連内容を参照することができ、ここで省略する。
【0140】
本実施例では、構築ユニットが取得ユニットによって取得されたボーディングアプリケーションのソースコードに基づいてコンパイル処理を最適化する前のボーディングアプリケーションの第1のコンパイル結果と、コンパイル処理を最適化した後のボーディングアプリケーションの第2のコンパイル結果とをそれぞれ構築し、アップロードユニットがそれを管理プラットフォームにアップロードし、管理プラットフォームがホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに基づいて、コンパイル結果に対応する伝達を行って、前記ホストアプリケーションが当該ホストアプリケーションによって提供されるボーディングアプリケーション実行環境を利用して、取得されたコンパイル結果を実行するようにし、ボーディングアプリケーションのコンパイル処理の最適化がユーザが使用するホストアプリケーションのバージョンに限定されないため、ボーディングアプリケーションのコンパイル処理の最適化をスムーズに行うことによって、最適化後のボーディングアプリケーション実行の効率と信頼性を効果的に向上させる。
【0141】
また、本開示によって提供される技術案を使用して、開発者ツールがコンパイル処理を最適化した後のボーディングアプリケーションの第2のコンパイル結果を構築するだけでなく、コンパイル処理を最適化する前のボーディングアプリケーションの第1のコンパイル結果も構築することによって、開発者ツールがコンパイル処理を最適化するプロセス中にホストアプリケーションの履歴バージョンに対する互換性の負担を取り除くことができ、開発者ツールの内部コードがより明確になり、そのコンパイル産物もより効率的になり、開発者ツールのコンパイル効率を向上させる。
【0142】
また、本開示によって提供される技術案を使用して、コンパイル産物の変化と迅速なオンラインを効果的に構築できることに一つの新たな道を開き、より大きな収益が得られる。
【0143】
また、本開示によって提供される技術案を使用して、ユーザの体験を効果的に向上させることができる。
【0144】
本開示の実施例によれば、本開示は電子機器及びコンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体をさらに提供する。
【0145】
図6に示すように、本開示の実施例のボーディングアプリケーションのコンパイル最適化方法を実現するための電子機器の概略図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、大型コンピュータ、及び他の適切なコンピュータなどの様々な形式のデジタルコンピュータを表すことを目的とする。電子機器は、パーソナルデジタル処理、携帯電話、スマートフォン、ウェアラブルデバイス、他の同様のコンピューティングデバイスなどの様々な形式のモバイルデバイスを表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は単なる例であり、本明細書の説明及び/又は要求される本開示の実現を制限することを意図したものではない。
【0146】
図6に示すように、当該電子機器は、一つ又は複数のプロセッサ601と、メモリ602と、高速インターフェースと低速インターフェースを含む各コンポーネントを接続するためのインターフェースと、を含む。各コンポーネントは、異なるバスで相互に接続され、共通のマザーボードに取り付けられるか、又は必要に基づいて他の方式で取り付けることができる。プロセッサは、外部入力/出力装置(インターフェースに結合されたディスプレイデバイスなど)にGUIの図形情報をディスプレイするためにメモリに記憶されている命令を含む、電子機器内に実行される命令を処理することができる。他の実施方式では、必要であれば、複数のプロセッサ及び/又は複数のバスを、複数のメモリとともに使用することができる。同様に、複数の電子機器を接続することができ、各電子機器は、部分的な必要な操作(例えば、サーバアレイ、ブレードサーバ、又はマルチプロセッサシステムとする)を提供することができる。
図6では、一つのプロセッサ601を例とする。
【0147】
メモリ602は、本開示により提供される非一時的なコンピュータ読み取り可能な記憶媒体である。その中、前記メモリには、少なくとも一つのプロセッサによって実行される命令を記憶して、前記少なくとも一つのプロセッサが本開示により提供されるボーディングアプリケーションのコンパイル最適化方法を実行することができるようにする。本開示の非一時的なコンピュータ読み取り可能な記憶媒体は、コンピュータが本開示により提供されるボーディングアプリケーションのコンパイル最適化方法を実行するためのコンピュータ命令を記憶する。
【0148】
メモリ602は、非一時的なコンピュータ読み取り可能な記憶媒体として、本開示の実施例におけるボーディングアプリケーションのコンパイル最適化方法に対応するプログラム命令/モジュール(例えば、
図3に示す取得ユニット301、照会ユニット302及び伝達ユニット303など)ように、非一時的なソフトウェアプログラム、非一時的なコンピュータ実行可能なプログラム及びモジュールを記憶するために用いられる。プロセッサ601は、メモリ602に記憶されている非一時的なソフトウェアプログラム、命令及びモジュールを実行することによって、サーバの様々な機能アプリケーション及びデータ処理を実行し、すなわち上記の方法の実施例におけるボーディングアプリケーションのコンパイル最適化方法を実現する。
【0149】
メモリ602は、ストレージプログラム領域とストレージデータ領域とを含むことができ、その中、ストレージプログラム領域は、オペレーティングシステム、少なくとも一つの機能に必要なアプリケーションプログラムを記憶することができ、ストレージデータ領域は、ボーディングアプリケーションのコンパイル最適化方法を実現する電子機器の使用によって作成されたデータなどを記憶することができる。また、メモリ602は、高速ランダム存取メモリを含むことができ、非一時的なメモリをさらに含むことができ、例えば、少なくとも一つのディスクストレージデバイス、フラッシュメモリデバイス、又は他の非一時的なソリッドステートストレージデバイスである。いくつかの実施例では、メモリ602は、プロセッサ601に対して遠隔に設置されたメモリを含むことができ、これらの遠隔メモリは、ネットワークを介してボーディングアプリケーションのコンパイル最適化方法を実現する電子機器に接続されることができる。上記のネットワークの例は、インターネット、イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、及びその組み合わせを含むが、これらに限定しない。
【0150】
ボーディングアプリケーションのコンパイル最適化方法を実現する電子機器は、入力装置603と出力装置604とをさらに含むことができる。プロセッサ601、メモリ602、入力装置603、及び出力装置604は、バス又は他の方式を介して接続することができ、
図6では、バスを介して接続することを例とする。
【0151】
入力装置603は、入力された数字又は文字情報を受信することができ、及びボーディングアプリケーションのコンパイル最適化方法を実現する電子機器のユーザ設置及び機能制御に関するキー信号入力を生成することができ、例えば、タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、指示杆、一つ又は複数のマウスボタン、トラックボール、ジョイスティックなどの入力装置である。出力装置604は、ディスプレイデバイス、補助照明デバイス(例えば、LED)、及び触覚フィードバックデバイス(例えば、振動モータ)などを含むことができる。当該ディスプレイデバイスは、LCD(液晶ディスプレイ)、LED(発光ダイオード)ディスプレイ、及びプラズマディスプレイを含むことができるが、これらに限定しない。いくつかの実施方式では、ディスプレイデバイスは、タッチスクリーンであってもよい。
【0152】
本明細書で説明されるシステムと技術の様々な実施方式は、デジタル電子回路システム、集積回路システム、特定用途向けASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせで実現することができる。これらの様々な実施方式は、一つ又は複数のコンピュータプログラムで実施されることを含むことができ、当該一つ又は複数のコンピュータプログラムは、少なくとも一つのプログラマブルプロセッサを含むプログラム可能なシステムで実行及び/又は解釈されることができ、当該プログラマブルプロセッサは、特定用途向け又は汎用プログラマブルプロセッサであってもよく、ストレージシステム、少なくとも一つの入力装置、及び少なくとも一つの出力装置からデータ及び命令を受信し、データ及び命令を当該ストレージシステム、当該少なくとも一つの入力装置、及び当該少なくとも一つの出力装置に伝送することができる。
【0153】
これらのコンピューティングプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも呼ばれる)は、プログラマブルプロセッサの機械命令、高レベルのプロセス及び/又はオブジェクト指向プログラミング言語、及び/又はアセンブリ/機械言語でこれらのコンピューティングプログラムを実施することを含む。本明細書に使用されるように、用語「機械読み取り可能な媒体」及び「コンピュータ読み取り可能な媒体」は、機械命令及び/又はデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、機器、及び/又は装置(例えば、磁気ディスク、光ディスク、メモリ、PLD(プログラマブルロジックデバイス))を指し、機械読み取り可能な信号である機械命令を受信する機械読み取り可能な媒体を含む。用語「機械読み取り可能な信号」は、機械命令及び/又はデータをプログラマブルプロセッサに提供するための任意の信号を指す。
【0154】
ユーザとのインタラクションを提供するために、コンピュータ上でここで説明されているシステム及び技術を実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置は、ユーザとのインタラクションを提供するために用いられることもでき、例えば、ユーザに提供されるフィードバックは、任意の形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形式(音響入力と、音声入力と、触覚入力とを含む)でユーザからの入力を受信することができる。
【0155】
ここで説明されるシステム及び技術は、バックエンドコンポーネントを含むコンピューティングシステム(例えば、データサーバとする)、又はミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバー)、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ、ユーザは、当該グラフィカルユーザインタフェース又は当該ウェブブラウザによってここで説明されるシステム及び技術の実施方式とインタラクションする)、又はこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムで実施することができる。任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続されることができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)と、ワイドエリアネットワーク(WAN)と、インターネットと、ブロックチェーンネットワークと、を含む。
【0156】
コンピュータシステムは、クライアントとサーバとを含むことができる。クライアントとサーバは、一般に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによってクライアントとサーバとの関係が生成される。サーバはクラウドサーバであってもよく、クラウドコンピューティングサーバ又はクラウドホストとも呼ばれ、クラウドコンピューティングサービスシステム内の一つのホスト製品であり、従来の物理ホストとVPSサービスで、存在する管理の難しさ、ビジネス拡張性の弱い欠陥を解決する。
【0157】
本開示の実施例の技術案によれば、開発者ツールがボーディングアプリケーションのソースコードに基づいてコンパイル処理を最適化する前のボーディングアプリケーションの第1のコンパイル結果と、コンパイル処理を最適化した後のボーディングアプリケーションの第2のコンパイル結果とをそれぞれ構築し、それを管理プラットフォームにアップロードし、管理プラットフォームがホストアプリケーションによって提供されるボーディングアプリケーション実行環境の環境データに基づいて、コンパイル結果に対応する伝達を行って、前記ホストアプリケーションが当該ホストアプリケーションによって提供されるボーディングアプリケーション実行環境を利用して、取得されたコンパイル結果を実行するようにし、ボーディングアプリケーションのコンパイル処理の最適化がユーザが使用するホストアプリケーションのバージョンに限定されないため、ボーディングアプリケーションのコンパイル処理の最適化をスムーズに行うことによって、最適化後のボーディングアプリケーション実行の効率と信頼性を効果的に向上させる。
【0158】
また、本開示によって提供される技術案を使用して、開発者ツールがコンパイル処理を最適化した後のボーディングアプリケーションの第2のコンパイル結果を構築するだけでなく、コンパイル処理を最適化する前のボーディングアプリケーションの第1のコンパイル結果も構築することによって、開発者ツールがコンパイル処理を最適化するプロセス中にホストアプリケーションの履歴バージョンに対する互換性の負担を取り除くことができ、開発者ツールの内部コードがより明確になり、そのコンパイル産物もより効率的になり、開発者ツールのコンパイル効率を向上させる。
【0159】
また、本開示によって提供される技術案を使用して、コンパイル産物の変化と迅速なオンラインを効果的に構築できることに一つの新たな道を開き、より大きな収益が得られる。
【0160】
また、本開示によって提供される技術案を使用して、ユーザの体験を効果的に向上させることができる。
【0161】
上記に示される様々な形式のフローを使用して、ステップを並べ替え、追加、又は削除することができることを理解されたい。例えば、本開示に記載されている各ステップは、並列に実行されてもよいし、順次的に実行されてもよいし、異なる順序で実行されてもよいが、本開示で開示されている技術案が所望の結果を実現することができれば、本明細書では限定されない。
【0162】
上記の具体的な実施方式は、本開示に対する保護範囲の制限を構成するものではない。当業者は、設計要求と他の要因に基づいて、様々な修正、組み合わせ、サブコンビネーション、及び代替を行うことができる。任意の本開示の精神と原則内で行われる修正、同等の置換、及び改善などは、いずれも本開示の保護範囲内に含まれなければならない。