平常都是用java写activity之类的东西,都看不到程序的入口main,android 系统是dalvik虚拟机,只是把java class 合成了一个文件,把字节码转成了dalvik运行的东西,所以dalvik可以运行没有四个组件的代码吧,今天 试了一个 可以
下面来说下:
1.先来个java main
package com.aspire.test.dex;
import android.os.Build;
import android.os.Process;
import android.util.Log;
public class Main {
private static final String TAG = "Main";
/**
* @param args
*/
public static void main(String[] args) {
do {
Log.d(TAG, "start main");
final String version = Build.VERSION.SDK;
Log.d(TAG, "the product sdk version:" + version);
Log.d(TAG, "time:" + System.currentTimeMillis());
Log.d(TAG, "pid:" + Process.myPid());
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
} while (true);
}
}
建立的是java工程哦 ,把sdk下的android.jar 引入进来
2.编译java到class
在eclipse bin 下面有编译好的class
3.把class 转成dex
用cmd 切换到bin目录下
工具是$sdk\platform-tools\dx.bat
这里输入命令de --dex --output={输出dex到哪个文件} class 所在编译的目录 这是bin。
转化完成就有一个classes.dex文件
把dex文件像jar一样打包
4.写linux shell 脚本
export LD_LIBRARY_PATH=/data/local/tmp/:$LD_LIBRARY_PATH
export CLASSPATH=/data/local/tmp/testdex.jar
exec app_process . com.aspire.test.dex.Main
5.把 testdex.jar 脚本文件push 到手机的/data/local/tmp目录里
最后执行 ./脚本名 没错误 就运行成功了
下面资源我用ant build的