(57)【要約】  本願は、アプリケーション実行方法及び装置を提案する。この方法は：アプリケーションのオリジナルファイルに基づいてクラス記述ファイルを生成し、そのクラス記述ファイルをインストールパッケージへ入れるステップであって、クラス記述ファイルは、クラス記述に用いられるテキストファイルであり、クラス記述ファイルのサイズは、対応するクラスのサイズよりも小さい、アプリケーションのオリジナルファイルに基づいてクラス記述ファイルを生成し、そのクラス記述ファイルをインストールパッケージへ入れるステップと；ユーザがアプリケーションを実行する前にインストールパッケージをダウンロードするステップと；アプリケーションが実行されるときに、インストールパッケージからクラス記述ファイルを取得し、クラス記述ファイルに基づいてクラスを生成するステップと；を含む。この方法は、アプリケーションのインストールパッケージのサイズを縮小し、リソースオーバーヘッドを減らすことができる。
2019501459.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション（ＡＰＰ）実行方法であって：
アプリケーションのオリジナルファイルに基づいてクラス記述ファイルを生成し、前記クラス記述ファイルをインストールパッケージへ入れるステップであって、前記クラス記述ファイルはクラスの記述に用いられるテキストファイルであり、前記クラス記述ファイルのサイズは対応するクラスのサイズより小さい、アプリケーションのオリジナルファイルに基づいてクラス記述ファイルを生成し、前記クラス記述ファイルをインストールパッケージへ入れるステップと；
ユーザが前記アプリケーションを実行する前に、前記インストールパッケージをダウンロードするステップと；
前記アプリケーションが実行されると、前記インストールパッケージから前記クラス記述ファイルを取得し、前記クラス記述ファイルに基づいてクラスを生成するステップと；を備える、
アプリケーション実行方法。
【請求項２】
アプリケーションのオリジナルファイルに基づいてクラス記述ファイルを生成する前記ステップは：
所定のスクリプトに基づいてフォーマット変換を実行するステップと；
前記アプリケーションの前記オリジナルファイルを前記クラス記述ファイルに変換するステップと；を備える、
請求項１に記載のアプリケーション実行方法。
【請求項３】
前記クラス記述ファイルに基づいてクラスを生成する前記ステップは：
前記クラス記述ファイルに基づいて、クラス名、親クラス名、及び属性を取得するステップと；
前記クラス名、前記親クラス名、及び前記属性に基づいて、そしてｉＯＳランタイム（ｒｕｎｔｉｍｅ）技術によって提供される方法を用いて、前記クラスを生成するステップと；を備える、
請求項１に記載のアプリケーション実行方法。
【請求項４】
前記オリジナルファイルがヘッダファイルとソースファイルとを含む、
請求項１乃至請求項３のいずれか１項に記載のアプリケーション実行方法。
【請求項５】
アプリケーションのオリジナルファイルに基づいてクラス記述ファイルを生成し、前記クラス記述ファイルをインストールパッケージへ入れる前記ステップは：
前記ヘッダファイルと前記ソースファイルとに基づいて前記クラス記述ファイルを生成するステップと；
前記ソースファイルを削除するステップと；
前記ソースファイルが削除された後、前記ユーザがダウンロードできるように、前記ヘッダファイルと前記クラス記述ファイルとを前記インストールパッケージへ入れるステップと；を備える、
請求項４に記載のアプリケーション実行方法。
【請求項６】
前記ヘッダファイルと前記クラス記述ファイルとを前記インストールパッケージに入れた後：
前記ユーザが圧縮されたインストールパッケージをダウンロードできるように、前記インストールパッケージを圧縮するステップ；を更に備える、
請求項５に記載のアプリケーション実行方法。
【請求項７】
アプリケーション（ＡＰＰ）実行装置であって：
アプリケーションのオリジナルファイルに基づいてクラス記述ファイルを生成し、前記クラス記述ファイルをインストールパッケージへ入れるように構成される生成モジュールであって、前記クラス記述ファイルはクラスの記述に用いられるテキストファイルであり、前記クラス記述ファイルのサイズは対応するクラスのサイズより小さい、生成モジュールと；
ユーザが前記アプリケーションを実行する前に前記インストールパッケージをダウンロードするように構成されるダウンロードモジュールと；
前記アプリケーションが実行される時に前記インストールパッケージから前記クラス記述ファイルを取得し、前記クラス記述ファイルに基づいてクラスを生成するように構成される実行モジュールと；を備える、
アプリケーション実行装置。
【請求項８】
アプリケーションのオリジナルファイルに基づいてクラス記述ファイルを生成するように構成される前記生成モジュールは：
所定のスクリプトに基づいてフォーマット変換を実行し、前記アプリケーションの前記オリジナルファイルを前記クラス記述ファイルに変換する、
請求項７に記載のアプリケーション実行装置。
【請求項９】
前記クラス記述ファイルに基づいてクラスを生成するように構成される前記実行モジュールは：
前記クラス記述ファイルに基づいて、クラス名、親クラス名、及び属性を取得し； 
前記クラス名、前記親クラス名、及び前記属性に基づいて、そしてｉＯＳランタイム（ｒｕｎｔｉｍｅ）技術によって提供される方法を用いて、前記クラスを生成する、
請求項７に記載のアプリケーション実行装置。
【請求項１０】
前記オリジナルファイルはヘッダファイルとソースファイルとを含み、前記生成モジュールは：
前記ヘッダファイルと前記ソースファイルとに基づいて前記クラス記述ファイルを生成するように構成される第１のユニットと；
前記ソースファイルを削除するように構成される第２のユニットと；
前記ソースファイルが削除された後に、前記ユーザがダウンロードするための前記インストールパッケージ内へ前記ヘッダファイルと前記クラス記述ファイルとを入れるように構成される第３のユニットと；を備える、
請求項７乃至請求項９のいずれか１項に記載のアプリケーション実行装置。
【請求項１１】
前記生成モジュールは：
前記ユーザが圧縮されたインストールパッケージをダウンロードできるように、前記インストールパッケージを圧縮するように構成された第４のユニット；を更に備える、
請求項１０に記載のアプリケーション実行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はインターネット技術の分野に関し、特に、アプリケーション実行方法及び装置に関する。
【背景技術】
【０００２】
スマートテクノロジーの時代においては、ますます多くのアプリケーション（ＡＰＰｓ）がユーザによって使用され、その使用の前には、そのアプリケーションをダウンロードしてインストールする必要がある。現在、アプリケーションのインストールパッケージはサイズ（容量）が大きいのが普通であり、それは、例えば約１００Ｍである。ユーザがアプリストアからインストールパッケージをダウンロードするとき、端末デバイスのディスクの空き容量を大きく占有してしまう。そのうえ、多くのダウンロード通信量及び長いダウンロード時間が必要となり、リソースオーバーヘッドが増加する。
【発明の概要】
【０００３】
本開示の狙いは、関連技術における技術的課題の１つを、少なくともある程度まで解決することである。
【０００４】
したがって、本開示の目的は、アプリケーション（ＡＰＰ）実行方法を提供することであり、この方法により、アプリケーションのインストールパッケージのサイズを縮小することができ、それによりリソースオーバーヘッドを減らすことができるものである。
【０００５】
本開示のもう一つの目的は、アプリケーション実行装置を提供することである。
【０００６】
前述の目的を達成するために、本開示の第１の実施の形態としてのアプリケーション実行方法は：
アプリケーションのオリジナルファイルに基づいてクラス記述ファイルを生成し、前記クラス記述ファイルをインストールパッケージへ入れるステップであって、前記クラス記述ファイルはクラスの記述に用いられるテキストファイルであり、前記クラス記述ファイルのサイズは対応するクラスのサイズより小さい、アプリケーションのオリジナルファイルに基づいてクラス記述ファイルを生成し、前記クラス記述ファイルをインストールパッケージへ入れるステップと；
ユーザが前記アプリケーションを実行する前に、前記インストールパッケージをダウンロードするステップと；
前記アプリケーションが実行されると、前記インストールパッケージから前記クラス記述ファイルを取得し、前記クラス記述ファイルに基づいてクラスを生成するステップと；を含むものである。
【０００７】
本開示の第１の実施の形態で提案されるアプリケーション実行方法において、インストールパッケージはクラス記述ファイルを含み、クラス記述ファイルのサイズはクラスのサイズより小さい。したがって、インストールパッケージにクラスを直接的に含む既存の方法と比較して、インストールパッケージにクラス記述ファイルを含む方法は、アプリケーションのインストールパッケージのサイズを縮小することができ、それによりリソースオーバーヘッドを減らすことができる。
【０００８】
前述の目的を達成するために、本開示の第２の実施の形態としてのアプリケーション実行装置は：
アプリケーションのオリジナルファイルに基づいてクラス記述ファイルを生成し、前記クラス記述ファイルをインストールパッケージへ入れるように構成される生成モジュールであって、前記クラス記述ファイルはクラスの記述に用いられるテキストファイルであり、前記クラス記述ファイルのサイズは対応するクラスのサイズより小さい、生成モジュールと；
ユーザが前記アプリケーションを実行する前に前記インストールパッケージをダウンロードするように構成されるダウンロードモジュールと；
前記アプリケーションが実行される時に前記インストールパッケージから前記クラス記述ファイルを取得し、前記クラス記述ファイルに基づいてクラスを生成するように構成される実行モジュールと；を含むものである。
【０００９】
本開示の第２の実施の形態で提案されるアプリケーション実行装置において、インストールパッケージはクラス記述ファイルを含み、クラス記述ファイルのサイズはクラスのサイズより小さい。したがって、インストールパッケージにクラスを直接的に含む既存の方法と比較して、インストールパッケージにクラス記述ファイルを含む方法は、アプリケーションのインストールパッケージのサイズを縮小することができ、それによりリソースオーバーヘッドを減らすことができる。
【００１０】
本開示のいくつかの更なる態様及び利点は、以下の説明に記載される、又は、以下の説明において明らかである、あるいは、本開示の実践を通じて理解できる。
【図面の簡単な説明】
【００１１】
本開示で先に記載された及び／又は更なる態様及び利点は、添付図面を参照する以下の実施の説明において明らかであり、理解することができる。
【００１２】
【図１】図１は、本開示の実施の形態に係るアプリケーション実行方法を示す概略フローチャートである。
【００１３】
【図２】図２は、既存の技術におけるアプリケーション実行方法を示す概略図である。
【００１４】
【図３】図３は、本開示の別の実施の形態に係るアプリケーション実行方法を示す概略フローチャートである。
【００１５】
【図４】図４は、本開示の実施の形態に係るクラス記述ファイルに基づいてクラスを生成する概略フローチャートである。
【００１６】
【図５】図５は、本開示の実施の形態に係るアプリケーション実行装置を示す概略構造図である。
【００１７】
【図６】図６は、本開示の別の実施の形態に係るアプリケーション実行装置を示す概略構造図である。
【発明を実施するための形態】
【００１８】
本開示の実施の形態を以下詳細に説明し、それらの実施の例を添付図面に示す。同一又は類似の符号は、同一又は類似のモジュール、もしくは同一又は類似の機能を有するモジュールを表す。添付図面を参照して以下に説明する実施の例は、本開示を説明するためのものであって、本開示を限定するものと解釈すべきではない。それどころか、本開示の実施の形態は、添付の特許請求の範囲の精神及び範囲に入るすべての変更、修正、及び均等物を含む。
【００１９】
図１は、本開示の実施の形態に係るアプリケーション実行方法を示す概略フローチャートである。この方法は、以下のステップを含む。
【００２０】
Ｓ１１：アプリケーションのオリジナルファイルに基づいてクラス記述ファイルを生成し、クラス記述ファイルをインストールパッケージへ入れる。ここでクラス記述ファイルはクラスの記述（説明、ディスクリプション）に用いられるテキストファイルであり、クラス記述ファイルのサイズは対応するクラスのサイズより小さい。
【００２１】
例えば、オリジナルファイルには、ヘッダファイル（．ｈファイル）と、ソースファイル（．ｍファイル）とが含まれている。
【００２２】
クラス記述ファイルはテキストファイルであり、これを用いてクラスの関連情報が記述される。このクラスとは、コンピュータプログラミングの基本情報である。クラス記述ファイルのサイズは、対応するクラスのサイズより小さい。
【００２３】
例えば、クラス名（ｃｌａｓｓ Ｎａｍｅ）はキャッシャ（ＭＥＲＣＨＡＮＴ ＡＰＰ Ｏｐｅｒａｔｏｒ）であり、このキャッシャはクラス記述（ｃｌａｓｓ Ｄｅｓｃｒｉｐｔｉｏｎ）を有する。クラス記述には、例えば、キャッシャＩＤ（ｏｐｅｒａｔｏｒ Ｉｄ）、キャッシャ名（ｏｐｅｒａｔｏｒ Ｎａｍｅ）、キャッシャのショップ名（ｓｈｏｐ Ｎａｍｅ）等を含む属性記述が含まれる。
【００２４】
ｉＯＳを例にとると、予めコンパイルされたスクリプトを用いてオリジナルファイルをクラス記述ファイル（．ｐｌｉｓｔファイル）に変換できる。クラス記述ファイルに必要なコンテンツはオリジナルファイルにあるが、オリジナルファイルとクラス記述ファイルとではフォーマットが異なる。したがって、スクリプトは、オリジナルファイルとクラス記述ファイルとの間の変換を実施するように、予めコンパイルされる。
【００２５】
更に、クラス記述ファイルが生成された後は、それをリソースバンドル（ｒｅｓｏｕｒｃｅ  ｂｕｎｄｌｅ）などの所定のディレクトリへ格納できる。
【００２６】
クラス記述ファイルが生成された後は、ユーザがダウンロードしてインストールできるように、それをインストールパッケージへ入れることができる。
【００２７】
実施の形態によっては、 図２に示すように、アプリケーションのオリジナルファイルに基づいてクラス記述ファイルを生成し、このクラス記述ファイルをインストールパッケージへ入れるステップは以下のステップを含む。
【００２８】
Ｓ１１１：ヘッダファイルとソースファイルとに基づいてクラス記述ファイルを生成する。
【００２９】
生成手順については、先に述べた関連説明を参照。詳細についてここでは繰り返し説明しない。
【００３０】
Ｓ１１２：ソースファイルを削除する。
【００３１】
Ｓ１１３：ソースファイルが削除されたら、ユーザがダウンロードできるようにヘッダファイルとクラス記述ファイルとをインストールパッケージへ入れる。
【００３２】
クラス記述ファイルとヘッダファイルは両方ともサイズが小さく、取得したインストールパッケージも小さいので、ユーザはアプリストアからインストールパッケージを直接ダウンロードできる。
【００３３】
オプションではあるが、インストールパッケージのサイズを更に縮小するために、取得したインストールパッケージを更に圧縮できる。例えば、ヘッダファイルとクラス記述ファイルとをインストールパッケージへ入れた後、この圧縮方法は以下のステップを更に含むことができる。
【００３４】
Ｓ１１４：圧縮されたインストールパッケージをユーザがダウンロードできるように、インストールパッケージを圧縮する。
【００３５】
例えば、圧縮されたインストールパッケージはアプリストアに表示され、ユーザは圧縮されたインストールパッケージをダウンロードできる。
【００３６】
Ｓ１２：アプリケーションを実行する前に、インストールパッケージをダウンロードする。
【００３７】
例えば、ユーザはアプリストアからアプリケーションのインストールパッケージをダウンロードできる。インストールパッケージには、クラス記述ファイルが含まれている。
【００３８】
本開示を既存の技術からもっと明確に区別するために、図３に、既存の技術におけるアプリケーションを実行する概略フローチャートを示す。図３に示すように、既存の技術では、インストールパッケージは、ソースファイルをコンパイルして中間ファイル（．ｏファイル）を作成するステップ（Ｓ３１）、及びその中間ファイルのリンクをパッケージ化するステップ（Ｓ３２）、の２つのステップでインストールパッケージを生成する。例えば、ｉＯＳシステムでは、インストールパッケージをｉｐａパッケージと言う。コンパイルして、リンクパッケージ化した後、ｉｐａパッケージはアプリケーションに対応するクラスを含む。その後、ｉｐａパッケージをユーザがダウンロードできるようにアプリストアへ入れることができる。ダウンロード後、端末デバイスのディスクにｉｐａパッケージが格納される（Ｓ３３）。アプリケーションが実行されると、ｉｐａパッケージはディスクから端末デバイスのメモリに読み出されて実行される（Ｓ３４）。そのようにして、アプリケーションは正常に実行される。このｉｐａパッケージは一般にサイズが大きいので、ダウンロードと格納には大量のリソースが必要になる。
【００３９】
上述した既存の技術とは異なり、本実施の形態では、オリジナルファイルのコンパイル及びリンクのパッケージ化は不要であり、その代わりにクラス記述ファイルが用いられる。クラス記述ファイルはテキストファイルである。既存のｉｐａパッケージと比較すると、クラス記述ファイルのサイズは小さく、ダウンロード及び格納のためのリソースを減らすことができる。
【００４０】
Ｓ１３：アプリケーションが実行されると、インストールパッケージからクラス記述ファイルを取得し、クラス記述ファイルに基づいてクラスを生成する。
【００４１】
ダウンロードされたインストールパッケージが圧縮されたインストールパッケージである場合、インストールパッケージを用いる際には、先ずインストールパッケージを解凍して、クラス記述ファイルなどの情報を取得できる。ダウンロードしたインストールパッケージが圧縮されていなければ、クラス記述ファイルなどの情報を、インストールパッケージから直接に取得できる。
【００４２】
アプリケーションの正常な実行を確保するには、アプリケーションに含まれるクラスを生成する必要がある。既存の技術では、クラスは、ソースファイルをコンパイルし、パッケージ化することにより生成できるので、ディスクに格納されたｉｐａパッケージはクラスが含まれるようになっている。アプリケーションを実行する場合には、そのクラスをディスクから直接に取り出してアプリケーションを正常に実行できる。
【００４３】
本実施の形態では、インストールパッケージのサイズを縮小するために、クラスの代わりにクラス記述ファイルがインストールパッケージに含まれる。したがって、アプリケーションを正常に実行するには、最初にクラス記述ファイルに基づいてクラスを生成する必要がある。
【００４４】
例えば、インストールパッケージをダウンロードした後、ユーザは、インストールパッケージを端末デバイスのディスクに格納できる。アプリケーションを実行すると、インストールパッケージ内のクラス記述ファイルをディスクからメモリに読み込むことができる。ここで、クラスはクラス記述ファイルに基づいて生成される。
【００４５】
実施の形態によっては、図４に示すように、クラス記述ファイルに基づいてクラスを生成する手順は、以下のステップを含むことができる。
【００４６】
Ｓ４１：クラス記述ファイルに基づいて、クラス名、親クラス名、及び属性を取得する。
【００４７】
例えば、クラス記述ファイルには、生成待ちのクラスのクラス名と属性記述とが含まれる。例えば、クラス名（ｃｌａｓｓ Ｎａｍｅ）はキャッシャ（ＭＥＲＣＨＡＮＴ ＡＰＰ Ｏｐｅｒａｔｏｒ）であり、属性記述にはキャッシャＩＤ（ｏｐｅｒａｔｏｒ Ｉｄ）、キャッシャ名（ｏｐｅｒａｔｏｒ Ｎａｍｅ）、及びキャッシャのショップ名（ｓｈｏｐ Ｎａｍｅ）等が含まれる。したがって、クラス記述ファイルからクラス名と属性記述とを取得できる。
【００４８】
属性記述を取得した後、属性記述に基づいて属性を作成できる。例えば、属性記述に基づいて属性変数（ｉｖａｒ（インスタンス変数））、アクセサリ（ｐｒｏｐｅｒｔｙ）、及びポインタ（ＩＭＰ）を直接に作成できる。
【００４９】
クラス記述ファイルにクラス名の対応する親クラス名が含まれている場合、クラス記述ファイルから親クラス名を直接に取得できる。クラス名の対応する親クラス名がクラス記述ファイルに含まれていない場合、親クラス名を取得するために、親クラス名作成ルール及びクラス名に基づいて、親クラス名を作成して、これを戻すことができる。
【００５０】
Ｓ４２：クラス名、親クラス名、及び属性に基づいて、そしてｉＯＳ  ｒｕｎｔｉｍｅ（ランタイム）技術によって提供される方法を用いて、クラスを生成する。
【００５１】
ｉＯＳ  ｒｕｎｔｉｍｅ（ランタイム）技術は、クラスを作成するための複数の方法を提供する。例えば、１つの方法は：「ｏｂｊｃ＿ａｌｌｏｃａｔｅＣｌａｓｓＰａｉｒ（Ｃｌａｓｓ  ｓｕｐｅｒｃｌａｓｓ,  ｃｏｎｓｔ  ｃｈａｒ  ＊ｎａｍｅ,  ｓｉｚｅ＿ｔｅｘｔｒａＢｙｔｅｓ）」である。
【００５２】
注記：第１のパラメータであるスーパークラス（ｓｕｐｅｒｃｌａｓｓ）は親クラスのクラスオブジェクトであり、第２のパラメータはクラス名（ｎａｍｅ）であり、そして第３のパラメータは追加で割り当てられたバイトであって、通常は０である。
【００５３】
親クラス名とクラス名は、上記方法のパラメータで用いられる。更に、属性は、上記方法の実行時に用いられて、親クラス名、クラス名、及び属性に基づいて、そして先に記載の方法を用いて、クラスを作成する。
【００５４】
この実施の形態では、インストールパッケージにクラス記述ファイルが含まれており、クラス記述ファイルのサイズはクラスのサイズよりも小さい。したがって、インストールパッケージにクラスを直接的に含む既存の方法と比較して、インストールパッケージにクラス記述ファイルを含む方法は、アプリケーションのインストールパッケージのサイズを縮小して、リソースオーバーヘッドを減らすことができる。
【００５５】
図５は、本開示の実施の形態に係る、アプリケーション実行装置を示す概略構造図である。装置５０は、生成モジュール５１と、ダウンロードモジュール５２と、実行モジュール５３とを含む。
【００５６】
生成モジュール５１は、アプリケーションのオリジナルファイルに基づいてクラス記述ファイルを生成し、クラス記述ファイルをインストールパッケージへ入れるように構成され、前記クラス記述ファイルはクラス記述に用いられるテキストファイルであり、クラス記述ファイルのサイズは対応するクラスのサイズより小さい。
【００５７】
例えば、オリジナルファイルには、ヘッダファイル（．ｈファイル）とソースファイル（．ｍファイル）とが含まれる。
【００５８】
クラス記述ファイルはテキストファイルであり、クラスの関連情報の記述に用いられる。このクラスとはコンピュータプログラミングの基本情報である。クラス記述ファイルのサイズは、対応するクラスのサイズよりも小さい。
【００５９】
例えば、クラス名（ｃｌａｓｓ Ｎａｍｅ）はキャッシャ（ＭＥＲＣＨＡＮＴ ＡＰＰ Ｏｐｅｒａｔｏｒ）であり、キャッシャはクラス記述（ｃｌａｓｓ Ｄｅｓｃｒｉｐｔｉｏｎ）を持っている。クラス記述には、例えば、キャッシャＩＤ（ｏｐｅｒａｔｏｒ Ｉｄ）、キャッシャ名（ｏｐｅｒａｔｏｒ Ｎａｍｅ）、及びキャッシャのショップ名（ｓｈｏｐ Ｎａｍｅ）等を含む属性記述が含まれる。
【００６０】
オプションではあるが、生成モジュールは、アプリケーションのオリジナルファイルに基づいてクラス記述ファイルを生成するように構成されているが、クラス記述ファイルの生成は、所定のスクリプトに基づいてフォーマット変換を実行するステップと、アプリケーションのオリジナルファイルをクラス記述ファイルに変換するステップとを含む。
【００６１】
例えば、ｉＯＳシステムでは、予めコンパイルされたスクリプトを用いてオリジナルファイルをクラス記述ファイル（．ｐｌｉｓｔファイル）に変換できる。クラス記述ファイルに必要なコンテンツはオリジナルファイルにあるが、オリジナルファイルとクラス記述ファイルとではフォーマットが異なる。したがって、スクリプトは、オリジナルファイルとクラス記述ファイルとの間の変換を実施できるように、予めコンパイルされる。
【００６２】
更に、クラス記述ファイルが生成された後、それを、例えばリソースバンドル（ｒｅｓｏｕｒｃｅ  ｂｕｎｄｌｅ）等の所定のディレクトリに格納できる。
【００６３】
クラス記述ファイルが生成された後は、それをユーザがダウンロードしてインストールできるように、インストールパッケージへ入れることができる。
【００６４】
実施の形態によっては、 図６に示すように、生成モジュール５１は、第１のユニット５１１と、第２のユニット５１２と、第３のユニット５１３とを含む。
【００６５】
第１のユニット５１１は、ヘッダファイルとソースファイルとに基づいてクラス記述ファイルを生成するように構成される。
【００６６】
生成手順については、先に説明した関連説明を参照されたい。詳細についてはここでは繰り返し説明しない。
【００６７】
第２のユニット５１２は、ソースファイルを削除するように構成される。
【００６８】
第３のユニット５１３は、ソースファイルが削除された後に、ユーザがダウンロードできるようにインストールパッケージにヘッダファイルとクラス記述ファイルとを入れるように構成される。
【００６９】
クラス記述ファイルとヘッダファイルは両方ともサイズが小さく、取得されたインストールパッケージも小さいので、ユーザはアプリストアからインストールパッケージを直接ダウンロードできる。
【００７０】
オプションではあるが、生成モジュール５１は、圧縮されたインストールパッケージをユーザがダウンロードできるように、インストールパッケージを圧縮するように構成された第４のユニット５１４を更に含む。
【００７１】
インストールパッケージのサイズを更に縮小するために、取得したインストールパッケージを更に圧縮できる。
【００７２】
例えば、圧縮されたインストールパッケージはアプリストアで表示され、ユーザは圧縮されたインストールパッケージをダウンロードできる。
【００７３】
ダウンロードモジュール５２は、ユーザがアプリケーションを実行する前にインストールパッケージをダウンロードするように構成される。
【００７４】
例えば、ユーザはアプリストアからアプリケーションのインストールパッケージをダウンロードできる。インストールパッケージには、クラス記述ファイルが含まれる。
【００７５】
既存の技術とは異なり、この実施の形態ではオリジナルファイルのコンパイル及びリンクのパッケージ化は不要であり、その代わりにクラス記述ファイルが用いられる。クラス記述ファイルはテキストファイルである。既存のｉｐａパッケージと比較すると、クラス記述ファイルのサイズは小さく、ダウンロード及び格納のためのリソースを減らすことができる。
【００７６】
実行モジュール５３は、アプリケーションが実行される時にインストールパッケージからクラス記述ファイルを取得し、クラス記述ファイルに基づいてクラスを生成するように構成される。
【００７７】
ダウンロードされたインストールパッケージが圧縮されたインストールパッケージである場合、インストールパッケージを用いるときに、先ずインストールパッケージを解凍して、クラス記述ファイル等の情報を取得できる。ダウンロードしたインストールパッケージが圧縮されていない場合、クラス記述ファイル等の情報は、インストールパッケージから直接に取得できる。
【００７８】
アプリケーションの正常な実行を確保するには、アプリケーションに含まれるクラスを生成する必要がある。既存の技術では、クラスは、ソースファイルをコンパイルし、パッケージ化することにより生成できるので、ディスクに格納されたｉｐａパッケージはクラスが含まれるようになっている。アプリケーションを実行する場合には、そのクラスをディスクから直接に取り出してアプリケーションを正常に実行できる。
【００７９】
この実施の形態では、インストールパッケージのサイズを縮小するために、インストールパッケージにはクラスの代わりにクラス記述ファイルが含まれる。したがって、アプリケーションを正常に実行するには、先ず、クラス記述ファイルに基づいてクラスを生成する必要がある。
【００８０】
例えば、インストールパッケージをダウンロードした後、ユーザは、インストールパッケージを端末デバイスのディスクに格納できる。アプリケーションが実行されると、インストールパッケージ内のクラス記述ファイルを、ディスクからメモリに読み込むことができる。ここで、クラスはクラス記述ファイルに基づいて生成される。
【００８１】
この実施の形態によっては、実行モジュール５３は、クラス記述ファイルに基づいてクラスを生成するように構成され：クラス記述ファイルに基づいてクラス名、親クラス名、及び属性を取得するステップと；クラス名、親クラス名、及び属性に基づいて、そしてｉＯＳ  ｒｕｎｔｉｍｅ（ランタイム）技術によって提供される方法を用いて、クラスを生成するステップと；を含む。
【００８２】
例えば、クラス記述ファイルには、生成待ちのクラスのクラス名と属性記述とが含まれる。例えば、クラス名（ｃｌａｓｓ Ｎａｍｅ）はキャッシャ（ＭＥＲＣＨＡＮＴ ＡＰＰ Ｏｐｅｒａｔｏｒ）であり、属性記述には、キャッシャＩＤ（ｏｐｅｒａｔｏｒ Ｉｄ）、キャッシャ名（ｏｐｅｒａｔｏｒ Ｎａｍｅ）、キャッシャのショップ名（ｓｈｏｐ Ｎａｍｅ）等が含まれる。したがって、クラス記述ファイルからクラス名と属性記述とを取得できる。
【００８３】
属性記述が取得された後、属性記述に基づいて属性を作成できる。例えば、属性記述に基づいて、属性変数（ｉｖａｒ）、アクセサリ（ｐｒｏｐｅｒｔｙ）、及びポインタ（ＩＭＰ）を直接に作成できる。
【００８４】
クラス記述ファイルにクラス名の対応する親クラス名が含まれている場合、親クラス名はクラス記述ファイルから直接に取得できる。クラス記述ファイルにクラス名の対応する親クラス名が含まれていない場合、親クラス名を取得するために、親クラス名作成ルールとクラス名とに基づいて、親クラス名を作成して、これを戻すことができる。
【００８５】
ｉＯＳ  ｒｕｎｔｉｍｅ（ランタイム）技術は、クラスを作成する複数の方法を提供する。例えば、１つの方法は：「ｏｂｊｃ＿ａｌｌｏｃａｔｅＣｌａｓｓＰａｉｒ（Ｃｌａｓｓ  ｓｕｐｅｒｃｌａｓｓ、ｃｏｎｓｔ  ｃｈａｒ  ＊  ｎａｍｅ、sｉｚｅ＿ｔｅｘｔｒａＢｙｔｅｓ）」である。
【００８６】
注記：第１のパラメータであるスーパークラス（ｓｕｐｅｒｃｌａｓｓ）は親クラスのクラスオブジェクトであり、第２のパラメータはクラス名（ｎａｍｅ）であり、そして第３のパラメータは追加で割り当てられたバイトであって、通常は０である。
【００８７】
親クラス名とクラス名は、上記方法のパラメータで用いられる。更に、属性は、上記方法の実行時に用いられて、親クラス名、クラス名、及び属性に基づいて、そして先に記載の方法を用いて、クラスを生成する。
【００８８】
この実施の形態では、インストールパッケージにクラス記述ファイルが含まれており、クラス記述ファイルのサイズはクラスのサイズよりも小さい。したがって、インストールパッケージにクラスを直接的に含む既存の方法と比較して、インストールパッケージにクラス記述ファイルを含む方法は、アプリケーションのインストールパッケージのサイズを縮小して、リソースオーバーヘッドを減らすことができる。
【００８９】
本開示の説明において、用語「第１の」及び「第２の」は単に説明のための用語にすぎず、相対的な重要性の指標でも示唆でもない。また、本開示の記載において、「複数」は、特に断らない限り「少なくとも２つ」を意味する。
【００９０】
ここでフローチャート又は別の方法で記述された工程又は方法に関する説明は以下のように理解できる。すなわち、１つ以上のモジュール、セグメント、又は特定の論理機能若しくは操作ステップの実施に用いられる実行可能命令のコード部分を含み；本開示の好ましい実施の範囲は別の実施態様を含み；そして、機能は、関係する諸機能に応じて基本的に同時の、又は、逆のシーケンスも含めて、図示又は記載の順序以外の順序で実行できる。これは、本開示の実施の形態の当該技術分野における当業者にとっては言うまでもない。
【００９１】
本開示における各部品は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせを用いて実現できることは言うまでもない。上述の実施の形態において、メモリに記憶され、適切な命令実行システムによって実行されるソフトウェア又はファームウェアを用いて、複数のステップ又は方法を実施できる。例えば、ハードウェアを用いて実現する場合、別の実現手法と同様に、当該技術分野における以下の周知技術のいずれか１つ又は組み合わせを用いて実現できる。すなわち、データ信号の論理機能を実現するために使われる論理ゲート回路を有するディスクリート論理回路、適切な組み合わせの論理回路を有するアプリケーション専用集積回路、プログラマブルゲートアレイ（ＰＧＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等を用いて実現できる。
【００９２】
当該技術分野における当業者には、上記方法の実施のステップのすべて又は一部を、関連するハードウェアを命令するコンピュータ実装プログラムによって実施可能であることが分かる。このプログラムは、コンピュータ読み取り可能な記憶媒体に格納できる。プログラムが実行されると、上記方法の実施の１つ又は組合せのステップが実行される。
【００９３】
更に、本開示の実施の形態における複数の機能ユニットは、１つの処理モジュールに統合でき、又は各ユニットを物理的に単独で存在させることができ、あるいは２つ以上のユニットを１つのモジュールに統合できる。統合モジュールは、ハードウェアの形で実装でき、又はソフトウェア機能モジュールの形で実装できる。統合モジュールがソフトウェア機能モジュールの形で実装され、独立した製品として販売又は使用される場合、統合モジュールをコンピュータ読み取り可能な記憶媒体に格納できる。
【００９４】
先に述べた記憶媒体は、読み出し専用メモリであっても、磁気ディスクであっても、光ディスクであってもよい。
【００９５】
本明細書の記述において、「実施」、「いくつかの実施」、「例」、「特定の例」、及び「いくつかの例」というような参照用語についての説明は：実施又は事例を参照して説明された特色、構造、材料、又は特性は、本開示の少なくとも１つの実施又は事例に含まれる、ということを意味している。本明細書では、前述の例示的な用語の表現は、必ずしも同じ実施又は事例に関するものではない。更に、記載された特色、構造、材料、又は特性は、一の又は複数の実施又は事例のいずれかにおいて適切な方法で組み合わせることができる。
【００９６】
以上、本願の実施の形態を図示し、説明したが、先に述べた実施の形態は一事例であり、本願に関する限定として解釈されるものではないことを理解できよう。本開示の範囲内で、当該技術分野における当業者は、前述の実施の形態に、変更、修正、置換、及び変形を加えることができる。
【符号の説明】
【００９７】
５１  生成モジュール
５２  ダウンロードモジュール
５３  実行モジュール
５１１  第１のユニット
５１２  第２のユニット
５１３  第３のユニット
５１４  第４のユニット
【図１】
2019501459.tif 000003
【図２】
2019501459.tif 000004
【図３】
2019501459.tif 000005
【図４】
2019501459.tif 000006
【図５】
2019501459.tif 000007
【図６】
2019501459.tif 000008
【国際調査報告】
2019501459.tif 000009
2019501459.tif 000010
2019501459.tif 000011
2019501459.tif 000012
2019501459.tif 000013