小编Mar*_*kus的帖子

Android JNI 原生 C 函数调用杀死活动

什么有效:我有一个运行 TUN/TAP 服务的 ac 可执行文件,以及两个在终端中运行良好的 shell 脚本(用于配置“ip route”和“iptables”),都以 root 身份运行。

什么不起作用:我正在尝试创建一个 Android 应用程序以在按下按钮后运行 c 可执行文件和 shell 脚本。我最初这样做是为了让 onClick 使用 processBuilder 创建一个进程,如下所示:

final Button button1 = ...
...
public void onClick(View v) {
    String ip_address = edIPAddress.getText().toString();
    Process process;
    try {
        process = new ProcessBuilder()
            .command("/system/bin/su", "-c", "/data/tuntapserv/armeabi/mytunserv " + ip_address)
            .redirectErrorStream(true)
            .start();

        InputStream in = process.getInputStream();
        OutputStream out = process.getOutputStream();

        pOutput.append("TUN/TAP IS CONFIGURED!\n");
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();             
    }
}
Run Code Online (Sandbox Code Playgroud)

据我所知,这应该可以正常工作,但实际上 mytunserv 会在随机一段时间后停止工作。mytunserv 会启动我的 …

c java java-native-interface android native

5
推荐指数
1
解决办法
2031
查看次数

标签 统计

android ×1

c ×1

java ×1

java-native-interface ×1

native ×1