java启动app_Android上app_process启动java进程

这里不介绍Android启动过程中,app_process从哪个进程fork处理,也不介绍app_process启动App的过程。仅介绍app_process启动纯Java程序的相关知识。

一、HelloWorld示例

编写一个hellworld 的Java程序,并且编译成.class文件,简单得没啥可说的。public class Helloworld {

public static void main(String[]args){

System.out.println("Hello, I am started by app_process!");

}

}

Android对Java虚拟机做了修改,即使用自己的dalvik虚拟机(后来的ART)。因此,.class的字节码在Dalvik虚拟机上是不能运行的。Android Platform tool为我们提供了生成Android上可执行jar(Dex)工具:dx(dx路径参考:Sdk\build-tools\25.0.0\dx.bat)。编译命令如下,当然如果不想用命令行也可以用Android Studio创建编译也行,编译dex路径:app\build\intermediates\transforms\dexBuilder\debug//编译,这里主要是Platform tool上用的是Java 7,所以显式指定1.7

javac -source 1.7 -target 1.7 D:\app_process\\Helloworld.java

//生成dex,当然生成jar在Android上也是可执行的

dx --dex --output=D:\app_process\Helloworld.dex Helloworld.class

2. 将我们前面编译得到的dex(jar)文件push到/data/local/tmp文件夹下adb push D:\app_process\Helloworld.dex /data/local/tmp

adb shell

构建app_process运行参数:app_process -Djava.class.path=/data/local/tmp/Helloworld.dex /data/local/tmp Helloworld

f838f990cec3ee9a3486a552b9dfdfb4.png

这里有个问题,用老的三星NODE 3测试总是提示Aborted,中断失败!华为畅玩9没问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值