Search in sources :

Example 16 with AndroidException

use of android.util.AndroidException in project android_frameworks_base by AOSPA.

the class Am method runSupportsMultiwindow.

private void runSupportsMultiwindow() throws Exception {
    // system resources does not contain all the device configuration, construct it manually.
    Configuration config = mAm.getConfiguration();
    if (config == null) {
        throw new AndroidException("Activity manager has no configuration");
    }
    final DisplayMetrics metrics = new DisplayMetrics();
    metrics.setToDefaults();
    Resources res = new Resources(AssetManager.getSystem(), metrics, config);
    System.out.println(res.getBoolean(com.android.internal.R.bool.config_supportsMultiWindow));
}
Also used : AndroidException(android.util.AndroidException) Configuration(android.content.res.Configuration) Resources(android.content.res.Resources) DisplayMetrics(android.util.DisplayMetrics)

Example 17 with AndroidException

use of android.util.AndroidException in project android_frameworks_base by AOSPA.

the class Am method runTraceIpcStop.

private void runTraceIpcStop() throws Exception {
    String opt;
    String filename = null;
    while ((opt = nextOption()) != null) {
        if (opt.equals("--dump-file")) {
            filename = nextArgRequired();
        } else {
            System.err.println("Error: Unknown option: " + opt);
            return;
        }
    }
    if (filename == null) {
        System.err.println("Error: Specify filename to dump logs to.");
        return;
    }
    ParcelFileDescriptor fd = null;
    try {
        File file = new File(filename);
        file.delete();
        fd = openForSystemServer(file, ParcelFileDescriptor.MODE_CREATE | ParcelFileDescriptor.MODE_TRUNCATE | ParcelFileDescriptor.MODE_WRITE_ONLY);
    } catch (FileNotFoundException e) {
        System.err.println("Error: Unable to open file: " + filename);
        System.err.println("Consider using a file under /data/local/tmp/");
        return;
    }
    ;
    if (!mAm.stopBinderTrackingAndDump(fd)) {
        throw new AndroidException("STOP TRACE FAILED.");
    }
    System.out.println("Stopped IPC tracing. Dumping logs to: " + filename);
}
Also used : AndroidException(android.util.AndroidException) ParcelFileDescriptor(android.os.ParcelFileDescriptor) FileNotFoundException(java.io.FileNotFoundException) File(java.io.File)

Example 18 with AndroidException

use of android.util.AndroidException in project android_frameworks_base by AOSPA.

the class Am method runProfile.

private void runProfile() throws Exception {
    String profileFile = null;
    boolean start = false;
    boolean wall = false;
    int userId = UserHandle.USER_CURRENT;
    int profileType = 0;
    mSamplingInterval = 0;
    String process = null;
    String cmd = nextArgRequired();
    if ("start".equals(cmd)) {
        start = true;
        String opt;
        while ((opt = nextOption()) != null) {
            if (opt.equals("--user")) {
                userId = parseUserArg(nextArgRequired());
            } else if (opt.equals("--wall")) {
                wall = true;
            } else if (opt.equals("--sampling")) {
                mSamplingInterval = Integer.parseInt(nextArgRequired());
            } else {
                System.err.println("Error: Unknown option: " + opt);
                return;
            }
        }
        process = nextArgRequired();
    } else if ("stop".equals(cmd)) {
        String opt;
        while ((opt = nextOption()) != null) {
            if (opt.equals("--user")) {
                userId = parseUserArg(nextArgRequired());
            } else {
                System.err.println("Error: Unknown option: " + opt);
                return;
            }
        }
        process = nextArg();
    } else {
        // Compatibility with old syntax: process is specified first.
        process = cmd;
        cmd = nextArgRequired();
        if ("start".equals(cmd)) {
            start = true;
        } else if (!"stop".equals(cmd)) {
            throw new IllegalArgumentException("Profile command " + process + " not valid");
        }
    }
    if (userId == UserHandle.USER_ALL) {
        System.err.println("Error: Can't profile with user 'all'");
        return;
    }
    ParcelFileDescriptor fd = null;
    ProfilerInfo profilerInfo = null;
    if (start) {
        profileFile = nextArgRequired();
        try {
            fd = openForSystemServer(new File(profileFile), ParcelFileDescriptor.MODE_CREATE | ParcelFileDescriptor.MODE_TRUNCATE | ParcelFileDescriptor.MODE_WRITE_ONLY);
        } catch (FileNotFoundException e) {
            System.err.println("Error: Unable to open file: " + profileFile);
            System.err.println("Consider using a file under /data/local/tmp/");
            return;
        }
        profilerInfo = new ProfilerInfo(profileFile, fd, mSamplingInterval, false);
    }
    try {
        if (wall) {
            // XXX doesn't work -- this needs to be set before booting.
            String props = SystemProperties.get("dalvik.vm.extra-opts");
            if (props == null || !props.contains("-Xprofile:wallclock")) {
                props = props + " -Xprofile:wallclock";
            //SystemProperties.set("dalvik.vm.extra-opts", props);
            }
        } else if (start) {
        //removeWallOption();
        }
        if (!mAm.profileControl(process, userId, start, profilerInfo, profileType)) {
            wall = false;
            throw new AndroidException("PROFILE FAILED on process " + process);
        }
    } finally {
        if (!wall) {
        //removeWallOption();
        }
    }
}
Also used : ProfilerInfo(android.app.ProfilerInfo) AndroidException(android.util.AndroidException) ParcelFileDescriptor(android.os.ParcelFileDescriptor) FileNotFoundException(java.io.FileNotFoundException) File(java.io.File)

