Merge "Add one more test and update old tests" into lmp-dev
This commit is contained in:
@@ -98,6 +98,15 @@
|
||||
<category android:name="com.android.test.dynamic.TEST" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name="AnimatedVectorDrawableDupPerf"
|
||||
android:label="Animated Vector Performance of clones" >
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="com.android.test.dynamic.TEST" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name="VectorDrawableStaticPerf"
|
||||
android:label="System icons" >
|
||||
|
||||
@@ -19,8 +19,7 @@
|
||||
android:viewportHeight="400"
|
||||
android:viewportWidth="400" >
|
||||
|
||||
<group android:name="backgroundGroup"
|
||||
android:alpha = "0.5" >
|
||||
<group android:name="backgroundGroup">
|
||||
<path
|
||||
android:name="background1"
|
||||
android:fillColor="#FF000000"
|
||||
@@ -33,8 +32,7 @@
|
||||
<group
|
||||
android:name="translateToCenterGroup"
|
||||
android:translateX="50.0"
|
||||
android:translateY="90.0"
|
||||
android:alpha = "0.5" >
|
||||
android:translateY="90.0" >
|
||||
<path
|
||||
android:name="twoLines"
|
||||
android:pathData="@string/twoLinePathData"
|
||||
@@ -45,8 +43,7 @@
|
||||
android:name="rotationGroup"
|
||||
android:pivotX="0.0"
|
||||
android:pivotY="0.0"
|
||||
android:rotation="-45.0"
|
||||
android:alpha = "0.5" >
|
||||
android:rotation="-45.0">
|
||||
<path
|
||||
android:name="twoLines1"
|
||||
android:pathData="@string/twoLinePathData"
|
||||
@@ -56,8 +53,7 @@
|
||||
<group
|
||||
android:name="translateGroup"
|
||||
android:translateX="130.0"
|
||||
android:translateY="160.0"
|
||||
android:alpha = "0.5">
|
||||
android:translateY="160.0">
|
||||
<group android:name="scaleGroup" >
|
||||
<path
|
||||
android:name="twoLines3"
|
||||
@@ -70,8 +66,7 @@
|
||||
<group
|
||||
android:name="translateGroupHalf"
|
||||
android:translateX="65.0"
|
||||
android:translateY="80.0"
|
||||
android:alpha = "0.5">
|
||||
android:translateY="80.0">
|
||||
<group android:name="scaleGroup" >
|
||||
<path
|
||||
android:name="twoLines2"
|
||||
|
||||
@@ -21,12 +21,10 @@
|
||||
|
||||
<group
|
||||
android:name="FirstLevelGroup"
|
||||
android:alpha="0.9"
|
||||
android:translateX="100.0"
|
||||
android:translateY="0.0" >
|
||||
<group
|
||||
android:name="SecondLevelGroup1"
|
||||
android:alpha="0.9"
|
||||
android:translateX="-100.0"
|
||||
android:translateY="50.0" >
|
||||
<path
|
||||
@@ -35,7 +33,6 @@
|
||||
|
||||
<group
|
||||
android:name="ThridLevelGroup1"
|
||||
android:alpha="0.9"
|
||||
android:translateX="-100.0"
|
||||
android:translateY="50.0" >
|
||||
<path
|
||||
@@ -44,7 +41,6 @@
|
||||
</group>
|
||||
<group
|
||||
android:name="ThridLevelGroup2"
|
||||
android:alpha="0.8"
|
||||
android:translateX="100.0"
|
||||
android:translateY="50.0" >
|
||||
<path
|
||||
@@ -54,7 +50,6 @@
|
||||
</group>
|
||||
<group
|
||||
android:name="SecondLevelGroup2"
|
||||
android:alpha="0.8"
|
||||
android:translateX="100.0"
|
||||
android:translateY="50.0" >
|
||||
<path
|
||||
@@ -63,7 +58,6 @@
|
||||
|
||||
<group
|
||||
android:name="ThridLevelGroup3"
|
||||
android:alpha="0.9"
|
||||
android:translateX="-100.0"
|
||||
android:translateY="50.0" >
|
||||
<path
|
||||
@@ -72,7 +66,6 @@
|
||||
</group>
|
||||
<group
|
||||
android:name="ThridLevelGroup4"
|
||||
android:alpha="0.8"
|
||||
android:translateX="100.0"
|
||||
android:translateY="50.0" >
|
||||
<path
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
/*
|
||||
* Copyright (C) 2014 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.test.dynamic;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.drawable.AnimatedVectorDrawable;
|
||||
import android.graphics.drawable.VectorDrawable;
|
||||
import android.os.Bundle;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.util.Xml;
|
||||
import android.widget.Button;
|
||||
import android.widget.GridLayout;
|
||||
import android.widget.ScrollView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
|
||||
@SuppressWarnings({"UnusedDeclaration"})
|
||||
public class AnimatedVectorDrawableDupPerf extends Activity {
|
||||
|
||||
private static final String LOGTAG = "AnimatedVectorDrawableDupPerf";
|
||||
protected int[] icon = {
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
R.drawable.animation_vector_linear_progress_bar,
|
||||
};
|
||||
|
||||
/** @hide */
|
||||
public static AnimatedVectorDrawable create(Resources resources, int rid) {
|
||||
try {
|
||||
final XmlPullParser parser = resources.getXml(rid);
|
||||
final AttributeSet attrs = Xml.asAttributeSet(parser);
|
||||
int type;
|
||||
while ((type=parser.next()) != XmlPullParser.START_TAG &&
|
||||
type != XmlPullParser.END_DOCUMENT) {
|
||||
// Empty loop
|
||||
}
|
||||
if (type != XmlPullParser.START_TAG) {
|
||||
throw new XmlPullParserException("No start tag found");
|
||||
}
|
||||
|
||||
final AnimatedVectorDrawable drawable = new AnimatedVectorDrawable();
|
||||
drawable.inflate(resources, parser, attrs);
|
||||
|
||||
return drawable;
|
||||
} catch (XmlPullParserException e) {
|
||||
Log.e(LOGTAG, "parser error", e);
|
||||
} catch (IOException e) {
|
||||
Log.e(LOGTAG, "parser error", e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
ScrollView scrollView = new ScrollView(this);
|
||||
GridLayout container = new GridLayout(this);
|
||||
scrollView.addView(container);
|
||||
container.setColumnCount(5);
|
||||
Resources res = this.getResources();
|
||||
container.setBackgroundColor(0xFF888888);
|
||||
AnimatedVectorDrawable []d = new AnimatedVectorDrawable[icon.length];
|
||||
long time = android.os.SystemClock.elapsedRealtimeNanos();
|
||||
for (int i = 0; i < icon.length; i++) {
|
||||
d[i] = create(res,icon[i]);
|
||||
}
|
||||
time = android.os.SystemClock.elapsedRealtimeNanos()-time;
|
||||
TextView t = new TextView(this);
|
||||
DecimalFormat df = new DecimalFormat("#.##");
|
||||
t.setText("avgL=" + df.format(time / (icon.length * 1000000.)) + " ms");
|
||||
container.addView(t);
|
||||
time = android.os.SystemClock.elapsedRealtimeNanos();
|
||||
for (int i = 0; i < icon.length; i++) {
|
||||
Button button = new Button(this);
|
||||
button.setWidth(200);
|
||||
button.setBackgroundResource(icon[i]);
|
||||
container.addView(button);
|
||||
}
|
||||
setContentView(scrollView);
|
||||
time = android.os.SystemClock.elapsedRealtimeNanos()-time;
|
||||
t = new TextView(this);
|
||||
t.setText("avgS=" + df.format(time / (icon.length * 1000000.)) + " ms");
|
||||
container.addView(t);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user