Merge "Tracking merge of dalvik-dev to master"
diff --git a/Android.mk b/Android.mk
index 3902971..3f52948 100644
--- a/Android.mk
+++ b/Android.mk
@@ -640,6 +640,8 @@
 LOCAL_NO_EMMA_INSTRUMENT := true
 LOCAL_NO_EMMA_COMPILE := true
 
+LOCAL_DX_FLAGS := --core-library
+
 include $(BUILD_JAVA_LIBRARY)
 
 
diff --git a/api/12.xml b/api/12.xml
index 2646904..f317dc5 100644
--- a/api/12.xml
+++ b/api/12.xml
@@ -270265,7 +270265,7 @@
 <package name="dalvik.system"
 >
 <class name="DexClassLoader"
- extends="java.lang.ClassLoader"
+ extends="dalvik.system.BaseDexClassLoader"
  abstract="false"
  static="false"
  final="false"
@@ -270409,7 +270409,7 @@
 </method>
 </class>
 <class name="PathClassLoader"
- extends="java.lang.ClassLoader"
+ extends="dalvik.system.BaseDexClassLoader"
  abstract="false"
  static="false"
  final="false"
@@ -275862,8 +275862,6 @@
 >
 <exception name="IOException" type="java.io.IOException">
 </exception>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </constructor>
 <constructor name="ObjectInputStream"
  type="java.io.ObjectInputStream"
@@ -275908,8 +275906,6 @@
 >
 <parameter name="enable" type="boolean">
 </parameter>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="read"
  return="int"
@@ -276652,8 +276648,6 @@
 >
 <exception name="IOException" type="java.io.IOException">
 </exception>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </constructor>
 <constructor name="ObjectOutputStream"
  type="java.io.ObjectOutputStream"
@@ -276735,8 +276729,6 @@
 >
 <parameter name="enable" type="boolean">
 </parameter>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="putFields"
  return="java.io.ObjectOutputStream.PutField"
@@ -285569,8 +285561,6 @@
 </parameter>
 <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
 </exception>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getConstructors"
  return="java.lang.reflect.Constructor&lt;?&gt;[]"
@@ -285582,8 +285572,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getDeclaredAnnotations"
  return="java.lang.annotation.Annotation[]"
@@ -285606,8 +285594,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getDeclaredConstructor"
  return="java.lang.reflect.Constructor&lt;T&gt;"
@@ -285623,8 +285609,6 @@
 </parameter>
 <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
 </exception>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getDeclaredConstructors"
  return="java.lang.reflect.Constructor&lt;?&gt;[]"
@@ -285636,8 +285620,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getDeclaredField"
  return="java.lang.reflect.Field"
@@ -285653,8 +285635,6 @@
 </parameter>
 <exception name="NoSuchFieldException" type="java.lang.NoSuchFieldException">
 </exception>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getDeclaredFields"
  return="java.lang.reflect.Field[]"
@@ -285666,8 +285646,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getDeclaredMethod"
  return="java.lang.reflect.Method"
@@ -285685,8 +285663,6 @@
 </parameter>
 <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
 </exception>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getDeclaredMethods"
  return="java.lang.reflect.Method[]"
@@ -285698,8 +285674,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getDeclaringClass"
  return="java.lang.Class&lt;?&gt;"
@@ -285770,8 +285744,6 @@
 </parameter>
 <exception name="NoSuchFieldException" type="java.lang.NoSuchFieldException">
 </exception>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getFields"
  return="java.lang.reflect.Field[]"
@@ -285783,8 +285755,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getGenericInterfaces"
  return="java.lang.reflect.Type[]"
@@ -285835,8 +285805,6 @@
 </parameter>
 <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
 </exception>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getMethods"
  return="java.lang.reflect.Method[]"
@@ -285848,8 +285816,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getModifiers"
  return="int"
@@ -297698,8 +297664,6 @@
 </parameter>
 <parameter name="flag" type="boolean">
 </parameter>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="setAccessible"
  return="void"
@@ -297713,8 +297677,6 @@
 >
 <parameter name="flag" type="boolean">
 </parameter>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 </class>
 <interface name="AnnotatedElement"
