android的程序基於java開發,當我們接上調試器,執行adb shell,就可以執行linux命令,但是卻並不能執行java命令。
那麼在android的shell中是否就不能執行java程序了呢。
答案是否定的。我們可以通過app_process來執行java程序。
寫一個hello world吧,就是剛開始學java的時候寫得那個hello world,這次要在android上運行。
用記事本新建hello.java文件,編寫如下代碼:
public static class hello {
public void main(String args[]){
System.out.println("Hello Android");
}
}
javac hello.java
得到hello.class文件執行"java hello" 可以看到輸出結果
那麼如何讓這個最簡單的java程序在android上運行呢。
.class文件可以在普通的jvm上運行,要放到android下還需要轉換成dex,需要用android sdk中的dx工具進行轉換
dx --dex --output=hello.dex hello.class
得到hello.dex,這個hello.dex就可以放到android上執行了。
連接手機,打開usb調試
adb push hello.dex /sdcard/
adb shell 進入android命令行
使用app_process 運行hello.dex
app_process -Djava.class.path=/sdcard/hello.dex/sdcard hello
好了,至此我們成功的在android上運行了普通的java程序。