Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 初級開發 >> Odex文件的作用以及介紹

Odex文件的作用以及介紹

編輯:初級開發

細心的網友可能發現Android的ROM中有很多odex文件,相對於APK中的dex文件而言這個odex有什麼作用呢? android123提示大家,如果你仔細觀察會發現文件名時一一對應的,同時那些對應的apk文件中沒有dex文件。這樣做可以使其廠商保證一定的反盜版,因為沒有沒有dex文件的apk是無法正常安裝的,而廠商直接將odex和不完整的apk文件放到手機rom固化到/system/bin中可以讓一般用戶無法正常導出使用。

  很多網友可能想到的是合並odex和apk變成apk中包含dex文件的,這樣合並後最終apk文件安裝在/data/中,而rom存放時在/system/bin中,所以最終導致了用戶可裝在android手機中的軟件會變少,占用系統空間。

  一、APK生成odex文件方法:

  編譯開源GIT上的build/tools/dexpreopt/dexopt-wrapper這個,使用dexopt-wrapper即可,操作步驟

  將dexopt-wrapper放到/data/local目錄中,使用adb shell執行Linux命令行,使用cd命令進入/data/local目錄,

  cd /data/local

  ./dexopt-wrapper android123.apk android123.odex

 二、合並odex和 少dex的apk 為完整的apk文件

   1. 下載 http://smali.googlecode.com/files/smali-1.2.2.jar http://smali.googlecode.com/files/baksmali-1.2.2.jar,既然是需要盜版,還需要odex所在rom中的一些引用類,一般在 /system/framework 目錄中

   2 .  通過odex生成class文件

          Java -jar baksmali-1.2.2.jar -x android123.odex

         執行完上面這行命令後,會生成一個out 文件夾裡面是android123.odex的class文件。出現問題,根據提示可以從rom的 /system/framework 中的xxx.jar放到pc上的Java環境變量中一起生成。

  3. 通過class生成classes.dex 文件。

        Java -Xmx512M -jar smali-1.2.2.jar out -o classes.dex

  4. 將classes.dex放到apk文件

        因為apk是zip的mime編碼類型,使用winzip或winrar直接拖入到apk改名為zip的壓縮包中即可。

  5. 不要忘記了簽名,使用jdk中的arsigner和keytool打包重新簽名即可。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved