2

我尝试在我的 Android 应用程序中执行“am profile start”来分析另一个 PID。从亚行一切正常,例如: adb shell am profile 5397 start /sdcard/my.app.trace 工作。但尝试执行“am”或“pm”,或任何执行 app_process 的操作都会出现以下错误:

/system/bin/am[8]:app_process:无法执行:权限被拒绝

它也不适用于终端仿真器,同样的错误。如果我使用 root 执行它(无论是在 adb 上还是在设备上),就会出现像这里这样的分段错误:Segmentation Fault execution pm on android。那里的答案并没有解决我使用 root 访问“am”的问题,但是我想解决这个问题以在没有 root 的情况下运行命令。在我无法解决的设备上执行 app_process 时出现问题。我正在使用带有 Android L 预览版的 Nexus 5。使用我老的摩托罗拉里程碑,命令在终端仿真器上运行。这是仅尝试在我的应用程序中执行“am”命令的代码,它应该列出该命令的选项,但会产生上述错误。

    try {

        String outputString;
        String command = "am";

        Log.d(TAG, "EXECUTING CMD: " + command);
        // execute command and read output
        process = Runtime.getRuntime().exec(command);

        BufferedReader stdError = new BufferedReader(new InputStreamReader(
                process.getErrorStream()));

        BufferedReader stdInput = new BufferedReader(new InputStreamReader(
                process.getInputStream()));


        while ((outputString = stdInput.readLine()) != null) {
            Log.d(TAG, " EXECUTING CMD Here is the standard output of the command (if any):\n");
            Log.d(TAG, outputString);
        }


        while ((outputString = stdError.readLine()) != null) {
            Log.d(TAG, "EXECUTING CMD Here is the standard error of the command (if any):\n");
            Log.d(TAG, outputString);
        }
        Log.d(TAG, "****** / " + sCmd + " *******");
    } catch (IOException exception) {
        exception.printStackTrace();

    }
4

0 回答 0