1. 程式人生 > >如何在Android中啟動JAVA程序

如何在Android中啟動JAVA程序

pan 是你 port 段子 bing text 所在 edi 教程

本人博客原文:http://hubingforever.blog.163.com/blog/static/17104057920126166411775/

在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()入口函數的類。

再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!http://www.captainbed.net

如何在Android中啟動JAVA程序