Add AndroidCodecBench to time scaled decodes

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1685693003

Review URL: https://codereview.chromium.org/1685693003
diff --git a/bench/AndroidCodecBench.cpp b/bench/AndroidCodecBench.cpp
new file mode 100644
index 0000000..97e1176
--- /dev/null
+++ b/bench/AndroidCodecBench.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2016 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "AndroidCodecBench.h"
+#include "CodecBenchPriv.h"
+#include "SkBitmap.h"
+#include "SkAndroidCodec.h"
+#include "SkCommandLineFlags.h"
+#include "SkOSFile.h"
+
+AndroidCodecBench::AndroidCodecBench(SkString baseName, SkData* encoded, int sampleSize)
+    : fData(SkRef(encoded))
+    , fSampleSize(sampleSize)
+{
+    // Parse filename and the color type to give the benchmark a useful name
+    fName.printf("AndroidCodec_%s_SampleSize%d", baseName.c_str(), sampleSize);
+}
+
+const char* AndroidCodecBench::onGetName() {
+    return fName.c_str();
+}
+
+bool AndroidCodecBench::isSuitableFor(Backend backend) {
+    return kNonRendering_Backend == backend;
+}
+
+void AndroidCodecBench::onDelayedSetup() {
+    SkAutoTDelete<SkAndroidCodec> codec(SkAndroidCodec::NewFromData(fData));
+    SkISize scaledSize = codec->getSampledDimensions(fSampleSize);
+
+    fInfo = codec->getInfo().makeWH(scaledSize.width(), scaledSize.height())
+            .makeColorType(kN32_SkColorType);
+    if (kUnpremul_SkAlphaType == fInfo.alphaType()) {
+        fInfo = fInfo.makeAlphaType(kPremul_SkAlphaType);
+    }
+
+    fPixelStorage.reset(fInfo.getSafeSize(fInfo.minRowBytes()));
+}
+
+void AndroidCodecBench::onDraw(int n, SkCanvas* canvas) {
+    SkAutoTDelete<SkAndroidCodec> codec;
+    SkAndroidCodec::AndroidOptions options;
+    options.fSampleSize = fSampleSize;
+    for (int i = 0; i < n; i++) {
+        codec.reset(SkAndroidCodec::NewFromData(fData));
+#ifdef SK_DEBUG
+        const SkCodec::Result result =
+#endif
+        codec->getAndroidPixels(fInfo, fPixelStorage.get(), fInfo.minRowBytes(), &options);
+        SkASSERT(result == SkCodec::kSuccess || result == SkCodec::kIncompleteInput);
+    }
+}