java怎么运行_怎样启动JAVA?「建议收藏」

java怎么运行_怎样启动JAVA?「建议收藏」展开全部在Android中启动Java程序其实有很多种方式,现总结如下一、在Android应用程序中e69da5e887aa62616964757a686964616f31333363373732发送Intent启动Android应用程序这个方式最简单,最常用。在此不在累述。关于Intent的更多内容请阅读《Intent技术简介》二、在shell控制台通过am命令发送Intent来启动Androi…

大家好,又见面了,我是你们的朋友全栈君。

展开全部

在Android中启动Java程序其实有很多种方式,现总结如下

一、在Android应用程序中e69da5e887aa62616964757a686964616f31333363373732发送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脚本文件如下:

fff5f136f39d185592b6f07d15d6b005.png

pm脚本文件如下:

e80a4711529c947be74ece0403fa8fa8.png

CLASSPATH指定了程序的位置,com.android.commands.pm.Pm则说明了程序的入口为com.android.commands.pm.Pm,即入口函数main()所在的类,”$@”就是传递给main()函数的参数,只是这里”$@”本身又是个shell传入的参数而已

总结:需要注意的是CLASSPATH中的文件必须是dalvik文件格式的,关于此的转换请参考《基本Dalvik VM调用》当然CLASSPATH中的文件可以是apk文件,只是apk中至少应该有个拥有main()入口函数的类。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156490.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java数组插入或删除元素

    Java数组插入或删除元素Java数组常见操作练习Java数组插入或删除元素**练习1.随机生成一个整数型数组(1-10数组长度随机,0-50数组元素随机)在其数组的最后追加一个1-50随机数值**publicclassArrayInsert1{publicstaticvoidmain(String[]args){int[]arr=genArray();…

    2022年7月16日
    8
  • ffmpeg处理字幕「建议收藏」

    ffmpeg处理字幕「建议收藏」ffmpeg处理字幕ffmpeg加载font以ass为例,第一次用ffmpeg将ass字幕加到视频里面的时候报下面的错误:Fontconfigerror:Cannotloaddefaultconfigfile[Parsed_ass_0@00000000042c33c0]Nousablefontconfigconfigurationfil…

    2022年10月30日
    0
  • HDU 4125 Moles 段树+KMP

    HDU 4125 Moles 段树+KMP

    2022年1月8日
    43
  • 【嵌入式】C语言中volatile关键字

    【嵌入式】C语言中volatile关键字00.目录文章目录00.目录01.volatile概述02.volatile应用场景03.volatile应用示例04.嵌入式系统中应用05.volatile官方说明volatile06.附录01.volatile概述volatile是C语言中的一个关键字。将变量定义为volatile就表示告诉编译器这个变量可能会被竟想不到地改变,在这种情况下,编译器就不会去假设这个变量的值了,及优化器在用到这个变量是必须每次重新读取他的值。02.volatile应用场景在程序中,volati

    2022年7月27日
    5
  • 矩阵的意义_行满秩矩阵的广义逆

    矩阵的意义_行满秩矩阵的广义逆文章目录一、代码二、拓展三、总结一、代码在LaTeX中表示广义逆、伪逆:A^{\dagger},\AA^{\dagger}=(AA^{\dagger})^H效果如下:A†, AA†=(AA†)HA^{\dagger},\AA^{\dagger}=(AA^{\dagger})^HA†, AA†=(AA†)H特殊的还有其他符号见下表。二、拓展部分数学符号如下:A^\dagger,A^\ddagger,A^{\|},A^{**},A^{\dagge

    2025年6月1日
    0
  • 廖雪峰的 Python 教程_python基础教程廖雪pdf

    廖雪峰的 Python 教程_python基础教程廖雪pdfimportmath#一元二次方程defquadratic(a,b,c): n=b/a/2 m=abs(n*n-c/a) x1=math.sqrt(m)-n x2=-math.sqrt(m)-n returnx1,x2#一个或多个数的乘积defproduct(f,*args): result=f; forxinargs: resu…

    2022年10月30日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号