android的程序基于java開發(fā),當(dāng)我們接上調(diào)試器,執(zhí)行adb shell,就可以執(zhí)行l(wèi)inux命令,但是卻并不能執(zhí)行java命令。
那么在android的shell中是否就不能執(zhí)行java程序了呢。
答案是否定的。我們可以通過(guò)app_process來(lái)執(zhí)行java程序。
寫一個(gè)hello world吧,就是剛開始學(xué)java的時(shí)候?qū)懙媚莻€(gè)hello world,這次要在android上運(yùn)行。
用記事本新建hello.java文件,編寫如下代碼:
public static class hello {
public void main(String args[]){
System.out.println("Hello Android");
}
}
javac hello.java
得到hello.class文件執(zhí)行"java hello"可以看到輸出結(jié)果
那么如何讓這個(gè)最簡(jiǎn)單的java程序在android上運(yùn)行呢。
.class文件可以在普通的jvm上運(yùn)行,要放到android下還需要轉(zhuǎn)換成dex,需要用android sdk中的dx工具進(jìn)行轉(zhuǎn)換
dx --dex --output=hello.dex hello.class
得到hello.dex,這個(gè)hello.dex就可以放到android上執(zhí)行了。
連接手機(jī),打開usb調(diào)試
adb push hello.dex /sdcard/
adb shell進(jìn)入android命令行
使用app_process運(yùn)行hello.dex
app_process -Djava.class.path=/sdcard/hello.dex
/sdcard hello
好了,至此我們成功的在android上運(yùn)行了普通的java程序。另外對(duì)APP進(jìn)行全方位的檢測(cè),我都會(huì)用這個(gè):www.ineice.com。