Android系統執行Java jar程序 -- dalvik運行dex Java工程

本文僅針對純java工程執行進行詮釋,通常在PC平臺做爲jar包形式存在,在Android平臺則以dex包形式存在。java

Java屬於高級程序語言,Java程序須要運行在特定的虛擬機中,虛擬機將Java字節碼轉換成對應的機器指令進行執行。不一樣平臺具備不一樣的虛擬機對應各自的機器指令。PC端通常使用JVM虛擬機,Android端使用dalvik虛擬機。android

須要配置環境:
  1. Java JDK開發環境
  2. idea開發工具
  3. Android SDK開發環境
  4. Android build-tools 環境變量(隨意指定一個版本便可)

JVM於dalvik

JVM:Pc平臺java虛擬機,爲java應用執行提供執行環境。
dalvik:Android平臺Java虛擬機,爲java應用提供運行環境,區別於jvm字節碼。jvm

Java程序執行

PC執行
idea配置可執行jar包

一、建立Java工程
二、idea選擇 file->project structure -> Artifacts() -->點擊+ 後選擇JAR -> from module with dependencies
三、配置編譯的module、指定入口類(必須覆寫main方法)
四、修改Directory for META-INF/MAINFEST.MF:去除其中的main (例如:E:\CloudFiles\project\TestJar\testlib\src\META-INF\MANIFEST.MF)ide

打包並執行

一、選擇build -> Build Artifacts -> 彈窗內選擇build 即開始打jar包,jar包輸出路徑爲 \out\artifacts\moduleName 
二、運行jar包時會經過指定的java類執行,執行命令以下:工具

java -jar  E:\test.jar
Android 執行

在Android平臺執行Java程序須要依賴dalvik虛擬機,所以須要將jar包轉換爲對應的字節碼文件,操做步驟以下:
一、生成java jar包 同Pc執行
三、java jar包轉dex包,執行以下命令開發工具

dx --dex --output=test.dex E:\test.jar

四、鏈接Android手機,並將dex執行程序推入Android設備路徑下:ui

adb push E:\test.dex /data/local/tmp/

五、經過dalvik命令執行dex程序,程序經過指定的入口Java類的main方法開始執行idea

//dalvikvm 命令啓動jar包在Android4.4版本下解析dex時失敗
dalvikvm -cp  /data/local/tmp/test.dex com.qihoo.trace.TestMain
相關文章
相關標籤/搜索