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
相关文章
相关标签/搜索