diff options
Diffstat (limited to 'src/org/zeroxlab/benchmark/CaseCanvas.java')
-rw-r--r-- | src/org/zeroxlab/benchmark/CaseCanvas.java | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/src/org/zeroxlab/benchmark/CaseCanvas.java b/src/org/zeroxlab/benchmark/CaseCanvas.java new file mode 100644 index 0000000..1e5a8b8 --- /dev/null +++ b/src/org/zeroxlab/benchmark/CaseCanvas.java @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2010 0xlab - http://0xlab.org/ + * + * 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 org.zeroxlab.benchmark; + +import android.util.Log; + +import android.os.SystemClock; + +import android.app.Activity; +import android.content.Context; +import android.content.BroadcastReceiver; +import android.content.Intent; +import android.os.Bundle; +import android.widget.*; +import android.view.*; +import java.nio.*; +import java.util.ArrayList; + +public class CaseCanvas extends Case{ + + public static int CanvasRound = 300; + + CaseCanvas() { + super("CaseCanvas", TesterCanvas.getFullClassName(), 3, CanvasRound); + + mType = "2d-fps"; + String [] _tmp = { + "2d", + "render", + "view", + }; + mTags = _tmp; + + } + + public String getTitle() { + return "Draw Canvas"; + } + + public String getDescription() { + return "call canvas.drawRGB to fill the canvas repeatedly. It redraw for " + CanvasRound + " times"; + } + + @Override + public String getBenchmark() { + if (!couldFetchReport()) { + return "Cavas has no report"; + } + + String result = ""; + long total = 0; + int length = mResult.length; + + for (int i = 0; i < length; i++) { + float second = (mResult[i] / 1000f); + float fps = (float)mCaseRound / second; // milliseconds to seconds + result += "Round " + i +" fps = " + fps + "\n"; + total += fps; + } + + result += "Average: fps = " + ((float)total/length) + "\n"; + return result; + } + + @Override + public ArrayList<Scenario> getScenarios () { + ArrayList<Scenario> scenarios = new ArrayList<Scenario>(); + + Scenario s = new Scenario(getTitle(), mType, mTags); + s.mLog = getBenchmark(); + for (int i = 0; i < mResult.length; i++) { + float second = (mResult[i] / 1000f); + float fps = (float)mCaseRound / second; + s.mResults.add(((Float)fps).doubleValue()); + } + + scenarios.add(s); + return scenarios; + } + +} |