@@ -380201,8 +380163,6 @@
 >
 <parameter name="encoding" type="java.lang.String">
 </parameter>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 <exception name="UnsupportedEncodingException" type="java.io.UnsupportedEncodingException">
 </exception>
 </method>
diff --git a/api/current.xml b/api/current.xml
index 3c78026..0a57d3e 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -267728,7 +267728,7 @@
  abstract="true"
  static="false"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <implements name="java.lang.annotation.Annotation">
@@ -267739,7 +267739,7 @@
  abstract="true"
  static="false"
  final="false"
- deprecated="not deprecated"
+ deprecated="deprecated"
  visibility="public"
 >
 <implements name="java.lang.annotation.Annotation">
@@ -270824,7 +270824,7 @@
 </package>
 <package name="dalvik.system"
 >
-<class name="DexClassLoader"
+<class name="BaseDexClassLoader"
  extends="java.lang.ClassLoader"
  abstract="false"
  static="false"
@@ -270832,6 +270832,44 @@
  deprecated="not deprecated"
  visibility="public"
 >
+<constructor name="BaseDexClassLoader"
+ type="dalvik.system.BaseDexClassLoader"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="dexPath" type="java.lang.String">
+</parameter>
+<parameter name="optimizedDirectory" type="java.io.File">
+</parameter>
+<parameter name="libraryPath" type="java.lang.String">
+</parameter>
+<parameter name="parent" type="java.lang.ClassLoader">
+</parameter>
+</constructor>
+<method name="findLibrary"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="name" type="java.lang.String">
+</parameter>
+</method>
+</class>
+<class name="DexClassLoader"
+ extends="dalvik.system.BaseDexClassLoader"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
 <constructor name="DexClassLoader"
  type="dalvik.system.DexClassLoader"
  static="false"
@@ -270841,9 +270879,9 @@
 >
 <parameter name="dexPath" type="java.lang.String">
 </parameter>
-<parameter name="dexOutputDir" type="java.lang.String">
+<parameter name="optimizedDirectory" type="java.lang.String">
 </parameter>
-<parameter name="libPath" type="java.lang.String">
+<parameter name="libraryPath" type="java.lang.String">
 </parameter>
 <parameter name="parent" type="java.lang.ClassLoader">
 </parameter>
@@ -270969,7 +271007,7 @@
 </method>
 </class>
 <class name="PathClassLoader"
- extends="java.lang.ClassLoader"
+ extends="dalvik.system.BaseDexClassLoader"
  abstract="false"
  static="false"
  final="false"
@@ -270983,7 +271021,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="path" type="java.lang.String">
+<parameter name="dexPath" type="java.lang.String">
 </parameter>
 <parameter name="parent" type="java.lang.ClassLoader">
 </parameter>
@@ -270995,26 +271033,13 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="path" type="java.lang.String">
+<parameter name="dexPath" type="java.lang.String">
 </parameter>
-<parameter name="libPath" type="java.lang.String">
+<parameter name="libraryPath" type="java.lang.String">
 </parameter>
 <parameter name="parent" type="java.lang.ClassLoader">
 </parameter>
 </constructor>
-<method name="findLibrary"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="libname" type="java.lang.String">
-</parameter>
-</method>
 </class>
 </package>
 <package name="java.awt.font"
@@ -273568,21 +273593,6 @@
 >
 <parameter name="buffer" type="byte[]">
 </parameter>
-<exception name="IOException" type="java.io.IOException">
-</exception>
-</method>
-<method name="read"
- return="int"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="buffer" type="byte[]">
-</parameter>
 <parameter name="offset" type="int">
 </parameter>
 <parameter name="length" type="int">
@@ -275886,7 +275896,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="b" type="byte[]">
+<parameter name="buffer" type="byte[]">
 </parameter>
 <exception name="IOException" type="java.io.IOException">
 </exception>
@@ -276422,8 +276432,6 @@
 >
 <exception name="IOException" type="java.io.IOException">
 </exception>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </constructor>
 <constructor name="ObjectInputStream"
  type="java.io.ObjectInputStream"
