(57)【要約】【課題】中間言語ファイルのロード速度改善のための方法およびシステムを提供する。【解決手段】コンピュータによって実行されるロード速度改善方法は、アプリケーションのための中間言語ファイルがロードされる時点に生成される最適化ファイルを変更して格納する段階、前記中間言語ファイルの変更の可否を確認するための情報を生成および格納する段階、前記中間言語ファイルが再びロードされる場合、前記格納された情報を利用して前記中間言語ファイルの変更の可否を確認する段階、および前記中間言語ファイルの変更の可否にしたがい、前記変更された最適化ファイルを削除して新たな最適化ファイルを生成するか、または前記変更された最適化ファイルを本来の最適化ファイルに修復して再使用する段階を含む。【選択図】図１
2017146967.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実現される電子機器と結合されてロード速度改善方法を実行させるために記録媒体に格納されたコンピュータプログラムであって、
前記ロード速度改善方法は、
アプリケーションのための中間言語ファイルがロードされる時点に生成される最適化ファイルを変更して格納する段階、
前記中間言語ファイルの変更の可否を確認するための情報を生成および格納する段階、
前記中間言語ファイルが再びロードされる場合、前記格納された情報を利用して前記中間言語ファイルの変更の可否を確認する段階、および
前記中間言語ファイルの変更の可否にしたがい、前記変更された最適化ファイルを削除して新たな最適化ファイルを生成するか、または前記変更された最適化ファイルを本来の最適化ファイルに修復して再使用する段階
を含むことを特徴とする、コンピュータプログラム。
【請求項２】
前記最適化ファイルを変更して格納する段階は、
前記最適化ファイルの名前および経路のうちの少なくとも１つを格納し、前記最適化ファイルの名前および経路のうちの少なくとも１つの情報を変更して前記最適化ファイルを変更し、
前記変更された最適化ファイルを本来の最適化ファイルに修復して再使用する段階は、
前記格納された名前および経路のうちの少なくとも１つを通じて前記変更された少なくとも１つの情報を修復して前記最適化ファイルを修復することを特徴とする、請求項１に記載のコンピュータプログラム。
【請求項３】
前記最適化ファイルを変更して格納する段階は、
前記最適化ファイルを暗号化して前記最適化ファイルを変更し、
前記変更された最適化ファイルを本来の最適化ファイルに修復して再使用する段階は、
前記暗号化された最適化ファイルを復号化して前記最適化ファイルを修復することを特徴とする、請求項１に記載のコンピュータプログラム。
【請求項４】
前記中間言語ファイルの変更の可否を確認するための情報を生成および格納する段階は、
前記コンピュータのオペレーティングシステムの変更の可否を確認するための情報および前記アプリケーションの変更の可否を確認するための情報のうちの少なくとも１つの情報をさらに生成して格納し、
前記格納された情報を利用して前記中間言語ファイルの変更の可否を確認する段階は、
前記格納された少なくとも１つの情報をさらに利用して前記オペレーティングシステムの変更の可否または前記アプリケーションの変更の可否をさらに確認することを特徴とする、請求項１に記載のコンピュータプログラム。
【請求項５】
前記変更された最適化ファイルを本来の最適化ファイルに修復して再使用する段階は、
前記中間言語ファイル、前記オペレーティングシステム、および前記アプリケーションのうちの少なくとも１つが変更された場合、前記変更された最適化ファイルを削除して新たな最適化ファイルを生成することを特徴とする、請求項４に記載のコンピュータプログラム。
【請求項６】
前記中間言語ファイルの変更の可否を確認するための情報を生成および格納する段階は、
前記中間言語ファイルに対する巡回冗長検査（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）によってエラー検出コードを生成および格納し、
前記格納された情報を利用して前記中間言語ファイルの変更の可否を確認する段階は、
前記再びロードされた中間言語ファイルに対して生成されるエラー検出コードと前記格納されたエラー検出コードとの比較により、前記中間言語ファイルの変更の可否を確認することを特徴とする、請求項１に記載のコンピュータプログラム。
【請求項７】
コンピュータによって実行されるロード速度改善方法であって、
アプリケーションのための中間言語ファイルがロードされる時点に生成される最適化ファイルを変更して格納する段階、
前記中間言語ファイルの変更の可否を確認するための情報を生成および格納する段階、
前記中間言語ファイルが再びロードされる場合、前記格納された情報を利用して前記中間言語ファイルの変更の可否を確認する段階、および
前記中間言語ファイルの変更の可否にしたがい、前記変更された最適化ファイルを削除して新たな最適化ファイルを生成するか、または前記変更された最適化ファイルを本来の最適化ファイルに修復して再使用する段階
を含むことを特徴とする、ロード速度改善方法。
【請求項８】
前記最適化ファイルを変更して格納する段階は、
前記最適化ファイルの名前および経路のうちの少なくとも１つを格納し、前記最適化ファイルの名前および経路のうちの少なくとも１つの情報を変更して前記最適化ファイルを変更し、
前記変更された最適化ファイルを本来の最適化ファイルに修復して再使用する段階は、
前記格納された名前および経路のうちの少なくとも１つを通じて前記変更された少なくとも１つの情報を修復して前記最適化ファイルを修復することを特徴とする、請求項７に記載のロード速度改善方法。
【請求項９】
前記最適化ファイルを変更して格納する段階は、
前記最適化ファイルを暗号化して前記最適化ファイルを変更し、
前記変更された最適化ファイルを本来の最適化ファイルに修復して再使用する段階は、
前記暗号化された最適化ファイルを復号化して前記最適化ファイルを修復することを特徴とする、請求項７に記載のロード速度改善方法。
【請求項１０】
前記中間言語ファイルの変更の可否を確認するための情報を生成および格納する段階は、
前記コンピュータのオペレーティングシステムの変更の可否を確認するための情報および前記アプリケーションの変更の可否を確認するための情報のうちの少なくとも１つの情報をさらに生成して格納し、
前記格納された情報を利用して前記中間言語ファイルの変更の可否を確認する段階は、
前記格納された少なくとも１つの情報をさらに利用して前記オペレーティングシステムの変更の可否または前記アプリケーションの変更の可否をさらに確認することを特徴とする、請求項７に記載のロード速度改善方法。
【請求項１１】
前記変更された最適化ファイルを本来の最適化ファイルに修復して再使用する段階は、
前記中間言語ファイル、前記オペレーティングシステム、および前記アプリケーションのうちの少なくとも１つが変更された場合、前記変更された最適化ファイルを削除して新たな最適化ファイルを生成することを特徴とする、請求項１０に記載のロード速度改善方法。
【請求項１２】
コンピュータによって実現される電子機器のロード速度改善システムであって、
前記コンピュータで読み取り可能な命令を実行するように実現される少なくとも１つのプロセッサ
を含み、
前記少なくとも１つのプロセッサは、
アプリケーションのための中間言語ファイルがロードされる時点に生成される最適化ファイルを変更して格納する最適化ファイル管理部、
前記中間言語ファイルの変更の可否を確認するための情報を生成および格納する変更確認情報管理部、
前記中間言語ファイルが再びロードされる場合、前記格納された情報を利用して前記中間言語ファイルの変更の可否を確認する変更確認部、および
前記中間言語ファイルの変更の可否にしたがい、前記変更された最適化ファイルを削除して新たな最適化ファイルを生成するか、または前記変更された最適化ファイルを本来の最適化ファイルに修復して再使用する最適化ファイル再使用制御部
を含むことを特徴とする、ロード速度改善システム。
【請求項１３】
前記最適化ファイル管理部は、
前記最適化ファイルの名前および経路のうちの少なくとも１つを格納し、前記最適化ファイルの名前および経路のうちの少なくとも１つの情報を変更して前記最適化ファイルを変更し、
前記最適化ファイル再使用制御部は、
前記格納された名前および経路のうちの少なくとも１つを通じて前記変更された少なくとも１つの情報を修復して前記最適化ファイルを修復することを特徴とする、請求項１２に記載のロード速度改善システム。
【請求項１４】
前記最適化ファイル管理部は、
前記最適化ファイルを暗号化して前記最適化ファイルを変更し、
前記最適化ファイル再使用制御部は、
前記暗号化された最適化ファイルを復号化して前記最適化ファイルを修復することを特徴とする、請求項１２に記載のロード速度改善システム。
【請求項１５】
前記変更確認情報管理部は、
前記コンピュータのオペレーティングシステムの変更の可否を確認するための情報および前記アプリケーションの変更の可否を確認するための情報のうちの少なくとも１つの情報をさらに生成して格納し、
前記変更確認部は、
前記格納された少なくとも１つの情報をさらに利用して前記オペレーティングシステムの変更の可否または前記アプリケーションの変更の可否をさらに確認することを特徴とする、請求項１２に記載のロード速度改善システム。
【請求項１６】
前記最適化ファイル再使用制御部は、
前記中間言語ファイル、前記オペレーティングシステム、および前記アプリケーションのうちの少なくとも１つが変更された場合、前記変更された最適化ファイルを削除して新たな最適化ファイルを生成することを特徴とする、請求項１５に記載のロード速度改善システム。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の説明は、中間言語ファイルのロード速度改善のためl0の方法およびシステムに関する。
【背景技術】
【０００２】
中間言語（Ｉｎｔｅｒｍｅｄｉａｔｅ  ＬａｎｇｕａｇｅまたはＩｎｔｅｒＬａｎｇｕａｇｅ：ＩＬ）とは、原始言語プログラムをコンパイラによって翻訳して目的言語プログラムを生成するとき、その中間段階として経るようになる言語を意味する。例えば、高水準言語プログラムをアセンブリ言語に変えた後、それをアセンブルして機械語プログラムを生成すれば、中間のアセンブリ言語が中間言語となる。
【０００３】
韓国公開特許第１０−２００７−００６７９５３は、モバイルプラットフォームの中間言語変換装置およびその方法に関し、ＣまたはＣ＋＋言語で開発されたモバイルプラットフォームソースコードを移動通信端末機のインタプリタで要求する中間言語コードに変換するＣ／Ｃ＋＋コンパイラと、中間言語コードを移動通信端末機のインタプリタで実行されるフォーマットに変換する中間言語アセンブラについて開示している。
【０００４】
このような中間言語への変換を経るアプリケーションのコードは、その特性上、逆コンパイル（ｄｅｃｏｍｐｉｌｅ）に弱い。例えば、ジャバ（Ｊａｖａ）のようなプログラミング言語で製作されたアプリケーションのコードは、中間言語への変換を経るという特性上、逆コンパイルに弱いため、重要なコードが簡単に露出されてしまう上に、コード操作にも極めて弱い。より具体的な例として、ジャバで作成されたコードは、一般的にクラスごとに拡張子「．ｃｌａｓｓ」ファイルにコンパイルされ、アンドロイド（Ａｎｄｒｏｉｄ）では、ジャバで作成されたコードが、「ｃｌａｓｓｅｓ．ｄｅｘ」のようにヘッダとデータで構成されたデックス（ｄｅｘ）ファイル（ジャバコードがコンパイルされた中間言語コードとしてのバイナリ（ｂｉｎａｒｙ）コードであるバイトコード（ｂｙｔｅｃｏｄｅ））にコンパイルされる。バイトコードは、ジャバプログラムのコンパイルされた形態であって、ジャバプログラムがバイトコードに変換されれば、ネットワークを介して送信されることができ、仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ：ＶＭ）によって実行されることができる。
【０００５】
例えば、中間言語コードの形態にコンパイルされたファイルがサーバから電子機器に提供されることができ、電子機器は、支援する仮想マシンを利用して中間言語コードの形態にコンパイルされたファイルを実行することができる。これにより、電子機器では、中間言語の特性に基づいて中間言語コードの形態にコンパイルされたファイルを逆コンパイルして本来のコードを取得して修正し、修正されたコードを中間言語コードの形態に再びコンパイルすることが可能であるため、アプリケーションを偽・変造できるようになるという問題が存在する。
【０００６】
このような問題を解決するために、従来技術では、デックスファイルのような中間言語ファイルを保護しようと、中間言語ファイルに対する難読化や暗号化などの技法を適用している。
【０００７】
一方、仮想マシンは、その種類にしたがい、中間言語ファイルに対する最適化ファイルを生成し、最適化ファイルをロードして処理する形態を採っている。例えば、アンドロイドのアート（ＡＲＴ）モードの仮想マシンは、アプリケーションがインストールされるときに、アプリケーションに含まれる中間言語をすべて翻訳して予め最適化ファイル（ｏｄｅｘファイルまたはｏａｔファイル）を生成し、最適化ファイルを利用してアプリケーションを実行する。
【０００８】
しかし、上述したアプリケーションの偽・変造問題により、アプリケーションを実行するシステムは、生成された最適化ファイルを継続して利用することができないという問題がある。例えば、システムは、コード保護などの理由から最適化ファイルを削除し、アプリケーションの実行時ごとに中間言語ファイルに対する難読化や暗号化を復号化し、アプリケーションの実行時ごとに新たな最適化ファイルを生成しなければならない。この場合、最適化ファイルの生成およびロードによって多くの時間を要するようになるという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
中間言語ファイル（一例として、アンドロイド（Ａｎｄｒｏｉｄ）のデックス（ｄｅｘ）ファイル）に対する最適化ファイルを保護すると同時に再使用を可能にすることにより、中間言語ファイルに対するロード速度を改善することができる方法およびシステムを提供する。
【課題を解決するための手段】
【００１０】
コンピュータによって実現される電子機器と結合されてロード速度改善方法を実行させるために記録媒体に格納されたコンピュータプログラムであって、前記ロード速度改善方法は、アプリケーションのための中間言語ファイルがロードされる時点に生成される最適化ファイルを変更して格納する段階、前記中間言語ファイルの変更の可否を確認するための情報を生成および格納する段階、前記中間言語ファイルが再びロードされる場合、前記格納された情報を利用して前記中間言語ファイルの変更の可否を確認する段階、および前記中間言語ファイルの変更の可否にしたがい、前記変更された最適化ファイルを削除して新たな最適化ファイルを生成するか、または前記変更された最適化ファイルを本来の最適化ファイルに修復して再使用する段階を含むことを特徴とする、コンピュータプログラムを提供する。
【００１１】
コンピュータによって実行されるロード速度改善方法であって、アプリケーションのための中間言語ファイルがロードされる時点に生成される最適化ファイルを変更して格納する段階、前記中間言語ファイルの変更の可否を確認するための情報を生成および格納する段階、前記中間言語ファイルが再びロードされる場合、前記格納された情報を利用して前記中間言語ファイルの変更の可否を確認する段階、および前記中間言語ファイルの変更の可否にしたがい、前記変更された最適化ファイルを削除して新たな最適化ファイルを生成するか、または前記変更された最適化ファイルを本来の最適化ファイルに修復して再使用する段階を含むことを特徴とする、ロード速度改善方法を提供する。
【００１２】
コンピュータによって実現される電子機器のロード速度改善システムであって、前記コンピュータで読み取り可能な命令を実行するように実現される少なくとも１つのプロセッサを含み、前記少なくとも１つのプロセッサは、アプリケーションのための中間言語ファイルがロードされる時点に生成される最適化ファイルを変更して格納する最適化ファイル管理部、前記中間言語ファイルの変更の可否を確認するための情報を生成および格納する変更確認情報管理部、前記中間言語ファイルが再びロードされる場合、前記格納された情報を利用して前記中間言語ファイルの変更の可否を確認する変更確認部、および前記中間言語ファイルの変更の可否にしたがい、前記変更された最適化ファイルを削除して新たな最適化ファイルを生成するか、または前記変更された最適化ファイルを本来の最適化ファイルに修復して再使用する最適化ファイル再使用制御部を含むことを特徴とする、ロード速度改善システムを提供する。
【発明の効果】
【００１３】
中間言語ファイルに対する最適化ファイルを保護すると同時に再使用を可能にすることにより、中間言語ファイルに対するロード速度を改善することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【図２】本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
【図３】本発明の一実施形態における、電子機器のプロセッサが含むことのできる構成要素の例を示したブロック図である。
【図４】本発明の一実施形態における、電子機器が実行することのできる方法の例を示したフローチャートである。
【図５】本発明の一実施形態における、最適化ファイルの変更する例を示した図である。
【図６】本発明の一実施形態における、デックスファイルが変更されない場合に、変更された最適化ファイルを修復する例を示した図である。
【図７】本発明の一実施形態における、デックスファイルの変更にしたがって新たな最適化ファイルを生成する例を示した図である。
【発明を実施するための形態】
【００１５】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【００１６】
図１は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図１のネットワーク環境は、複数の電子機器１１０、１２０、１３０、１４０、複数のサーバ１５０、１６０、およびネットワーク１７０を含む例を示している。このような図１は、発明を説明するための一例に過ぎず、電子機器の数やサーバの数が図１のように限定されることはない。
【００１７】
複数の電子機器１１０、１２０、１３０、１４０は、コンピュータ装置によって実現される固定型端末や移動型端末であってもよい。複数の電子機器１１０、１２０、１３０、１４０の例としては、スマートフォン（ｓｍａｒｔ  ｐｈｏｎｅ）、携帯電話、ナビゲーション、コンピュータ、ノート型パンコン、デジタル放送用端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、タブレットＰＣなどがある。一例として、電子機器１（１１０）は、無線または有線通信方式を利用し、ネットワーク１７０を介して他の電子機器１２０、１３０、１４０および／またはサーバ１５０、１６０と通信してもよい。
【００１８】
通信方式が制限されることはなく、ネットワーク１７０が含むことのできる通信網（一例として、移動通信網、有線インターネット、無線インターネット、放送網）を活用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク１７０は、ＰＡＮ（ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＣＡＮ（ｃａｍｐｕｓ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＭＡＮ（ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＢＢＮ（ｂｒｏａｄｂａｎｄ  ｎｅｔｗｏｒｋ）、インターネットなどのネットワークのうちの１つ以上の任意のネットワークを含んでもよい。さらに、ネットワーク１７０は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは階層的（ｈｉｅｒａｒｃｈｉｃａｌ）ネットワークなどを含むネットワークトポロジのうちの任意の１つ以上を含んでもよいが、これに制限されることはない。
【００１９】
サーバ１５０、１６０それぞれは、複数の電子機器１１０、１２０、１３０、１４０とネットワーク１７０を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供するコンピュータ装置または複数のコンピュータ装置によって実現されてもよい。
【００２０】
一例として、サーバ１５０は、電子機器２（１２０）からネットワーク１７０を介してアップロードされるアプリケーションのパッケージファイルを登録し、登録されたパッケージファイルに保護機能や暗号化機能などのような追加機能のためのコードを追加してパッケージファイルに対する機能（一例として、アプリケーションの追加機能）を確張してもよい。ここで、サーバ１５０は、直接または別のサーバ１６０を通じて電子機器１（１１０）に機能が拡張されたパッケージファイルを提供してもよい。電子機器１（１１０）は、アプリケーションのパッケージファイルを通じてアプリケーションを電子機器１（１１０）にインストールおよび駆動してもよく、アプリケーションを通じて予め設定されたサービス（一例として、ゲームサービス、チャットサービス、ＳＮＳ（Ｓｏｃｉａｌ  Ｎｅｔｗｏｒｋ  Ｓｅｒｖｉｃｅ）サービスなど）の提供を受けてもよい。
【００２１】
図２は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。図２では、１つの電子機器に対する例として電子機器１（１１０）、そして１つのサーバに対する例としてサーバ１５０の内部構成について説明する。他の電子機器１２０、１３０、１４０やサーバ１６０も、同一または類似の内部構成を備えてもよい。
【００２２】
電子機器１（１１０）とサーバ１５０は、メモリ２１１、２２１、プロセッサ２１２、２２２、通信モジュール２１３、２２３、および入力／出力インタフェース２１４、２２４を含んでもよい。メモリ２１１、２２１は、コンピュータで読み取り可能な記録媒体であって、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、およびディスクドライブのような永久大容量記憶装置（ｐｅｒｍａｎｅｎｔ  ｍａｓｓ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅ）を含んでよい。また、メモリ２１１、２２１には、オペレーティングシステムと、少なくとも１つのプログラムコード（一例として、電気機器１（１１０）にインストールされ駆動するブラウザや映像通話のためのアプリケーションなどのためのコード）が格納されてよい。このようなソフトウェア構成要素は、ドライブメカニズム（ｄｒｉｖｅ  ｍｅｃｈａｎｉｓｍ）を利用してメモリ２１１、２２１とは別のコンピュータで読み取り可能な記録媒体からロードされてもよい。このような別のコンピュータで読み取り可能な記録媒体は、フロッピードライブ、ディスク、テープ、ＤＶＤ／ＣＤ−ＲＯＭドライブ、メモリカードなどのコンピュータで読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータで読み取り可能な記録媒体ではない通信モジュール２１３、２２３を利用してメモリ２１１、２２１にロードされてもよい。例えば、少なくとも１つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム（一例として、上述したサーバ１６０）がネットワーク１７０を介して提供するファイルによってインストールされるプログラム（一例として、上述したアプリケーション）に基づいてメモリ２１１、２２１にロードされてもよい。
【００２３】
プロセッサ２１２、２２２は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ２１１、２２１または通信モジュール２１３、２２３によって、プロセッサ２１２、２２２に提供されてよい。例えば、プロセッサ２１２、２２２は、メモリ２１１、２２１のような記録装置に格納されたプログラムコードにしたがって受信される命令を実行するように構成されてもよい。
【００２４】
通信モジュール２１３、２２３は、ネットワーク１７０を介して電子機器１（１１０）とサーバ１５０とが互いに通信するための機能を提供してもよいし、他の電子機器（一例として、電子機器２（１２０））または他のサーバ（一例として、サーバ１６０）と通信するための機能を提供してもよい。一例として、電子機器１（１１０）のプロセッサ２１２がメモリ２１１のような記録装置に格納されたプログラムコードにしたがって生成した要請（一例として、映像通話サービスのための要請）が、通信モジュール２１３の制御にしたがってネットワーク１７０を介してサーバ１５０に伝達されてもよい。これとは逆に、サーバ１５０のプロセッサ２２２の制御にしたがって提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール２２３とネットワーク１７０を経て電子機器１（１１０）の通信モジュール２１３を通じて電子機器１（１１０）に受信されてもよい。例えば、通信モジュール２１３を通じて受信されたサーバ１５０の制御信号や命令などは、プロセッサ２１２やメモリ２１１に伝達されてもよく、コンテンツやファイルなどは、電子機器１（１１０）がさらに含むことのできる格納媒体に格納されてもよい。
【００２５】
入力／出力インタフェース２１４、２２４は、入力／出力装置２１５とのインタフェースのための手段であってもよい。例えば、入力装置は、キーボードまたはマウスなどの装置を、また出力装置は、アプリケーションの通信セッションを表示するためのディスプレイのような装置を含んでもよい。他の例として、入力／出力インタフェース２１４は、タッチスクリーンのように入力と出力のための機能が１つに統合された装置とのインタフェースのための手段であってもよい。より具体的な例として、電子機器１（１１０）のプロセッサ２１２は、メモリ２１１にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ１５０や電子機器２（１２０）が提供するデータを利用して構成されるサービス画面やコンテンツが入力／出力インタフェース２１４を通じてディスプレイに表示されてもよい。
【００２６】
また、他の実施形態において、電子機器１（１１０）およびサーバ１５０は、図２の構成要素よりもさらに多くの構成要素を含んでもよい。しかし、大部分の従来技術構成要素を明確に図に示す必要はない。例えば、電子機器１（１１０）は、上述した入力／出力装置２１５のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ（ｔｒａｎｓｃｅｉｖｅｒ）、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器１（１１０）がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラ、各種物理的なボタン、タッチパネルを利用したボタン、入力／出力ポート、振動のための振動器などの多様な構成要素が電子機器１（１１０）にさらに含まれるように実現されてもよいことが分かる。
【００２７】
本発明の実施形態に係るロード速度改善システムは、アプリケーションが実行される装置に実現されてもよい。言い換えれば、本発明の実施形態に係るロード速度改善方法は、アプリケーションがインストールおよび駆動されるすべての装置で実行されてもよい。以下では、説明の便宜のために、電子機器１（１１０）にアプリケーションのインストールおよび駆動のためのパッケージファイルが格納され、電子機器１（１１０）に実現されるロード速度改善システムを通じてロード速度改善方法が実行される実施形態について説明する。
【００２８】
図３は、本発明の一実施形態における、電子機器のプロセッサが含むことのできる構成要素の例を示したブロック図であり、図４は、本発明の一実施形態における、電子機器が実行することのできる方法の例を示したフローチャートである。
【００２９】
電子機器１（１１０）は、ロード速度改善システムを実現してもよく、図３に示すように、電子機器１（１１０）に含まれたプロセッサ２１２は、構成要素として、ロード制御部３１０、最適化ファイル管理部３２０、変更確認情報管理部３３０、変更確認部３４０、および最適化ファイル再使用制御部３５０を含んでもよい。このようなプロセッサ２１２およびプロセッサ２１２の構成要素は、図４のロード速度改善方法が含む段階４１０〜４５０を実行するように電子機器１（１１０）を制御してもよい。ここで、プロセッサ２１２およびプロセッサ２１２の構成要素は、メモリ２１１が含むオペレーティングシステムのコードと少なくとも１つのプログラムのコードによる命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行するように実現されてもよい。ここで、プロセッサ２１２の構成要素は、電子機器１（１１０）に格納されたプログラムコードが提供する制御命令にしたがってプロセッサ２１２によって実行され互いに異なる機能（ｄｉｆｆｅｒｅｎｔ  ｆｕｎｃｔｉｏｎｓ）の表現であってもよい。例えば、プロセッサ２１２が上述した制御命令にしたがってロード速度改善方法のためのプログラムのファイルに格納されたプログラムコードをメモリ２２１にロードするように動作する機能的表現として、ロード制御部３１０が使用されてもよい。
【００３０】
段階４１０で、ロード制御部３１０は、ロード速度改善方法のためのプログラムのファイルに格納されたプログラムコードをメモリ２１１にロードしてもよい。例えば、電子機器１（１１０）でプログラムが実行されれば、ロード制御部３１０は、オペレーティングシステムの制御にしたがってプログラムのファイルからプログラムコードをメモリ２１１にロードするようにサーバ１５０を制御してもよい。
【００３１】
ここで、メモリ２１１にロードされるプログラムコードは、アプリケーションのためのプログラムコードと最適化ファイルを管理するための制御機能を提供してもよい。アプリケーションのための中間言語ファイルも、段階４１０でロードされてもよい。
【００３２】
プロセッサ２１２が含む最適化ファイル管理部３２０、変更確認情報管理部３３０、変更確認部３４０、および最適化ファイル再使用制御部３５０それぞれは、メモリ２１１にロードされたプログラムコードのうちの対応する部分の命令を実行して以後の段階４２０〜４５０を実行するためのプロセッサ２１２の機能的表現であってもよい。
【００３３】
段階４２０で、最適化ファイル管理部３２０は、アプリケーションのための中間言語ファイルがロードされる時点に生成される最適化ファイルを変更して格納してもよい。上述したように、中間言語ファイルがロードされる場合、中間言語ファイルを翻訳した最適化ファイルが生成されて活用されてもよい。ここで、最適化ファイル管理部３２０は、生成された最適化ファイルを変更して格納してもよい。最適化ファイルの変更は、最適化ファイルの名前や経路を変更するか、または最適化ファイルを暗号化するなどのように、再び本来の最適化ファイルを取得することのできるすべての方法のうちの少なくとも１つを対象としてもよい。
【００３４】
例えば、最適化ファイル管理部３２０は、生成された最適化ファイルの名前および経路のうちの少なくとも１つを格納し、最適化ファイルの名前および経路のうちの少なくとも１つを変更して最適化ファイルを変更してもよい。以後、格納された名前および経路のうちの少なくとも１つは、以後に変更された最適化ファイルの修復に活用されてもよい。
【００３５】
他の例として、最適化ファイル管理部３２０は、生成された最適化ファイルを暗号化して最適化ファイルを変更してもよい。以後、暗号化された最適化ファイルは、復号化によって復元されてもよい。暗号化方法も、再び本来の最適化ファイルを修復することができるすべての方法のうちの１つが活用されてもよい。一例として、暗号化に使用されるキーを固定的に使用してもよいし、個別暗号化および復号化のインストンスごとに新たなキーを利用して暗号化および復号化を処理してもよい。キーは、対称キーや非対称キーなどのように、その種類とは関係なく、必要に応じて選択された種類のキーが活用されてもよい。
【００３６】
段階４３０で、変更確認情報管理部３３０は、中間言語ファイルの変更の可否を確認するための情報を生成および確認してもよい。一例として、中間言語ファイルに対する巡回冗長検査（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）によって生成されるエラー検出コードが、中間言語ファイルの変更の可否を確認するための情報として生成されてもよい。中間言語ファイルの変更の可否を確認することができる方法であれば、制限なく活用されてもよい。
【００３７】
また、必要によって選択的に、オペレーティングシステム（電子機器１（１１０）のオペレーティングシステム）の変更の可否やアプリケーションの変更の可否を確認するための情報がさらに生成および格納されてもよい。
【００３８】
段階４４０で、変更確認部３４０は、中間言語ファイルが再びロードされる場合、格納された情報を利用して中間言語ファイルの変更の可否を確認してもよい。上述した巡回冗長検査の例において、変更確認部３４０は、再びロードされた中間言語ファイルに対して生成されるエラー検出コードと格納されたエラー検出コードとの比較により、中間言語ファイルの変更の可否を確認してもよい。
【００３９】
また、変更確認部３４０は、段階４４０で、オペレーティングシステムの変更の可否やアプリケーションの変更の可否をさらに確認してもよい。この場合、段階４３０でさらに格納されることのできる情報（オペレーティングシステムの変更の可否やアプリケーションの変更の可否を確認するための情報）が、オペレーティングシステムの変更の可否やアプリケーションの変更の可否を確認するために活用されてもよい。
【００４０】
段階４５０で、最適化ファイル再使用制御部３５０は、中間言語ファイルの変更の可否にしたがい、変更された最適化ファイルを削除して新たな最適化ファイルを生成するか、または変更された最適化ファイルを本来の最適化ファイルに修復して再使用してもよい。例えば、最適化ファイル再使用制御部３５０は、中間言語ファイルが変更されない間には、変更された最適化ファイルを修復して再使用してもよい。したがって、最適化ファイルに対する重複生成を最小化することができ、ロード速度を改善することができる。
【００４１】
中間言語ファイルが変更される場合（一例として、アプリケーションのパッチ）には、以前に生成された最適化ファイルをそのまま使用することができないため、変更されて格納された最適化ファイルは削除し、再びロードされた中間言語ファイルを通じて新たな最適化ファイルを生成して使用してもよい。ここで、再び生成された新たな最適化ファイルに対して段階４２０〜段階４５０が繰り返し実行されることにより、新たな最適化ファイルも以後の中間言語ファイルのロード時に再使用されることができる。
【００４２】
また、最適化ファイル再使用制御部３５０は、オペレーティングシステムやアプリケーションが変更される場合にも、変更されて格納された最適化ファイルを削除して新たな最適化ファイルを生成してもよい。言い換えれば、最適化ファイル再使用制御部３５０は、中間言語ファイル、オペレーティングシステム、およびアプリケーションのうちの少なくとも１つが変更された場合、変更された最適化ファイルを削除して新たな最適化ファイルを生成してもよい。この場合、最適化ファイル再使用制御部３５０は、中間言語ファイル、オペレーティングシステム、およびアプリケーションが変更されない間は、変更された最適化ファイルを修復して再使用することができるため、最適化ファイルに対する重複生成を最小化することができ、ロード速度を改善することができる。
【００４３】
図５は、本発明の一実施形態における、最適化ファイルの変更する例を示した図である。電子機器１（１１０）でアプリケーションがインストールされるか、または駆動される場合、アプリケーションのアンドロイド応用プログラムパッケージ（Ａｎｄｒｏｉｄ  ａｐｐｌｉｃａｔｉｏｎ  ｐａｃｋａｇｅ：ＡＰＫ）ファイルが含むデックスファイル５１０がローダ５２０によってロードされてもよく、デックスファイル５１０に対する最適化ファイル５３０が生成されてもよい。
【００４４】
ここで、電子機器１（１１０）に実現されたロード速度改善システム５４０は、生成された最適化ファイルを変更して格納してもよい。図５では、ロード速度改善システム５４０が最適化ファイル５３０を暗号化して変更し、暗号化された最適化ファイル５５０を格納する例を示している。
【００４５】
この場合、ロード速度改善システム５４０は、変更確認情報５６０を生成して格納してもよい。変更確認情報５６０は、少なくともデックスファイル５１０の変更の可否を確認することのできる情報を含んでもよく、選択的に、アンドロイドオペレーティングシステムの変更の可否を確認するための情報、および／またはアプリケーションの変更の可否を確認するための情報をさらに含んでもよい。
【００４６】
図６は、本発明の一実施形態における、デックスファイルが変更されない場合に変更された最適化ファイルを修復する例を示した図である。図６は、変更されないデックスファイル５１０がローダ５２０を通じて再びロードされる場合を示している。ロード速度改善システム５４０は、再びロードされるデックスファイル５１０の変更確認情報を生成し、格納された変更確認情報５６０と比較することにより、デックスファイル５１０の変更の可否を確認してもよい。図６の例では、デックスファイル５１０が変更されなかったため、ロード速度改善システム５４０は、暗号化された最適化ファイル５５０を復号化して本来の最適化ファイル（図５の最適化ファイル５３０）を修復し、復元された最適化ファイルを再使用することができる。
【００４７】
図７は、本発明の一実施形態における、デックスファイルの変更にしたがって新たな最適化ファイルを生成する例を示した図である。図７は、変更されたデックスファイル７１０がローダ５２０を通じてロードされる場合を示している。ロード速度改善システム５４０は、ロードされる変更されたデックスファイル７１０の変更確認情報を生成し、格納された変更確認情報５６０と比較することにより、デックスファイル５１０の変更の可否を確認してもよい。図７の例では、変更されたデックスファイル７１０がロードされたため、ロード速度改善システム５４０は、暗号化された最適化ファイル５５０を削除し、新たな最適化ファイル７２０を生成することができる。
【００４８】
以後、新たな最適化ファイル７２０も変更（暗号化）されて格納されてもよく、変更されたデックスファイル７１０に対する変更確認情報も新たに格納されてもよい。
【００４９】
このように、本発明の実施形態によると、中間言語ファイルに対する最適化ファイルを保護すると同時に再使用を可能にすることにより、中間言語ファイルに対するロード速度を改善することができる。
【００５０】
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてもよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）、マイクロコンピュータ、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、１つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてもよい。処理装置は、オペレーティングシステム（ＯＳ）および前記ＯＳ上で実行される１つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。理解の便宜のために、１つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素（ｐｒｏｃｅｓｓｉｎｇ  ｅｌｅｍｅｎｔ）および／または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは１つのプロセッサおよび１つのコントローラを含んでもよい。また、並列プロセッサ（ｐａｒａｌｌｅｌ  ｐｒｏｃｅｓｓｏｒ）のような、他の処理構成（ｐｒｏｃｅｓｓｉｎｇ  ｃｏｎｆｉｇｕｒａｔｉｏｎ）も可能である。
【００５１】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの１つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に（ｃｏｌｌｅｃｔｉｖｅｌｙ）処理装置に命令したりしてよい。ソフトウェアおよび／またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供するために、いかなる種類の機械、コンポーネント、物理装置、仮想装置（ｖｉｒｔｕａｌ  ｅｑｕｉｐｍｅｎｔ）、コンピュータ格納媒体または装置、または送信される信号波（ｓｉｇｎａｌ  ｗａｖｅ）に永久的または一時的に具現化（ｅｍｂｏｄｙ）されてもよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された方法によって格納されても実行されてもよい。ソフトウェアおよびデータは、１つ以上のコンピュータで読み取り可能な記録媒体に格納されてもよい。
【００５２】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータで読み取り可能な媒体に記録されてもよい。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでもよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであってもよいし、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピディスク、および磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光媒体、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような光磁気媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。上述したハードウェア装置は、実施形態の動作を実行するために１つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同じである。
【００５３】
以上のように、実施形態を限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能である。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、および／あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【００５４】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【００５５】
１１０、１２０、１３０、１４０：電子機器
１５０、１６０：サーバ
１７０：ネットワーク
【図１】
2017146967.tif 000003
【図２】
2017146967.tif 000004
【図３】
2017146967.tif 000005
【図４】
2017146967.tif 000006
【図５】
2017146967.tif 000007
【図６】
2017146967.tif 000008
【図７】
2017146967.tif 000009