将java生成dex并通过app_process执行的教程
需要用到d8工具,所以需要提前配置好d8的环境变量,我的是windows环境,于是需要将d8路径配置到path里面,如图:
新打开命令行(一定要新打开命令行,tab标签新开命令行都不行),输入命令以下命令验证是否配置成功:
d8 --version
接下来,我通过android studio在一个空白的项目里面,new module
新建了一个Hello.java
package com.example.case1;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello from hello dex!");
}
}
命令行生成
//生成class
javac -d out\ src\main\java\com\example\case1\Hello.java
//生成dex文件
d8 out\com\example\case1\Hello.class --output out/
//将生成的dex推送到/data/local/tmp目录(需要有安卓设备)
adb push out\classes.dex /data/local/tmp/case1.dex
//修改权限为755
adb shell chmod 755 /data/local/tmp/case1.dex
adb shell //进入设备终端
cd /data/local/tmp //进去设备路径
//执行app_process
app_process -Djava.class.path=/data/local/tmp/case1.dex /data/local/tmp com.example.case1.Hello
//发现有打印日志
Hello from hello dex!