@@ -276468,8 +276476,6 @@
 >
 <parameter name="enable" type="boolean">
 </parameter>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="read"
  return="int"
@@ -277212,8 +277218,6 @@
 >
 <exception name="IOException" type="java.io.IOException">
 </exception>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </constructor>
 <constructor name="ObjectOutputStream"
  type="java.io.ObjectOutputStream"
@@ -277295,8 +277299,6 @@
 >
 <parameter name="enable" type="boolean">
 </parameter>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="putFields"
  return="java.io.ObjectOutputStream.PutField"
@@ -279042,7 +279044,7 @@
 >
 <parameter name="out" type="java.io.OutputStream">
 </parameter>
-<parameter name="autoflush" type="boolean">
+<parameter name="autoFlush" type="boolean">
 </parameter>
 </constructor>
 <constructor name="PrintStream"
@@ -279054,7 +279056,7 @@
 >
 <parameter name="out" type="java.io.OutputStream">
 </parameter>
-<parameter name="autoflush" type="boolean">
+<parameter name="autoFlush" type="boolean">
 </parameter>
 <parameter name="enc" type="java.lang.String">
 </parameter>
@@ -279140,7 +279142,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="csq" type="java.lang.CharSequence">
+<parameter name="charSequence" type="java.lang.CharSequence">
 </parameter>
 </method>
 <method name="append"
@@ -279153,7 +279155,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="csq" type="java.lang.CharSequence">
+<parameter name="charSequence" type="java.lang.CharSequence">
 </parameter>
 <parameter name="start" type="int">
 </parameter>
@@ -279224,7 +279226,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="charArray" type="char[]">
+<parameter name="chars" type="char[]">
 </parameter>
 </method>
 <method name="print"
@@ -279237,7 +279239,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="ch" type="char">
+<parameter name="c" type="char">
 </parameter>
 </method>
 <method name="print"
@@ -279250,7 +279252,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="dnum" type="double">
+<parameter name="d" type="double">
 </parameter>
 </method>
 <method name="print"
@@ -279263,7 +279265,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="fnum" type="float">
+<parameter name="f" type="float">
 </parameter>
 </method>
 <method name="print"
@@ -279276,7 +279278,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="inum" type="int">
+<parameter name="i" type="int">
 </parameter>
 </method>
 <method name="print"
@@ -279289,7 +279291,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="lnum" type="long">
+<parameter name="l" type="long">
 </parameter>
 </method>
 <method name="print"
@@ -279302,7 +279304,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="obj" type="java.lang.Object">
+<parameter name="o" type="java.lang.Object">
 </parameter>
 </method>
 <method name="print"
@@ -279328,7 +279330,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="bool" type="boolean">
+<parameter name="b" type="boolean">
 </parameter>
 </method>
 <method name="printf"
@@ -279384,7 +279386,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="charArray" type="char[]">
+<parameter name="chars" type="char[]">
 </parameter>
 </method>
 <method name="println"
@@ -279397,7 +279399,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="ch" type="char">
+<parameter name="c" type="char">
 </parameter>
 </method>
 <method name="println"
@@ -279410,7 +279412,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="dnum" type="double">
+<parameter name="d" type="double">
 </parameter>
 </method>
 <method name="println"
@@ -279423,7 +279425,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="fnum" type="float">
+<parameter name="f" type="float">
 </parameter>
 </method>
 <method name="println"
@@ -279436,7 +279438,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="inum" type="int">
+<parameter name="i" type="int">
 </parameter>
 </method>
 <method name="println"
@@ -279449,7 +279451,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="lnum" type="long">
+<parameter name="l" type="long">
 </parameter>
 </method>
 <method name="println"
@@ -279462,7 +279464,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="obj" type="java.lang.Object">
+<parameter name="o" type="java.lang.Object">
 </parameter>
 </method>
 <method name="println"
@@ -279488,7 +279490,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="bool" type="boolean">
+<parameter name="b" type="boolean">
 </parameter>
 </method>
 <method name="setError"
@@ -279530,7 +279532,7 @@
 >
 <parameter name="out" type="java.io.OutputStream">
 </parameter>
