如何在Android上的root设备上调用像J2SE JVM这样的Java类?

时间:2012-01-04 19:51:00

标签: java android root invoke dalvik

我们为嵌入式产品构建Android平台。基本上你可以把它想象成一个有根的android盒子。

我们拥有为标准J2SE环境开发的Java代码。我将它移植到Android。部分代码包含在Android服务中并在服务中启动。有些部分要求它以超级用户权限运行。就像在/ dev文件夹下打开文件一样,绑定到1024以下的tcp端口。

我想知道我是否可以将此代码包装在J2SE样式的公共Java类中,并直接使用dalvik调用它(例如“dalvik -classpath< paths to jars> mycompany.MyWrapper”)。 我感谢任何描述这种方式的链接。

由于

1 个答案:

答案 0 :(得分:2)

您可以直接从命令行调用dalvik,并使用标准的static main(String [] args)方法执行一个类。

dalvikvm -cp <jar_file> <class_name>

举一个完整的例子,假设您在Hello.java中有以下类定义

public class Hello
{
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

然后,实际在设备上运行它:

javac Hello.java
dx --dex --output=classes.dex Hello.class
zip Hello.zip classes.dex
adb push Hello.zip /sdcard/
adb shell dalvikvm -cp /sdcard/Hello.zip Hello