zoukankan      html  css  js  c++  java
  • Android系统执行Java jar程序 -- dalvik运行dex Java工程

    本文仅针对纯java工程执行进行诠释,一般在PC平台作为jar包形式存在,在Android平台则以dex包形式存在。

    Java属于高级程序语言,Java程序需要运行在特定的虚拟机中,虚拟机将Java字节码转换成对应的机器指令进行执行。不同平台具有不同的虚拟机对应各自的机器指令。PC端一般使用JVM虚拟机,Android端使用dalvik虚拟机。

    需要配置环境:
    1. Java JDK开发环境
    2. idea开发工具
    3. Android SDK开发环境
    4. Android build-tools 环境变量(随意指定一个版本即可)

    JVM于dalvik

    JVM:Pc平台java虚拟机,为java应用执行提供执行环境。
    dalvik:Android平台Java虚拟机,为java应用提供运行环境,区别于jvm字节码。

    Java程序执行

    PC执行
    idea配置可执行jar包

    1、创建Java工程
    2、idea选择 file->project structure -> Artifacts() -->点击+ 后选择JAR -> from module with dependencies
    3、配置编译的module、指定入口类(必须覆写main方法)
    4、修改Directory for META-INF/MAINFEST.MF:去除其中的main (例如:E:CloudFilesprojectTestJar estlibsrcMETA-INFMANIFEST.MF)

    打包并执行

    1、选择build -> Build Artifacts -> 弹窗内选择build 即开始打jar包,jar包输出路径为 outartifactsmoduleName 
    2、运行jar包时会通过指定的java类执行,执行命令如下:

    java -jar  E:	est.jar 
    Android 执行

    在Android平台执行Java程序需要依赖dalvik虚拟机,因此需要将jar包转换为对应的字节码文件,操作步骤如下:
    1、生成java jar包 同Pc执行
    3、java jar包转dex包,执行如下命令

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

    4、连接Android手机,并将dex执行程序推入Android设备路径下:

    adb push E:	est.dex /data/local/tmp/

    5、通过dalvik命令执行dex程序,程序通过指定的入口Java类的main方法开始执行

    dalvikvm -cp  /data/local/tmp/test.dex com.qihoo.trace.TestMain
    
    
  • 相关阅读:
    js 函数柯里化和闭包的使用
    人员轨迹运动效果
    D3绘制柱状图
    D3选择元素和绑定数据
    h5--uni.setNavigationBarColor 动态修改顶部背景颜色
    友链
    canvas 整个透明
    JS将某个数组分割为N个对象一组(如,两两一组,三三一组等)
    小程序正则表达式
    微信小程序--设置和获取剪切板内容
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/10488035.html
Copyright © 2011-2022 走看看