diff options
Diffstat (limited to 'dumpeventlog/src/com/android/dumpeventlog/DumpEventLog.java')
-rw-r--r-- | dumpeventlog/src/com/android/dumpeventlog/DumpEventLog.java | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/dumpeventlog/src/com/android/dumpeventlog/DumpEventLog.java b/dumpeventlog/src/com/android/dumpeventlog/DumpEventLog.java deleted file mode 100644 index 0669e33fd..000000000 --- a/dumpeventlog/src/com/android/dumpeventlog/DumpEventLog.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.dumpeventlog; - -import com.android.ddmlib.AdbCommandRejectedException; -import com.android.ddmlib.AndroidDebugBridge; -import com.android.ddmlib.IDevice; -import com.android.ddmlib.Log; -import com.android.ddmlib.TimeoutException; -import com.android.ddmlib.Log.ILogOutput; -import com.android.ddmlib.Log.LogLevel; -import com.android.ddmlib.log.LogReceiver; -import com.android.ddmlib.log.LogReceiver.ILogListener; -import com.android.ddmlib.log.LogReceiver.LogEntry; - -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; - -/** - * Connects to a device using ddmlib and dumps its event log as long as the device is connected. - */ -public class DumpEventLog { - - /** - * Custom {@link ILogListener} to receive and save the event log raw output. - */ - private static class LogWriter implements ILogListener { - private FileOutputStream mOutputStream; - private LogReceiver mReceiver; - - public LogWriter(String filePath) throws IOException { - mOutputStream = new FileOutputStream(filePath); - } - - public void newData(byte[] data, int offset, int length) { - try { - mOutputStream.write(data, offset, length); - } catch (IOException e) { - if (mReceiver != null) { - mReceiver.cancel(); - } - System.out.println(e); - } - } - - public void newEntry(LogEntry entry) { - // pass - } - - public void setReceiver(LogReceiver receiver) { - mReceiver = receiver; - } - - public void done() throws IOException { - mOutputStream.close(); - } - } - - public static void main(String[] args) { - if (args.length != 2) { - System.out.println("Usage: dumpeventlog <device s/n> <filepath>"); - return; - } - - // redirect the log output to /dev/null - Log.setLogOutput(new ILogOutput() { - public void printAndPromptLog(LogLevel logLevel, String tag, String message) { - // pass - } - - public void printLog(LogLevel logLevel, String tag, String message) { - // pass - } - }); - - // init the lib - AndroidDebugBridge.init(false /* debugger support */); - - try { - AndroidDebugBridge bridge = AndroidDebugBridge.createBridge(); - - // we can't just ask for the device list right away, as the internal thread getting - // them from ADB may not be done getting the first list. - // Since we don't really want getDevices() to be blocking, we wait here manually. - int count = 0; - while (bridge.hasInitialDeviceList() == false) { - try { - Thread.sleep(100); - count++; - } catch (InterruptedException e) { - // pass - } - - // let's not wait > 10 sec. - if (count > 100) { - System.err.println("Timeout getting device list!"); - return; - } - } - - // now get the devices - IDevice[] devices = bridge.getDevices(); - - for (IDevice device : devices) { - if (device.getSerialNumber().equals(args[0])) { - try { - grabLogFrom(device, args[1]); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } - return; - } - } - - System.err.println("Could not find " + args[0]); - } finally { - AndroidDebugBridge.terminate(); - } - } - - private static void grabLogFrom(IDevice device, String filePath) throws IOException, - TimeoutException, AdbCommandRejectedException { - LogWriter writer = new LogWriter(filePath); - LogReceiver receiver = new LogReceiver(writer); - writer.setReceiver(receiver); - - device.runEventLogService(receiver); - - writer.done(); - } -} |