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 格式