回答:共有一下四种方法
方法一、在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
在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其实是需要手动注册的。
首先进入shell
C:\Documents and Settings\mawenjian>adb shell
看一下命令的帮助
# am -help
am -help
Error: Unknown command: -help
usage: am [start|instrument]
am start [-a < ACTION>] [-d < DATA_URI>]
[-t < MIME_TYPE>]
[-c < CATEGORY> [-c < CATEGORY>] ...]
[-e < EXTRA_KEY> < EXTRA_VALUE>
[-e < EXTRA_KEY> < EXTRA_VALUE> ...]
[-n < COMPONENT>] [-D] [< URI>]
am instrument [-e < ARG_NAME> < ARG_VALUE>]
[-p < PROF_FILE>]
[-w] < COMPONENT>
好了,试一下启动浏览器
# am start -n com.google.android.browser/
com.google.android.browser.BrowserActivity
am start -n com.google.android.browser/com.google.
android.browser.BrowserActivity
Starting: Intent { comp={com.google.android.browser/
com.google.android.browser.BrowserActivity} }
ok,成功了
试试下面的命令吧:
# am start -a android.intent.action.VIEW -d
http://mwjian.javaeye.com
am start -a android.intent.action.VIEW -d
http://mwjian.javaeye.com
Starting: Intent { action=android.intent.action.VIEW
data=http://mwjian.javaeye.com }
# am start -a android.intent.action.CALL -d tel:88888888
am start -a android.intent.action.CALL -d tel:88888888
Starting: Intent { action=android.intent.action.CALL
data=tel:88888888 }
# am start -a android.intent.action.ALL_APPS
am start -a android.intent.action.ALL_APPS
Starting: Intent { action=android.intent.action.ALL_APPS }
# am start -a android.intent.action.VIEW geo:0,0?q=shanghai
am start -a android.intent.action.VIEW geo:0,0?q=shanghai
Starting: Intent { action=android.intent.action.VIEW
data=geo:0,0?q=shanghai }