突然消失するかもしれないブログ

”とつきえブログ”

Androidのエミュレータだと.odexファイルは実行できない?

知り合いからAndroid端末実機からYouTube.apkとYouTube.odexだけを抜き出してきて、Androiodのエミュレータにコピーするだけで動いたという話を聞いたので試してみました。

ところが、YouTubeのアプリを実行しようとするとエミュレータに再起動がかかってしまいます。

エミュレータの中を覗いてみると、そもそも.odexファイルが一つも含まれていません。

で、この.odexファイルは何なのかというと、日本語圏ではほとんど情報が見あたらないのですが、Android端末の製品を作る際にROM容量を削減するためにapk/jarファイルから.odexファイルを事前に作っておき、その代わりclasses.dexファイルは削除されるようです。

.dexファイルに含まれるDEXデータは圧縮されていないのに対して、.odexファイルに含まれるDEXデータは圧縮されているようです。

通常、/data/dalvik-cacheに.dexファイルがキャッシュされるようですが、例えば、HT-03Aのような製品版の場合は/system/app配下のアプリはすべて.odexファイルがあるので/dataの節約がされているみたいですね。

odex files – android-framework – Google グループ

What you’re looking for is in build/tools/dexpreopt/.  The production builds pre-generate the .odex files from the source apk/jar files, and then remove the "classes.dex" from the source.  This uses a bit more space on /system (because the DEX data isn’t compressed) but saves space on /data (because we don’t need to hold the odex data in /data/
dalvik-cache).
For more details about this, see dalvik/docs/dexopt.html in the GIT source tree.

Dalvik Optimization and Verification

広告

Androidのエミュレータだと.odexファイルは実行できない?」への1件のフィードバック

  1. ピンバック:Androidの.odexを.dexに変換する方法 « 突然消失するかもしれないブログ

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。