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
    
    
  • 相关阅读:
    使用正则匹配数字
    钻石和玻璃球游戏(钻石位置不固定)
    简单绘图
    未解决问题02
    Sqlite3 实现学生信息增删改查
    【Python】科赫雪花绘制
    【Python爬虫】抖音去水印
    【MATLAB】数学计算软件 MathWorks MATLAB R2020a 中文破解版
    【C语言】用指针作为形参完成数据的升序排列
    【C语言】数组名作函数参数完成数据的升序排列
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/10488035.html
Copyright © 2011-2022 走看看