-<parameter name="autoflush" type="boolean">
+<parameter name="autoFlush" type="boolean">
 </parameter>
 </constructor>
 <constructor name="PrintWriter"
@@ -279552,7 +279554,7 @@
 >
 <parameter name="wr" type="java.io.Writer">
 </parameter>
-<parameter name="autoflush" type="boolean">
+<parameter name="autoFlush" type="boolean">
 </parameter>
 </constructor>
 <constructor name="PrintWriter"
@@ -279857,7 +279859,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="charArray" type="char[]">
+<parameter name="chars" type="char[]">
 </parameter>
 </method>
 <method name="println"
@@ -279870,7 +279872,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="ch" type="char">
+<parameter name="c" type="char">
 </parameter>
 </method>
 <method name="println"
@@ -279883,7 +279885,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="dnum" type="double">
+<parameter name="d" type="double">
 </parameter>
 </method>
 <method name="println"
@@ -279896,7 +279898,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="fnum" type="float">
+<parameter name="f" type="float">
 </parameter>
 </method>
 <method name="println"
@@ -279909,7 +279911,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="inum" type="int">
+<parameter name="i" type="int">
 </parameter>
 </method>
 <method name="println"
@@ -279922,7 +279924,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="lnum" type="long">
+<parameter name="l" type="long">
 </parameter>
 </method>
 <method name="println"
@@ -279961,7 +279963,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="bool" type="boolean">
+<parameter name="b" type="boolean">
 </parameter>
 </method>
 <method name="setError"
@@ -280329,9 +280331,9 @@
 >
 <parameter name="buffer" type="byte[]">
 </parameter>
-<parameter name="offset" type="int">
+<parameter name="byteOffset" type="int">
 </parameter>
-<parameter name="count" type="int">
+<parameter name="byteCount" type="int">
 </parameter>
 <exception name="IOException" type="java.io.IOException">
 </exception>
@@ -280598,9 +280600,9 @@
 >
 <parameter name="buffer" type="byte[]">
 </parameter>
-<parameter name="offset" type="int">
+<parameter name="byteOffset" type="int">
 </parameter>
-<parameter name="count" type="int">
+<parameter name="byteCount" type="int">
 </parameter>
 <exception name="IOException" type="java.io.IOException">
 </exception>
@@ -286057,7 +286059,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="annotationClass" type="java.lang.Class&lt;A&gt;">
+<parameter name="annotationType" type="java.lang.Class&lt;A&gt;">
 </parameter>
 </method>
 <method name="getAnnotations"
@@ -286129,8 +286131,6 @@
 </parameter>
 <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
 </exception>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getConstructors"
  return="java.lang.reflect.Constructor&lt;?&gt;[]"
@@ -286142,8 +286142,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getDeclaredAnnotations"
  return="java.lang.annotation.Annotation[]"
@@ -286166,8 +286164,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getDeclaredConstructor"
  return="java.lang.reflect.Constructor&lt;T&gt;"
@@ -286183,8 +286179,6 @@
 </parameter>
 <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
 </exception>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getDeclaredConstructors"
  return="java.lang.reflect.Constructor&lt;?&gt;[]"
@@ -286196,8 +286190,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getDeclaredField"
  return="java.lang.reflect.Field"
@@ -286213,8 +286205,6 @@
 </parameter>
 <exception name="NoSuchFieldException" type="java.lang.NoSuchFieldException">
 </exception>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getDeclaredFields"
  return="java.lang.reflect.Field[]"
@@ -286226,8 +286216,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getDeclaredMethod"
  return="java.lang.reflect.Method"
@@ -286245,8 +286233,6 @@
 </parameter>
 <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
 </exception>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getDeclaredMethods"
  return="java.lang.reflect.Method[]"
@@ -286258,8 +286244,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getDeclaringClass"
  return="java.lang.Class&lt;?&gt;"
@@ -286330,8 +286314,6 @@
 </parameter>
 <exception name="NoSuchFieldException" type="java.lang.NoSuchFieldException">
 </exception>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getFields"
  return="java.lang.reflect.Field[]"
