aardio 文档
aardio 范例: 编译 Java 代码为 dex 并在手机上直接运行
//编译 Java 代码为 dex 并在手机上直接运行
import java;
import java.jdk.v8;
import java.jar2Dex;//安卓 dex 格式执行文件转换,必须在调用其他 Java 函数前导入(需要初始化 CLASSPATH )
import process.adb;
import process.adb.connecter;
import console.int;
console.log("正在编译 Java 代码...");
// 1. 准备 Java 源代码 (适合 Android 命令行)
var javaCode = /**
package aardio.adb;
public class HelloAndroid {
public static void main(String[] args) {
// 输出一条明确的消息,表明代码正在 Android 设备上运行
System.out.println("--- Hello from Java running on Android! ---");
// 检查并打印从 aardio 脚本传递过来的参数
if (args.length > 0) {
System.out.println("Received " + args.length + " arguments:");
for (int i = 0; i < args.length; i++) {
System.out.println("Arg[" + i + "]: " + args[i]);
}
} else {
System.out.println("No arguments were provided.");
}
}
}
**/
// 定义 Java 源文件和类名
var javaSourcePath = "\java\aardio\adb\HelloAndroid.java";
string.save(javaSourcePath, javaCode);
// 2. 编译 Java 代码
var prcsCompile = java.compile(javaSourcePath);
var compileOut, compileErr = prcsCompile.readAll();
if( #compileErr ) return console.errorPause("Java 编译失败: ", compileErr);
prcsCompile.close();
// 3. 打包为 JAR 文件
var jarPath = java.jar2("/java","aardio/adb", "/java/HelloAndroid.jar");
if(!jarPath) return console.errorPause("启动 JAR 打包进程失败: ", err);
// 4. 将 JAR 转换为 DEX 文件
var dexPath = java.jar2Dex.get(jarPath,"/HelloAndroid.dex")
if(!dexPath)return console.errorPause("dex2jar 转换失败");
// 5. 将 DEX 文件推送到手机的临时目录
process.adb.pushTemp(dexPath,"/data/local/tmp/HelloAndroid.dex",
function(path){
// 6. 在手机上执行 dex 文件
var androidProcess = process.adb.run(path,"aardio.adb.HelloAndroid", "Hello","Android");
// androidProcess 是一个 process.popen 对象
androidProcess.logResponse();
}
)
console.pause();
Markdown 格式