TShopping
標題:
如何在Android中啟動JAVA程序
[打印本頁]
作者:
woff
時間:
2013-10-19 17:14
標題:
如何在Android中啟動JAVA程序
在Android中啟動JAVA程序其實有很多種方式,現總結如下
一、
在Android應用程序中發送
Intent
啟動Android應用程序
這個方式最簡單,最常用。在此不在累述。關於Intent的更多內容請閱讀《
Intent技術簡介
》
二、
在
shell控制台
通過
am命令
發送Intent來啟動Android應用程序
在Android的shell控制台通過am命令發送Intent來啟動Android應用程序
關於此的詳細內容請參考《
Android命令am詳解
》
三、
在
shell控制台
直接通過
davlikvm命令
啟動一個JAVA程序。
該方式有個天生的缺點,即在其中,很多Android的JNI無法調用。因為Android的很多JNI其實是需要手動註冊的。
關於請參考《
基本Dalvik VM調用》
四、
在
shell
控制台
直接通過運行
app_process
程序啟動一個JAVA程序
在
app_process
程序中,他會對Android的JNI進行手動註冊的,能很好的使用Android的API,因此通過運行
app_process
程序啟動一個JAVA程序,是一個比較完美的方式。
app_process
程序是一個C程序,它的源碼位於frameworks\base\cmds\app_process。
關於它的使用請參考《
Android命令am詳解
》以及shell腳本
frameworks\base\cmds\am\am和frameworks\base\cmds\pm\pm
am腳本文件如下:
# Script to start "am" on the device, which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/am.jar
exec app_process $base/bin com.android.commands.am.Am "$@"
複製代碼
pm腳本文件如下:
# Script to start "pm" on the device, which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/pm.jar
exec app_process $base/bin com.android.commands.pm.Pm "$@"
複製代碼
CLASSPATH
指定了你的程序的位置,
com.android.commands.pm.Pm
則說明了程序的入口為
com.android.commands.pm.Pm
,即
入口函數
main()所在的
類,
"
$@
"
就是傳遞給main()函數的參數,只是這裡
"
$@
"本身又是個shell傳入的參數而已
需要注意的是
CLASSPATH
中的文件必須是dalvik文件格式的,關於此的轉換請參
考《
基本Dalvik VM調用》
當然CLASSPATH中的文件可以是apk文件,只是你的apk中至少應該有個擁有
main()
入口函數的類。
歡迎光臨 TShopping (http://www.tshopping.com.tw/)
Powered by Discuz! X3.2