下面列出了android.util.EventLog#Event ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
Event(EventLog.Event nativeEvent) {
mTimeMillis = TimeUnit.MILLISECONDS.convert(
nativeEvent.getTimeNanos(), TimeUnit.NANOSECONDS);
mPid = nativeEvent.getProcessId();
mUid = nativeEvent.getUid();
mData = nativeEvent.getData();
}
public void readEvents(int[] tags, long horizonMs, Collection<Event> events)
throws IOException {
// Testing in Android: the Static Final Class Strikes Back!
ArrayList<EventLog.Event> nativeEvents = new ArrayList<>();
long horizonNs = TimeUnit.NANOSECONDS.convert(horizonMs, TimeUnit.MILLISECONDS);
EventLog.readEventsOnWrapping(tags, horizonNs, nativeEvents);
for (EventLog.Event nativeEvent : nativeEvents) {
Event event = new Event(nativeEvent);
events.add(event);
}
}
private static List<EventLog.Event> readNewEvents(final CondomCore.CondomEvent type) throws IOException {
final List<EventLog.Event> events = new ArrayList<>();
EventLog.readEvents(new int[] { EVENT_TAG_MARK, "Condom".hashCode() + type.ordinal() }, events);
if (events.isEmpty()) return Collections.emptyList();
for (int i = events.size() - 1; i >= 0; i --) {
final EventLog.Event event = events.get(i);
if (event.getTag() == EVENT_TAG_MARK) {
EventLog.writeEvent(EVENT_TAG_MARK);
return events.subList(i + 1, events.size());
}
}
EventLog.writeEvent(EVENT_TAG_MARK);
return events;
}
private static List<EventLog.Event> readNewEvents(final CondomCore.CondomEvent type) throws IOException {
final List<EventLog.Event> events = new ArrayList<>();
EventLog.readEvents(new int[] { EVENT_TAG_MARK, "Condom".hashCode() + type.ordinal() }, events);
if (events.isEmpty()) return Collections.emptyList();
for (int i = events.size() - 1; i >= 0; i --) {
final EventLog.Event event = events.get(i);
if (event.getTag() == EVENT_TAG_MARK) {
EventLog.writeEvent(EVENT_TAG_MARK);
return events.subList(i + 1, events.size());
}
}
EventLog.writeEvent(EVENT_TAG_MARK);
return events;
}
private static Object[] readLastEvent(final CondomCore.CondomEvent type) throws IOException {
final List<EventLog.Event> events = readNewEvents(type);
assertEquals(1, events.size());
return (Object[]) events.get(0).getData();
}
private static Object[] readLastEvent(final CondomCore.CondomEvent type) throws IOException {
final List<EventLog.Event> events = readNewEvents(type);
assertEquals(1, events.size());
return (Object[]) events.get(0).getData();
}