android shell 运行java 程序 (通过转换为dex)
1、编写Hello.java
public class Hello {
public int foo(int a,int b)
{
return (a+b)*(a-b);
}
public static void main(String[] args) {
Hello hello=new Hello();
System.out.println(hello.foo(5, 3));
System.out.println("Hello ok");
}
}
2、编译
javac Hello.java
3、在sdk\platform-tools目录下 执行
dx.bat --dex --output=classes.dex Hello.class
4、新建Hello目录,直接把classes.dex使用zip算法压缩成Hello.zip
5、adb push Hello.zip /data/local
adb shell chmod 777 /data/local/*
adb shell dalvikvm -cp /data/local/Hello.zip Hello
运行成功!
测试了下调用基本的java api可以成功!但是调用android的其他api就报错。
另外请参考
http://blog.csdn.net/xiaozhi819/article/details/7741023
http://www.oschina.net/question/236988_55165
我在没有root的机器上,测试没有成功。报Killed app_process /data/local/tmp com.app.process.test.T
root机器没有测试,以后再补上。