TShopping

 找回密碼
 註冊
搜索
查看: 546|回復: 0

[教學] 如何在Android中啟動JAVA程序

[複製鏈接]
發表於 2013-10-19 17:14:36 | 顯示全部樓層 |閱讀模式
 
Push to Facebook Push to Plurk Push to Twitter 
在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腳本文件如下:


  1. # Script to start "am" on the device, which has a very rudimentary
  2. # shell.
  3. #
  4. base=/system
  5. export CLASSPATH=$base/framework/am.jar
  6. exec app_process $base/bin com.android.commands.am.Am "$@"
複製代碼




pm腳本文件如下:


  1. # Script to start "pm" on the device, which has a very rudimentary
  2. # shell.
  3. #
  4. base=/system
  5. export CLASSPATH=$base/framework/pm.jar
  6. 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()入口函數的類。


 

臉書網友討論
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2016-12-4 13:51 , Processed in 0.057587 second(s), 22 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表