Android app_process 启动进程

Android app_process 启动进程

Java 程序

  • HelloWorld.java
public class Helloworld {
    public static void main(String[] args) {
    	while (true) {
    		System.out.println("Hello, I am started by app_process!");
    		try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    	}
    }
}
  • 编译

javac HelloWorld.java

  • 生成dex文件 ( 打成 jar 包也可以)

/Android/Sdk/build-tools/30.0.3/dx --dex --output HelloWorld.dex HelloWorld.class

  • 运行
  1. 推到手机
 adb push HelloWorld.dex /data/local/tmp/
 adb shell
  1. 通过 app_process 加载程序
app_process [vm-options] cmd-dir [options] start-class-name [main-options]

vm-options – VM 选项
cmd-dir –父目录 (/system/bin)
options –运行的参数 :
    –zygote
    –start-system-server
    –application (api>=14)
    –nice-name=nice_proc_name (api>=14)
start-class-name –包含main方法的主类  (com.android.commands.am.Am)
main-options –启动时候传递到main方法中的参数
app_process -Djava.class.path=/data/local/tmp/HelloWorld.dex  /data/local/tmp HelloWorld

在这里插入图片描述

  • 程序 fork 流程
    通过 ps 可以查看程序的pid,以及 ppid 查找父进程

init–>/sbin/adbd–>/system/bin/sh–>app_process(Java进程)

app

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
app_process一个Android 系统中运行的进程,它是用来运行 Java 代码的主要组件之一。通过 app_processAndroid 系统可以加载和执行 Java 类,并且允许开发者编写各种类型的 Android 应用程序。 app_process 通常被用于运行 Android 应用的主线程,它负责初始化应用程序的一些重要组件,例如 Activity 和 Service。在应用程序启动时,app_process 会进行一系列的初始化工作,包括创建虚拟机、加载系统类库、注册应用程序的生命周期回调等。 在 app_process 中,Java 代码会被编译成 Dalvik 字节码,然后由 Dalvik 虚拟机进行解释执行。Dalvik 虚拟机是专门为 Android 设计的一种虚拟机,相较于传统的 JVM,它对内存占用和性能有着优化。因此,app_process 运行的 Java 代码相对于在传统的 JVM 上运行的 Java 代码来说,更加适合在资源受限的移动设备上执行。 在 app_process 运行的过程中,它与系统的其他组件和服务进行交互,与底层的 Android 系统进行通信,以实现应用程序所需的各种功能和特性。同时,app_process 也负责管理应用程序的内存和进程的生命周期,以确保应用程序能够正常运行,并且不会对系统的稳定性和性能产生过大的影响。 总之,app_processAndroid 系统中负责运行 Java 代码的关键组件,它扮演了应用程序与系统之间的桥梁角色,确保应用程序能够在 Android 系统上正确运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值