@@ -286343,8 +286325,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getGenericInterfaces"
  return="java.lang.reflect.Type[]"
@@ -286395,8 +286375,6 @@
 </parameter>
 <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
 </exception>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getMethods"
  return="java.lang.reflect.Method[]"
@@ -286408,8 +286386,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="getModifiers"
  return="int"
@@ -286546,7 +286522,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="annotationClass" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
+<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
 </parameter>
 </method>
 <method name="isAnonymousClass"
@@ -289892,7 +289868,7 @@
 <method name="abs"
  return="double"
  abstract="false"
- native="false"
+ native="true"
  synchronized="false"
  static="true"
  final="false"
@@ -289905,7 +289881,7 @@
 <method name="abs"
  return="float"
  abstract="false"
- native="false"
+ native="true"
  synchronized="false"
  static="true"
  final="false"
@@ -289918,7 +289894,7 @@
 <method name="abs"
  return="int"
  abstract="false"
- native="false"
+ native="true"
  synchronized="false"
  static="true"
  final="false"
@@ -289931,7 +289907,7 @@
 <method name="abs"
  return="long"
  abstract="false"
- native="false"
+ native="true"
  synchronized="false"
  static="true"
  final="false"
@@ -290229,7 +290205,7 @@
 <method name="max"
  return="int"
  abstract="false"
- native="false"
+ native="true"
  synchronized="false"
  static="true"
  final="false"
@@ -290289,7 +290265,7 @@
 <method name="min"
  return="int"
  abstract="false"
- native="false"
+ native="true"
  synchronized="false"
  static="true"
  final="false"
@@ -291615,7 +291591,7 @@
 <method name="availableProcessors"
  return="int"
  abstract="false"
- native="true"
+ native="false"
  synchronized="false"
  static="false"
  final="false"
@@ -293931,7 +293907,7 @@
 <method name="charAt"
  return="char"
  abstract="false"
- native="false"
+ native="true"
  synchronized="false"
  static="false"
  final="false"
@@ -293985,7 +293961,7 @@
 <method name="compareTo"
  return="int"
  abstract="false"
- native="false"
+ native="true"
  synchronized="false"
  static="false"
  final="false"
@@ -294295,7 +294271,7 @@
 <method name="isEmpty"
  return="boolean"
  abstract="false"
- native="false"
+ native="true"
  synchronized="false"
  static="false"
  final="false"
@@ -294362,7 +294338,7 @@
 <method name="length"
  return="int"
  abstract="false"
- native="false"
+ native="true"
  synchronized="false"
  static="false"
  final="false"
@@ -298258,8 +298234,6 @@
 </parameter>
 <parameter name="flag" type="boolean">
 </parameter>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 <method name="setAccessible"
  return="void"
@@ -298273,8 +298247,6 @@
 >
 <parameter name="flag" type="boolean">
 </parameter>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 </method>
 </class>
 <interface name="AnnotatedElement"
@@ -298759,6 +298731,19 @@
 </implements>
 <implements name="java.lang.reflect.Member">
 </implements>
+<method name="getAnnotation"
+ return="A"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="annotationType" type="java.lang.Class&lt;A&gt;">
+</parameter>
+</method>
 <method name="getDeclaringClass"
  return="java.lang.Class&lt;T&gt;"
  abstract="false"
@@ -298940,6 +298925,19 @@
 <exception name="IllegalArgumentException" type="java.lang.IllegalArgumentException">
 </exception>
 </method>
+<method name="getAnnotation"
+ return="A"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="annotationType" type="java.lang.Class&lt;A&gt;">
+</parameter>
+</method>
 <method name="getBoolean"
  return="boolean"
  abstract="false"
@@ -299573,6 +299571,19 @@
 </implements>
 <implements name="java.lang.reflect.Member">
 </implements>
+<method name="getAnnotation"
+ return="A"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="annotationType" type="java.lang.Class&lt;A&gt;">
+</parameter>
+</method>
 <method name="getDeclaringClass"
  return="java.lang.Class&lt;?&gt;"
  abstract="false"
