Supporrt tapas build for vector tests

Such that UX team has less pain on building the VD / AVD assets.
This also requires removing internal API dependence in the test.

To build the VectorDrawableTest with prebuilt SDK.
<root dir>/tapas VectorDrawableTest
<root dir>/make -j64 showcommand
Then later for incremental build.
<root dir>/mmm ./frameworks/base/tests/VectorDrawableTest/ -j20

b/18260896

Change-Id: Id559074df78d7c2a5c529c545834da23986bc15f
diff --git a/tests/VectorDrawableTest/Android.mk b/tests/VectorDrawableTest/Android.mk
index dd8a4d4..3d44e33 100644
--- a/tests/VectorDrawableTest/Android.mk
+++ b/tests/VectorDrawableTest/Android.mk
@@ -23,4 +23,6 @@
 
 LOCAL_MODULE_TAGS := tests
 
+LOCAL_SDK_VERSION := current
+
 include $(BUILD_PACKAGE)
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawablePerformance.java b/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawablePerformance.java
index 5a2e5a7..d029050 100644
--- a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawablePerformance.java
+++ b/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawablePerformance.java
@@ -17,11 +17,18 @@
 import android.content.res.Resources;
 import android.graphics.drawable.VectorDrawable;
 import android.os.Bundle;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.util.Xml;
 import android.widget.TextView;
 import android.widget.Button;
 import android.widget.GridLayout;
 import android.widget.ScrollView;
 
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.io.IOException;
 import java.text.DecimalFormat;
 
 @SuppressWarnings({"UnusedDeclaration"})
@@ -60,6 +67,31 @@
             R.drawable.vector_drawable30,
     };
 
+    public static VectorDrawable 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 VectorDrawable drawable = new VectorDrawable();
+            drawable.inflate(resources, parser, attrs);
+
+            return drawable;
+        } catch (XmlPullParserException e) {
+            Log.e(LOGCAT, "parser error", e);
+        } catch (IOException e) {
+            Log.e(LOGCAT, "parser error", e);
+        }
+        return null;
+    }
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -72,7 +104,7 @@
         VectorDrawable []d = new VectorDrawable[icon.length];
         long time =  android.os.SystemClock.elapsedRealtimeNanos();
         for (int i = 0; i < icon.length; i++) {
-             d[i] = VectorDrawable.create(res,icon[i]);
+             d[i] = create(res,icon[i]);
         }
         time =  android.os.SystemClock.elapsedRealtimeNanos()-time;
         TextView t = new TextView(this);