code: public Bundle addIteration(String label) {
          mCpuTime = Process.getElapsedCpuTime() - mCpuTime;
          mExecTime = SystemClock.uptimeMillis() - mExecTime;
  
          Bundle iteration = new Bundle();
          iteration.putString(METRIC_KEY_LABEL, label);
          iteration.putLong(METRIC_KEY_EXECUTION_TIME, mExecTime);
          iteration.putLong(METRIC_KEY_CPU_TIME, mCpuTime);
          mPerfMeasurement.getParcelableArrayList(METRIC_KEY_ITERATIONS).add(iteration);
  
          mExecTime = SystemClock.uptimeMillis();
          mCpuTime = Process.getElapsedCpuTime();
          return iteration;
      }
docs: Add a measured segment, and start measuring the next segment. Returns
  collected data in a Bundle object.
  
  @param label description of code block between startTiming and
  addIteration, and between two calls to addIteration, used
  to label output
  @return Runtime metrics stored as key/value pairs. Values are of type
  long, and keys include:
  <ul>
  <li>{@link #METRIC_KEY_LABEL label}
  <li>{@link #METRIC_KEY_CPU_TIME cpu_time}
  <li>{@link #METRIC_KEY_EXECUTION_TIME execution_time}
  </ul>