@@ -302101,7 +302112,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="val" type="java.lang.String">
+<parameter name="s" type="java.lang.String">
 </parameter>
 </constructor>
 <method name="getPrecision"
@@ -310239,7 +310250,7 @@
 >
 <parameter name="s" type="java.lang.String">
 </parameter>
-<parameter name="enc" type="java.lang.String">
+<parameter name="charsetName" type="java.lang.String">
 </parameter>
 <exception name="UnsupportedEncodingException" type="java.io.UnsupportedEncodingException">
 </exception>
@@ -310271,9 +310282,9 @@
  deprecated="not deprecated"
  visibility="protected"
 >
-<parameter name="url1" type="java.net.URL">
+<parameter name="a" type="java.net.URL">
 </parameter>
-<parameter name="url2" type="java.net.URL">
+<parameter name="b" type="java.net.URL">
 </parameter>
 </method>
 <method name="getDefaultPort"
@@ -310389,9 +310400,9 @@
  deprecated="not deprecated"
  visibility="protected"
 >
-<parameter name="url1" type="java.net.URL">
+<parameter name="a" type="java.net.URL">
 </parameter>
-<parameter name="url2" type="java.net.URL">
+<parameter name="b" type="java.net.URL">
 </parameter>
 </method>
 <method name="setURL"
@@ -316814,7 +316825,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="newReplacement" type="java.lang.String">
+<parameter name="replacement" type="java.lang.String">
 </parameter>
 </method>
 <method name="replacement"
@@ -323442,7 +323453,7 @@
 >
 <parameter name="key" type="java.lang.String">
 </parameter>
-<parameter name="datnum" type="java.lang.String">
+<parameter name="value" type="java.lang.String">
 </parameter>
 </method>
 </class>
@@ -355502,7 +355513,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="nbits" type="int">
+<parameter name="bitCount" type="int">
 </parameter>
 </constructor>
 <method name="and"
@@ -355552,6 +355563,8 @@
  deprecated="not deprecated"
  visibility="public"
 >
+<parameter name="index" type="int">
+</parameter>
 </method>
 <method name="clear"
  return="void"
@@ -355563,8 +355576,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="index" type="int">
-</parameter>
 </method>
 <method name="clear"
  return="void"
@@ -355747,7 +355758,7 @@
 >
 <parameter name="index" type="int">
 </parameter>
-<parameter name="val" type="boolean">
+<parameter name="state" type="boolean">
 </parameter>
 </method>
 <method name="set"
@@ -355764,6 +355775,8 @@
 </parameter>
 <parameter name="toIndex" type="int">
 </parameter>
+<parameter name="state" type="boolean">
+</parameter>
 </method>
 <method name="set"
  return="void"
@@ -355779,8 +355792,6 @@
 </parameter>
 <parameter name="toIndex" type="int">
 </parameter>
-<parameter name="val" type="boolean">
-</parameter>
 </method>
 <method name="size"
  return="int"
@@ -357939,9 +357950,9 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="object1" type="T">
+<parameter name="lhs" type="T">
 </parameter>
-<parameter name="object2" type="T">
+<parameter name="rhs" type="T">
 </parameter>
 </method>
 <method name="equals"
@@ -363481,7 +363492,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="writer" type="java.io.PrintWriter">
+<parameter name="out" type="java.io.PrintWriter">
 </parameter>
 </method>
 <method name="load"
@@ -379260,7 +379271,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="s" type="java.lang.String">
+<parameter name="name" type="java.lang.String">
 </parameter>
 </constructor>
 <field name="CLASS_PATH"
@@ -380761,8 +380772,6 @@
 >
 <parameter name="encoding" type="java.lang.String">
 </parameter>
-<exception name="SecurityException" type="java.lang.SecurityException">
-</exception>
 <exception name="UnsupportedEncodingException" type="java.io.UnsupportedEncodingException">
 </exception>
 </method>
diff --git a/core/java/android/util/TimeUtils.java b/core/java/android/util/TimeUtils.java
index 9042505..93299eb 100644
--- a/core/java/android/util/TimeUtils.java
+++ b/core/java/android/util/TimeUtils.java
@@ -19,7 +19,7 @@
 import android.content.res.Resources;
 import android.content.res.XmlResourceParser;
 