Example 19 with AndroidException

use of android.util.AndroidException in project android_frameworks_base by AOSPA.

the class Am method runDumpHeap.

private void runDumpHeap() throws Exception {
    boolean managed = true;
    int userId = UserHandle.USER_CURRENT;
    String opt;
    while ((opt = nextOption()) != null) {
        if (opt.equals("--user")) {
            userId = parseUserArg(nextArgRequired());
            if (userId == UserHandle.USER_ALL) {
                System.err.println("Error: Can't dump heap with user 'all'");
                return;
            }
        } else if (opt.equals("-n")) {
            managed = false;
        } else {
            System.err.println("Error: Unknown option: " + opt);
            return;
        }
    }
    String process = nextArgRequired();
    String heapFile = nextArgRequired();
    ParcelFileDescriptor fd = null;
    try {
        File file = new File(heapFile);
        file.delete();
        fd = openForSystemServer(file, ParcelFileDescriptor.MODE_CREATE | ParcelFileDescriptor.MODE_TRUNCATE | ParcelFileDescriptor.MODE_WRITE_ONLY);
    } catch (FileNotFoundException e) {
        System.err.println("Error: Unable to open file: " + heapFile);
        System.err.println("Consider using a file under /data/local/tmp/");
        return;
    }
    if (!mAm.dumpHeap(process, userId, managed, heapFile, fd)) {
        throw new AndroidException("HEAP DUMP FAILED on process " + process);
    }
}
Also used : AndroidException(android.util.AndroidException) ParcelFileDescriptor(android.os.ParcelFileDescriptor) FileNotFoundException(java.io.FileNotFoundException) File(java.io.File)

Example 20 with AndroidException

use of android.util.AndroidException in project android_frameworks_base by DirtyUnicorns.

the class Am method runDumpHeap.

private void runDumpHeap() throws Exception {
    boolean managed = true;
    int userId = UserHandle.USER_CURRENT;
    String opt;
    while ((opt = nextOption()) != null) {
        if (opt.equals("--user")) {
            userId = parseUserArg(nextArgRequired());
            if (userId == UserHandle.USER_ALL) {
                System.err.println("Error: Can't dump heap with user 'all'");
                return;
            }
        } else if (opt.equals("-n")) {
            managed = false;
        } else {
            System.err.println("Error: Unknown option: " + opt);
            return;
        }
    }
    String process = nextArgRequired();
    String heapFile = nextArgRequired();
    ParcelFileDescriptor fd = null;
    try {
        File file = new File(heapFile);
        file.delete();
        fd = openForSystemServer(file, ParcelFileDescriptor.MODE_CREATE | ParcelFileDescriptor.MODE_TRUNCATE | ParcelFileDescriptor.MODE_WRITE_ONLY);
    } catch (FileNotFoundException e) {
        System.err.println("Error: Unable to open file: " + heapFile);
        System.err.println("Consider using a file under /data/local/tmp/");
        return;
    }
    if (!mAm.dumpHeap(process, userId, managed, heapFile, fd)) {
        throw new AndroidException("HEAP DUMP FAILED on process " + process);
    }
}
Also used : AndroidException(android.util.AndroidException) ParcelFileDescriptor(android.os.ParcelFileDescriptor) FileNotFoundException(java.io.FileNotFoundException) File(java.io.File)

Aggregations

AndroidException (android.util.AndroidException)27 ParcelFileDescriptor (android.os.ParcelFileDescriptor)17 File (java.io.File)17 FileNotFoundException (java.io.FileNotFoundException)17 IInstrumentationWatcher (android.app.IInstrumentationWatcher)6 UiAutomationConnection (android.app.UiAutomationConnection)6 ComponentName (android.content.ComponentName)6 Bundle (android.os.Bundle)6 IWindowManager (android.view.IWindowManager)6 ProfilerInfo (android.app.ProfilerInfo)5 InstrumentationInfo (android.content.pm.InstrumentationInfo)5 ArrayList (java.util.ArrayList)5 Configuration (android.content.res.Configuration)4 Resources (android.content.res.Resources)4 DisplayMetrics (android.util.DisplayMetrics)4