-import org.apache.harmony.luni.internal.util.ZoneInfoDB;
+import libcore.util.ZoneInfoDB;
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 
diff --git a/core/java/android/util/Xml.java b/core/java/android/util/Xml.java
index b0c33e5..041e8a8 100644
--- a/core/java/android/util/Xml.java
+++ b/core/java/android/util/Xml.java
@@ -16,23 +16,21 @@
 
 package android.util;
 
-import org.xml.sax.ContentHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlSerializer;
-import org.xmlpull.v1.XmlPullParserException;
-import org.xmlpull.v1.XmlPullParserFactory;
-
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Reader;
 import java.io.StringReader;
 import java.io.UnsupportedEncodingException;
-
-import org.apache.harmony.xml.ExpatPullParser;
 import org.apache.harmony.xml.ExpatReader;
+import org.kxml2.io.KXmlParser;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlpull.v1.XmlPullParserFactory;
+import org.xmlpull.v1.XmlSerializer;
 
 /**
  * XML utility methods.
@@ -46,7 +44,7 @@
      * @see <a href="http://xmlpull.org/v1/doc/features.html#relaxed">
      *  specification</a>
      */
-    public static String FEATURE_RELAXED = ExpatPullParser.FEATURE_RELAXED;
+    public static String FEATURE_RELAXED = "http://xmlpull.org/v1/doc/features.html#relaxed";
 
     /**
      * Parses the given xml string and fires events on the given SAX handler.
@@ -57,8 +55,7 @@
             XMLReader reader = new ExpatReader();
             reader.setContentHandler(contentHandler);
             reader.parse(new InputSource(new StringReader(xml)));
-        }
-        catch (IOException e) {
+        } catch (IOException e) {
             throw new AssertionError(e);
         }
     }
@@ -88,16 +85,17 @@
     }
 
     /**
-     * Creates a new pull parser with namespace support.
-     *
-     * <p><b>Note:</b> This is actually slower than the SAX parser, and it's not
-     *   fully implemented. If you need a fast, mostly implemented pull parser,
-     *   use this. If you need a complete implementation, use KXML.
+     * Returns a new pull parser with namespace support.
      */
     public static XmlPullParser newPullParser() {
-        ExpatPullParser parser = new ExpatPullParser();
-        parser.setNamespaceProcessingEnabled(true);
-        return parser;
+        try {
+            KXmlParser parser = new KXmlParser();
+            parser.setFeature(XmlPullParser.FEATURE_PROCESS_DOCDECL, true);
+            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
+            return parser;
+        } catch (XmlPullParserException e) {
+            throw new AssertionError();
+        }
     }
 
     /**
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index 32ddc22..9b71a8b 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -254,7 +254,7 @@
             runtime.setTargetHeapUtilization(0.8f);
 
             // Start with a clean slate.
-            runtime.gcSoftReferences();
+            System.gc();
             runtime.runFinalizationSync();
             Debug.startAllocCounting();
 
@@ -281,7 +281,7 @@
                                 Log.v(TAG,
                                     " GC at " + Debug.getGlobalAllocSize());
                             }
-                            runtime.gcSoftReferences();
+                            System.gc();
                             runtime.runFinalizationSync();
                             Debug.resetGlobalAllocSize();
                         }
@@ -329,7 +329,7 @@
 
         Debug.startAllocCounting();
         try {
-            runtime.gcSoftReferences();
+            System.gc();
             runtime.runFinalizationSync();
             mResources = Resources.getSystem();
             mResources.startPreloading();
@@ -365,7 +365,7 @@
                 if (Config.LOGV) {
                     Log.v(TAG, " GC at " + Debug.getGlobalAllocSize());
                 }
-                runtime.gcSoftReferences();
+                System.gc();
                 runtime.runFinalizationSync();
                 Debug.resetGlobalAllocSize();
             }
@@ -388,7 +388,7 @@
                 if (Config.LOGV) {
                     Log.v(TAG, " GC at " + Debug.getGlobalAllocSize());
                 }
-                runtime.gcSoftReferences();
+                System.gc();
                 runtime.runFinalizationSync();
                 Debug.resetGlobalAllocSize();
             }
@@ -419,11 +419,11 @@
         /* runFinalizationSync() lets finalizers be called in Zygote,
          * which doesn't have a HeapWorker thread.
          */
-        runtime.gcSoftReferences();
+        System.gc();
         runtime.runFinalizationSync();
-        runtime.gcSoftReferences();
+        System.gc();
         runtime.runFinalizationSync();
-        runtime.gcSoftReferences();
+        System.gc();
         runtime.runFinalizationSync();
     }
 
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 25c0a13..2a11c87 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -699,6 +699,7 @@
             case 'n':   val = "-Xdexopt:none";      break;
             case 'v':   val = "-Xdexopt:verified";  break;
             case 'a':   val = "-Xdexopt:all";       break;
+            case 'f':   val = "-Xdexopt:full";      break;
             default:    val = NULL;                 break;
             }
 
diff --git a/core/tests/coretests/Android.mk b/core/tests/coretests/Android.mk
index b496805..b02d904 100644
--- a/core/tests/coretests/Android.mk
+++ b/core/tests/coretests/Android.mk
@@ -12,7 +12,7 @@
 	$(call all-java-files-under, EnabledTestApp/src)
 
 LOCAL_DX_FLAGS := --core-library
-LOCAL_STATIC_JAVA_LIBRARIES := core-tests-supportlib android-common frameworks-core-util-lib
+LOCAL_STATIC_JAVA_LIBRARIES := core-tests android-common frameworks-core-util-lib
 LOCAL_JAVA_LIBRARIES := android.test.runner
 LOCAL_PACKAGE_NAME := FrameworksCoreTests
 
diff --git a/core/tests/systemproperties/Android.mk b/core/tests/systemproperties/Android.mk
index 05216e0..9f01a28 100644
--- a/core/tests/systemproperties/Android.mk
+++ b/core/tests/systemproperties/Android.mk
@@ -9,7 +9,7 @@
 	$(call all-java-files-under, src)
 
 LOCAL_DX_FLAGS := --core-library
-LOCAL_STATIC_JAVA_LIBRARIES := core-tests-supportlib android-common frameworks-core-util-lib
+LOCAL_STATIC_JAVA_LIBRARIES := core-tests android-common frameworks-core-util-lib
 LOCAL_JAVA_LIBRARIES := android.test.runner
 LOCAL_PACKAGE_NAME := FrameworksCoreSystemPropertiesTests
 
diff --git a/test-runner/src/android/test/ClassPathPackageInfoSource.java b/test-runner/src/android/test/ClassPathPackageInfoSource.java
index 877075f..7b4e793 100644
--- a/test-runner/src/android/test/ClassPathPackageInfoSource.java
+++ b/test-runner/src/android/test/ClassPathPackageInfoSource.java
@@ -119,22 +119,12 @@
                 try {
                     if (entryName.endsWith(".apk")) {
                         findClassesInApk(entryName, packageName, classNames, subpackageNames);
-                    } else if ("true".equals(System.getProperty("android.vm.dexfile", "false"))) {
-                        // If the vm supports dex files then scan the directories that contain
-                        // apk files. 
+                    } else {
+                        // scan the directories that contain apk files.
                         for (String apkPath : apkPaths) {
                             File file = new File(apkPath);
                             scanForApkFiles(file, packageName, classNames, subpackageNames);
                         }
-                    } else if (entryName.endsWith(".jar")) {
-                        findClassesInJar(classPathEntry, pathPrefix,
-                                classNames, subpackageNames);
-                    } else if (classPathEntry.isDirectory()) {
-                        findClassesInDirectory(classPathEntry, packagePrefix, pathPrefix,
-                                classNames, subpackageNames);
-                    } else {
-                        throw new AssertionError("Don't understand classpath entry " +
-                                classPathEntry);
                     }
                 } catch (IOException e) {
                     throw new AssertionError("Can't read classpath entry " +