diff --git a/android_icu4j/Android.mk b/android_icu4j/Android.mk
new file mode 100644
index 0000000..a1641be
--- /dev/null
+++ b/android_icu4j/Android.mk
@@ -0,0 +1,90 @@
+#
+# Copyright (C) 2016 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.
+#
+
+LOCAL_PATH := $(call my-dir)
+
+#==========================================================
+# build repackaged ICU for target
+#
+# This is done in the libcore/JavaLibraries.mk file as there are circular
+# dependencies between ICU and libcore
+#==========================================================
+
+#==========================================================
+# build repackaged ICU tests for target
+#
+# Builds against core-libart and core-oj so that it can access all the
+# repackaged android.icu classes and methods and not just the ones available
+# through the Android API.
+#==========================================================
+include $(CLEAR_VARS)
+
+# Don't include this package in any target
+LOCAL_MODULE_TAGS := tests
+LOCAL_SRC_FILES := \
+    $(call all-java-files-under,src/main/tests) \
+    $(call all-java-files-under,cts-coverage/src/main/tests) \
+    $(call all-java-files-under,runner/src/main/java)
+LOCAL_JAVA_RESOURCE_DIRS := src/main/tests runner/src/main/java
+LOCAL_STATIC_JAVA_LIBRARIES := \
+    android-support-test
+LOCAL_JAVA_LIBRARIES := \
+        core-oj \
+        core-libart
+LOCAL_NO_STANDARD_LIBRARIES := true
+LOCAL_MODULE := android-icu4j-tests
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+#==========================================================
+# build repackaged ICU for host for testing purposes
+#
+# Uses the repackaged versions of the data jars
+#==========================================================
+include $(CLEAR_VARS)
+
+# Don't include this package in any target
+LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES := $(call all-java-files-under,src/main/java)
+LOCAL_STATIC_JAVA_LIBRARIES := \
+    icu4j-icudata-host-jarjar \
+    icu4j-icutzdata-host-jarjar
+LOCAL_JAVA_RESOURCE_DIRS := resources
+LOCAL_MODULE := android-icu4j-host
+include $(BUILD_HOST_JAVA_LIBRARY)
+
+#==========================================================
+# build repackaged ICU tests for host for testing purposes
+#
+# Run the tests using junit with the following command:
+#   java -cp ${ANDROID_BUILD_TOP}/out/host/linux-x86/framework/android-icu4j-tests-host.jar org.junit.runner.JUnitCore android.icu.dev.test.TestAll
+#
+# Run the tests using the ICU4J test framework with the following command:
+#   java -cp ${ANDROID_BUILD_TOP}/out/host/linux-x86/framework/android-icu4j-tests-host.jar android.icu.dev.test.TestAll
+#==========================================================
+include $(CLEAR_VARS)
+
+# Don't include this package in any target
+LOCAL_MODULE_TAGS := tests
+LOCAL_SRC_FILES := \
+    $(call all-java-files-under,src/main/tests) \
+    $(call all-java-files-under,runner/src/main/java) \
+    $(call all-java-files-under,runner/src/host/java)
+LOCAL_JAVA_RESOURCE_DIRS := src/main/tests
+LOCAL_STATIC_JAVA_LIBRARIES := \
+    android-icu4j-host \
+    junit
+LOCAL_MODULE := android-icu4j-tests-host
+include $(BUILD_HOST_JAVA_LIBRARY)
diff --git a/android_icu4j/cts-coverage/README.android b/android_icu4j/cts-coverage/README.android
new file mode 100644
index 0000000..e996c7c
--- /dev/null
+++ b/android_icu4j/cts-coverage/README.android
@@ -0,0 +1,3 @@
+This directory contains additional tests written for Android that ensure that the entire
+Android public ICU4J API has coverage. These tests will be added to ICU in a future release,
+at which point these tests can be deleted.
diff --git a/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/TestAll.java b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/TestAll.java
new file mode 100644
index 0000000..cb32763
--- /dev/null
+++ b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/TestAll.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2016 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 android.icu.cts.coverage;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+/**
+ * A suite of all the tests in this package and child packages.
+ */
+@RunWith(Suite.class)
+// Add classes in alphabetical order with a trailing comma even if it's the last entry.
+@Suite.SuiteClasses({
+        android.icu.cts.coverage.lang.TestAll.class,
+        android.icu.cts.coverage.text.TestAll.class,
+        android.icu.cts.coverage.util.TestAll.class,
+})
+public class TestAll {
+}
diff --git a/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/lang/TestAll.java b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/lang/TestAll.java
new file mode 100644
index 0000000..2856244
--- /dev/null
+++ b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/lang/TestAll.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2016 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 android.icu.cts.coverage.lang;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+/**
+ * A suite of all the tests in this package.
+ */
+@RunWith(Suite.class)
+// Add classes in alphabetical order with a trailing comma even if it's the last entry.
+@Suite.SuiteClasses({
+        UCharacterTest.class,
+})
+public class TestAll {
+}
diff --git a/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/lang/UCharacterTest.java b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/lang/UCharacterTest.java
new file mode 100644
index 0000000..0f24eaf
--- /dev/null
+++ b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/lang/UCharacterTest.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2016 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 android.icu.cts.coverage.lang;
+
+import android.icu.cts.coverage.rules.ULocaleDefault;
+import android.icu.cts.coverage.rules.ULocaleDefaultRule;
+import android.icu.lang.UCharacter;
+import java.util.Locale;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Extra tests to improve CTS Test Coverage.
+ */
+@RunWith(JUnit4.class)
+public class UCharacterTest {
+
+    @Rule
+    public ULocaleDefaultRule uLocaleDefaultRule = new ULocaleDefaultRule();
+
+    @Test
+    public void testNameAliasing() {
+        int input = '\u01a2';
+        String alias = UCharacter.getNameAlias(input);
+        assertEquals("LATIN CAPITAL LETTER GHA", alias);
+        int output = UCharacter.getCharFromNameAlias(alias);
+        assertEquals("alias for '" + input + "'", input, output);
+    }
+
+    @Test
+    public void testToTitleCase_Locale_String_BreakIterator_I() {
+        String titleCase = UCharacter.toTitleCase(Locale.forLanguageTag("nl"), "ijsland", null,
+                UCharacter.FOLD_CASE_DEFAULT);
+        assertEquals("IJsland", titleCase);
+    }
+
+    @ULocaleDefault(languageTag = "nl")
+    @Test
+    public void testToTitleCase_String_BreakIterator_nl() {
+        String titleCase = UCharacter.toTitleCase("ijsland", null);
+        assertEquals("IJsland", titleCase);
+    }
+
+    @ULocaleDefault(languageTag = "en")
+    @Test
+    public void testToTitleCase_String_BreakIterator_en() {
+        String titleCase = UCharacter.toTitleCase("ijsland", null);
+        assertEquals("Ijsland", titleCase);
+    }
+}
diff --git a/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/rules/ULocaleDefault.java b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/rules/ULocaleDefault.java
new file mode 100644
index 0000000..fc71879
--- /dev/null
+++ b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/rules/ULocaleDefault.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2016 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 android.icu.cts.coverage.rules;
+
+import android.icu.util.ULocale;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Mark a test method that requires a new default {@link ULocale}
+ *
+ * <p>Sets the default to the {@link ULocale} obtained by calling
+ * {@link ULocale#forLanguageTag(String)} with the value returned from {@link #languageTag()}
+ * before executing the method and restores the previous default afterwards.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ ElementType.METHOD})
+public @interface ULocaleDefault {
+    String languageTag();
+}
diff --git a/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/rules/ULocaleDefaultRule.java b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/rules/ULocaleDefaultRule.java
new file mode 100644
index 0000000..72b2d69
--- /dev/null
+++ b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/rules/ULocaleDefaultRule.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2016 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 android.icu.cts.coverage.rules;
+
+import android.icu.util.ULocale;
+import org.junit.rules.MethodRule;
+import org.junit.runners.model.FrameworkMethod;
+import org.junit.runners.model.Statement;
+
+/**
+ * Add this as a rule to a JUnit 4 class to support switching the {@link ULocale#getDefault()} for
+ * the duration of the test method.
+ *
+ * <p>Only affects test methods that are annotated with {@link ULocaleDefault}.
+ *
+ * @see ULocaleDefault
+ */
+@SuppressWarnings("deprecation")
+public class ULocaleDefaultRule implements MethodRule {
+
+    @Override
+    public Statement apply(final Statement base, FrameworkMethod method, Object target) {
+        final ULocaleDefault annotation = method.getAnnotation(ULocaleDefault.class);
+        if (annotation == null) {
+            return base;
+        } else {
+            return new Statement() {
+                @Override
+                public void evaluate() throws Throwable {
+                    ULocale previousDefault = ULocale.getDefault();
+                    try {
+                        ULocale.setDefault(ULocale.forLanguageTag(annotation.languageTag()));
+                        base.evaluate();
+                    } finally {
+                        ULocale.setDefault(previousDefault);
+                    }
+                }
+            };
+        }
+    }
+}
diff --git a/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/text/RelativeDateTimeFormatterTest.java b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/text/RelativeDateTimeFormatterTest.java
new file mode 100644
index 0000000..9fc5044
--- /dev/null
+++ b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/text/RelativeDateTimeFormatterTest.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2016 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 android.icu.cts.coverage.text;
+
+import android.icu.text.RelativeDateTimeFormatter;
+import android.icu.util.ULocale;
+import java.util.Locale;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Extra tests to improve CTS Test Coverage.
+ */
+@RunWith(JUnit4.class)
+public class RelativeDateTimeFormatterTest {
+
+    /**
+     * Ensure that it behaves the same with an implicit default locale as it does with explicitly
+     * specifying the default locale.
+     */
+    @Test
+    public void testGetInstance() {
+        RelativeDateTimeFormatter withImplicitDefaultLocale
+                = RelativeDateTimeFormatter.getInstance(Locale.CANADA);
+        RelativeDateTimeFormatter withExplicitDefaultLocale
+                = RelativeDateTimeFormatter.getInstance(ULocale.getDefault());
+
+        String formatWithImplicitDefaultLocale =
+                withImplicitDefaultLocale.format(5,
+                        RelativeDateTimeFormatter.Direction.NEXT,
+                        RelativeDateTimeFormatter.RelativeUnit.MINUTES);
+
+        String formatWithExplicitDefaultLocale =
+                withExplicitDefaultLocale.format(5,
+                        RelativeDateTimeFormatter.Direction.NEXT,
+                        RelativeDateTimeFormatter.RelativeUnit.MINUTES);
+
+        assertEquals(formatWithExplicitDefaultLocale, formatWithImplicitDefaultLocale);
+    }
+}
diff --git a/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/text/TestAll.java b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/text/TestAll.java
new file mode 100644
index 0000000..1424606
--- /dev/null
+++ b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/text/TestAll.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2016 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 android.icu.cts.coverage.text;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+/**
+ * A suite of all the tests in this package.
+ */
+@RunWith(Suite.class)
+// Add classes in alphabetical order with a trailing comma even if it's the last entry.
+@Suite.SuiteClasses({
+        RelativeDateTimeFormatterTest.class,
+        TimeZoneNamesTest.class,
+        UnicodeSetTest.class,
+})
+public class TestAll {
+}
diff --git a/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/text/TimeZoneNamesTest.java b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/text/TimeZoneNamesTest.java
new file mode 100644
index 0000000..5af46b9
--- /dev/null
+++ b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/text/TimeZoneNamesTest.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2016 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 android.icu.cts.coverage.text;
+
+import android.icu.text.TimeZoneNames;
+import android.icu.util.ULocale;
+import java.util.Locale;
+import java.util.Set;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Extra tests to improve CTS Test Coverage.
+ */
+@RunWith(JUnit4.class)
+public class TimeZoneNamesTest {
+
+    @Test
+    public void testGetInstance_Locale() {
+        TimeZoneNames uLocaleInstance = TimeZoneNames.getInstance(ULocale.CANADA);
+        TimeZoneNames localeInstance = TimeZoneNames.getInstance(Locale.CANADA);
+
+        Set<String> uLocaleAvailableIds = uLocaleInstance.getAvailableMetaZoneIDs();
+        Set<String> localeAvailableIds = localeInstance.getAvailableMetaZoneIDs();
+        assertEquals("Available ids", uLocaleAvailableIds, localeAvailableIds);
+
+        for (String availableId : uLocaleAvailableIds) {
+            long date = 1458385200000L;
+            TimeZoneNames.NameType nameType = TimeZoneNames.NameType.SHORT_GENERIC;
+            String uLocaleName = uLocaleInstance.getDisplayName(availableId, nameType, date);
+            String localeName = localeInstance.getDisplayName(availableId, nameType, date);
+            assertEquals("Id: " + availableId, uLocaleName, localeName);
+        }
+    }
+}
diff --git a/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/text/UnicodeSetTest.java b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/text/UnicodeSetTest.java
new file mode 100644
index 0000000..d30ffc0
--- /dev/null
+++ b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/text/UnicodeSetTest.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2016 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 android.icu.cts.coverage.text;
+
+import android.icu.text.UnicodeSet;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import java.nio.charset.Charset;
+import java.util.Arrays;
+import java.util.Collections;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+@RunWith(JUnit4.class)
+public class UnicodeSetTest {
+    @Test
+    public void testAddAll_CharacterSequences() {
+        UnicodeSet unicodeSet = new UnicodeSet();
+        unicodeSet.addAll("a", "b");
+        assertEquals("[ab]", unicodeSet.toPattern(true));
+        unicodeSet.addAll("b", "x");
+        assertEquals("[abx]", unicodeSet.toPattern(true));
+        unicodeSet.addAll(new CharSequence[]{new StringBuilder("foo"), new StringBuffer("bar")});
+        assertEquals("[abx{bar}{foo}]", unicodeSet.toPattern(true));
+    }
+
+    @Test
+    public void testCompareTo() {
+        assertEquals(0, UnicodeSet.EMPTY.compareTo(Collections.emptyList()));
+        assertEquals(0, UnicodeSet.fromAll("a").compareTo(Collections.singleton("a")));
+
+        // Longer is bigger
+        assertTrue(UnicodeSet.ALL_CODE_POINTS.compareTo(Collections.emptyList()) > 0);
+        assertTrue(UnicodeSet.EMPTY.compareTo(Collections.singleton("a")) < 0);
+
+        // Equal length compares on first difference.
+        assertTrue(UnicodeSet.fromAll("a").compareTo(Collections.singleton("b")) < 0);
+        assertTrue(UnicodeSet.fromAll("ab").compareTo(Arrays.asList("a", "c")) < 0);
+        assertTrue(UnicodeSet.fromAll("b").compareTo(Collections.singleton("a")) > 0);
+    }
+}
diff --git a/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/util/CurrencyTest.java b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/util/CurrencyTest.java
new file mode 100644
index 0000000..26f530f
--- /dev/null
+++ b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/util/CurrencyTest.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2016 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 android.icu.cts.coverage.util;
+
+import android.icu.util.Currency;
+import android.icu.util.ULocale;
+import java.util.Locale;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Extra tests to improve CTS Test Coverage.
+ */
+@RunWith(JUnit4.class)
+public class CurrencyTest {
+
+    @Test
+    public void testGetName_Locale_Int_String_BooleanArray() {
+        Currency currency = Currency.getInstance(ULocale.CHINA);
+        boolean[] isChoiceFormat = new boolean[1];
+        int nameStyle = Currency.LONG_NAME;
+        String pluralCount = "";
+        String ulocaleName =
+                currency.getName(ULocale.CANADA, nameStyle, pluralCount, isChoiceFormat);
+        assertEquals("Chinese Yuan", ulocaleName);
+        String localeName = currency.getName(Locale.CANADA, nameStyle, pluralCount, isChoiceFormat);
+        assertEquals("currency name mismatch", ulocaleName, localeName);
+    }
+
+    @Test
+    public void testGetDefaultFractionDigits_CurrencyUsage() {
+        Currency currency = Currency.getInstance(ULocale.CHINA);
+        int cashFractionDigits = currency.getDefaultFractionDigits(Currency.CurrencyUsage.CASH);
+        assertEquals(2, cashFractionDigits);
+    }
+
+    @Test
+    public void testGetRoundingIncrement() {
+        Currency currency = Currency.getInstance(ULocale.JAPAN);
+        // It appears as though this always returns 0 irrespective of the currency.
+        double roundingIncrement = currency.getRoundingIncrement();
+        assertEquals(0, roundingIncrement, 0);
+    }
+
+    @Test
+    public void testGetRoundingIncrement_CurrencyUsage() {
+        Currency currency = Currency.getInstance(ULocale.JAPAN);
+        // It appears as though this always returns 0 irrespective of the currency or usage.
+        double roundingIncrement = currency.getRoundingIncrement(Currency.CurrencyUsage.CASH);
+        assertEquals(0, roundingIncrement, 0);
+    }
+}
diff --git a/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/util/TestAll.java b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/util/TestAll.java
new file mode 100644
index 0000000..d1e78d2
--- /dev/null
+++ b/android_icu4j/cts-coverage/src/main/tests/android/icu/cts/coverage/util/TestAll.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2016 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 android.icu.cts.coverage.util;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+/**
+ * A suite of all the tests in this package.
+ */
+@RunWith(Suite.class)
+// Add classes in alphabetical order with a trailing comma even if it's the last entry.
+@Suite.SuiteClasses({
+        CurrencyTest.class,
+})
+public class TestAll {
+}
diff --git a/android_icu4j/runner/src/host/java/android/support/test/internal/util/AndroidRunnerParams.java b/android_icu4j/runner/src/host/java/android/support/test/internal/util/AndroidRunnerParams.java
new file mode 100644
index 0000000..e6d4501
--- /dev/null
+++ b/android_icu4j/runner/src/host/java/android/support/test/internal/util/AndroidRunnerParams.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2016 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 android.support.test.internal.util;
+
+/**
+ * A dummy class used to support running ICU JUnit tests on host.
+ */
+public class AndroidRunnerParams {
+
+    public boolean isSkipExecution() {
+        return false;
+    }
+}
diff --git a/android_icu4j/runner/src/main/java/android/icu/junit/ErrorReportingRunner.java b/android_icu4j/runner/src/main/java/android/icu/junit/ErrorReportingRunner.java
new file mode 100644
index 0000000..38cd26f
--- /dev/null
+++ b/android_icu4j/runner/src/main/java/android/icu/junit/ErrorReportingRunner.java
@@ -0,0 +1,123 @@
+package android.icu.junit;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import org.junit.runner.Description;
+import org.junit.runner.Runner;
+import org.junit.runner.manipulation.Filter;
+import org.junit.runner.manipulation.Filterable;
+import org.junit.runner.manipulation.NoTestsRemainException;
+import org.junit.runner.notification.Failure;
+import org.junit.runner.notification.RunNotifier;
+import org.junit.runners.model.InitializationError;
+
+/**
+ * A copy of the JUnit 4.10 {@link org.junit.internal.runners.ErrorReportingRunner} class.
+ *
+ * <p>Modified as follows:</p>
+ *
+ * <ul>
+ * <li>allows the class in error to be specified by name rather than {@link Class} object so that it
+ * can be used for when the class could not be found. See
+ * {@link #ErrorReportingRunner(String, Throwable)} and
+ * {@link #fTestClassName}.
+ * <li>supports filtering of the individual causes. See {@link #filter(Filter)}.
+ * <li>uses the cause to construct the description allowing filtering on specific error messages.
+ * See {@link #describeCause(Throwable)}.
+ * </ul>
+ *
+ * See https://github.com/junit-team/junit/issues/1253
+ */
+// android-changed - implements Filterable
+class ErrorReportingRunner extends Runner implements Filterable {
+    private final List<Throwable> fCauses;
+
+    // android-changed - changed type from Class<?> and renamed from fTestClass.
+    private final String fTestClassName;
+
+    public ErrorReportingRunner(String testClassName, Throwable cause) {
+        fTestClassName = testClassName;
+        // Take a copy so that they can be modified during filtering if necessary.
+        fCauses = new ArrayList<>(getCauses(cause));
+    }
+    // end android-changed
+
+    @Override
+    public Description getDescription() {
+        // android-changed - renamed from fTestClass.
+        Description description= Description.createSuiteDescription(fTestClassName);
+        // end android-changed
+        for (Throwable each : fCauses)
+            description.addChild(describeCause(each));
+        return description;
+    }
+
+    @Override
+    public void run(RunNotifier notifier) {
+        for (Throwable each : fCauses)
+            runCause(each, notifier);
+    }
+
+    // android-changed - added filtering support
+    @Override
+    public void filter(Filter filter) throws NoTestsRemainException {
+        Iterator<Throwable> iterator = fCauses.iterator();
+        while (iterator.hasNext()) {
+            Throwable cause = iterator.next();
+            Description description = describeCause(cause);
+            if (!filter.shouldRun(description)) {
+                iterator.remove();
+            }
+        }
+
+        // If there are no causes left then throw an exception to cause the parent runner, if any,
+        // to remove this runner from its list.
+        if (fCauses.isEmpty()) {
+            throw new NoTestsRemainException();
+        }
+    }
+    // end android-changed
+
+    @SuppressWarnings("deprecation")
+    private List<Throwable> getCauses(Throwable cause) {
+        if (cause instanceof InvocationTargetException)
+            return getCauses(cause.getCause());
+        if (cause instanceof InitializationError)
+            return ((InitializationError) cause).getCauses();
+        if (cause instanceof org.junit.internal.runners.InitializationError)
+            return ((org.junit.internal.runners.InitializationError) cause)
+                    .getCauses();
+        return Arrays.asList(cause);
+    }
+
+    private Description describeCause(Throwable child) {
+        // android-changed - create a description that incorporates the cause
+        // Extract the first line of the message, exclude any special characters that could
+        // cause problems with later parsing of the description.
+        String message = child.getMessage();
+        Matcher matcher = Pattern.compile("^([^()\n]*).*").matcher(message);
+        if (matcher.matches()) {
+            message = matcher.group(1);
+        }
+
+        // Create a suite description (need to use that method because the createTestDescription
+        // methods use a class rather than a class name).
+        String causeClassName = child.getClass().getName();
+        return Description.createSuiteDescription(
+                String.format("initializationError[%s: %s](%s)",
+                        causeClassName, message, fTestClassName));
+        // end android-changed
+    }
+
+    private void runCause(Throwable child, RunNotifier notifier) {
+        Description description= describeCause(child);
+        notifier.fireTestStarted(description);
+        notifier.fireTestFailure(new Failure(description, child));
+        notifier.fireTestFinished(description);
+    }
+}
\ No newline at end of file
diff --git a/android_icu4j/runner/src/main/java/android/icu/junit/IcuFrameworkTest.java b/android_icu4j/runner/src/main/java/android/icu/junit/IcuFrameworkTest.java
new file mode 100644
index 0000000..b6fc748
--- /dev/null
+++ b/android_icu4j/runner/src/main/java/android/icu/junit/IcuFrameworkTest.java
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2016 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 android.icu.junit;
+
+import android.icu.dev.test.TestFmwk;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import junit.framework.AssertionFailedError;
+import org.junit.runner.Description;
+
+/**
+ * Represents a test within a {@link TestFmwk} class.
+ */
+final class IcuFrameworkTest implements Comparable<IcuFrameworkTest> {
+
+    private static final String[] EMPTY_ARGS = new String[0];
+
+    private static final Pattern EXTRACT_ERROR_INFO = Pattern.compile(
+            "^[A-Za-z0-9_]+ \\{(\n.*)\n\\}.*", Pattern.DOTALL);
+
+    /**
+     * The {@link TestFmwk} instance on which the tests will be run.
+     */
+    private final TestFmwk testFmwk;
+
+    private final TestFmwk.Target target;
+
+    /**
+     * The name of the individual target to run.
+     */
+    private final String methodName;
+
+    IcuFrameworkTest(TestFmwk testFmwk, TestFmwk.Target target, String methodName) {
+        this.testFmwk = testFmwk;
+        this.target = target;
+        this.methodName = methodName;
+    }
+
+    public String getMethodName() {
+        return methodName;
+    }
+
+    /**
+     * Runs the target.
+     */
+    public void run() {
+        test_for_TestFmwk_Run();
+    }
+
+    /**
+     * A special method to avoid the TestFmwk from throwing an InternalError when an error occurs
+     * during execution of the test but outside the actual test method, e.g. in a
+     * {@link TestFmwk#validate()} method. See http://bugs.icu-project.org/trac/ticket/12183
+     *
+     * <p>DO NOT CHANGE THE NAME
+     */
+    private void test_for_TestFmwk_Run() {
+        StringWriter stringWriter = new StringWriter();
+        PrintWriter log = new PrintWriter(stringWriter);
+
+        TestFmwk.TestParams localParams = TestFmwk.TestParams.create(EMPTY_ARGS, log);
+        if (localParams == null) {
+            throw new IllegalStateException("Could not create params");
+        }
+
+        // We don't want an error summary as we are only running one test.
+        localParams.errorSummary = null;
+
+        try {
+            // Make sure that the TestFmwk is initialized with the correct parameters. This method
+            // is being called solely for its side effect of updating the TestFmwk.params field.
+            testFmwk.resolveTarget(localParams);
+
+            // Run the target.
+            target.run();
+        } catch (Exception e) {
+            // Output the exception to the log and make sure it is treated as an error.
+            e.printStackTrace(log);
+            localParams.errorCount++;
+        }
+
+        // Treat warnings as errors.
+        int errorCount = localParams.errorCount + localParams.warnCount;
+
+        // Ensure that all data is written to the StringWriter.
+        log.flush();
+
+        // Treat warnings as errors.
+        String information = stringWriter.toString();
+        if (errorCount != 0) {
+            // Remove unnecessary formatting.
+            Matcher matcher = EXTRACT_ERROR_INFO.matcher(information);
+            if (matcher.matches()) {
+                information = matcher.group(1)/*.replace("\n    ", "\n")*/;
+            }
+
+            // Also append the logs to the console output.
+            String output = "Failure: " + getDescription() + ", due to "
+                    + errorCount + " error(s)\n" + information;
+
+            throw new AssertionFailedError(output);
+        }
+    }
+
+    /**
+     * Get the JUnit {@link Description}
+     */
+    public Description getDescription() {
+        // Get a description for the specific method within the class.
+        return Description.createTestDescription(testFmwk.getClass(), methodName);
+    }
+
+    @Override
+    public int compareTo(IcuFrameworkTest o) {
+        return methodName.compareTo(o.methodName);
+    }
+}
diff --git a/android_icu4j/runner/src/main/java/android/icu/junit/IcuTestFmwkRunner.java b/android_icu4j/runner/src/main/java/android/icu/junit/IcuTestFmwkRunner.java
new file mode 100644
index 0000000..965ff1d
--- /dev/null
+++ b/android_icu4j/runner/src/main/java/android/icu/junit/IcuTestFmwkRunner.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2016 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 android.icu.junit;
+
+import android.icu.dev.test.TestFmwk;
+import android.support.test.internal.util.AndroidRunnerParams;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import org.junit.runner.Description;
+import org.junit.runner.notification.RunNotifier;
+import org.junit.runners.model.Statement;
+
+/**
+ * A {@link org.junit.runner.Runner} that can be used to run a class that is a {@link TestFmwk}
+ * but not a {@link android.icu.dev.test.TestFmwk.TestGroup}
+ */
+public class IcuTestFmwkRunner extends IcuTestParentRunner<IcuFrameworkTest> {
+
+    /**
+     * A {@link Statement} that does nothing, used when skipping execution.
+     */
+    private static final Statement EMPTY_STATEMENT = new Statement() {
+        @Override
+        public void evaluate() throws Throwable {
+        }
+    };
+
+    private final boolean skipExecution;
+
+    private final List<IcuFrameworkTest> tests;
+
+    /**
+     * The constructor used when this class is used with {@code @RunWith(...)}.
+     */
+    public IcuTestFmwkRunner(Class<?> testClass)
+            throws Exception {
+        this(checkClass(testClass), null);
+    }
+
+    /**
+     * Make sure that the supplied test class is supported by this.
+     */
+    private static Class<? extends TestFmwk> checkClass(Class<?> testClass) {
+        if (!TestFmwk.class.isAssignableFrom(testClass)) {
+            throw new IllegalStateException(
+                    "Cannot use " + IcuTestFmwkRunner.class + " for running "
+                            + testClass + " as it is not a " + TestFmwk.class);
+        }
+        if (TestFmwk.TestGroup.class.isAssignableFrom(testClass)) {
+            throw new IllegalStateException(
+                    "Cannot use " + IcuTestFmwkRunner.class + " for running "
+                            + testClass + " as it is a " + TestFmwk.TestGroup.class
+                            + ": Use @RunWith(" + IcuTestGroupRunner.class.getSimpleName()
+                            + ".class) instead");
+        }
+
+        return testClass.asSubclass(TestFmwk.class);
+    }
+
+    public IcuTestFmwkRunner(Class<? extends TestFmwk> testFmwkClass,
+            AndroidRunnerParams runnerParams)
+            throws Exception {
+        super(testFmwkClass);
+
+        this.skipExecution = runnerParams != null && runnerParams.isSkipExecution();
+
+        // Create a TestFmwk and make sure that it's initialized properly.
+        TestFmwk testFmwk = TestFmwkUtils.newTestFmwkInstance(testFmwkClass);
+
+        tests = new ArrayList<>();
+
+        TestFmwk.Target target = TestFmwkUtils.getTargets(testFmwk);
+        while (target != null) {
+            String name = target.name;
+            // Just ignore targets that do not have a name, they are do nothing place holders.
+            if (name != null) {
+                tests.add(new IcuFrameworkTest(testFmwk, target, name));
+            }
+            target = target.getNext();
+        }
+
+        // If the class has no tests then fail.
+        if (tests.isEmpty()) {
+            throw new IllegalStateException("Cannot find any tests for " + testFmwkClass);
+        }
+
+        // Sort the methods to ensure consistent ordering.
+        Collections.sort(tests);
+    }
+
+    @Override
+    protected List<IcuFrameworkTest> getChildren() {
+        return tests;
+    }
+
+    @Override
+    protected Description describeChild(IcuFrameworkTest child) {
+        return child.getDescription();
+    }
+
+    @Override
+    protected void runChild(final IcuFrameworkTest child, RunNotifier notifier) {
+        Description description = describeChild(child);
+        Statement statement;
+        if (skipExecution) {
+            statement = EMPTY_STATEMENT;
+        } else {
+            statement = new Statement() {
+                @Override
+                public void evaluate() throws Throwable {
+                    child.run();
+                }
+            };
+        }
+        runLeaf(statement, description, notifier);
+    }
+}
diff --git a/android_icu4j/runner/src/main/java/android/icu/junit/IcuTestGroupRunner.java b/android_icu4j/runner/src/main/java/android/icu/junit/IcuTestGroupRunner.java
new file mode 100644
index 0000000..7cead85
--- /dev/null
+++ b/android_icu4j/runner/src/main/java/android/icu/junit/IcuTestGroupRunner.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2016 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 android.icu.junit;
+
+import android.icu.dev.test.TestFmwk;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.runner.Description;
+import org.junit.runner.Runner;
+import org.junit.runner.notification.RunNotifier;
+import org.junit.runners.model.RunnerBuilder;
+
+/**
+ * A {@link org.junit.runner.Runner} that can be used to run a class that is a
+ * {@link TestFmwk.TestGroup} but not a {@link TestFmwk}
+ */
+public class IcuTestGroupRunner extends IcuTestParentRunner<Runner> {
+
+    private final List<Runner> runners;
+
+    /**
+     * The constructor used when this class is used with {@code @RunWith(...)}.
+     */
+    public IcuTestGroupRunner(Class<?> testClass, RunnerBuilder runnerBuilder)
+            throws Exception {
+        super(testClass);
+
+        Class<? extends TestFmwk.TestGroup> testGroupClass = checkClass(testClass);
+
+        // Create a TestGroup and make sure that it's initialized properly.
+        TestFmwk.TestGroup testGroup = TestFmwkUtils.newTestFmwkInstance(testGroupClass);
+
+        runners = new ArrayList<>();
+        List<String> classNames = TestFmwkUtils.getClassNames(testGroup);
+        ClassLoader classLoader = testGroupClass.getClassLoader();
+        for (String className : classNames) {
+            Runner runner;
+
+            try {
+                Class<?> childTestClass = Class.forName(className, false, classLoader);
+                runner = runnerBuilder.safeRunnerForClass(childTestClass);
+            } catch (ClassNotFoundException e) {
+                runner = new ErrorReportingRunner(className, e);
+            }
+
+            runners.add(runner);
+        }
+    }
+
+    /**
+     * Make sure that the supplied test class is supported by this.
+     */
+    private static Class<? extends TestFmwk.TestGroup> checkClass(Class<?> testClass) {
+        if (!TestFmwk.TestGroup.class.isAssignableFrom(testClass)) {
+            if (TestFmwk.class.isAssignableFrom(testClass)) {
+                throw new IllegalStateException(
+                        "Cannot use " + IcuTestGroupRunner.class + " for running "
+                                + testClass + " as it is a " + TestFmwk.class
+                                + ": Use @RunWith(" + IcuTestFmwkRunner.class.getSimpleName()
+                                + ".class) instead");
+            }
+            throw new IllegalStateException(
+                    "Cannot use " + IcuTestGroupRunner.class + " for running "
+                            + testClass + " as it is not a " + TestFmwk.TestGroup.class);
+        }
+
+        return testClass.asSubclass(TestFmwk.TestGroup.class);
+    }
+
+    @Override
+    protected List<Runner> getChildren() {
+        return runners;
+    }
+
+    @Override
+    protected Description describeChild(Runner child) {
+        return child.getDescription();
+    }
+
+    @Override
+    protected void runChild(Runner child, RunNotifier notifier) {
+        child.run(notifier);
+    }
+}
diff --git a/android_icu4j/runner/src/main/java/android/icu/junit/IcuTestParentRunner.java b/android_icu4j/runner/src/main/java/android/icu/junit/IcuTestParentRunner.java
new file mode 100644
index 0000000..728a356
--- /dev/null
+++ b/android_icu4j/runner/src/main/java/android/icu/junit/IcuTestParentRunner.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2016 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 android.icu.junit;
+
+import org.junit.runners.ParentRunner;
+import org.junit.runners.model.InitializationError;
+
+/**
+ * Extends {@link ParentRunner} to prevent it from trying to create an instance of
+ * {@link org.junit.runners.model.TestClass} for the supplied {@code testClass} because that
+ * requires that the {@code testClass} has only a single constructor and at least one ICU test
+ * ({@code android.icu.dev.test.serializable.CoverageTest}) has more than one constructor.
+ *
+ * <p>This provides a dummy class and overrides the {@link #getName()} method to return the
+ * correct name. The consequence of this is that it is not possible to use JUnit 4 annotations
+ * related to the class, like {@link org.junit.BeforeClass}, {@link org.junit.ClassRule}, etc.
+ */
+abstract class IcuTestParentRunner<T> extends ParentRunner<T> {
+
+    private final Class<?> testClass;
+
+    IcuTestParentRunner(Class<?> testClass) throws InitializationError {
+        super(DummyTestClass.class);
+        this.testClass = testClass;
+    }
+
+    @Override
+    protected String getName() {
+        return testClass.getName();
+    }
+
+    /**
+     * A dummy test class to pass to {@link ParentRunner} for it to validate and check for
+     * annotations.
+     *
+     * <p>Must be public.
+     */
+    public static class DummyTestClass {
+
+    }
+}
diff --git a/android_icu4j/runner/src/main/java/android/icu/junit/IcuTestRunnerBuilder.java b/android_icu4j/runner/src/main/java/android/icu/junit/IcuTestRunnerBuilder.java
new file mode 100644
index 0000000..82c3044
--- /dev/null
+++ b/android_icu4j/runner/src/main/java/android/icu/junit/IcuTestRunnerBuilder.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2016 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 android.icu.junit;
+
+import android.icu.dev.test.TestFmwk;
+import android.support.test.internal.util.AndroidRunnerParams;
+import org.junit.internal.builders.AnnotatedBuilder;
+import org.junit.runner.Runner;
+import org.junit.runners.model.RunnerBuilder;
+
+/**
+ * A {@link RunnerBuilder} used for running ICU test classes derived from {@link TestFmwk}.
+ */
+public class IcuTestRunnerBuilder extends RunnerBuilder {
+
+    private final AndroidRunnerParams runnerParams;
+
+    private final AnnotatedBuilder annotatedBuilder;
+
+    public IcuTestRunnerBuilder(AndroidRunnerParams runnerParams) {
+        this.runnerParams = runnerParams;
+        annotatedBuilder = new AnnotatedBuilder(this);
+    }
+
+    @Override
+    public Runner runnerForClass(Class<?> testClass) throws Throwable {
+        // Check for a TestGroup before a TestFmwk class as TestGroup is a subclass of TestFmwk
+        if (TestFmwk.TestGroup.class.isAssignableFrom(testClass)) {
+            return new IcuTestGroupRunner(testClass.asSubclass(TestFmwk.TestGroup.class), this);
+        }
+
+        if (TestFmwk.class.isAssignableFrom(testClass)) {
+            // Make sure that in the event of an error the resulting Runner an be filtered out.
+            return new IcuTestFmwkRunner(testClass.asSubclass(TestFmwk.class), runnerParams);
+        }
+
+        // Fallback to using the annotation builder to support the extra icu cts tests.
+        return annotatedBuilder.safeRunnerForClass(testClass);
+    }
+}
diff --git a/android_icu4j/runner/src/main/java/android/icu/junit/TestFmwkUtils.java b/android_icu4j/runner/src/main/java/android/icu/junit/TestFmwkUtils.java
new file mode 100644
index 0000000..2da24ed
--- /dev/null
+++ b/android_icu4j/runner/src/main/java/android/icu/junit/TestFmwkUtils.java
@@ -0,0 +1,165 @@
+/*
+ * Copyright (C) 2016 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 android.icu.junit;
+
+import android.icu.dev.test.TestFmwk;
+import android.icu.util.TimeZone;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Locale;
+
+/**
+ * Abstracts away reflection code that accesses various hidden fields and methods in the ICU test
+ * framework.
+ *
+ * <p>Assuming that this is integrated into ICU test framework itself then ideally the test
+ * framework will itself be modified to remove the need for this reflection at which point this
+ * class can be removed.
+ */
+public class TestFmwkUtils {
+
+    /**
+     * The field on TestGroup which has the list of classes in it.
+     */
+    private static final Field classesToTestField = getField(TestFmwk.TestGroup.class, "names");
+
+    /**
+     * The field on TestGroup which has the default package in it.
+     */
+    private static final Field defaultPackageField =
+            getField(TestFmwk.TestGroup.class, "defaultPackage");
+
+    /**
+     * The field on TestFmwk which has the {@link android.icu.dev.test.TestFmwk.TestParams} in it.
+     */
+    private static final Field paramsField = getField(TestFmwk.class, "params");
+
+    private static final Method getTargetsMethod = getTargetsMethod();
+
+    /**
+     * The default time zone for all the tests.
+     */
+    private final static TimeZone defaultTimeZone =
+        getStaticFieldValue("defaultTimeZone", TimeZone.class);
+
+    /**
+     * The default locale used for all the tests.
+     */
+    private final static Locale defaultLocale = getStaticFieldValue("defaultLocale", Locale.class);
+
+    private static <T> T getStaticFieldValue(String fieldName, Class<T> fieldClass) {
+        Field field = getField(TestFmwk.class, fieldName);
+        try {
+            return fieldClass.cast(field.get(null));
+        } catch (IllegalAccessException e) {
+            throw new RuntimeException("Could not get field: " + fieldName, e);
+        }
+    }
+
+    private static Field getField(Class<?> theClass, String name) {
+        // Find the field, and complain if it is not where it's expected to be.
+        try {
+            Field field = theClass.getDeclaredField(name);
+            field.setAccessible(true);  // It's private by default.
+            return field;
+        } catch (NoSuchFieldException e) {
+            throw new RuntimeException("Class structure of ICU tests have changed.", e);
+        }
+    }
+
+    private static Method getTargetsMethod() {
+        try {
+            Method method = TestFmwk.class.getDeclaredMethod("getTargets", String.class);
+            method.setAccessible(true);
+            return method;
+        } catch (NoSuchMethodException e) {
+            throw new RuntimeException("Class structure of ICU tests have changed.", e);
+        }
+    }
+
+    public static TestFmwk.Target getTargets(TestFmwk testFmwk) {
+        return test_for_TestFmwk_GetTargets(testFmwk);
+    }
+
+    /**
+     * A special method to avoid the TestFmwk from throwing an InternalError when an error occurs
+     * during execution of the test but outside the actual test method, e.g. in a
+     * {@link TestFmwk#validate()} method. See http://bugs.icu-project.org/trac/ticket/12183
+     *
+     * <p>DO NOT CHANGE THE NAME
+     */
+    private static TestFmwk.Target test_for_TestFmwk_GetTargets(TestFmwk testFmwk) {
+        try {
+            // Set the default locale and time zone here as it can affect the targets returned.
+            // ICU4J relies on the fact that the Target.run() method of a TestGroup based test is
+            // called before the getTargets() method is called. Under JUnit we get the targets
+            // first.
+            Locale.setDefault(defaultLocale);
+            TimeZone.setDefault(defaultTimeZone);
+
+            return (TestFmwk.Target) getTargetsMethod.invoke(testFmwk, new Object[] {null});
+        } catch (InvocationTargetException | IllegalAccessException e) {
+            throw new IllegalStateException(
+                    "Problem calling getTargets(null) on " + testFmwk, e);
+        }
+    }
+
+    public static <T extends TestFmwk> T newTestFmwkInstance(Class<? extends T> testFmwkClass)
+            throws IllegalAccessException, InstantiationException {
+        // Create a TestFmwk and make sure that it's params field is initialized.
+        T testFmwk = testFmwkClass.newInstance();
+        TestFmwk.TestParams testParams = TestFmwk.TestParams.create(new String[0], null);
+        if (testParams == null) {
+            throw new IllegalStateException("Could not create TestParams");
+        }
+        // Set a dummy stack to avoid NPE if a test logs a known error.
+        testParams.stack = testParams.new State(null, "DUMMY", false);
+        paramsField.set(testFmwk, testParams);
+        return testFmwk;
+    }
+
+    public static List<String> getClassNames(TestFmwk.TestGroup testGroup) {
+        try {
+            String[] classNames = (String[]) classesToTestField.get(testGroup);
+            String defaultPackage = (String) defaultPackageField.get(testGroup);
+
+            List<String> list = new ArrayList<>(classNames.length);
+            for (String basicName : classNames) {
+                // Handle relative class names.
+                String fullyQualifiedName;
+                if (basicName.contains(".")) {
+                    fullyQualifiedName = basicName;
+                } else {
+                    fullyQualifiedName = defaultPackage + basicName;
+                }
+
+                list.add(fullyQualifiedName);
+            }
+
+            // Sort to ensure consistent ordering.
+            Collections.sort(list);
+
+            return list;
+        } catch (IllegalAccessException e) {
+            throw new IllegalStateException("Problem getting class names from " + testGroup, e);
+        }
+    }
+}
diff --git a/android_icu4j/runner/src/main/java/android/icu/junit/package-info.java b/android_icu4j/runner/src/main/java/android/icu/junit/package-info.java
new file mode 100644
index 0000000..9c03393
--- /dev/null
+++ b/android_icu4j/runner/src/main/java/android/icu/junit/package-info.java
@@ -0,0 +1,10 @@
+/**
+ * Contains classes used to make ICU tests runnable by JUnit.
+ *
+ * <p>Ideally, this will be integrated into ICU itself and cleaned up so that ICU tests can be
+ * simply run using standard JUnit. e.g. ICU test classes will be annotated with
+ * {@code RunWith(IcuTestGroupRunner.class)} or {@code RunWith(IcuTestFmwkRunner.class)} depending
+ * on whether they extend {@link android.icu.dev.test.TestFmwk.TestGroup} or
+ * {@link android.icu.dev.test.TestFmwk}.
+ */
+package android.icu.junit;
diff --git a/android_icu4j/src/main/java/android/icu/text/DecimalFormat.java b/android_icu4j/src/main/java/android/icu/text/DecimalFormat.java
index 9dd781f..6dc95d1 100644
--- a/android_icu4j/src/main/java/android/icu/text/DecimalFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/DecimalFormat.java
@@ -920,10 +920,7 @@
         synchronized (digitList) {
             digitList.set(number, precision, !useExponentialNotation &&
                           !areSignificantDigitsUsed());
-            // Android patch (ticket #11913) begin.
-            return subformat(number, result, fieldPosition, isNegative, false, parseAttr,
-                    getMaximumIntegerDigits());
-            // Android patch (ticket #11913) end.
+            return subformat(number, result, fieldPosition, isNegative, false, parseAttr);
         }
     }
 
@@ -1123,10 +1120,7 @@
             if (digitList.wasRounded() && roundingMode == BigDecimal.ROUND_UNNECESSARY) {
                 throw new ArithmeticException("Rounding necessary");              
             }
-            // Android patch (ticket #11913) begin.
-            return subformat(number, result, fieldPosition, isNegative, true, parseAttr,
-                    getMaximumIntegerDigits());
-            // Android patch (ticket #11913) end.
+            return subformat(number, result, fieldPosition, isNegative, true, parseAttr);
         }
     }
 
@@ -1159,21 +1153,8 @@
             if (digitList.wasRounded() && roundingMode == BigDecimal.ROUND_UNNECESSARY) {
                 throw new ArithmeticException("Rounding necessary");              
             }
-            // Android patch (ticket #11913) begin.
-            // If the maximum integer digits are still set to the maximum for double, set the
-            // maximum integer digits we will display to the length of the BigInteger, as this can
-            // acceptably be longer than 309 digits.
-            int maxIntDigits;
-            if (getMaximumIntegerDigits() == DOUBLE_INTEGER_DIGITS) {
-                maxIntDigits = digitList.decimalAt;
-                if (maxIntDigits >= 0)
-                    maxIntDigits++;
-            } else {
-                maxIntDigits = getMaximumIntegerDigits();
-            }
             return subformat(number.intValue(), result, fieldPosition, number.signum() < 0, true,
-                             parseAttr, maxIntDigits);
-            // Android patch (ticket #11913) end.
+                             parseAttr);
         }
     }
 
@@ -1204,21 +1185,8 @@
             if (digitList.wasRounded() && roundingMode == BigDecimal.ROUND_UNNECESSARY) {
                 throw new ArithmeticException("Rounding necessary");              
             }
-            // Android patch (ticket #11913) begin.
-            // If the maximum integer digits are still set to the maximum for double, set the
-            // maximum integer digits we will display to the length of the BigDecimal, as this can
-            // acceptably be longer than 309 digits.
-            int maxIntDigits;
-            if (getMaximumIntegerDigits() == DOUBLE_INTEGER_DIGITS) {
-                maxIntDigits = digitList.decimalAt;
-                if (maxIntDigits >= 0)
-                    maxIntDigits++;
-            } else {
-                maxIntDigits = getMaximumIntegerDigits();
-            }
             return subformat(number.doubleValue(), result, fieldPosition, number.signum() < 0,
-                             false, parseAttr, maxIntDigits);
-            // Android patch (ticket #11913) end.
+                             false, parseAttr);
         }
     }
 
@@ -1248,22 +1216,8 @@
             if (digitList.wasRounded() && roundingMode == BigDecimal.ROUND_UNNECESSARY) {
                 throw new ArithmeticException("Rounding necessary");              
             }
-            // Android patch (ticket #11913) begin.
-            // If the maximum integer digits are still set to the maximum for double, set the
-            // maximum integer digits we will display to the length of the BigDecimal, as this can
-            // acceptably be longer than 309 digits.
-            int maxIntDigits;
-            if (getMaximumIntegerDigits() == DOUBLE_INTEGER_DIGITS) {
-                maxIntDigits = digitList.decimalAt;
-                if (maxIntDigits >= 0)
-                    maxIntDigits++;
-            } else {
-                maxIntDigits = getMaximumIntegerDigits();
-            }
-
             return subformat(number.doubleValue(), result, fieldPosition, number.signum() < 0,
-                             false, false, maxIntDigits);
-            // Android patch (ticket #11913) end.
+                             false, false);
         }
     }
 
@@ -1302,20 +1256,17 @@
         }
     }
 
-    // Android patch (ticket #11913) begin.
     private StringBuffer subformat(int number, StringBuffer result, FieldPosition fieldPosition,
-                                   boolean isNegative, boolean isInteger, boolean parseAttr,
-                                   int maxIntDig) {
+                                   boolean isNegative, boolean isInteger, boolean parseAttr) {
         if (currencySignCount == CURRENCY_SIGN_COUNT_IN_PLURAL_FORMAT) {
             // compute the plural category from the digitList plus other settings
             return subformat(currencyPluralInfo.select(getFixedDecimal(number)),
                              result, fieldPosition, isNegative,
-                             isInteger, parseAttr, maxIntDig);
+                             isInteger, parseAttr);
         } else {
-            return subformat(result, fieldPosition, isNegative, isInteger, parseAttr, maxIntDig);
+            return subformat(result, fieldPosition, isNegative, isInteger, parseAttr);
         }
     }
-    // Android patch (ticket #11913) end.
 
     /**
      * This is ugly, but don't see a better way to do it without major restructuring of the code.
@@ -1363,24 +1314,21 @@
         return new FixedDecimal(number, v, f);
     }
 
-    // Android patch (ticket #11913) begin.
     private StringBuffer subformat(double number, StringBuffer result, FieldPosition fieldPosition,
-                                   boolean isNegative, boolean isInteger, boolean parseAttr,
-                                   int maxIntDig) {
+                                   boolean isNegative,
+            boolean isInteger, boolean parseAttr) {
         if (currencySignCount == CURRENCY_SIGN_COUNT_IN_PLURAL_FORMAT) {
             // compute the plural category from the digitList plus other settings
             return subformat(currencyPluralInfo.select(getFixedDecimal(number)),
                              result, fieldPosition, isNegative,
-                             isInteger, parseAttr, maxIntDig);
+                             isInteger, parseAttr);
         } else {
-            return subformat(result, fieldPosition, isNegative, isInteger, parseAttr, maxIntDig);
+            return subformat(result, fieldPosition, isNegative, isInteger, parseAttr);
         }
     }
-    // Android patch (ticket #11913) end.
 
-    // Android patch (ticket #11913) begin.
     private StringBuffer subformat(String pluralCount, StringBuffer result, FieldPosition fieldPosition,
-            boolean isNegative, boolean isInteger, boolean parseAttr, int maxIntDig) {
+            boolean isNegative, boolean isInteger, boolean parseAttr) {
         // There are 2 ways to activate currency plural format: by applying a pattern with
         // 3 currency sign directly, or by instantiate a decimal formatter using
         // PLURALCURRENCYSTYLE.  For both cases, the number of currency sign in the
@@ -1406,18 +1354,15 @@
         // based on pattern alone, and it is already expanded during applying pattern, or
         // setDecimalFormatSymbols, or setCurrency.
         expandAffixAdjustWidth(pluralCount);
-        return subformat(result, fieldPosition, isNegative, isInteger, parseAttr, maxIntDig);
+        return subformat(result, fieldPosition, isNegative, isInteger, parseAttr);
     }
-    // Android patch (ticket #11913) end.
 
     /**
      * Complete the formatting of a finite number. On entry, the
      * digitList must be filled in with the correct digits.
      */
-    // Android patch (ticket #11913) begin.
     private StringBuffer subformat(StringBuffer result, FieldPosition fieldPosition,
-                                   boolean isNegative, boolean isInteger, boolean parseAttr,
-                                   int maxIntDig) {
+                                   boolean isNegative, boolean isInteger, boolean parseAttr) {
         // NOTE: This isn't required anymore because DigitList takes care of this.
         //
         // // The negative of the exponent represents the number of leading // zeros
@@ -1447,18 +1392,18 @@
         if (useExponentialNotation) {
             subformatExponential(result, fieldPosition, parseAttr);
         } else {
-            subformatFixed(result, fieldPosition, isInteger, parseAttr, maxIntDig);
+            subformatFixed(result, fieldPosition, isInteger, parseAttr);
         }
 
         int suffixLen = appendAffix(result, isNegative, false, fieldPosition, parseAttr);
         addPadding(result, fieldPosition, prefixLen, suffixLen);
         return result;
     }
-    // Android patch (ticket #11913) end.
 
-    // Android patch (ticket #11913) begin.
-    private void subformatFixed(StringBuffer result, FieldPosition fieldPosition,
-                                boolean isInteger, boolean parseAttr, int maxIntDig) {
+    private void subformatFixed(StringBuffer result,
+            FieldPosition fieldPosition,
+            boolean isInteger,
+            boolean parseAttr) {
         char [] digits = symbols.getDigitsLocal();
 
         char grouping = currencySignCount == CURRENCY_SIGN_COUNT_ZERO ?
@@ -1466,7 +1411,7 @@
         char decimal = currencySignCount == CURRENCY_SIGN_COUNT_ZERO ?
                 symbols.getDecimalSeparator() : symbols.getMonetaryDecimalSeparator();
         boolean useSigDig = areSignificantDigitsUsed();
-    // Android patch (ticket #11913) end.
+        int maxIntDig = getMaximumIntegerDigits();
         int minIntDig = getMinimumIntegerDigits();
         int i;
         // [Spark/CDL] Record the integer start index.
@@ -5207,13 +5152,14 @@
 
     /**
      * Sets the maximum number of digits allowed in the integer portion of a number. This
-     * override limits the integer digit count to 309.
+     * override limits the integer digit count to 2,000,000,000 to match ICU4C.
      *
      * @see NumberFormat#setMaximumIntegerDigits
      */
     @Override
     public void setMaximumIntegerDigits(int newValue) {
-        super.setMaximumIntegerDigits(Math.min(newValue, DOUBLE_INTEGER_DIGITS));
+        // Android changed: Allow 2 billion integer digits.
+        super.setMaximumIntegerDigits(Math.min(newValue, MAX_INTEGER_DIGITS));
     }
 
     /**
@@ -5502,11 +5448,12 @@
         // InvalidObjectException("Digit count out of range"); }
 
 
-        // Truncate the maximumIntegerDigits to DOUBLE_INTEGER_DIGITS and
+        // Android changed: Allow 2 billion integer digits.
+        // Truncate the maximumIntegerDigits to MAX_INTEGER_DIGITS and
         // maximumFractionDigits to DOUBLE_FRACTION_DIGITS
 
-        if (getMaximumIntegerDigits() > DOUBLE_INTEGER_DIGITS) {
-            setMaximumIntegerDigits(DOUBLE_INTEGER_DIGITS);
+        if (getMaximumIntegerDigits() > MAX_INTEGER_DIGITS) {
+            setMaximumIntegerDigits(MAX_INTEGER_DIGITS);
         }
         if (getMaximumFractionDigits() > DOUBLE_FRACTION_DIGITS) {
             _setMaximumFractionDigits(DOUBLE_FRACTION_DIGITS);
@@ -5959,6 +5906,11 @@
      * Upper limit on integer and fraction digits for a Java double [Richard/GCL]
      */
     static final int DOUBLE_INTEGER_DIGITS = 309;
+    // Android changed: Allow 2 billion integer digits.
+    // This change is necessary to stay feature-compatible in java.text.DecimalFormat which
+    // used to be implemented using ICU4C (which has a 2 billion integer digits limit) and
+    // is now implemented based on this class.
+    static final int MAX_INTEGER_DIGITS = 2000000000;
     static final int DOUBLE_FRACTION_DIGITS = 340;
 
     /**
diff --git a/android_icu4j/src/main/java/android/icu/text/UnicodeSet.java b/android_icu4j/src/main/java/android/icu/text/UnicodeSet.java
index 8fbb40c..9d934ae 100644
--- a/android_icu4j/src/main/java/android/icu/text/UnicodeSet.java
+++ b/android_icu4j/src/main/java/android/icu/text/UnicodeSet.java
@@ -575,6 +575,7 @@
     /**
      * Return true if the given position, in the given pattern, appears
      * to be the start of a UnicodeSet pattern.
+     * @hide unsupported on Android
      */
     public static boolean resemblesPattern(String pattern, int pos) {
         return ((pos+1) < pattern.length() &&
@@ -2796,6 +2797,7 @@
     /**
      * Add the contents of the UnicodeSet (as strings) into a collection.
      * @param target collection to add into
+     * @hide unsupported on Android
      */
     public String[] addAllTo(String[] target) {
         return addAllTo(this, target);
@@ -2803,6 +2805,7 @@
 
     /**
      * Add the contents of the UnicodeSet (as strings) into an array.
+     * @hide unsupported on Android
      */
     public static String[] toArray(UnicodeSet set) {
         return addAllTo(set, new String[set.size()]);
@@ -4413,6 +4416,7 @@
      * and comparing, but much faster (no object creation). 
      * Actually, there is one difference; a null compares as less.
      * Note that this (=String) order is UTF-16 order -- *not* code point order.
+     * @hide unsupported on Android
      */
 
     public static int compare(CharSequence string, int codePoint) {
@@ -4424,6 +4428,7 @@
      * Same results as turning the code point into a string and comparing, but much faster (no object creation). 
      * Actually, there is one difference; a null compares as less.
      * Note that this (=String) order is UTF-16 order -- *not* code point order.
+     * @hide unsupported on Android
      */
     public static int compare(int codePoint, CharSequence string) {
         return -CharSequences.compare(string, codePoint);
@@ -4436,6 +4441,7 @@
      * That means that sets can't be compared directly with this method, unless they are TreeSets without
      * (or with the same) comparator. Unfortunately, it is impossible to reliably detect in Java whether subclass of
      * Collection satisfies the right criteria, so it is left to the user to avoid those circumstances.
+     * @hide unsupported on Android
      */
     public static <T extends Comparable<T>> int compare(Iterable<T> collection1, Iterable<T> collection2) {
         return compare(collection1.iterator(), collection2.iterator());
@@ -4471,6 +4477,7 @@
 
     /**
      * Utility to compare two collections, optionally by size, and then lexicographically.
+     * @hide unsupported on Android
      */
     public static <T extends Comparable<T>> int compare(Collection<T> collection1, Collection<T> collection2, ComparisonStyle style) {
         if (style != ComparisonStyle.LEXICOGRAPHIC) {
@@ -4484,6 +4491,7 @@
 
     /**
      * Utility for adding the contents of an iterable to a collection.
+     * @hide unsupported on Android
      */
     public static <T, U extends Collection<T>> U addAllTo(Iterable<T> source, U target) {
         for (T item : source) {
@@ -4494,6 +4502,7 @@
 
     /**
      * Utility for adding the contents of an iterable to a collection.
+     * @hide unsupported on Android
      */
     public static <T> T[] addAllTo(Iterable<T> source, T[] target) {
         int i = 0;
diff --git a/android_icu4j/src/main/java/android/icu/util/CECalendar.java b/android_icu4j/src/main/java/android/icu/util/CECalendar.java
index 019d042..fa292fc 100644
--- a/android_icu4j/src/main/java/android/icu/util/CECalendar.java
+++ b/android_icu4j/src/main/java/android/icu/util/CECalendar.java
@@ -168,6 +168,7 @@
      * The Coptic and Ethiopic calendars differ only in their epochs.
      * This method must be implemented by CECalendar subclasses to
      * return the date offset from Julian.
+     * @hide unsupported on Android
      */
     abstract protected int getJDEpochOffset();
 
@@ -228,6 +229,7 @@
      * @param month the month
      * @param day the day
      * @return Julian day
+     * @hide unsupported on Android
      */
     public static int ceToJD(long year, int month, int day, int jdEpochOffset) {
 
@@ -255,6 +257,7 @@
 
     /**
      * Convert a Julian day to an Coptic/Ethiopic year, month and day
+     * @hide unsupported on Android
      */
     public static void jdToCE(int julianDay, int jdEpochOffset, int[] fields) {
         int c4; // number of 4 year cycle (1461 days)
diff --git a/android_icu4j/src/main/java/android/icu/util/IslamicCalendar.java b/android_icu4j/src/main/java/android/icu/util/IslamicCalendar.java
index df8ee6e..7088f8f 100644
--- a/android_icu4j/src/main/java/android/icu/util/IslamicCalendar.java
+++ b/android_icu4j/src/main/java/android/icu/util/IslamicCalendar.java
@@ -297,6 +297,7 @@
      *
      * @param beCivil   <code>true</code> to use the civil calendar,
      *                  <code>false</code> to use the astronomical calendar.
+     * @hide unsupported on Android
      */
     public void setCivil(boolean beCivil)
     {
@@ -323,6 +324,7 @@
      * Returns <code>true</code> if this object is using the fixed-cycle civil
      * calendar, or <code>false</code> if using the religious, astronomical
      * calendar.
+     * @hide unsupported on Android
      * 
      */
     public boolean isCivil() {
@@ -909,8 +911,6 @@
     
     /**
      * sets the calculation type for this calendar.
-     * 
-     * @hide draft / provisional / internal are hidden on Android
      */
     public void setCalculationType(CalculationType type) {
         cType = type;
@@ -924,8 +924,6 @@
 
     /**
      * gets the calculation type for this calendar.
-     * 
-     * @hide draft / provisional / internal are hidden on Android
      */
     public CalculationType getCalculationType() {
         return cType;
diff --git a/android_icu4j/src/main/java/android/icu/util/VersionInfo.java b/android_icu4j/src/main/java/android/icu/util/VersionInfo.java
index 7ba8669..baad64e 100644
--- a/android_icu4j/src/main/java/android/icu/util/VersionInfo.java
+++ b/android_icu4j/src/main/java/android/icu/util/VersionInfo.java
@@ -530,6 +530,7 @@
     /**
      * Main method prints out ICU version information
      * @param args arguments (currently not used)
+     * @hide unsupported on Android
      */
     public static void main(String[] args) {
         String icuApiVer;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/TestAll.java
index ce131fc..3fde4dc 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/TestAll.java
@@ -8,10 +8,13 @@
 package android.icu.dev.test;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run all other tests as a batch.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
 
     public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/TestAllCollate.java b/android_icu4j/src/main/tests/android/icu/dev/test/TestAllCollate.java
index 424bf7b..654efa2 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/TestAllCollate.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/TestAllCollate.java
@@ -8,10 +8,13 @@
 package android.icu.dev.test;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run all other tests as a batch.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAllCollate extends TestGroup {
 
     public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/TestAllCore.java b/android_icu4j/src/main/tests/android/icu/dev/test/TestAllCore.java
index e750445..5f5ee07 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/TestAllCore.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/TestAllCore.java
@@ -8,7 +8,10 @@
 package android.icu.dev.test;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
+@RunWith(IcuTestGroupRunner.class)
 public class TestAllCore extends TestGroup {
 
     public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/TestAllTranslit.java b/android_icu4j/src/main/tests/android/icu/dev/test/TestAllTranslit.java
index 42ddb52..c25aa79 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/TestAllTranslit.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/TestAllTranslit.java
@@ -8,10 +8,13 @@
 package android.icu.dev.test;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run all other tests as a batch.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAllTranslit extends TestGroup {
 
     public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/TestLocaleNamePackaging.java b/android_icu4j/src/main/tests/android/icu/dev/test/TestLocaleNamePackaging.java
index 640c155..6c46201 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/TestLocaleNamePackaging.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/TestLocaleNamePackaging.java
@@ -16,7 +16,10 @@
 import android.icu.text.LocaleDisplayNames;
 import android.icu.text.LocaleDisplayNames.DialectHandling;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestLocaleNamePackaging extends TestFmwk {
 
     public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/TestPackaging.java b/android_icu4j/src/main/tests/android/icu/dev/test/TestPackaging.java
index 738dd48..7196e30 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/TestPackaging.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/TestPackaging.java
@@ -8,7 +8,10 @@
 package android.icu.dev.test;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
+@RunWith(IcuTestGroupRunner.class)
 public class TestPackaging extends TestGroup {
 
     public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/BiDiConformanceTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/BiDiConformanceTest.java
index 159630e..034d17f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/BiDiConformanceTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/BiDiConformanceTest.java
@@ -15,12 +15,15 @@
 import android.icu.lang.UCharacterDirection;
 import android.icu.text.Bidi;
 import android.icu.text.BidiClassifier;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author Markus W. Scherer
  * BiDi conformance test, using the Unicode BidiTest.txt and BidiCharacterTest.txt files.
  * Ported from ICU4C intltest/bidiconf.cpp .
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class BiDiConformanceTest extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new BiDiConformanceTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/BidiTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/BidiTest.java
index 0085788..5b8620a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/BidiTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/BidiTest.java
@@ -16,6 +16,8 @@
 import android.icu.text.Bidi;
 import android.icu.text.BidiRun;
 import android.icu.util.VersionInfo;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * A base class for the Bidi test suite.
@@ -23,6 +25,7 @@
  * @author Lina Kemmel, Matitiahu Allouche
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class BidiTest extends TestFmwk {
 
     protected static final char[] charFromDirProp = {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestAll.java
index b5189db..ea939a0 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestAll.java
@@ -9,10 +9,13 @@
 package android.icu.dev.test.bidi;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run all other tests as a batch.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
 
     public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestBidi.java b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestBidi.java
index fa6bcc7..eaf0fd6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestBidi.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestBidi.java
@@ -12,6 +12,8 @@
 
 import android.icu.text.Bidi;
 import android.icu.text.BidiRun;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Regression test for Bidi class override.
@@ -19,6 +21,7 @@
  * @author Lina Kemmel, Matitiahu Allouche
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestBidi extends BidiTest {
 
     private static final int MAXLEN = 256;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestCharFromDirProp.java b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestCharFromDirProp.java
index 403bf11..bb525e4 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestCharFromDirProp.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestCharFromDirProp.java
@@ -11,6 +11,8 @@
 import android.icu.impl.Utility;
 import android.icu.lang.UCharacter;
 import android.icu.lang.UCharacterDirection;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Regression test for Bidi charFromDirProp
@@ -18,6 +20,7 @@
  * @author Lina Kemmel, Matitiahu Allouche
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestCharFromDirProp extends BidiTest {
 
     /* verify that the exemplar characters have the expected bidi classes */
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestClassOverride.java b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestClassOverride.java
index a96c4e4..fb59781 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestClassOverride.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestClassOverride.java
@@ -10,6 +10,8 @@
 
 import android.icu.text.Bidi;
 import android.icu.text.BidiClassifier;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Regression test for Bidi class override.
@@ -17,6 +19,7 @@
  * @author Lina Kemmel, Matitiahu Allouche
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestClassOverride extends BidiTest {
 
     private static final int DEF = TestData.DEF;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestCompatibility.java b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestCompatibility.java
index 685b40b..6478d47 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestCompatibility.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestCompatibility.java
@@ -14,6 +14,8 @@
 import java.text.AttributedString;
 
 import android.icu.text.Bidi;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Regression test for java.text.Bidi compatibility
@@ -21,6 +23,7 @@
  * @author Matitiahu Allouche
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestCompatibility extends BidiTest {
 
     void compareBidi(Bidi bidi, java.text.Bidi jbidi)
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestContext.java b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestContext.java
index 492e7f8..f8dab83 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestContext.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestContext.java
@@ -9,6 +9,8 @@
 package android.icu.dev.test.bidi;
 
 import android.icu.text.Bidi;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Regression test for doing transformations in context
@@ -16,6 +18,7 @@
  * @author Matitiahu Allouche
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestContext extends BidiTest {
 
     private class ContextCase {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestFailureRecovery.java b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestFailureRecovery.java
index 745247b..c5a1524 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestFailureRecovery.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestFailureRecovery.java
@@ -9,6 +9,8 @@
 package android.icu.dev.test.bidi;
 
 import android.icu.text.Bidi;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Regression test for Bidi failure recovery
@@ -16,6 +18,7 @@
  * @author Lina Kemmel, Matitiahu Allouche
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestFailureRecovery extends BidiTest {
 
     public void testFailureRecovery()
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestInverse.java b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestInverse.java
index e95baaf..0cdefe9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestInverse.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestInverse.java
@@ -12,6 +12,8 @@
 
 import android.icu.impl.Utility;
 import android.icu.text.Bidi;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Regression test for the basic "inverse" Bidi mode.
@@ -19,6 +21,7 @@
  * ported from C by Lina Kemmel, Matitiahu Allouche
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestInverse extends BidiTest {
 
     private int countRoundtrips = 0;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestMultipleParagraphs.java b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestMultipleParagraphs.java
index 702804d..24742d2 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestMultipleParagraphs.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestMultipleParagraphs.java
@@ -13,6 +13,8 @@
 import android.icu.impl.Utility;
 import android.icu.text.Bidi;
 import android.icu.text.BidiRun;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Regression test for Bidi multiple paragraphs
@@ -20,6 +22,7 @@
  * @author Lina Kemmel, Matitiahu Allouche
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestMultipleParagraphs extends BidiTest {
 
     private static final String text =
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestReorder.java b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestReorder.java
index d69e3d2..dc819aa 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestReorder.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestReorder.java
@@ -9,6 +9,8 @@
 package android.icu.dev.test.bidi;
 
 import android.icu.text.Bidi;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 /**
@@ -17,6 +19,7 @@
  * ported from C by Lina Kemmel, Matitiahu Allouche
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestReorder extends BidiTest {
 
     private static final String[] logicalOrder = {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestReorderArabicMathSymbols.java b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestReorderArabicMathSymbols.java
index 1237674..df79768 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestReorderArabicMathSymbols.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestReorderArabicMathSymbols.java
@@ -8,6 +8,8 @@
 package android.icu.dev.test.bidi;
 
 import android.icu.text.Bidi;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 /**
@@ -16,6 +18,7 @@
  * Ported from C by Ramy Said
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestReorderArabicMathSymbols extends BidiTest {
 
     private static final String[] logicalOrder = {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestReorderRunsOnly.java b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestReorderRunsOnly.java
index 0e60f1c..08f58a5 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestReorderRunsOnly.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestReorderRunsOnly.java
@@ -9,6 +9,8 @@
 package android.icu.dev.test.bidi;
 
 import android.icu.text.Bidi;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Regression test for variants to the UBA.
@@ -16,6 +18,7 @@
  * @author Lina Kemmel, Matitiahu Allouche
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestReorderRunsOnly extends BidiTest {
 
 
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestReorderingMode.java b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestReorderingMode.java
index e3a1f42..e1a7b92 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestReorderingMode.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestReorderingMode.java
@@ -11,6 +11,8 @@
 import java.util.Arrays;
 
 import android.icu.text.Bidi;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Regression test for variants to the UBA.
@@ -18,6 +20,7 @@
  * @author Lina Kemmel, Matitiahu Allouche
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestReorderingMode extends BidiTest {
 
     static final String[] textIn = {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestStreaming.java b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestStreaming.java
index a5ed8af..e261d3c 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestStreaming.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bidi/TestStreaming.java
@@ -10,6 +10,8 @@
 
 import android.icu.impl.Utility;
 import android.icu.text.Bidi;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Regression test for streaming mode
@@ -17,6 +19,7 @@
  * @author Lina Kemmel, Matitiahu Allouche
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestStreaming extends BidiTest {
 
     static final int MAXPORTIONS = 10;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/bigdec/DiagBigDecimal.java b/android_icu4j/src/main/tests/android/icu/dev/test/bigdec/DiagBigDecimal.java
index d8692e7..dfe355c 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/bigdec/DiagBigDecimal.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/bigdec/DiagBigDecimal.java
@@ -16,6 +16,8 @@
 import android.icu.dev.test.TestUtil;
 import android.icu.dev.test.TestUtil.JavaVendor;
 import android.icu.math.BigDecimal;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /* ------------------------------------------------------------------ */
 /* Decimal diagnostic tests mfc */
@@ -99,6 +101,7 @@
  * @author Mike Cowlishaw
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class DiagBigDecimal extends TestFmwk {
     //private static final java.lang.String $0 = "DiagBigDecimal.nrx";
 
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/AstroTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/AstroTest.java
index 0d1bd1c..ec1a76b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/AstroTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/AstroTest.java
@@ -21,9 +21,12 @@
 import android.icu.util.GregorianCalendar;
 import android.icu.util.SimpleTimeZone;
 import android.icu.util.TimeZone;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 // TODO: try finding next new moon after  07/28/1984 16:00 GMT
 
+@RunWith(IcuTestFmwkRunner.class)
 public class AstroTest extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new AstroTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/CalendarRegression.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/CalendarRegression.java
index 7d0be52..59547cd 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/CalendarRegression.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/CalendarRegression.java
@@ -27,6 +27,8 @@
 import android.icu.util.SimpleTimeZone;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @test 1.32 99/11/14
@@ -36,6 +38,7 @@
  * 4145158 4145983 4147269 4149677 4162587 4165343 4166109 4167060 4173516
  * 4174361 4177484 4197699 4209071 4288792
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class CalendarRegression extends android.icu.dev.test.TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/CalendarTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/CalendarTest.java
index 04d7aac..fe8dca5 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/CalendarTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/CalendarTest.java
@@ -20,11 +20,14 @@
 import android.icu.util.ChineseCalendar;
 import android.icu.util.GregorianCalendar;
 import android.icu.util.SimpleTimeZone;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * A base class for classes that test individual Calendar subclasses.
  * Defines various useful utility methods and constants
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class CalendarTest extends TestFmwk {
     
     // Constants for use by subclasses, solely to save typing
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/ChineseTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/ChineseTest.java
index 12c40b0..702e724 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/ChineseTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/ChineseTest.java
@@ -17,6 +17,8 @@
 import android.icu.util.GregorianCalendar;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test of ChineseCalendar.
@@ -60,6 +62,7 @@
  * Tue May 22 2096 = 4733-04*-01, Year 53, Cycle 79
  * Sun Mar 22 2099 = 4736-02*-01, Year 56, Cycle 79
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class ChineseTest extends CalendarTest {
 
     public static void main(String args[]) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/CompatibilityTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/CompatibilityTest.java
index a0f9737..bef1611 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/CompatibilityTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/CompatibilityTest.java
@@ -21,7 +21,10 @@
 import android.icu.util.GregorianCalendar;
 import android.icu.util.SimpleTimeZone;
 import android.icu.util.TimeZone;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class CompatibilityTest extends android.icu.dev.test.TestFmwk {
 
     public static void main(String argv[]) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/CopticTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/CopticTest.java
index 47b11d2..5d8f694 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/CopticTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/CopticTest.java
@@ -19,10 +19,13 @@
 import android.icu.util.GregorianCalendar;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Tests for the <code>CopticCalendar</code> class.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class CopticTest extends CalendarTest 
 {
     public static void main(String args[]) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/DangiTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/DangiTest.java
index baf99e5..0740c50 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/DangiTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/DangiTest.java
@@ -14,7 +14,10 @@
 import android.icu.util.GregorianCalendar;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class DangiTest extends CalendarTest {
 
     public static void main(String args[]) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/DataDrivenCalendarTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/DataDrivenCalendarTest.java
index 3245d2a..15d81fa 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/DataDrivenCalendarTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/DataDrivenCalendarTest.java
@@ -19,6 +19,8 @@
 import android.icu.util.Calendar;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author srl
@@ -26,6 +28,7 @@
  * analog of dadrcal.cpp
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class DataDrivenCalendarTest extends ModuleTest {
 
     public DataDrivenCalendarTest() {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/EthiopicTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/EthiopicTest.java
index 67bee08..62537aa 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/EthiopicTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/EthiopicTest.java
@@ -18,10 +18,13 @@
 import android.icu.util.GregorianCalendar;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Tests for the <code>EthiopicCalendar</code> class.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class EthiopicTest extends CalendarTest 
 {
     public static void main(String args[]) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/HebrewTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/HebrewTest.java
index 97b1642..b1678c7 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/HebrewTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/HebrewTest.java
@@ -17,10 +17,13 @@
 import android.icu.util.HebrewCalendar;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Tests for the <code>HebrewCalendar</code> class.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class HebrewTest extends CalendarTest {
     public static void main(String args[]) throws Exception {
         new HebrewTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/HolidayTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/HolidayTest.java
index 521c2d0..66c0fa2 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/HolidayTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/HolidayTest.java
@@ -21,10 +21,13 @@
 import android.icu.util.SimpleHoliday;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Tests for the <code>Holiday</code> class.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class HolidayTest extends TestFmwk {
     public static void main(String args[]) throws Exception {
         new HolidayTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/IBMCalendarTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/IBMCalendarTest.java
index 99be95f..fb1ea2f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/IBMCalendarTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/IBMCalendarTest.java
@@ -26,10 +26,13 @@
 import android.icu.util.TimeZone;
 import android.icu.util.TimeZone.SystemTimeZoneType;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @summary Tests of new functionality in IBMCalendar
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class IBMCalendarTest extends CalendarTest {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/IndianTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/IndianTest.java
index 2aae7a5..f294e3b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/IndianTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/IndianTest.java
@@ -18,10 +18,13 @@
 import android.icu.util.IndianCalendar;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Tests for the <code>IndianCalendar</code> class.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class IndianTest extends CalendarTest 
 {
     public static void main(String args[]) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/IslamicTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/IslamicTest.java
index 9a40878..78ae4aa 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/IslamicTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/IslamicTest.java
@@ -24,10 +24,13 @@
 import android.icu.util.IslamicCalendar.CalculationType;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Tests for the <code>IslamicCalendar</code> class.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class IslamicTest extends CalendarTest {
     public static void main(String args[]) throws Exception {
         new IslamicTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/JapaneseTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/JapaneseTest.java
index 7eb3f6b..ea5d27c 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/JapaneseTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/JapaneseTest.java
@@ -19,10 +19,13 @@
 import android.icu.util.JapaneseCalendar;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Tests for the <code>JapaneseCalendar</code> class.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class JapaneseTest extends CalendarTest {
     public static void main(String args[]) throws Exception {
         new JapaneseTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/PersianTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/PersianTest.java
index 2f0b680..2ead1ec 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/PersianTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/PersianTest.java
@@ -10,7 +10,10 @@
 
 import android.icu.util.Calendar;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class PersianTest extends CalendarTest {
 
     public static void main(String args[]) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/TestAll.java
index 517779a..3e2eb7c 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/calendar/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/calendar/TestAll.java
@@ -7,10 +7,13 @@
  */
 package android.icu.dev.test.calendar;
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run all other calendar tests as a batch.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
     public static void main(String[] args) {
         new TestAll().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/charsetdet/TestCharsetDetector.java b/android_icu4j/src/main/tests/android/icu/dev/test/charsetdet/TestCharsetDetector.java
index 4993315..c8f1d90 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/charsetdet/TestCharsetDetector.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/charsetdet/TestCharsetDetector.java
@@ -31,11 +31,14 @@
 import android.icu.impl.Utility;
 import android.icu.text.CharsetDetector;
 import android.icu.text.CharsetMatch;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 /**
  * @author andy
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TestCharsetDetector extends TestFmwk
 {
     
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/cldr/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/cldr/TestAll.java
index e3baf09..5a7c3b0 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/cldr/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/cldr/TestAll.java
@@ -8,10 +8,13 @@
 package android.icu.dev.test.cldr;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run all collation and search tests as a batch.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
     public static void main(String[] args) {
         new TestAll().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/cldr/TestCLDRVsICU.java b/android_icu4j/src/main/tests/android/icu/dev/test/cldr/TestCLDRVsICU.java
index 6e1f573..d378104 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/cldr/TestCLDRVsICU.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/cldr/TestCLDRVsICU.java
@@ -43,6 +43,8 @@
 import android.icu.util.Currency;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * This is a test file that takes in the CLDR XML test files and test against
@@ -70,6 +72,7 @@
  * @author medavis
  * @author John Huan Vu (johnvu@us.ibm.com)
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TestCLDRVsICU extends TestFmwk {
     static final boolean DEBUG = false;
 
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/AlphabeticIndexTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/AlphabeticIndexTest.java
index fd9c42d..876425d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/AlphabeticIndexTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/AlphabeticIndexTest.java
@@ -36,10 +36,13 @@
 import android.icu.text.UTF16;
 import android.icu.text.UnicodeSet;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author Mark Davis
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class AlphabeticIndexTest extends TestFmwk {
     /**
      * 
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationAPITest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationAPITest.java
index 464c4bf..f7d1e97 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationAPITest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationAPITest.java
@@ -34,7 +34,10 @@
 import android.icu.text.UnicodeSet;
 import android.icu.util.ULocale;
 import android.icu.util.VersionInfo;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationAPITest extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new CollationAPITest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationChineseTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationChineseTest.java
index 310f497..1629f62 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationChineseTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationChineseTest.java
@@ -18,7 +18,10 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.Collator;
 import android.icu.text.RuleBasedCollator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
  
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationChineseTest extends TestFmwk{
     public static void main(String[] args) throws Exception{
         new CollationChineseTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationCreationMethodTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationCreationMethodTest.java
index 2e09ebd..b70e07b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationCreationMethodTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationCreationMethodTest.java
@@ -15,6 +15,8 @@
 import android.icu.text.CollationKey;
 import android.icu.text.Collator;
 import android.icu.text.RuleBasedCollator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 /**
@@ -25,6 +27,7 @@
  * @author Brian Rower - IBM - August 2008
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationCreationMethodTest extends TestFmwk 
 {
     
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationCurrencyTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationCurrencyTest.java
index e321b3a..99e05fb 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationCurrencyTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationCurrencyTest.java
@@ -19,7 +19,10 @@
 import android.icu.text.CollationKey;
 import android.icu.text.Collator;
 import android.icu.text.RuleBasedCollator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
  
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationCurrencyTest extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new CollationCurrencyTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationDummyTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationDummyTest.java
index b02b629..ede34ae 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationDummyTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationDummyTest.java
@@ -22,7 +22,10 @@
 import android.icu.text.Collator;
 import android.icu.text.Normalizer;
 import android.icu.text.RuleBasedCollator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
  
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationDummyTest extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new CollationDummyTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationEnglishTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationEnglishTest.java
index be28eb3..4911c6a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationEnglishTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationEnglishTest.java
@@ -18,7 +18,10 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.CollationKey;
 import android.icu.text.Collator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
  
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationEnglishTest extends TestFmwk{
     public static void main(String[] args) throws Exception{
         new CollationEnglishTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationFinnishTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationFinnishTest.java
index 4811575..e6265cb 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationFinnishTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationFinnishTest.java
@@ -17,7 +17,10 @@
 import android.icu.text.CollationKey;
 import android.icu.text.Collator;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
  
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationFinnishTest extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new CollationFinnishTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationFrenchTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationFrenchTest.java
index adee72e..c63c8ea 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationFrenchTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationFrenchTest.java
@@ -19,7 +19,10 @@
 import android.icu.text.CollationKey;
 import android.icu.text.Collator;
 import android.icu.text.RuleBasedCollator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
  
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationFrenchTest extends TestFmwk{
     public static void main(String[] args) throws Exception {
         new CollationFrenchTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationFrozenMonkeyTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationFrozenMonkeyTest.java
index 41a657d..682510b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationFrozenMonkeyTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationFrozenMonkeyTest.java
@@ -20,6 +20,8 @@
 import android.icu.text.CollationKey;
 import android.icu.text.Collator;
 import android.icu.text.RuleBasedCollator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * CollationFrozenMonkeyTest is a third level test class.  This tests the random 
@@ -28,6 +30,7 @@
  * less than the string itself appended with any character.
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationFrozenMonkeyTest extends TestFmwk {
     
     private String source = "-abcdefghijklmnopqrstuvwxyz#&^$@";
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationGermanTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationGermanTest.java
index 12aff3d..809c2d2 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationGermanTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationGermanTest.java
@@ -18,8 +18,11 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.CollationKey;
 import android.icu.text.Collator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
  
- public class CollationGermanTest extends TestFmwk{
+ @RunWith(IcuTestFmwkRunner.class)
+public class CollationGermanTest extends TestFmwk{
     public static void main(String[] args) throws Exception{
         new CollationGermanTest().run(args);
     }
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationIteratorTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationIteratorTest.java
index b11dad7..4d8eae7 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationIteratorTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationIteratorTest.java
@@ -25,7 +25,10 @@
 import android.icu.text.RuleBasedCollator;
 import android.icu.text.UCharacterIterator;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationIteratorTest extends TestFmwk {
     
     String test1 = "What subset of all possible test cases?";
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationKanaTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationKanaTest.java
index cef42f6..ad10c79 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationKanaTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationKanaTest.java
@@ -20,7 +20,10 @@
 import android.icu.text.Collator;
 import android.icu.text.RuleBasedCollator;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
  
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationKanaTest extends TestFmwk{
     public static void main(String[] args) throws Exception{
         new CollationKanaTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationMiscTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationMiscTest.java
index 29a5c37..afb9e7c 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationMiscTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationMiscTest.java
@@ -35,7 +35,10 @@
 import android.icu.text.UnicodeSetIterator;
 import android.icu.util.ULocale;
 import android.icu.util.UResourceBundle;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationMiscTest extends TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationMonkeyTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationMonkeyTest.java
index 83d7ad1..50fa983 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationMonkeyTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationMonkeyTest.java
@@ -20,6 +20,8 @@
 import android.icu.text.CollationKey;
 import android.icu.text.Collator;
 import android.icu.text.RuleBasedCollator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * CollationMonkeyTest is a third level test class.  This tests the random 
@@ -28,6 +30,7 @@
  * less than the string itself appended with any character.
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationMonkeyTest extends TestFmwk {
     
     private String source = "-abcdefghijklmnopqrstuvwxyz#&^$@";
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationRegressionTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationRegressionTest.java
index 4ca9b07..50fb204 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationRegressionTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationRegressionTest.java
@@ -23,7 +23,10 @@
 import android.icu.text.CollationKey;
 import android.icu.text.Collator;
 import android.icu.text.RuleBasedCollator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationRegressionTest extends TestFmwk {
     public static void main(String[] args) throws Exception{
         new CollationRegressionTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationServiceTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationServiceTest.java
index fd17ac6..7259a53 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationServiceTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationServiceTest.java
@@ -22,7 +22,10 @@
 import android.icu.text.Collator;
 import android.icu.text.Collator.CollatorFactory;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationServiceTest extends TestFmwk {
     public static void main(String[] args) {
         new CollationServiceTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationSpanishTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationSpanishTest.java
index 27037ed..56f297b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationSpanishTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationSpanishTest.java
@@ -18,8 +18,11 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.CollationKey;
 import android.icu.text.Collator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
  
- public class CollationSpanishTest extends TestFmwk {
+ @RunWith(IcuTestFmwkRunner.class)
+public class CollationSpanishTest extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new CollationSpanishTest().run(args);
     }
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationTest.java
index 1e658f7..6b91be6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationTest.java
@@ -46,7 +46,10 @@
 import android.icu.util.IllformedLocaleException;
 import android.icu.util.Output;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationTest extends TestFmwk {
     public static void main(String[] args) throws Exception{
         new CollationTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationThaiTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationThaiTest.java
index d665a02..120f9a1 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationThaiTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationThaiTest.java
@@ -25,7 +25,10 @@
 import android.icu.text.CollationKey;
 import android.icu.text.Collator;
 import android.icu.text.RuleBasedCollator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationThaiTest extends TestFmwk {
     
     final int MAX_FAILURES_TO_SHOW = -1;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationThreadTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationThreadTest.java
index 6198abc..23c7f63 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationThreadTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationThreadTest.java
@@ -14,7 +14,10 @@
 
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.Collator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationThreadTest extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new CollationThreadTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationTurkishTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationTurkishTest.java
index 170c113..50305bd 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationTurkishTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/CollationTurkishTest.java
@@ -18,7 +18,10 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.CollationKey;
 import android.icu.text.Collator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
  
+@RunWith(IcuTestFmwkRunner.class)
 public class CollationTurkishTest extends TestFmwk{
     public static void main(String[] args) throws Exception{
         new CollationTurkishTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/G7CollationTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/G7CollationTest.java
index d1f9850..adb5277 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/G7CollationTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/G7CollationTest.java
@@ -19,7 +19,10 @@
 import android.icu.text.CollationKey;
 import android.icu.text.Collator;
 import android.icu.text.RuleBasedCollator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
  
+@RunWith(IcuTestFmwkRunner.class)
 public class G7CollationTest extends TestFmwk{
     public static void main(String[] args) throws Exception{
         new G7CollationTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/LotusCollationKoreanTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/LotusCollationKoreanTest.java
index 3c5c5a6..da814bb 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/LotusCollationKoreanTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/LotusCollationKoreanTest.java
@@ -18,7 +18,10 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.CollationKey;
 import android.icu.text.Collator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
  
+@RunWith(IcuTestFmwkRunner.class)
 public class LotusCollationKoreanTest extends TestFmwk{
     public static void main(String[] args) throws Exception{
         new LotusCollationKoreanTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/TestAll.java
index 1a2a9bd..a74579f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/TestAll.java
@@ -8,10 +8,13 @@
 package android.icu.dev.test.collator;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run all collation and search tests as a batch.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
     public static void main(String[] args) {
         new TestAll().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/collator/UCAConformanceTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/collator/UCAConformanceTest.java
index a76fa35..55e9ce3 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/collator/UCAConformanceTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/collator/UCAConformanceTest.java
@@ -24,7 +24,10 @@
 import android.icu.text.UTF16;
 import android.icu.util.ULocale;
 import android.icu.util.VersionInfo;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class UCAConformanceTest extends TestFmwk {
 
     /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/compression/DecompressionTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/compression/DecompressionTest.java
index f76ed53..63ead23 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/compression/DecompressionTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/compression/DecompressionTest.java
@@ -9,7 +9,10 @@
 
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.UnicodeDecompressor;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class DecompressionTest extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new DecompressionTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/compression/ExhaustiveTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/compression/ExhaustiveTest.java
index 7e0f243..fbae351 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/compression/ExhaustiveTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/compression/ExhaustiveTest.java
@@ -10,7 +10,10 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.UnicodeCompressor;
 import android.icu.text.UnicodeDecompressor;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class ExhaustiveTest extends TestFmwk {
     public static void main(String args[]) throws Exception {
         new ExhaustiveTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/compression/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/compression/TestAll.java
index ff9435b..a80470d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/compression/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/compression/TestAll.java
@@ -8,10 +8,13 @@
 package android.icu.dev.test.compression;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run all other tests as a batch.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
     public static void main(String[] args) throws Exception {
         new TestAll().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/DataReadWriteTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/DataReadWriteTest.java
index 471a828..bb0aacb 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/DataReadWriteTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/DataReadWriteTest.java
@@ -16,7 +16,10 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.impl.duration.impl.XMLRecordReader;
 import android.icu.impl.duration.impl.XMLRecordWriter;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class DataReadWriteTest extends TestFmwk {
 
     /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/ICUDurationTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/ICUDurationTest.java
index a054746..0401026 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/ICUDurationTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/ICUDurationTest.java
@@ -22,11 +22,14 @@
 import android.icu.text.DurationFormat;
 import android.icu.util.Calendar;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author srl
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class ICUDurationTest extends TestFmwk {
     /**
      * Allows us to not depend on javax.xml.datatype.DatatypeFactory.
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/LanguageTestRoot.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/LanguageTestRoot.java
index ab0ec14..6d74ee3 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/LanguageTestRoot.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/LanguageTestRoot.java
@@ -30,10 +30,13 @@
 import android.icu.impl.duration.TimeUnitConstants;
 import android.icu.impl.duration.impl.DataRecord.ECountVariant;
 import android.icu.impl.duration.impl.DataRecord.EUnitVariant;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test cases for en
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class LanguageTestRoot extends TestFmwk implements TimeUnitConstants {
 
     private static final TimeUnit[] units = {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/PeriodBuilderFactoryTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/PeriodBuilderFactoryTest.java
index ea9c476..4bd44b6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/PeriodBuilderFactoryTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/PeriodBuilderFactoryTest.java
@@ -17,7 +17,10 @@
 import android.icu.impl.duration.PeriodBuilderFactory;
 import android.icu.impl.duration.TimeUnit;
 import android.icu.impl.duration.TimeUnitConstants;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class PeriodBuilderFactoryTest extends TestFmwk implements TimeUnitConstants {
     private PeriodBuilderFactory pbf;
 
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/PeriodBuilderTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/PeriodBuilderTest.java
index dd6440c..d32755c 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/PeriodBuilderTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/PeriodBuilderTest.java
@@ -11,7 +11,10 @@
 package android.icu.dev.test.duration;
 
 import android.icu.dev.test.TestFmwk;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class PeriodBuilderTest extends TestFmwk {
 
   /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/PeriodTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/PeriodTest.java
index 3d50365..275d30d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/PeriodTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/PeriodTest.java
@@ -13,7 +13,10 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.impl.duration.Period;
 import android.icu.impl.duration.TimeUnit;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class PeriodTest extends TestFmwk {
 
     /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/RegressionTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/RegressionTest.java
index e6c88ad..c4af3a6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/RegressionTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/RegressionTest.java
@@ -14,7 +14,10 @@
 import android.icu.impl.duration.PeriodFormatterService;
 import android.icu.text.DurationFormat;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class RegressionTest extends TestFmwk {
 
     public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/ResourceBasedPeriodFormatterDataServiceTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/ResourceBasedPeriodFormatterDataServiceTest.java
index def299a..08b87a5 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/ResourceBasedPeriodFormatterDataServiceTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/ResourceBasedPeriodFormatterDataServiceTest.java
@@ -16,7 +16,10 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.impl.duration.impl.PeriodFormatterData;
 import android.icu.impl.duration.impl.ResourceBasedPeriodFormatterDataService;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class ResourceBasedPeriodFormatterDataServiceTest extends TestFmwk {
 
   /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/TestAll.java
index a4d90d7..77a4ed1 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/TestAll.java
@@ -11,10 +11,13 @@
 package android.icu.dev.test.duration;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run all other tests as a batch.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
 
     public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/TestAll.java
index dd0b727..8fd0a97 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/TestAll.java
@@ -11,10 +11,13 @@
 package android.icu.dev.test.duration.languages;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run all other tests as a batch.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
 
     public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_ar_EG.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_ar_EG.java
index c50d766..431a363 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_ar_EG.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_ar_EG.java
@@ -11,11 +11,14 @@
 package android.icu.dev.test.duration.languages;
 
 import android.icu.dev.test.duration.LanguageTestRoot;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 /**
  * Test cases for ar_EG
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class Test_ar_EG extends LanguageTestRoot {
 
   /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_en.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_en.java
index a64c7dd..ae9d02e 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_en.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_en.java
@@ -11,10 +11,13 @@
 package android.icu.dev.test.duration.languages;
 
 import android.icu.dev.test.duration.LanguageTestRoot;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test cases for en
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class Test_en extends LanguageTestRoot {
 
   public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_es.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_es.java
index 01b59a1..40cd937 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_es.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_es.java
@@ -11,10 +11,13 @@
 package android.icu.dev.test.duration.languages;
 
 import android.icu.dev.test.duration.LanguageTestRoot;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test cases for es
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class Test_es extends LanguageTestRoot {
 
   /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_fr.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_fr.java
index c6d9634..babec36 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_fr.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_fr.java
@@ -11,10 +11,13 @@
 package android.icu.dev.test.duration.languages;
 
 import android.icu.dev.test.duration.LanguageTestRoot;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test cases for fr
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class Test_fr extends LanguageTestRoot {
 
   /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_he_IL.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_he_IL.java
index 53ac157..695f13f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_he_IL.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_he_IL.java
@@ -11,11 +11,14 @@
 package android.icu.dev.test.duration.languages;
 
 import android.icu.dev.test.duration.LanguageTestRoot;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 /**
  * Test cases for he_IL
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class Test_he_IL extends LanguageTestRoot {
   /**
    * Invoke the tests.
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_hi.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_hi.java
index 708200d..dec5593 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_hi.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_hi.java
@@ -12,10 +12,13 @@
 
 import android.icu.dev.test.duration.LanguageTestRoot;
 import android.icu.impl.duration.TimeUnitConstants;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test cases for hi
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class Test_hi extends LanguageTestRoot implements TimeUnitConstants {
 
   /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_it.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_it.java
index d52f2a9..ea1dada 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_it.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_it.java
@@ -11,10 +11,13 @@
 package android.icu.dev.test.duration.languages;
 
 import android.icu.dev.test.duration.LanguageTestRoot;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test cases for it
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class Test_it extends LanguageTestRoot {
 
   /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_ja.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_ja.java
index a4d5ac9..0e44f57 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_ja.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_ja.java
@@ -15,10 +15,13 @@
 import android.icu.impl.duration.Period;
 import android.icu.impl.duration.PeriodFormatter;
 import android.icu.impl.duration.TimeUnitConstants;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test cases for en
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class Test_ja extends LanguageTestRoot implements TimeUnitConstants {
   private BasicPeriodFormatterFactory pff;
 
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_ko.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_ko.java
index 659d446..5888b17 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_ko.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_ko.java
@@ -11,10 +11,13 @@
 package android.icu.dev.test.duration.languages;
 
 import android.icu.dev.test.duration.LanguageTestRoot;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test cases for ko
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class Test_ko extends LanguageTestRoot {
 
   /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_ru.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_ru.java
index eb28b84..919e42e 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_ru.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_ru.java
@@ -11,11 +11,14 @@
 package android.icu.dev.test.duration.languages;
 
 import android.icu.dev.test.duration.LanguageTestRoot;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 /**
  * Test cases for ru
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class Test_ru extends LanguageTestRoot {
 
   /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_zh_Hans.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_zh_Hans.java
index cc4f1c4..c910169 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_zh_Hans.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_zh_Hans.java
@@ -11,11 +11,14 @@
 package android.icu.dev.test.duration.languages;
 
 import android.icu.dev.test.duration.LanguageTestRoot;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 /**
  * Test cases for zh_Hans
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class Test_zh_Hans extends LanguageTestRoot {
 
   /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_zh_Hans_SG.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_zh_Hans_SG.java
index a26b53b..aeb83c5 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_zh_Hans_SG.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_zh_Hans_SG.java
@@ -11,10 +11,13 @@
 package android.icu.dev.test.duration.languages;
 
 import android.icu.dev.test.duration.LanguageTestRoot;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test cases for zh_Hans_SG
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class Test_zh_Hans_SG extends LanguageTestRoot {
 
   /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_zh_Hant.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_zh_Hant.java
index dd86273..08b6633 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_zh_Hant.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_zh_Hant.java
@@ -11,11 +11,14 @@
 package android.icu.dev.test.duration.languages;
 
 import android.icu.dev.test.duration.LanguageTestRoot;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 /**
  * Test cases for zh_Hant
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class Test_zh_Hant extends LanguageTestRoot {
 
   /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_zh_Hant_HK.java b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_zh_Hant_HK.java
index bc61851..8e80f28 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_zh_Hant_HK.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/duration/languages/Test_zh_Hant_HK.java
@@ -11,11 +11,14 @@
 package android.icu.dev.test.duration.languages;
 
 import android.icu.dev.test.duration.LanguageTestRoot;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 /**
  * Test cases for zh_Hant_HK
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class Test_zh_Hant_HK extends LanguageTestRoot {
 
   /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/BigNumberFormatTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/BigNumberFormatTest.java
index 59ab653..b0a00c1 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/BigNumberFormatTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/BigNumberFormatTest.java
@@ -15,11 +15,14 @@
 import android.icu.text.DecimalFormat;
 import android.icu.text.DecimalFormatSymbols;
 import android.icu.text.NumberFormat;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @test
  * General test of Big NumberFormat
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class BigNumberFormatTest extends TestFmwk {
 
     static final int ILLEGAL = -1;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/CompactDecimalFormatTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/CompactDecimalFormatTest.java
index 6dfd677..dc89986 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/CompactDecimalFormatTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/CompactDecimalFormatTest.java
@@ -22,7 +22,10 @@
 import android.icu.text.NumberFormat;
 import android.icu.text.PluralRules;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class CompactDecimalFormatTest extends TestFmwk {
 
     public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/DataDrivenFormatTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/DataDrivenFormatTest.java
index b1ac78c..75cf9ed 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/DataDrivenFormatTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/DataDrivenFormatTest.java
@@ -22,11 +22,14 @@
 import android.icu.util.Calendar;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author srl
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class DataDrivenFormatTest extends ModuleTest {
 
     /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/DataDrivenNumberFormatTestSuite.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/DataDrivenNumberFormatTestSuite.java
index 502b92b..b1c6c95 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/DataDrivenNumberFormatTestSuite.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/DataDrivenNumberFormatTestSuite.java
@@ -15,10 +15,13 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.dev.test.TestUtil;
 import android.icu.impl.Utility;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * A collection of methods to run the data driven number format test suite.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class DataDrivenNumberFormatTestSuite extends TestFmwk {
     
     /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatMiscTests.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatMiscTests.java
index 563fd9d..c44eddc 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatMiscTests.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatMiscTests.java
@@ -20,10 +20,13 @@
 
 import android.icu.text.DateFormatSymbols;
 import android.icu.text.SimpleDateFormat;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /** 
  * Performs miscellaneous tests for DateFormat, SimpleDateFormat, DateFormatSymbols
  **/
+@RunWith(IcuTestFmwkRunner.class)
 public class DateFormatMiscTests extends android.icu.dev.test.TestFmwk {
 
     public static void main(String[] args) throws Exception{
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatRegressionTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatRegressionTest.java
index af602d8..a1e88fa 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatRegressionTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatRegressionTest.java
@@ -35,10 +35,13 @@
 import android.icu.util.SimpleTimeZone;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /** 
  * Performs regression test for DateFormat
  **/
+@RunWith(IcuTestFmwkRunner.class)
 public class DateFormatRegressionTest extends android.icu.dev.test.TestFmwk {
 
     public static void main(String[] args) throws Exception{
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatRegressionTestJ.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatRegressionTestJ.java
index 3b6e5d8..cad84a0 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatRegressionTestJ.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatRegressionTestJ.java
@@ -22,7 +22,10 @@
 import android.icu.text.SimpleDateFormat;
 import android.icu.util.Calendar;
 import android.icu.util.TimeZone;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class DateFormatRegressionTestJ extends android.icu.dev.test.TestFmwk {
     
     private static final String TIME_STRING = "2000/11/17 08:01:00";
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatRoundTripTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatRoundTripTest.java
index e4f491a..709805f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatRoundTripTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatRoundTripTest.java
@@ -24,10 +24,13 @@
 import android.icu.util.Calendar;
 import android.icu.util.GregorianCalendar;
 import android.icu.util.TimeZone;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /** 
  * Performs round-trip tests for DateFormat
  **/
+@RunWith(IcuTestFmwkRunner.class)
 public class DateFormatRoundTripTest extends android.icu.dev.test.TestFmwk {
     public boolean INFINITE = false;
     public boolean quick = true;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatTest.java
index 7ae7dfa..9934878 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/DateFormatTest.java
@@ -58,7 +58,10 @@
 import android.icu.util.ULocale;
 import android.icu.util.UResourceBundle;
 import android.icu.util.VersionInfo;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class DateFormatTest extends android.icu.dev.test.TestFmwk {
     
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/DateIntervalFormatTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/DateIntervalFormatTest.java
index a8824c1..79eb66d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/DateIntervalFormatTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/DateIntervalFormatTest.java
@@ -28,7 +28,10 @@
 import android.icu.util.DateInterval;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class DateIntervalFormatTest extends android.icu.dev.test.TestFmwk {
 
     /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/DateTimeGeneratorTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/DateTimeGeneratorTest.java
index 10c2fb4..75def1e 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/DateTimeGeneratorTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/DateTimeGeneratorTest.java
@@ -36,7 +36,10 @@
 import android.icu.util.SimpleTimeZone;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class DateTimeGeneratorTest extends TestFmwk {
     public static boolean GENERATE_TEST_DATA;
     static {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/GlobalizationPreferencesTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/GlobalizationPreferencesTest.java
index b52ced9..0e1d9f4 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/GlobalizationPreferencesTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/GlobalizationPreferencesTest.java
@@ -28,9 +28,12 @@
 import android.icu.util.JapaneseCalendar;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 
+@RunWith(IcuTestFmwkRunner.class)
 public class GlobalizationPreferencesTest extends TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDateFormat.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDateFormat.java
index e87142f..c93d90b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDateFormat.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDateFormat.java
@@ -25,7 +25,10 @@
 import android.icu.text.DateFormat;
 import android.icu.text.SimpleDateFormat;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class IntlTestDateFormat extends android.icu.dev.test.TestFmwk {
     // Values in milliseconds (== Date)
     private static final long ONESECOND = 1000;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDateFormatAPI.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDateFormatAPI.java
index 5835b52..61f88b9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDateFormatAPI.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDateFormatAPI.java
@@ -29,7 +29,10 @@
 import android.icu.text.NumberFormat;
 import android.icu.util.Calendar;
 import android.icu.util.TimeZone;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class IntlTestDateFormatAPI extends android.icu.dev.test.TestFmwk
 {
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDateFormatAPIC.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDateFormatAPIC.java
index 1f55725..d1155b7 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDateFormatAPIC.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDateFormatAPIC.java
@@ -21,12 +21,15 @@
 import android.icu.text.DecimalFormat;
 import android.icu.text.NumberFormat;
 import android.icu.text.SimpleDateFormat;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /*
  * This is an API test, not a unit test.  It doesn't test very many cases, and doesn't
  * try to test the full functionality.  It just calls each function in the class and
  * verifies that it works on a basic level.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class IntlTestDateFormatAPIC extends android.icu.dev.test.TestFmwk {
     
     public static void main(String[] args)  throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDateFormatSymbols.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDateFormatSymbols.java
index 7eabcf2..293122b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDateFormatSymbols.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDateFormatSymbols.java
@@ -22,7 +22,10 @@
 import android.icu.text.DateFormatSymbols;
 import android.icu.util.Calendar;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class IntlTestDateFormatSymbols extends android.icu.dev.test.TestFmwk
 {
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDecimalFormatAPI.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDecimalFormatAPI.java
index 815a85c..25751f3 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDecimalFormatAPI.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDecimalFormatAPI.java
@@ -28,7 +28,10 @@
 import android.icu.text.DecimalFormat;
 import android.icu.text.DecimalFormatSymbols;
 import android.icu.text.NumberFormat;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class IntlTestDecimalFormatAPI extends android.icu.dev.test.TestFmwk
 {
     public static void main(String[] args)  throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDecimalFormatAPIC.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDecimalFormatAPIC.java
index 790da97..4dc6836 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDecimalFormatAPIC.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDecimalFormatAPIC.java
@@ -25,10 +25,13 @@
 import android.icu.text.DecimalFormat;
 import android.icu.text.DecimalFormatSymbols;
 import android.icu.text.NumberFormat;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 // This is an API test, not a unit test.  It doesn't test very many cases, and doesn't
 // try to test the full functionality.  It just calls each function in the class and
 // verifies that it works on a basic level.
+@RunWith(IcuTestFmwkRunner.class)
 public class IntlTestDecimalFormatAPIC extends android.icu.dev.test.TestFmwk {
     
     public static void main(String[] args)  throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDecimalFormatSymbols.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDecimalFormatSymbols.java
index a1ce74b..d2f5aae 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDecimalFormatSymbols.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDecimalFormatSymbols.java
@@ -22,7 +22,10 @@
 
 import android.icu.text.DecimalFormatSymbols;
 import android.icu.util.Currency;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class IntlTestDecimalFormatSymbols extends android.icu.dev.test.TestFmwk
 {
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDecimalFormatSymbolsC.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDecimalFormatSymbolsC.java
index 246b888..30f67e0 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDecimalFormatSymbolsC.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestDecimalFormatSymbolsC.java
@@ -18,10 +18,13 @@
 
 import android.icu.text.DecimalFormat;
 import android.icu.text.DecimalFormatSymbols;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Tests for DecimalFormatSymbols
  **/
+@RunWith(IcuTestFmwkRunner.class)
 public class IntlTestDecimalFormatSymbolsC extends android.icu.dev.test.TestFmwk {
     
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestNumberFormat.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestNumberFormat.java
index a774889..df997a9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestNumberFormat.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestNumberFormat.java
@@ -17,11 +17,14 @@
 
 import android.icu.text.DecimalFormat;
 import android.icu.text.NumberFormat;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * This test does round-trip testing (format -> parse -> format -> parse -> etc.) of
  * NumberFormat.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class IntlTestNumberFormat extends android.icu.dev.test.TestFmwk {
     
     public NumberFormat fNumberFormat;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestNumberFormatAPI.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestNumberFormatAPI.java
index 12af09f..84db33d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestNumberFormatAPI.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestNumberFormatAPI.java
@@ -24,7 +24,10 @@
 
 import android.icu.text.NumberFormat;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class IntlTestNumberFormatAPI extends android.icu.dev.test.TestFmwk
 {
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestSimpleDateFormatAPI.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestSimpleDateFormatAPI.java
index b650e7b..07292ce 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestSimpleDateFormatAPI.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/IntlTestSimpleDateFormatAPI.java
@@ -27,11 +27,14 @@
 
 import android.icu.text.DateFormatSymbols;
 import android.icu.text.SimpleDateFormat;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
 * @test 1.4 98/03/06
 * @summary test International Simple Date Format API
 */
+@RunWith(IcuTestFmwkRunner.class)
 public class IntlTestSimpleDateFormatAPI extends android.icu.dev.test.TestFmwk
 {
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/ListFormatterTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/ListFormatterTest.java
index bf19b22..1ed8dfd 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/ListFormatterTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/ListFormatterTest.java
@@ -13,7 +13,10 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.ListFormatter;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class ListFormatterTest extends TestFmwk {
     public static void main(String[] args) {
         new ListFormatterTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/MeasureUnitTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/MeasureUnitTest.java
index 311ef62..f12b25d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/MeasureUnitTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/MeasureUnitTest.java
@@ -38,12 +38,15 @@
 import android.icu.util.TimeUnit;
 import android.icu.util.TimeUnitAmount;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * See https://sites.google.com/site/icusite/processes/release/tasks/standards?pli=1
  * for information on how to update with each new release.
  * @author markdavis
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class MeasureUnitTest extends TestFmwk {
     
     static class OrderedPair<F extends Comparable, S extends Comparable> extends Pair<F, S> implements Comparable<OrderedPair<F, S>> {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/MessagePatternUtilTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/MessagePatternUtilTest.java
index 970bd0b..f1a060b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/MessagePatternUtilTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/MessagePatternUtilTest.java
@@ -23,11 +23,14 @@
 import android.icu.text.MessagePatternUtil.MessageNode;
 import android.icu.text.MessagePatternUtil.TextNode;
 import android.icu.text.MessagePatternUtil.VariantNode;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test MessagePatternUtil (MessagePattern-as-tree-of-nodes API)
  * by building parallel trees of nodes and verifying that they match.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public final class MessagePatternUtilTest extends android.icu.dev.test.TestFmwk {
     public static void main(String[] args) throws Exception {
         new MessagePatternUtilTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/MessageRegression.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/MessageRegression.java
index 1815203..93faf44 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/MessageRegression.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/MessageRegression.java
@@ -47,7 +47,10 @@
 import android.icu.text.MessageFormat;
 import android.icu.text.NumberFormat;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class MessageRegression extends android.icu.dev.test.TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatRegistrationTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatRegistrationTest.java
index 1aff69c..bbef5db 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatRegistrationTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatRegistrationTest.java
@@ -12,7 +12,10 @@
 import android.icu.text.NumberFormat;
 import android.icu.text.NumberFormat.SimpleNumberFormatFactory;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class NumberFormatRegistrationTest extends android.icu.dev.test.TestFmwk {
 
     public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatRegressionTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatRegressionTest.java
index f90976c..908a41e 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatRegressionTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatRegressionTest.java
@@ -27,10 +27,13 @@
 import android.icu.text.NumberFormat;
 import android.icu.util.Calendar;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /** 
  * Performs regression test for MessageFormat
  **/
+@RunWith(IcuTestFmwkRunner.class)
 public class NumberFormatRegressionTest extends android.icu.dev.test.TestFmwk {
     
     public static void main(String[] args) throws Exception{
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatRoundTripTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatRoundTripTest.java
index cf59f40..c2b0b17 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatRoundTripTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatRoundTripTest.java
@@ -18,10 +18,13 @@
 
 import android.icu.text.DecimalFormat;
 import android.icu.text.NumberFormat;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /** 
  * Performs round-trip tests for NumberFormat
  **/
+@RunWith(IcuTestFmwkRunner.class)
 public class NumberFormatRoundTripTest extends android.icu.dev.test.TestFmwk {
     
     public double MAX_ERROR = 1e-14;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatSpecificationTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatSpecificationTest.java
index fa1f813..ab98f56 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatSpecificationTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatSpecificationTest.java
@@ -13,11 +13,14 @@
 import android.icu.text.NumberFormat;
 import android.icu.util.Currency;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author rocketman
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class NumberFormatSpecificationTest extends TestFmwk {
     
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatTest.java
index ba9df40..098b102 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberFormatTest.java
@@ -40,7 +40,10 @@
 import android.icu.util.Currency;
 import android.icu.util.CurrencyAmount;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class NumberFormatTest extends android.icu.dev.test.TestFmwk {
     
     private static ULocale EN = new ULocale("en");
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberRegression.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberRegression.java
index aa824ef..e7684cd 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberRegression.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/NumberRegression.java
@@ -46,7 +46,10 @@
 import android.icu.util.GregorianCalendar;
 import android.icu.util.ULocale;
 import android.icu.util.VersionInfo;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class NumberRegression extends android.icu.dev.test.TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/PluralFormatTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/PluralFormatTest.java
index 27f49f8..5a6b79a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/PluralFormatTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/PluralFormatTest.java
@@ -15,11 +15,14 @@
 import android.icu.text.CurrencyPluralInfo;
 import android.icu.text.PluralFormat;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author tschumann (Tim Schumann)
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class PluralFormatTest extends TestFmwk {
   
   public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/PluralFormatUnitTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/PluralFormatUnitTest.java
index 5668635..5040006 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/PluralFormatUnitTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/PluralFormatUnitTest.java
@@ -26,11 +26,14 @@
 import android.icu.text.PluralRules.PluralType;
 import android.icu.text.PluralRules.SampleType;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author tschumann (Tim Schumann)
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class PluralFormatUnitTest extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new PluralFormatUnitTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/PluralRangesTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/PluralRangesTest.java
index 1062bc7..cca4a08 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/PluralRangesTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/PluralRangesTest.java
@@ -20,11 +20,14 @@
 import android.icu.util.Measure;
 import android.icu.util.MeasureUnit;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author markdavis
  * 
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class PluralRangesTest extends TestFmwk {
     public static void main(String[] args) {
         new PluralRangesTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/PluralRulesTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/PluralRulesTest.java
index 5a1f7fe..f39e32a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/PluralRulesTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/PluralRulesTest.java
@@ -47,11 +47,14 @@
 import android.icu.text.UFieldPosition;
 import android.icu.util.Output;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author dougfelt (Doug Felt)
  * @author markdavis (Mark Davis) [for fractional support]
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class PluralRulesTest extends TestFmwk {
 
     PluralRulesFactory factory = PluralRulesFactory.NORMAL;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/RBNFParseTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/RBNFParseTest.java
index d687c50..2a93ff1 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/RBNFParseTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/RBNFParseTest.java
@@ -12,7 +12,10 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.RuleBasedNumberFormat;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class RBNFParseTest extends TestFmwk {
     public static void main(String[] args) {
         new RBNFParseTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/RbnfLenientScannerTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/RbnfLenientScannerTest.java
index f532df3..7ac67ae 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/RbnfLenientScannerTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/RbnfLenientScannerTest.java
@@ -17,7 +17,10 @@
 import android.icu.text.RbnfLenientScannerProvider;
 import android.icu.text.RuleBasedNumberFormat;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class RbnfLenientScannerTest extends TestFmwk {
     private static final RbnfLenientScannerProvider provider = new RbnfScannerProviderImpl();
 
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/RbnfRoundTripTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/RbnfRoundTripTest.java
index e49f4d3..5954b53 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/RbnfRoundTripTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/RbnfRoundTripTest.java
@@ -11,7 +11,10 @@
 
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.RuleBasedNumberFormat;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class RbnfRoundTripTest extends TestFmwk {
     public static void main(String[] args) {
         RbnfRoundTripTest test = new RbnfRoundTripTest();
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/RbnfTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/RbnfTest.java
index 2bbfb81..e99be6c 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/RbnfTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/RbnfTest.java
@@ -20,11 +20,14 @@
 import android.icu.text.NumberFormat;
 import android.icu.text.RuleBasedNumberFormat;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * This does not test lenient parse mode, since testing the default implementation
  * introduces a dependency on collation.  See RbnfLenientScannerTest.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class RbnfTest extends TestFmwk {
     public static void main(String[] args) {
         RbnfTest test = new RbnfTest();
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/RelativeDateTimeFormatterTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/RelativeDateTimeFormatterTest.java
index 366a2ed..b952e41 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/RelativeDateTimeFormatterTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/RelativeDateTimeFormatterTest.java
@@ -17,7 +17,10 @@
 import android.icu.text.RelativeDateTimeFormatter.Direction;
 import android.icu.text.RelativeDateTimeFormatter.RelativeUnit;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class RelativeDateTimeFormatterTest extends TestFmwk {
     
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/ScientificNumberFormatterTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/ScientificNumberFormatterTest.java
index 5cfd7ea..1e9023e 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/ScientificNumberFormatterTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/ScientificNumberFormatterTest.java
@@ -12,11 +12,14 @@
 import android.icu.text.NumberFormat;
 import android.icu.text.ScientificNumberFormatter;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author rocketman
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class ScientificNumberFormatterTest extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new ScientificNumberFormatterTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/SelectFormatAPITest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/SelectFormatAPITest.java
index 23c7e44..e50ce41 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/SelectFormatAPITest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/SelectFormatAPITest.java
@@ -13,11 +13,14 @@
 
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.SelectFormat;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author kirtig 
  * This class tests the API functionality of the SelectFormat
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class SelectFormatAPITest extends TestFmwk {
   
     static final String SIMPLE_PATTERN1 = "feminine {feminineVerbValue1} other{otherVerbValue1}";
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/SelectFormatUnitTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/SelectFormatUnitTest.java
index ed4278a..75fe251 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/SelectFormatUnitTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/SelectFormatUnitTest.java
@@ -10,11 +10,14 @@
 
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.SelectFormat;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author kirtig 
  * This class does the unit testing for the SelectFormat
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class SelectFormatUnitTest extends TestFmwk {
   
     static final String SIMPLE_PATTERN = "feminine {feminineVerbValue} other{otherVerbValue}";
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/TestAll.java
index d71d7e9..f52cbc9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/TestAll.java
@@ -9,11 +9,14 @@
 package android.icu.dev.test.format;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run all other tests as a batch.
  */
 
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
 
     public static void main(String[] args) {
@@ -38,7 +41,8 @@
               "Formatting Tests");
     }
 
-    public static class RBNF extends TestGroup {
+    @RunWith(IcuTestGroupRunner.class)
+	public static class RBNF extends TestGroup {
         public RBNF() {
             super(new String[] {
                 "RbnfTest",
@@ -48,7 +52,8 @@
         }
     }
 
-    public static class NumberFormat extends TestGroup {
+    @RunWith(IcuTestGroupRunner.class)
+	public static class NumberFormat extends TestGroup {
         public NumberFormat() {
             super(new String[] {
                 "CompactDecimalFormatTest",
@@ -69,7 +74,8 @@
         }
     }
 
-    public static class DateFormat extends TestGroup {
+    @RunWith(IcuTestGroupRunner.class)
+	public static class DateFormat extends TestGroup {
         public DateFormat() {
             super(new String[] {
                 "DateFormatMiscTests",
@@ -89,7 +95,8 @@
         }
     }
     
-    public static class DateIntervalFormat extends TestGroup {
+    @RunWith(IcuTestGroupRunner.class)
+	public static class DateIntervalFormat extends TestGroup {
         public DateIntervalFormat() {
             super(new String[] {
                 "DateIntervalFormatTest"
@@ -97,7 +104,8 @@
         }
     }
     
-    public static class TimeUnitFormat extends TestGroup {
+    @RunWith(IcuTestGroupRunner.class)
+	public static class TimeUnitFormat extends TestGroup {
         public TimeUnitFormat() {
             super(new String[] {
                 "TimeUnitTest"
@@ -105,7 +113,8 @@
         }
     }
     
-    public static class PluralFormat extends TestGroup {
+    @RunWith(IcuTestGroupRunner.class)
+	public static class PluralFormat extends TestGroup {
         public PluralFormat() {
             super(new String[] {
                 "PluralFormatUnitTest",
@@ -116,7 +125,8 @@
         }
     }
 
-    public static class SelectFormat extends TestGroup {
+    @RunWith(IcuTestGroupRunner.class)
+	public static class SelectFormat extends TestGroup {
         public SelectFormat() {
             super(new String[] {
                 "SelectFormatUnitTest",
@@ -125,7 +135,8 @@
         }
     }
 
-    public static class MessageFormat extends TestGroup {
+    @RunWith(IcuTestGroupRunner.class)
+	public static class MessageFormat extends TestGroup {
         public MessageFormat() {
             super(new String[] {
                 "TestMessageFormat",
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/TestMessageFormat.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/TestMessageFormat.java
index 517da01..45a1e23 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/TestMessageFormat.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/TestMessageFormat.java
@@ -35,7 +35,10 @@
 import android.icu.text.UFormat;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestMessageFormat extends android.icu.dev.test.TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/TimeUnitTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/TimeUnitTest.java
index 5a9fa37..5d9d79e 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/TimeUnitTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/TimeUnitTest.java
@@ -21,11 +21,14 @@
 import android.icu.util.TimeUnit;
 import android.icu.util.TimeUnitAmount;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author markdavis
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TimeUnitTest extends TestFmwk {
     public static void main(String[] args) throws Exception{
         new TimeUnitTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/TimeZoneFormatTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/TimeZoneFormatTest.java
index 5b8ff74..ec84581 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/TimeZoneFormatTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/TimeZoneFormatTest.java
@@ -39,7 +39,10 @@
 import android.icu.util.TimeZone.SystemTimeZoneType;
 import android.icu.util.TimeZoneTransition;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TimeZoneFormatTest extends android.icu.dev.test.TestFmwk {
 
     private static boolean JDKTZ = (TimeZone.getDefaultTimeZoneType() == TimeZone.TIMEZONE_JDK);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/impl/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/impl/TestAll.java
index e8cba69..927e42a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/impl/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/impl/TestAll.java
@@ -8,10 +8,13 @@
 package android.icu.dev.test.impl;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run all other tests as a batch.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
     public static void main(String[] args) throws Exception {
         new TestAll().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/iterator/TestUCharacterIterator.java b/android_icu4j/src/main/tests/android/icu/dev/test/iterator/TestUCharacterIterator.java
index 6e0b8f1..f738ded 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/iterator/TestUCharacterIterator.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/iterator/TestUCharacterIterator.java
@@ -14,6 +14,8 @@
 import android.icu.text.ReplaceableString;
 import android.icu.text.UCharacterIterator;
 import android.icu.text.UTF16;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author ram
@@ -23,6 +25,7 @@
  * To enable and disable the creation of type comments go to
  * Window>Preferences>Java>Code Generation.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TestUCharacterIterator extends TestFmwk{
 
     // constructor -----------------------------------------------------
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/lang/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/lang/TestAll.java
index 740797e..9c2c366 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/lang/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/lang/TestAll.java
@@ -8,10 +8,13 @@
 package android.icu.dev.test.lang;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run character property tests.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
     public static void main(String[] args) throws Exception {
         new TestAll().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/lang/TestCharacter.java b/android_icu4j/src/main/tests/android/icu/dev/test/lang/TestCharacter.java
index 005ef78..85f049f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/lang/TestCharacter.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/lang/TestCharacter.java
@@ -8,7 +8,10 @@
 package android.icu.dev.test.lang;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
+@RunWith(IcuTestGroupRunner.class)
 public class TestCharacter extends TestGroup {
     public static void main(String[] args) {
         new TestCharacter().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/lang/TestUScript.java b/android_icu4j/src/main/tests/android/icu/dev/test/lang/TestUScript.java
index e27bbdc..af31264 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/lang/TestUScript.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/lang/TestUScript.java
@@ -17,7 +17,10 @@
 import android.icu.lang.UScript.ScriptUsage;
 import android.icu.text.UnicodeSet;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestUScript extends TestFmwk {
 
     /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/lang/TestUScriptRun.java b/android_icu4j/src/main/tests/android/icu/dev/test/lang/TestUScriptRun.java
index 1f2b79d..6a8783d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/lang/TestUScriptRun.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/lang/TestUScriptRun.java
@@ -11,7 +11,10 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.lang.UScript;
 import android.icu.lang.UScriptRun;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestUScriptRun extends TestFmwk
 {
     public TestUScriptRun()
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterCaseTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterCaseTest.java
index 527290e..f801ada 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterCaseTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterCaseTest.java
@@ -24,6 +24,8 @@
 import android.icu.text.RuleBasedBreakIterator;
 import android.icu.text.UTF16;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 /**
@@ -32,6 +34,7 @@
 * @author Syn Wee Quek
 * @since march 14 2002
 */
+@RunWith(IcuTestFmwkRunner.class)
 public final class UCharacterCaseTest extends TestFmwk
 {
     // constructor -----------------------------------------------------------
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterCategoryTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterCategoryTest.java
index e140a81..89079da 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterCategoryTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterCategoryTest.java
@@ -8,12 +8,15 @@
 package android.icu.dev.test.lang;
 import android.icu.dev.test.TestFmwk;
 import android.icu.lang.UCharacterCategory;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
 * Testing UCharacterCategory
 * @author Syn Wee Quek
 * @since April 02 2002
 */
+@RunWith(IcuTestFmwkRunner.class)
 public class UCharacterCategoryTest extends TestFmwk
 {
     // constructor -----------------------------------------------------------
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterDirectionTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterDirectionTest.java
index 858b827..3993592 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterDirectionTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterDirectionTest.java
@@ -9,12 +9,15 @@
 
 import android.icu.dev.test.TestFmwk;
 import android.icu.lang.UCharacterDirection;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
 * Testing UCharacterDirection
 * @author Syn Wee Quek
 * @since July 22 2002
 */
+@RunWith(IcuTestFmwkRunner.class)
 public class UCharacterDirectionTest extends TestFmwk
 {    
     // constructor -----------------------------------------------------------
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterSurrogateTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterSurrogateTest.java
index 7457c4e..e624323 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterSurrogateTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterSurrogateTest.java
@@ -12,10 +12,13 @@
 import android.icu.impl.Utility;
 import android.icu.lang.UCharacter;
 import android.icu.text.UTF16;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test JDK 1.5 cover APIs.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public final class UCharacterSurrogateTest extends TestFmwk {
 
     public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterTest.java
index a62574e..b169673 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterTest.java
@@ -34,6 +34,8 @@
 import android.icu.util.ULocale;
 import android.icu.util.ValueIterator;
 import android.icu.util.VersionInfo;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
 * Testing class for UCharacter
@@ -41,6 +43,7 @@
 * @author Syn Wee Quek
 * @since nov 04 2000
 */
+@RunWith(IcuTestFmwkRunner.class)
 public final class UCharacterTest extends TestFmwk
 {
     // private variables =============================================
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterThreadTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterThreadTest.java
index 1abcd29..daa35af 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterThreadTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterThreadTest.java
@@ -13,11 +13,14 @@
 
 import android.icu.dev.test.TestFmwk;
 import android.icu.lang.UCharacter;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author aheninger
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class UCharacterThreadTest extends TestFmwk {
   // constructor -----------------------------------------------------------
     
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UPropertyAliasesTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UPropertyAliasesTest.java
index 6923db3..b2e7a41 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UPropertyAliasesTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UPropertyAliasesTest.java
@@ -14,7 +14,10 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.lang.UCharacter;
 import android.icu.lang.UProperty;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class UPropertyAliasesTest extends TestFmwk {
   
     public UPropertyAliasesTest() {}
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UTF16Test.java b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UTF16Test.java
index 8a42a18..5cce7a6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UTF16Test.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UTF16Test.java
@@ -15,12 +15,15 @@
 import android.icu.text.ReplaceableString;
 import android.icu.text.UTF16;
 import android.icu.text.UTF16.StringComparator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
 * Testing class for UTF16
 * @author Syn Wee Quek
 * @since feb 09 2001
 */
+@RunWith(IcuTestFmwkRunner.class)
 public final class UTF16Test extends TestFmwk
 {
     // constructor ===================================================
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UnicodeSetStringSpanTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UnicodeSetStringSpanTest.java
index 08c9ad4..8d00666 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UnicodeSetStringSpanTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UnicodeSetStringSpanTest.java
@@ -15,11 +15,14 @@
 import android.icu.text.UnicodeSet;
 import android.icu.text.UnicodeSet.SpanCondition;
 import android.icu.util.OutputInt;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @test
  * @summary General test of UnicodeSet string span.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class UnicodeSetStringSpanTest extends TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UnicodeSetTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UnicodeSetTest.java
index 8ade31d..10e1279 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UnicodeSetTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UnicodeSetTest.java
@@ -42,11 +42,14 @@
 import android.icu.text.UnicodeSetSpanner.CountMethod;
 import android.icu.text.UnicodeSetSpanner.TrimOption;
 import android.icu.util.OutputInt;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @test
  * @summary General test of UnicodeSet
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class UnicodeSetTest extends TestFmwk {
 
     static final String NOT = "%%%%";
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/BasicTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/BasicTest.java
index 2ab1c3f..7f5700d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/BasicTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/BasicTest.java
@@ -26,8 +26,11 @@
 import android.icu.text.UTF16;
 import android.icu.text.UnicodeSet;
 import android.icu.text.UnicodeSetIterator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
+@RunWith(IcuTestFmwkRunner.class)
 public class BasicTest extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new BasicTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/ConformanceTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/ConformanceTest.java
index bead972..9e0cf82 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/ConformanceTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/ConformanceTest.java
@@ -18,7 +18,10 @@
 import android.icu.text.Normalizer;
 import android.icu.text.UTF16;
 import android.icu.text.UnicodeSet;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class ConformanceTest extends TestFmwk {
 
     Normalizer normalizer;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/NormalizationMonkeyTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/NormalizationMonkeyTest.java
index 000f86c..de8e5a7 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/NormalizationMonkeyTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/NormalizationMonkeyTest.java
@@ -15,7 +15,10 @@
 import android.icu.lang.UCharacterCategory;
 import android.icu.text.Normalizer;
 import android.icu.text.UTF16;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class NormalizationMonkeyTest extends TestFmwk {
     int loopCount = 100;
     int maxCharCount = 20;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/NormalizerRegressionTests.java b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/NormalizerRegressionTests.java
index 0fe6f71..bf4aba8 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/NormalizerRegressionTests.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/NormalizerRegressionTests.java
@@ -10,7 +10,10 @@
 
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.Normalizer;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class NormalizerRegressionTests extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new NormalizerRegressionTests().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/TestAll.java
index ed5e6e6..c5f44bf 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/TestAll.java
@@ -8,10 +8,13 @@
 package android.icu.dev.test.normalizer;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run normalizer tests as a batch.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
 
     public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/TestCanonicalIterator.java b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/TestCanonicalIterator.java
index 564a941..593a603 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/TestCanonicalIterator.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/TestCanonicalIterator.java
@@ -19,10 +19,13 @@
 import android.icu.text.CanonicalIterator;
 import android.icu.text.Normalizer;
 import android.icu.text.UTF16;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 // TODO: fit into test framework
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestCanonicalIterator extends TestFmwk {
     
     static final boolean SHOW_NAMES = false;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/TestDeprecatedNormalizerAPI.java b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/TestDeprecatedNormalizerAPI.java
index 35e3f0e..d03220c 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/TestDeprecatedNormalizerAPI.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/TestDeprecatedNormalizerAPI.java
@@ -14,7 +14,10 @@
 import android.icu.text.ComposedCharIter;
 import android.icu.text.Normalizer;
 import android.icu.text.StringCharacterIterator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestDeprecatedNormalizerAPI extends TestFmwk
 {
      
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/UTS46Test.java b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/UTS46Test.java
index 0e2af87..8599dcf 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/UTS46Test.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/UTS46Test.java
@@ -16,12 +16,15 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.impl.Normalizer2Impl.UTF16Plus;
 import android.icu.text.IDNA;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * UTS #46 (IDNA2008) test.
  * @author Markus Scherer
  * @since 2010jul10
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class UTS46Test extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new UTS46Test().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/UnicodeNormalizerConformanceTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/UnicodeNormalizerConformanceTest.java
index 313f4ae..4d556b6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/UnicodeNormalizerConformanceTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/normalizer/UnicodeNormalizerConformanceTest.java
@@ -15,8 +15,11 @@
 import android.icu.dev.test.TestUtil;
 import android.icu.text.UTF16;
 import android.icu.text.UnicodeSet;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
+@RunWith(IcuTestFmwkRunner.class)
 public class UnicodeNormalizerConformanceTest extends TestFmwk {
 
     UnicodeNormalizer normalizer_C, normalizer_D, normalizer_KC, normalizer_KD;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/BreakIteratorRegTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/BreakIteratorRegTest.java
index 56fe1b1..2fb35ed 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/BreakIteratorRegTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/BreakIteratorRegTest.java
@@ -13,7 +13,10 @@
 
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.BreakIterator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class BreakIteratorRegTest extends TestFmwk
 {
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/BreakIteratorTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/BreakIteratorTest.java
index af2a165..1cc8afe 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/BreakIteratorTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/BreakIteratorTest.java
@@ -16,7 +16,10 @@
 import android.icu.text.BreakIterator;
 import android.icu.text.FilteredBreakIteratorBuilder;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class BreakIteratorTest extends TestFmwk
 {
     private BreakIterator characterBreak;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/RBBIAPITest.java b/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/RBBIAPITest.java
index 66e5785..53313e7 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/RBBIAPITest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/RBBIAPITest.java
@@ -20,10 +20,13 @@
 import android.icu.text.BreakIterator;
 import android.icu.text.RuleBasedBreakIterator;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * API Test the RuleBasedBreakIterator class
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class RBBIAPITest extends android.icu.dev.test.TestFmwk {
     
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/RBBITest.java b/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/RBBITest.java
index 5c56eeb..c8347b2 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/RBBITest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/RBBITest.java
@@ -23,7 +23,10 @@
 import android.icu.text.BreakIterator;
 import android.icu.text.RuleBasedBreakIterator;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class RBBITest extends TestFmwk {  
     
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/RBBITestExtended.java b/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/RBBITestExtended.java
index 692b917..5ed8313 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/RBBITestExtended.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/RBBITestExtended.java
@@ -19,6 +19,8 @@
 import android.icu.text.BreakIterator;
 import android.icu.text.UTF16;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 /**
@@ -28,6 +30,7 @@
  *      See the data file for a description of the tests.
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class RBBITestExtended extends TestFmwk {
 
     public static void main(String[] args)throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/RBBITestMonkey.java b/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/RBBITestMonkey.java
index 1b75950..cf77913 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/RBBITestMonkey.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/RBBITestMonkey.java
@@ -21,6 +21,8 @@
 import android.icu.text.RuleBasedBreakIterator;
 import android.icu.text.UTF16;
 import android.icu.text.UnicodeSet;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 /**
@@ -33,6 +35,7 @@
  * Ported from ICU4C, original code in file source/test/intltest/rbbitst.cpp
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class RBBITestMonkey extends TestFmwk {
     
     public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/SimpleBITest.java b/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/SimpleBITest.java
index 072f9fd..dcc5650 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/SimpleBITest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/SimpleBITest.java
@@ -12,6 +12,8 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.BreakIterator;
 import android.icu.text.RuleBasedBreakIterator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 // TODO: {dlf} this test currently doesn't test anything!
 // You'll notice that the resource that uses the dictionary isn't even on the resource path,
@@ -45,6 +47,7 @@
 // that important, since we have a thai dictionary that we do test thoroughly.
 //
 
+@RunWith(IcuTestFmwkRunner.class)
 public class SimpleBITest extends TestFmwk{
     public static final String testText =
 //        "The rain in Spain stays mainly on the plain.  The plains in Spain are mainly pained with rain.";
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/TestAll.java
index 246db34..f9b3616 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/rbbi/TestAll.java
@@ -8,10 +8,13 @@
 package android.icu.dev.test.rbbi;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run all other tests as a batch.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
 
     public static void main(String[] args) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/sample/ModuleTestSample.java b/android_icu4j/src/main/tests/android/icu/dev/test/sample/ModuleTestSample.java
index fe020c9..b581011 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/sample/ModuleTestSample.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/sample/ModuleTestSample.java
@@ -8,7 +8,10 @@
 package android.icu.dev.test.sample;
 
 import android.icu.dev.test.ModuleTest;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class ModuleTestSample extends ModuleTest {
     public static void main(String[] args) throws Exception {
     new ModuleTestSample().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/search/SearchTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/search/SearchTest.java
index aad8a34..f5462f8 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/search/SearchTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/search/SearchTest.java
@@ -33,7 +33,10 @@
 import android.icu.text.SearchIterator.ElementComparisonType;
 import android.icu.text.StringSearch;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class SearchTest extends TestFmwk {
 
     //inner class
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/CompatibilityTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/CompatibilityTest.java
index a71a765..95a0245 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/CompatibilityTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/CompatibilityTest.java
@@ -18,6 +18,7 @@
 import java.io.InputStream;
 import java.io.ObjectInputStream;
 import java.net.JarURLConnection;
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Enumeration;
 import java.util.MissingResourceException;
@@ -25,10 +26,13 @@
 import java.util.jar.JarFile;
 
 import android.icu.dev.test.TestFmwk;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author emader
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class CompatibilityTest extends TestFmwk
 {
     public class FolderTarget extends Target
@@ -236,6 +240,14 @@
         }
 
         try {
+            // android-changed - need to trim the directory off the JAR entry before opening the
+            // connection otherwise it could fail as it will try and find the entry within the JAR
+            // which may not exist.
+            String urlAsString = jarURL.toExternalForm();
+            ix = urlAsString.indexOf("!/");
+            jarURL = new URL(urlAsString.substring(0, ix + 2));
+            // end android-changed
+
             JarURLConnection conn = (JarURLConnection) jarURL.openConnection();
             JarFile jarFile = conn.getJarFile();
             try {
@@ -292,10 +304,28 @@
 
         return target;
     }
-    
+
+    // android-changed - need to access an actual resource file
+    /**
+     * The path to an actual data resource file in the JAR. This is needed because when the
+     * code is packaged for Android the resulting archive does not have entries for directories
+     * and so only actual resources can be found.
+     */
+    private static final String ACTUAL_RESOURCE = "/ICU_3.6/android.icu.impl.OlsonTimeZone.dat";
+    // end android-changed
+
     protected Target getTargets(String targetName)
     {
-        URL dataURL = getClass().getResource("data");
+        // android-changed - locate an actual resource and find the containing JAR file/directory
+        // Get the URL to an actual resource and then compute the URL to the directory just in
+        // case the resources are in a JAR file that doesn't have entries for directories.
+        URL dataURL = getClass().getResource("data" + ACTUAL_RESOURCE);
+        try {
+            dataURL = new URL(dataURL.toExternalForm().replace(ACTUAL_RESOURCE, ""));
+        } catch (MalformedURLException e) {
+            throw new RuntimeException(e);
+        }
+        // end android-changed
         String protocol = dataURL.getProtocol();
         
         if (protocol.equals("jar")) {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/CoverageTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/CoverageTest.java
index 46c6961..457f071 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/CoverageTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/CoverageTest.java
@@ -20,6 +20,8 @@
 import java.util.Enumeration;
 
 import android.icu.impl.URLHandler;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author emader
@@ -27,6 +29,7 @@
  * TODO To change the template for this generated type comment go to
  * Window - Preferences - Java - Code Style - Code Templates
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class CoverageTest extends CompatibilityTest implements URLHandler.URLVisitor
 {
 
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/SerializableTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/SerializableTest.java
index 2be1065..edf7591 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/SerializableTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/SerializableTest.java
@@ -39,6 +39,8 @@
 import android.icu.util.TimeZoneRule;
 import android.icu.util.ULocale;
 import android.icu.util.VTimeZone;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * @author emader
@@ -46,6 +48,7 @@
  * TODO To change the template for this generated type comment go to
  * Window - Preferences - Java - Code Style - Code Templates
  */
+@RunWith(IcuTestGroupRunner.class)
 public class SerializableTest extends TestFmwk.TestGroup
 {
     public interface Handler
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/SerializableWriter.java b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/SerializableWriter.java
index 38e1824..999f284 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/SerializableWriter.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/SerializableWriter.java
@@ -12,6 +12,8 @@
 import java.net.URL;
 
 import android.icu.util.VersionInfo;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * This class writes the test objects for each class to a file. The work is
@@ -19,6 +21,7 @@
  * a CoverageTest w/ a non-null path, which tells it to write the data.
  * 
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class SerializableWriter extends CoverageTest
 {
     public SerializableWriter(String path)
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.impl.OlsonTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.impl.OlsonTimeZone.dat
similarity index 96%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.impl.OlsonTimeZone.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.impl.OlsonTimeZone.dat
index befb4b1..3d00b26 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.impl.OlsonTimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.impl.OlsonTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.impl.TimeZoneAdapter.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.impl.TimeZoneAdapter.dat
similarity index 95%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.impl.TimeZoneAdapter.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.impl.TimeZoneAdapter.dat
index 347e616..432c9dd 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.impl.TimeZoneAdapter.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.impl.TimeZoneAdapter.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.math.BigDecimal.dat
similarity index 75%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.math.BigDecimal.dat
index b27bcaf..dd4ce52 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.math.BigDecimal.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.MathContext.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.math.MathContext.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.MathContext.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.math.MathContext.dat
index da7bc60..da71167 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.MathContext.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.math.MathContext.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.ArabicShapingException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.ArabicShapingException.dat
similarity index 91%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.ArabicShapingException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.ArabicShapingException.dat
index a20b286..9baef82 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.ArabicShapingException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.ArabicShapingException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.ChineseDateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.ChineseDateFormat.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.ChineseDateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.ChineseDateFormat.dat
index 35f6713..367068f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.ChineseDateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.ChineseDateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.ChineseDateFormatSymbols.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.ChineseDateFormatSymbols.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.ChineseDateFormatSymbols.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.ChineseDateFormatSymbols.dat
index 75e77dd..7735c89 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.ChineseDateFormatSymbols.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.ChineseDateFormatSymbols.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.DateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.DateFormat.dat
similarity index 96%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.DateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.DateFormat.dat
index d5c05c8..5db3646 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.DateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.DateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.DateFormatSymbols.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.DateFormatSymbols.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.DateFormatSymbols.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.DateFormatSymbols.dat
index 2368969..f9817ee 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.DateFormatSymbols.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.DateFormatSymbols.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.DecimalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.DecimalFormat.dat
similarity index 90%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.DecimalFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.DecimalFormat.dat
index a7be894..ae7ad3e 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.DecimalFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.DecimalFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.DecimalFormatSymbols.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.DecimalFormatSymbols.dat
similarity index 91%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.DecimalFormatSymbols.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.DecimalFormatSymbols.dat
index 81df833..bd6bfd6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.DecimalFormatSymbols.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.DecimalFormatSymbols.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.MessageFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.MessageFormat.dat
similarity index 60%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.MessageFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.MessageFormat.dat
index 43ac993..4886270 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.MessageFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.MessageFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.NumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.NumberFormat.dat
similarity index 78%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.NumberFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.NumberFormat.dat
index ad69392..3cfb9a3 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.NumberFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.NumberFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.RuleBasedNumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.RuleBasedNumberFormat.dat
similarity index 99%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.RuleBasedNumberFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.RuleBasedNumberFormat.dat
index 9524b86..8bf08a0 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.RuleBasedNumberFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.RuleBasedNumberFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.SimpleDateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.SimpleDateFormat.dat
similarity index 99%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.SimpleDateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.SimpleDateFormat.dat
index 99e126e..373b2af 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.SimpleDateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.SimpleDateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.StringPrepParseException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.StringPrepParseException.dat
similarity index 94%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.StringPrepParseException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.StringPrepParseException.dat
index ffa402b..876fad2 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.text.StringPrepParseException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.text.StringPrepParseException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.BuddhistCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.BuddhistCalendar.dat
similarity index 73%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.BuddhistCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.BuddhistCalendar.dat
index f270749..7b54658 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.BuddhistCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.BuddhistCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.Calendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.Calendar.dat
similarity index 75%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.Calendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.Calendar.dat
index ec5a2d7..dfe322f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.Calendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.Calendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.ChineseCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.ChineseCalendar.dat
similarity index 76%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.ChineseCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.ChineseCalendar.dat
index 7d900da..80abca2 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.ChineseCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.ChineseCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.CopticCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.CopticCalendar.dat
similarity index 74%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.CopticCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.CopticCalendar.dat
index c3df1ab..443d85c 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.CopticCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.CopticCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.Currency.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.Currency.dat
similarity index 63%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.Currency.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.Currency.dat
index 039c6da..4cc226d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.Currency.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.Currency.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.EthiopicCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.EthiopicCalendar.dat
similarity index 74%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.EthiopicCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.EthiopicCalendar.dat
index 3a3db02..4220417 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.EthiopicCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.EthiopicCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.GregorianCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.GregorianCalendar.dat
similarity index 73%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.GregorianCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.GregorianCalendar.dat
index e51df34..ce58fe6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.GregorianCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.GregorianCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.HebrewCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.HebrewCalendar.dat
similarity index 78%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.HebrewCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.HebrewCalendar.dat
index dc6ef87..d0cce8b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.HebrewCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.HebrewCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.IslamicCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.IslamicCalendar.dat
similarity index 74%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.IslamicCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.IslamicCalendar.dat
index b979f28..34c6f6b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.IslamicCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.IslamicCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.JapaneseCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.JapaneseCalendar.dat
similarity index 75%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.JapaneseCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.JapaneseCalendar.dat
index 804acc0..36e99a8 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.JapaneseCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.JapaneseCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.SimpleTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.SimpleTimeZone.dat
similarity index 69%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.SimpleTimeZone.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.SimpleTimeZone.dat
index 3940bde..c90cab1 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.SimpleTimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.SimpleTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.TimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.TimeZone.dat
similarity index 70%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.TimeZone.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.TimeZone.dat
index 00ac1ec..a592a45 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.TimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.TimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.ULocale.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.ULocale.dat
similarity index 74%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.ULocale.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.ULocale.dat
index 1eed327..a2d8072 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.ULocale.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.ULocale.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.UResourceTypeMismatchException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.UResourceTypeMismatchException.dat
similarity index 91%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.UResourceTypeMismatchException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.UResourceTypeMismatchException.dat
index 5fd5df5..18a6192 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.UResourceTypeMismatchException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/android.icu.util.UResourceTypeMismatchException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.DateNumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.DateNumberFormat.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.DateNumberFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.DateNumberFormat.dat
index 571713e..ab393f6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.DateNumberFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.DateNumberFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.IllegalIcuArgumentException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.IllegalIcuArgumentException.dat
new file mode 100644
index 0000000..f64223d
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.IllegalIcuArgumentException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.InvalidFormatException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.InvalidFormatException.dat
similarity index 92%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.InvalidFormatException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.InvalidFormatException.dat
index a811823..b39f3be 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.InvalidFormatException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.InvalidFormatException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.OlsonTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.OlsonTimeZone.dat
similarity index 97%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.OlsonTimeZone.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.OlsonTimeZone.dat
index 850af67..8f32858 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.OlsonTimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.OlsonTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.RelativeDateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.RelativeDateFormat.dat
similarity index 79%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.RelativeDateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.RelativeDateFormat.dat
index c8b20e6..d10ded7 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.RelativeDateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.RelativeDateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.TimeZoneAdapter.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.TimeZoneAdapter.dat
similarity index 97%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.TimeZoneAdapter.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.TimeZoneAdapter.dat
index 6b1b117..94e4024 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.TimeZoneAdapter.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.TimeZoneAdapter.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.TimeZoneGenericNames.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.TimeZoneGenericNames.dat
new file mode 100644
index 0000000..de19e07
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.TimeZoneGenericNames.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.TimeZoneNamesImpl.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.TimeZoneNamesImpl.dat
new file mode 100644
index 0000000..c04af70
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.TimeZoneNamesImpl.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.duration.BasicDurationFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.duration.BasicDurationFormat.dat
new file mode 100644
index 0000000..3bfb442
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.duration.BasicDurationFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.locale.LocaleSyntaxException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.locale.LocaleSyntaxException.dat
similarity index 64%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.locale.LocaleSyntaxException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.locale.LocaleSyntaxException.dat
index 5fd0d38..5092bb3 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.locale.LocaleSyntaxException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.impl.locale.LocaleSyntaxException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.math.BigDecimal.dat
similarity index 75%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.math.BigDecimal.dat
index b27bcaf..dd4ce52 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.math.BigDecimal.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.math.MathContext.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.math.MathContext.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.math.MathContext.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.math.MathContext.dat
index da7bc60..da71167 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.math.MathContext.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.math.MathContext.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.ArabicShapingException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.ArabicShapingException.dat
similarity index 92%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.ArabicShapingException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.ArabicShapingException.dat
index 3a08b6d..c062af3 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.ArabicShapingException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.ArabicShapingException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.ChineseDateFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.ChineseDateFormat$Field.dat
new file mode 100644
index 0000000..1480893
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.ChineseDateFormat$Field.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.ChineseDateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.ChineseDateFormat.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.ChineseDateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.ChineseDateFormat.dat
index bb0a567..1603b8e 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.ChineseDateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.ChineseDateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.ChineseDateFormatSymbols.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.ChineseDateFormatSymbols.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.ChineseDateFormatSymbols.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.ChineseDateFormatSymbols.dat
index 3b76446..a1b1403 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.ChineseDateFormatSymbols.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.ChineseDateFormatSymbols.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.CompactDecimalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.CompactDecimalFormat.dat
new file mode 100644
index 0000000..4795b26
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.CompactDecimalFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.CurrencyPluralInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.CurrencyPluralInfo.dat
similarity index 67%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.CurrencyPluralInfo.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.CurrencyPluralInfo.dat
index e4a73f1..c82b52e 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.CurrencyPluralInfo.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.CurrencyPluralInfo.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateFormat$Field.dat
similarity index 91%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormat$Field.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateFormat$Field.dat
index a7cf736..06b87bb 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormat$Field.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateFormat$Field.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateFormat.dat
similarity index 95%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateFormat.dat
index 25cda28..8c5963e 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormatSymbols.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateFormatSymbols.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormatSymbols.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateFormatSymbols.dat
index 5bcd9f6..b085460 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormatSymbols.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateFormatSymbols.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateIntervalFormat.dat
similarity index 78%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateIntervalFormat.dat
index 0599463..faa4fab 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateIntervalFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateIntervalInfo$PatternInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateIntervalInfo$PatternInfo.dat
new file mode 100644
index 0000000..25ebef5
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateIntervalInfo$PatternInfo.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateIntervalInfo.dat
similarity index 66%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalInfo.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateIntervalInfo.dat
index b75cfcb..59c719a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalInfo.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DateIntervalInfo.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DecimalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DecimalFormat.dat
similarity index 91%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DecimalFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DecimalFormat.dat
index 18aee20..6781fe5 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DecimalFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DecimalFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DecimalFormatSymbols.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DecimalFormatSymbols.dat
similarity index 94%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DecimalFormatSymbols.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DecimalFormatSymbols.dat
index b6b6d19..72f1bd1 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DecimalFormatSymbols.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.DecimalFormatSymbols.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MeasureFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.MeasureFormat.dat
similarity index 74%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MeasureFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.MeasureFormat.dat
index f0ee673..1fa9bfb 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MeasureFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.MeasureFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MessageFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.MessageFormat$Field.dat
similarity index 74%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MessageFormat$Field.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.MessageFormat$Field.dat
index f30df97..a1aca43 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MessageFormat$Field.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.MessageFormat$Field.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.MessageFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.MessageFormat.dat
new file mode 100644
index 0000000..3e8d13f
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.MessageFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.NumberFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.NumberFormat$Field.dat
similarity index 71%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.NumberFormat$Field.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.NumberFormat$Field.dat
index cab3e3d..78dbc51 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.NumberFormat$Field.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.NumberFormat$Field.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.NumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.NumberFormat.dat
similarity index 77%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.NumberFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.NumberFormat.dat
index e98defd..2e1a294 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.NumberFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.NumberFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.PluralFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.PluralFormat.dat
similarity index 70%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.PluralFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.PluralFormat.dat
index 0557425..a3f8aa2 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.PluralFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.PluralFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.PluralRules.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.PluralRules.dat
similarity index 85%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.PluralRules.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.PluralRules.dat
index 6982646..8e3375b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.PluralRules.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.PluralRules.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.RuleBasedNumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.RuleBasedNumberFormat.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.RuleBasedNumberFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.RuleBasedNumberFormat.dat
index 280dd91..8d048cf 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.RuleBasedNumberFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.RuleBasedNumberFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.SelectFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.SelectFormat.dat
new file mode 100644
index 0000000..bbd3865
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.SelectFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.SimpleDateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.SimpleDateFormat.dat
similarity index 97%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.SimpleDateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.SimpleDateFormat.dat
index 093c64a..b5aad59 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.SimpleDateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.SimpleDateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.StringPrepParseException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.StringPrepParseException.dat
similarity index 95%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.StringPrepParseException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.StringPrepParseException.dat
index 6d78381..de03096 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.StringPrepParseException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.StringPrepParseException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.TimeUnitFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.TimeUnitFormat.dat
similarity index 72%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.TimeUnitFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.TimeUnitFormat.dat
index 174cfd8..c582c9e 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.TimeUnitFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.TimeUnitFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.TimeZoneFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.TimeZoneFormat.dat
new file mode 100644
index 0000000..247ad4f
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.text.TimeZoneFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.AnnualTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.AnnualTimeZoneRule.dat
similarity index 68%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.AnnualTimeZoneRule.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.AnnualTimeZoneRule.dat
index 095de16..da8dfef 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.AnnualTimeZoneRule.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.AnnualTimeZoneRule.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.BuddhistCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.BuddhistCalendar.dat
similarity index 73%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.BuddhistCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.BuddhistCalendar.dat
index 306af7b..5c11fe7 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.BuddhistCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.BuddhistCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.Calendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.Calendar.dat
similarity index 79%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.Calendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.Calendar.dat
index baff883..6cabb36 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.Calendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.Calendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.ChineseCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.ChineseCalendar.dat
similarity index 77%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.ChineseCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.ChineseCalendar.dat
index 4242810..39b65d7 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.ChineseCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.ChineseCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.CopticCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.CopticCalendar.dat
similarity index 75%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.CopticCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.CopticCalendar.dat
index 9d7aa8b..2be9762 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.CopticCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.CopticCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.Currency.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.Currency.dat
similarity index 81%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.Currency.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.Currency.dat
index 24627cc..7566c1d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.Currency.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.Currency.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DangiCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.DangiCalendar.dat
similarity index 68%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DangiCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.DangiCalendar.dat
index b0afa61..9170579 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DangiCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.DangiCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.DateInterval.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.DateInterval.dat
new file mode 100644
index 0000000..c30bb84
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.DateInterval.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DateTimeRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.DateTimeRule.dat
similarity index 63%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DateTimeRule.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.DateTimeRule.dat
index ed13388..7057de9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DateTimeRule.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.DateTimeRule.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.EthiopicCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.EthiopicCalendar.dat
similarity index 72%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.EthiopicCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.EthiopicCalendar.dat
index 09d90b5..699266a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.EthiopicCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.EthiopicCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.GregorianCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.GregorianCalendar.dat
similarity index 78%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.GregorianCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.GregorianCalendar.dat
index 2b27148..37eaffc 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.GregorianCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.GregorianCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.HebrewCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.HebrewCalendar.dat
similarity index 77%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.HebrewCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.HebrewCalendar.dat
index f7b698f..9a5d627 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.HebrewCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.HebrewCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.ICUCloneNotSupportedException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.ICUCloneNotSupportedException.dat
similarity index 76%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.ICUCloneNotSupportedException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.ICUCloneNotSupportedException.dat
index 40c3929..747d6f2 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.ICUCloneNotSupportedException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.ICUCloneNotSupportedException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.ICUException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.ICUException.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.ICUException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.ICUException.dat
index 704c7c7..3f60b90 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.ICUException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.ICUException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.ICUUncheckedIOException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.ICUUncheckedIOException.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.ICUUncheckedIOException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.ICUUncheckedIOException.dat
index e4e611c..453f56b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.ICUUncheckedIOException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.ICUUncheckedIOException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.IllformedLocaleException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.IllformedLocaleException.dat
similarity index 64%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.IllformedLocaleException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.IllformedLocaleException.dat
index f6c891c..dd762cd 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.IllformedLocaleException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.IllformedLocaleException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.IndianCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.IndianCalendar.dat
similarity index 74%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.IndianCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.IndianCalendar.dat
index f4417fb..44cda79 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.IndianCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.IndianCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.InitialTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.InitialTimeZoneRule.dat
new file mode 100644
index 0000000..cc19377
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.InitialTimeZoneRule.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.IslamicCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.IslamicCalendar.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.IslamicCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.IslamicCalendar.dat
index f273266..baa14c7 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.IslamicCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.IslamicCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.JapaneseCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.JapaneseCalendar.dat
similarity index 75%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.JapaneseCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.JapaneseCalendar.dat
index b29ca70..3b1cf48 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.JapaneseCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.JapaneseCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.MeasureUnit.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.MeasureUnit.dat
new file mode 100644
index 0000000..e97cd29
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.MeasureUnit.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.PersianCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.PersianCalendar.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.PersianCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.PersianCalendar.dat
index 5264eed..141e6b7 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.PersianCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.PersianCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.RuleBasedTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.RuleBasedTimeZone.dat
new file mode 100644
index 0000000..9271a99
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.RuleBasedTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.SimpleTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.SimpleTimeZone.dat
similarity index 72%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.SimpleTimeZone.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.SimpleTimeZone.dat
index 216f9a5..71d8d1a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.SimpleTimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.SimpleTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TaiwanCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.TaiwanCalendar.dat
similarity index 74%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TaiwanCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.TaiwanCalendar.dat
index 69d12a6..38feaec 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TaiwanCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.TaiwanCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.TimeArrayTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.TimeArrayTimeZoneRule.dat
new file mode 100644
index 0000000..189e4da
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.TimeArrayTimeZoneRule.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.TimeUnit.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.TimeUnit.dat
new file mode 100644
index 0000000..e97cd29
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.TimeUnit.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.TimeZone.dat
similarity index 75%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeZone.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.TimeZone.dat
index 5d69e24..04eff58 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.TimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.ULocale.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.ULocale.dat
similarity index 72%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.ULocale.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.ULocale.dat
index ef20832..b222926 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.ULocale.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.ULocale.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.UResourceTypeMismatchException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.UResourceTypeMismatchException.dat
similarity index 92%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.UResourceTypeMismatchException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.UResourceTypeMismatchException.dat
index b411de5..70d6c32 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.UResourceTypeMismatchException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.UResourceTypeMismatchException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.VTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.VTimeZone.dat
similarity index 77%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.VTimeZone.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.VTimeZone.dat
index 77e2c5b..1f69b29 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.VTimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/android.icu.util.VTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.IllegalIcuArgumentException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.IllegalIcuArgumentException.dat
deleted file mode 100644
index 0a19008..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.IllegalIcuArgumentException.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.JavaTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.JavaTimeZone.dat
deleted file mode 100644
index f3e44f0..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.JavaTimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.TimeZoneGenericNames.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.TimeZoneGenericNames.dat
deleted file mode 100644
index 056868d..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.TimeZoneGenericNames.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.TimeZoneNamesImpl.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.TimeZoneNamesImpl.dat
deleted file mode 100644
index 9548e9a..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.TimeZoneNamesImpl.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.duration.BasicDurationFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.duration.BasicDurationFormat.dat
deleted file mode 100644
index 883e9ae..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.duration.BasicDurationFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.math.BigDecimal.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.math.BigDecimal.dat
deleted file mode 100644
index b27bcaf..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.math.BigDecimal.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.ChineseDateFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.ChineseDateFormat$Field.dat
deleted file mode 100644
index 2eb95fa..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.ChineseDateFormat$Field.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.CompactDecimalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.CompactDecimalFormat.dat
deleted file mode 100644
index 9252bf2..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.CompactDecimalFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalInfo$PatternInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalInfo$PatternInfo.dat
deleted file mode 100644
index 6bc48a9..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalInfo$PatternInfo.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MessageFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MessageFormat.dat
deleted file mode 100644
index 5f0b1bb..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MessageFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.SelectFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.SelectFormat.dat
deleted file mode 100644
index 3fd758f..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.SelectFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.TimeZoneFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.TimeZoneFormat.dat
deleted file mode 100644
index 6a8bffd..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.TimeZoneFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DateInterval.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DateInterval.dat
deleted file mode 100644
index 71d7222..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DateInterval.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.InitialTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.InitialTimeZoneRule.dat
deleted file mode 100644
index 7da9b4d..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.InitialTimeZoneRule.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.MeasureUnit.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.MeasureUnit.dat
deleted file mode 100644
index 9f01834..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.MeasureUnit.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.RuleBasedTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.RuleBasedTimeZone.dat
deleted file mode 100644
index 285f405..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.RuleBasedTimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeArrayTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeArrayTimeZoneRule.dat
deleted file mode 100644
index b2224bd..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeArrayTimeZoneRule.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeUnit.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeUnit.dat
deleted file mode 100644
index 9f01834..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeUnit.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.DateNumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.DateNumberFormat.dat
similarity index 80%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.DateNumberFormat.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.DateNumberFormat.dat
index 571713e..ab393f6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.DateNumberFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.DateNumberFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.IllegalIcuArgumentException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.IllegalIcuArgumentException.dat
new file mode 100644
index 0000000..574c34c
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.IllegalIcuArgumentException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.InvalidFormatException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.InvalidFormatException.dat
similarity index 92%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.InvalidFormatException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.InvalidFormatException.dat
index 50b2ca4..9e4210f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.InvalidFormatException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.InvalidFormatException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.OlsonTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.OlsonTimeZone.dat
similarity index 97%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.OlsonTimeZone.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.OlsonTimeZone.dat
index 510d9d9..93b91ed 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.OlsonTimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.OlsonTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.RelativeDateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.RelativeDateFormat.dat
similarity index 78%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.RelativeDateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.RelativeDateFormat.dat
index b61c86a..979e41d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.RelativeDateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.RelativeDateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.TZDBTimeZoneNames.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.TZDBTimeZoneNames.dat
new file mode 100644
index 0000000..be04632
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.TZDBTimeZoneNames.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.TimeZoneAdapter.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.TimeZoneAdapter.dat
similarity index 97%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.TimeZoneAdapter.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.TimeZoneAdapter.dat
index d666cdd..d830ba8 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.TimeZoneAdapter.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.TimeZoneAdapter.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.TimeZoneGenericNames.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.TimeZoneGenericNames.dat
new file mode 100644
index 0000000..de19e07
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.TimeZoneGenericNames.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.TimeZoneNamesImpl.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.TimeZoneNamesImpl.dat
new file mode 100644
index 0000000..c04af70
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.TimeZoneNamesImpl.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.duration.BasicDurationFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.duration.BasicDurationFormat.dat
new file mode 100644
index 0000000..3bfb442
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.duration.BasicDurationFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.locale.LocaleSyntaxException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.locale.LocaleSyntaxException.dat
similarity index 64%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.locale.LocaleSyntaxException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.locale.LocaleSyntaxException.dat
index 43085ef..947bafd 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.locale.LocaleSyntaxException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.impl.locale.LocaleSyntaxException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.math.BigDecimal.dat
similarity index 75%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.math.BigDecimal.dat
index b27bcaf..dd4ce52 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.math.BigDecimal.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.math.MathContext.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.math.MathContext.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.math.MathContext.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.math.MathContext.dat
index da7bc60..da71167 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.math.MathContext.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.math.MathContext.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.ArabicShapingException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.ArabicShapingException.dat
similarity index 92%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.ArabicShapingException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.ArabicShapingException.dat
index 5a3d6de..895843b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.ArabicShapingException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.ArabicShapingException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.ChineseDateFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.ChineseDateFormat$Field.dat
new file mode 100644
index 0000000..1480893
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.ChineseDateFormat$Field.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.ChineseDateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.ChineseDateFormat.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.ChineseDateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.ChineseDateFormat.dat
index 467ffa4..739aa71 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.ChineseDateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.ChineseDateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.ChineseDateFormatSymbols.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.ChineseDateFormatSymbols.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.ChineseDateFormatSymbols.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.ChineseDateFormatSymbols.dat
index 774f88f..49b4f19 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.ChineseDateFormatSymbols.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.ChineseDateFormatSymbols.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.CompactDecimalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.CompactDecimalFormat.dat
new file mode 100644
index 0000000..4795b26
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.CompactDecimalFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.CurrencyPluralInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.CurrencyPluralInfo.dat
similarity index 67%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.CurrencyPluralInfo.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.CurrencyPluralInfo.dat
index ad74641..56cc8f2 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.CurrencyPluralInfo.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.CurrencyPluralInfo.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateFormat$Field.dat
similarity index 91%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormat$Field.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateFormat$Field.dat
index a7cf736..06b87bb 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormat$Field.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateFormat$Field.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateFormat.dat
similarity index 95%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateFormat.dat
index 5fd1cf5..027ad98 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateFormatSymbols.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateFormatSymbols.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateFormatSymbols.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateFormatSymbols.dat
index 8305a96..1e0cdf0 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateFormatSymbols.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateFormatSymbols.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateIntervalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateIntervalFormat.dat
similarity index 78%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateIntervalFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateIntervalFormat.dat
index 458cd5c..05915f7 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateIntervalFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateIntervalFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateIntervalInfo$PatternInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateIntervalInfo$PatternInfo.dat
new file mode 100644
index 0000000..25ebef5
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateIntervalInfo$PatternInfo.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateIntervalInfo.dat
similarity index 66%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalInfo.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateIntervalInfo.dat
index b75cfcb..59c719a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalInfo.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DateIntervalInfo.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DecimalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DecimalFormat.dat
similarity index 90%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DecimalFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DecimalFormat.dat
index 45de6ac..ee28d58 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DecimalFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DecimalFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DecimalFormatSymbols.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DecimalFormatSymbols.dat
similarity index 95%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DecimalFormatSymbols.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DecimalFormatSymbols.dat
index af2d6fb..79d4a0a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DecimalFormatSymbols.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.DecimalFormatSymbols.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.MeasureFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.MeasureFormat.dat
similarity index 72%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.MeasureFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.MeasureFormat.dat
index 7814c33..7887c61 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.MeasureFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.MeasureFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MessageFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.MessageFormat$Field.dat
similarity index 74%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MessageFormat$Field.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.MessageFormat$Field.dat
index f30df97..a1aca43 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MessageFormat$Field.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.MessageFormat$Field.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.MessageFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.MessageFormat.dat
new file mode 100644
index 0000000..3e8d13f
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.MessageFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.NumberFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.NumberFormat$Field.dat
similarity index 71%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.NumberFormat$Field.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.NumberFormat$Field.dat
index cab3e3d..78dbc51 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.NumberFormat$Field.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.NumberFormat$Field.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.NumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.NumberFormat.dat
similarity index 76%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.NumberFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.NumberFormat.dat
index 9035d6b..63f16d4 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.NumberFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.NumberFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.PluralFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.PluralFormat.dat
similarity index 68%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.PluralFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.PluralFormat.dat
index 6e30b1f..f9e19b7 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.PluralFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.PluralFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.PluralRules.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.PluralRules.dat
similarity index 85%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.PluralRules.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.PluralRules.dat
index 6982646..8e3375b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.PluralRules.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.PluralRules.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.RuleBasedNumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.RuleBasedNumberFormat.dat
similarity index 98%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.RuleBasedNumberFormat.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.RuleBasedNumberFormat.dat
index 280dd91..8d048cf 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.RuleBasedNumberFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.RuleBasedNumberFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.SelectFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.SelectFormat.dat
new file mode 100644
index 0000000..bbd3865
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.SelectFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.SimpleDateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.SimpleDateFormat.dat
similarity index 97%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.SimpleDateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.SimpleDateFormat.dat
index 7cbd447..16f9f19 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.SimpleDateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.SimpleDateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.StringPrepParseException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.StringPrepParseException.dat
similarity index 95%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.StringPrepParseException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.StringPrepParseException.dat
index f446389..37d3b75 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.StringPrepParseException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.StringPrepParseException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.TimeUnitFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.TimeUnitFormat.dat
similarity index 70%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.TimeUnitFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.TimeUnitFormat.dat
index 13fcf70..269bb8b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.TimeUnitFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.TimeUnitFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.TimeZoneFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.TimeZoneFormat.dat
new file mode 100644
index 0000000..247ad4f
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.text.TimeZoneFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.AnnualTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.AnnualTimeZoneRule.dat
similarity index 68%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.AnnualTimeZoneRule.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.AnnualTimeZoneRule.dat
index 095de16..da8dfef 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.AnnualTimeZoneRule.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.AnnualTimeZoneRule.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.BuddhistCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.BuddhistCalendar.dat
similarity index 73%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.BuddhistCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.BuddhistCalendar.dat
index 07b7164..eec5075 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.BuddhistCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.BuddhistCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.Calendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.Calendar.dat
similarity index 79%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.Calendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.Calendar.dat
index b0ae68e..5e9f542 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.Calendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.Calendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.ChineseCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.ChineseCalendar.dat
similarity index 77%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.ChineseCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.ChineseCalendar.dat
index 2c0ab4d..4d58b94 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.ChineseCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.ChineseCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.CopticCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.CopticCalendar.dat
similarity index 75%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.CopticCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.CopticCalendar.dat
index 66dc5f1..5fcc0eb 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.CopticCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.CopticCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.Currency.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.Currency.dat
similarity index 81%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.Currency.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.Currency.dat
index 24627cc..7566c1d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.Currency.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.Currency.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.DangiCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.DangiCalendar.dat
similarity index 68%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.DangiCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.DangiCalendar.dat
index 31f406f..75258be 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.DangiCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.DangiCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.DateInterval.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.DateInterval.dat
new file mode 100644
index 0000000..c30bb84
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.DateInterval.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DateTimeRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.DateTimeRule.dat
similarity index 63%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DateTimeRule.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.DateTimeRule.dat
index ed13388..7057de9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DateTimeRule.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.DateTimeRule.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.EthiopicCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.EthiopicCalendar.dat
similarity index 72%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.EthiopicCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.EthiopicCalendar.dat
index 64f1a17..4aef85f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.EthiopicCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.EthiopicCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.GregorianCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.GregorianCalendar.dat
similarity index 78%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.GregorianCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.GregorianCalendar.dat
index 052912c..3463d0f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.GregorianCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.GregorianCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.HebrewCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.HebrewCalendar.dat
similarity index 77%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.HebrewCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.HebrewCalendar.dat
index a0f03b0..cb32325 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.HebrewCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.HebrewCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.ICUCloneNotSupportedException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.ICUCloneNotSupportedException.dat
similarity index 76%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.ICUCloneNotSupportedException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.ICUCloneNotSupportedException.dat
index 4dc06d2..62a7048 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.ICUCloneNotSupportedException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.ICUCloneNotSupportedException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.ICUException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.ICUException.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.ICUException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.ICUException.dat
index 7af838a..b255f34 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.ICUException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.ICUException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.ICUUncheckedIOException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.ICUUncheckedIOException.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.ICUUncheckedIOException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.ICUUncheckedIOException.dat
index 4efc77d..7c58654 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.ICUUncheckedIOException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.ICUUncheckedIOException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.IllformedLocaleException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.IllformedLocaleException.dat
similarity index 64%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.IllformedLocaleException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.IllformedLocaleException.dat
index 6e36035..3cd241f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.IllformedLocaleException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.IllformedLocaleException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.IndianCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.IndianCalendar.dat
similarity index 74%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.IndianCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.IndianCalendar.dat
index 9d24911..24f3db8 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.IndianCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.IndianCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.InitialTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.InitialTimeZoneRule.dat
new file mode 100644
index 0000000..cc19377
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.InitialTimeZoneRule.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.IslamicCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.IslamicCalendar.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.IslamicCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.IslamicCalendar.dat
index b5ded83..85cfde7 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.IslamicCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.IslamicCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.JapaneseCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.JapaneseCalendar.dat
similarity index 75%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.JapaneseCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.JapaneseCalendar.dat
index c24008a..de95090 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.JapaneseCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.JapaneseCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.MeasureUnit.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.MeasureUnit.dat
new file mode 100644
index 0000000..e97cd29
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.MeasureUnit.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.PersianCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.PersianCalendar.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.PersianCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.PersianCalendar.dat
index dff9abd..8bdf55a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.PersianCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.PersianCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.RuleBasedTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.RuleBasedTimeZone.dat
new file mode 100644
index 0000000..9271a99
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.RuleBasedTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.SimpleTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.SimpleTimeZone.dat
similarity index 72%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.SimpleTimeZone.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.SimpleTimeZone.dat
index 216f9a5..71d8d1a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.SimpleTimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.SimpleTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.TaiwanCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.TaiwanCalendar.dat
similarity index 74%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.TaiwanCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.TaiwanCalendar.dat
index 3e79430..abbb635 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.TaiwanCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.TaiwanCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.TimeArrayTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.TimeArrayTimeZoneRule.dat
new file mode 100644
index 0000000..189e4da
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.TimeArrayTimeZoneRule.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.TimeUnit.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.TimeUnit.dat
new file mode 100644
index 0000000..e97cd29
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.TimeUnit.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.TimeZone.dat
similarity index 75%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeZone.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.TimeZone.dat
index 5d69e24..04eff58 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.TimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.ULocale.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.ULocale.dat
similarity index 72%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.ULocale.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.ULocale.dat
index ef20832..b222926 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.ULocale.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.ULocale.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.UResourceTypeMismatchException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.UResourceTypeMismatchException.dat
similarity index 92%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.UResourceTypeMismatchException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.UResourceTypeMismatchException.dat
index 0d253e1..c8b75e5 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.UResourceTypeMismatchException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.UResourceTypeMismatchException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.VTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.VTimeZone.dat
similarity index 77%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.VTimeZone.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.VTimeZone.dat
index 77e2c5b..1f69b29 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.VTimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/android.icu.util.VTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.DateNumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.DateNumberFormat.dat
deleted file mode 100644
index 571713e..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.DateNumberFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.IllegalIcuArgumentException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.IllegalIcuArgumentException.dat
deleted file mode 100644
index be07cc8..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.IllegalIcuArgumentException.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.JavaTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.JavaTimeZone.dat
deleted file mode 100644
index f3e44f0..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.JavaTimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.TZDBTimeZoneNames.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.TZDBTimeZoneNames.dat
deleted file mode 100644
index b3f344e..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.TZDBTimeZoneNames.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.TimeZoneGenericNames.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.TimeZoneGenericNames.dat
deleted file mode 100644
index 056868d..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.TimeZoneGenericNames.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.TimeZoneNamesImpl.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.TimeZoneNamesImpl.dat
deleted file mode 100644
index 9548e9a..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.TimeZoneNamesImpl.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.duration.BasicDurationFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.duration.BasicDurationFormat.dat
deleted file mode 100644
index 883e9ae..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.impl.duration.BasicDurationFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.math.BigDecimal.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.math.BigDecimal.dat
deleted file mode 100644
index b27bcaf..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.math.BigDecimal.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.ChineseDateFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.ChineseDateFormat$Field.dat
deleted file mode 100644
index 2eb95fa..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.ChineseDateFormat$Field.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.CompactDecimalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.CompactDecimalFormat.dat
deleted file mode 100644
index 9252bf2..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.CompactDecimalFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateFormat$Field.dat
deleted file mode 100644
index a7cf736..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateFormat$Field.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateIntervalInfo$PatternInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateIntervalInfo$PatternInfo.dat
deleted file mode 100644
index 6bc48a9..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateIntervalInfo$PatternInfo.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateIntervalInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateIntervalInfo.dat
deleted file mode 100644
index b75cfcb..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DateIntervalInfo.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.MessageFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.MessageFormat$Field.dat
deleted file mode 100644
index f30df97..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.MessageFormat$Field.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.MessageFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.MessageFormat.dat
deleted file mode 100644
index 5f0b1bb..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.MessageFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.NumberFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.NumberFormat$Field.dat
deleted file mode 100644
index cab3e3d..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.NumberFormat$Field.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.PluralRules.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.PluralRules.dat
deleted file mode 100644
index 6982646..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.PluralRules.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.RuleBasedNumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.RuleBasedNumberFormat.dat
deleted file mode 100644
index 280dd91..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.RuleBasedNumberFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.SelectFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.SelectFormat.dat
deleted file mode 100644
index 3fd758f..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.SelectFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.TimeZoneFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.TimeZoneFormat.dat
deleted file mode 100644
index 6a8bffd..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.TimeZoneFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.AnnualTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.AnnualTimeZoneRule.dat
deleted file mode 100644
index 095de16..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.AnnualTimeZoneRule.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.Currency.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.Currency.dat
deleted file mode 100644
index 24627cc..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.Currency.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.DateInterval.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.DateInterval.dat
deleted file mode 100644
index 71d7222..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.DateInterval.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.DateTimeRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.DateTimeRule.dat
deleted file mode 100644
index ed13388..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.DateTimeRule.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.InitialTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.InitialTimeZoneRule.dat
deleted file mode 100644
index 7da9b4d..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.InitialTimeZoneRule.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.MeasureUnit.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.MeasureUnit.dat
deleted file mode 100644
index 9f01834..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.MeasureUnit.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.RuleBasedTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.RuleBasedTimeZone.dat
deleted file mode 100644
index 285f405..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.RuleBasedTimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.SimpleTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.SimpleTimeZone.dat
deleted file mode 100644
index 216f9a5..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.SimpleTimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.TimeArrayTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.TimeArrayTimeZoneRule.dat
deleted file mode 100644
index b2224bd..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.TimeArrayTimeZoneRule.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.TimeUnit.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.TimeUnit.dat
deleted file mode 100644
index 9f01834..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.TimeUnit.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.TimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.TimeZone.dat
deleted file mode 100644
index 5d69e24..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.TimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.VTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.VTimeZone.dat
deleted file mode 100644
index 77e2c5b..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.util.VTimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.DateNumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.DateNumberFormat.dat
similarity index 80%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.DateNumberFormat.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.DateNumberFormat.dat
index 571713e..ab393f6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.DateNumberFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.DateNumberFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.IllegalIcuArgumentException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.IllegalIcuArgumentException.dat
new file mode 100644
index 0000000..9f92268
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.IllegalIcuArgumentException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.InvalidFormatException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.InvalidFormatException.dat
similarity index 92%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.InvalidFormatException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.InvalidFormatException.dat
index 2a36979..c8d1cbe 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.InvalidFormatException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.InvalidFormatException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.OlsonTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.OlsonTimeZone.dat
similarity index 97%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.OlsonTimeZone.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.OlsonTimeZone.dat
index f54de31..5f3e726 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.OlsonTimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.OlsonTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.RelativeDateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.RelativeDateFormat.dat
similarity index 79%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.RelativeDateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.RelativeDateFormat.dat
index e63d2cc..7b80517 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.RelativeDateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.RelativeDateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.TZDBTimeZoneNames.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.TZDBTimeZoneNames.dat
new file mode 100644
index 0000000..be04632
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.TZDBTimeZoneNames.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.TimeZoneAdapter.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.TimeZoneAdapter.dat
similarity index 97%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.TimeZoneAdapter.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.TimeZoneAdapter.dat
index d409f0e..f53e202 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.TimeZoneAdapter.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.TimeZoneAdapter.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.TimeZoneGenericNames.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.TimeZoneGenericNames.dat
new file mode 100644
index 0000000..de19e07
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.TimeZoneGenericNames.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.TimeZoneNamesImpl.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.TimeZoneNamesImpl.dat
new file mode 100644
index 0000000..c04af70
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.TimeZoneNamesImpl.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.duration.BasicDurationFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.duration.BasicDurationFormat.dat
new file mode 100644
index 0000000..3bfb442
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.duration.BasicDurationFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.locale.LocaleSyntaxException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.locale.LocaleSyntaxException.dat
similarity index 64%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.locale.LocaleSyntaxException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.locale.LocaleSyntaxException.dat
index aaa3774..4ea0dd1 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.locale.LocaleSyntaxException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.impl.locale.LocaleSyntaxException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.math.BigDecimal.dat
similarity index 75%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.math.BigDecimal.dat
index b27bcaf..dd4ce52 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.math.BigDecimal.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.math.MathContext.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.math.MathContext.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.math.MathContext.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.math.MathContext.dat
index da7bc60..da71167 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.math.MathContext.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.math.MathContext.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.ArabicShapingException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.ArabicShapingException.dat
similarity index 92%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.ArabicShapingException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.ArabicShapingException.dat
index 8c6fabd..6a1f856 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.ArabicShapingException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.ArabicShapingException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.ChineseDateFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.ChineseDateFormat$Field.dat
new file mode 100644
index 0000000..1480893
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.ChineseDateFormat$Field.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.ChineseDateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.ChineseDateFormat.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.ChineseDateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.ChineseDateFormat.dat
index 4ce86c0..7def438 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.ChineseDateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.ChineseDateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.ChineseDateFormatSymbols.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.ChineseDateFormatSymbols.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.ChineseDateFormatSymbols.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.ChineseDateFormatSymbols.dat
index ed66508..a507ef1 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.ChineseDateFormatSymbols.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.ChineseDateFormatSymbols.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.CompactDecimalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.CompactDecimalFormat.dat
new file mode 100644
index 0000000..4795b26
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.CompactDecimalFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.CurrencyPluralInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.CurrencyPluralInfo.dat
similarity index 67%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.CurrencyPluralInfo.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.CurrencyPluralInfo.dat
index ad74641..56cc8f2 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.CurrencyPluralInfo.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.CurrencyPluralInfo.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateFormat$Field.dat
similarity index 91%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormat$Field.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateFormat$Field.dat
index a7cf736..06b87bb 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormat$Field.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateFormat$Field.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateFormat.dat
similarity index 95%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateFormat.dat
index d7c46a2..c098369 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateFormatSymbols.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateFormatSymbols.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateFormatSymbols.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateFormatSymbols.dat
index cfa5fbc..1e72f3c 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateFormatSymbols.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateFormatSymbols.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateIntervalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateIntervalFormat.dat
similarity index 78%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateIntervalFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateIntervalFormat.dat
index dd52b1a..b4ebb5b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateIntervalFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateIntervalFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateIntervalInfo$PatternInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateIntervalInfo$PatternInfo.dat
new file mode 100644
index 0000000..25ebef5
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateIntervalInfo$PatternInfo.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateIntervalInfo.dat
similarity index 66%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalInfo.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateIntervalInfo.dat
index b75cfcb..59c719a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalInfo.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DateIntervalInfo.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DecimalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DecimalFormat.dat
similarity index 90%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DecimalFormat.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DecimalFormat.dat
index 45de6ac..ee28d58 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.DecimalFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DecimalFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DecimalFormatSymbols.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DecimalFormatSymbols.dat
similarity index 95%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DecimalFormatSymbols.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DecimalFormatSymbols.dat
index af2d6fb..79d4a0a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DecimalFormatSymbols.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.DecimalFormatSymbols.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.MeasureFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.MeasureFormat.dat
similarity index 72%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.MeasureFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.MeasureFormat.dat
index 7814c33..7887c61 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.MeasureFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.MeasureFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MessageFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.MessageFormat$Field.dat
similarity index 74%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MessageFormat$Field.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.MessageFormat$Field.dat
index f30df97..a1aca43 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MessageFormat$Field.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.MessageFormat$Field.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.MessageFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.MessageFormat.dat
new file mode 100644
index 0000000..3e8d13f
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.MessageFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.NumberFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.NumberFormat$Field.dat
similarity index 71%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.NumberFormat$Field.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.NumberFormat$Field.dat
index cab3e3d..78dbc51 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.NumberFormat$Field.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.NumberFormat$Field.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.NumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.NumberFormat.dat
similarity index 76%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.NumberFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.NumberFormat.dat
index 9035d6b..63f16d4 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.NumberFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.NumberFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.PluralFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.PluralFormat.dat
similarity index 68%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.PluralFormat.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.PluralFormat.dat
index 6e30b1f..f9e19b7 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.PluralFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.PluralFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.PluralRules.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.PluralRules.dat
similarity index 85%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.PluralRules.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.PluralRules.dat
index 6982646..8e3375b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.PluralRules.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.PluralRules.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.RuleBasedNumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.RuleBasedNumberFormat.dat
similarity index 98%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.RuleBasedNumberFormat.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.RuleBasedNumberFormat.dat
index 280dd91..8d048cf 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.RuleBasedNumberFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.RuleBasedNumberFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.SelectFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.SelectFormat.dat
new file mode 100644
index 0000000..bbd3865
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.SelectFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.SimpleDateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.SimpleDateFormat.dat
similarity index 97%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.SimpleDateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.SimpleDateFormat.dat
index 4f548fe..9aacb07 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.SimpleDateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.SimpleDateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.StringPrepParseException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.StringPrepParseException.dat
similarity index 95%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.StringPrepParseException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.StringPrepParseException.dat
index 925ee49..9344bc5 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.StringPrepParseException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.StringPrepParseException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.TimeUnitFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.TimeUnitFormat.dat
similarity index 70%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.TimeUnitFormat.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.TimeUnitFormat.dat
index 13fcf70..269bb8b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.TimeUnitFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.TimeUnitFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.TimeZoneFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.TimeZoneFormat.dat
new file mode 100644
index 0000000..247ad4f
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.text.TimeZoneFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.AnnualTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.AnnualTimeZoneRule.dat
similarity index 68%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.AnnualTimeZoneRule.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.AnnualTimeZoneRule.dat
index 095de16..da8dfef 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.AnnualTimeZoneRule.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.AnnualTimeZoneRule.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.BuddhistCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.BuddhistCalendar.dat
similarity index 73%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.BuddhistCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.BuddhistCalendar.dat
index 8ff736b..d1941de 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.BuddhistCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.BuddhistCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.Calendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.Calendar.dat
similarity index 79%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.Calendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.Calendar.dat
index ed2f63c..ba8af4a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.Calendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.Calendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ChineseCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.ChineseCalendar.dat
similarity index 76%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ChineseCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.ChineseCalendar.dat
index aaa202c..167f054 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ChineseCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.ChineseCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.CopticCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.CopticCalendar.dat
similarity index 75%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.CopticCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.CopticCalendar.dat
index ceac794..80991b6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.CopticCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.CopticCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.Currency.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.Currency.dat
similarity index 81%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.Currency.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.Currency.dat
index 24627cc..7566c1d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.Currency.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.Currency.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.DangiCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.DangiCalendar.dat
similarity index 68%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.DangiCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.DangiCalendar.dat
index bc22035..2f05773 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.DangiCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.DangiCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.DateInterval.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.DateInterval.dat
new file mode 100644
index 0000000..c30bb84
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.DateInterval.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DateTimeRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.DateTimeRule.dat
similarity index 63%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DateTimeRule.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.DateTimeRule.dat
index ed13388..7057de9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DateTimeRule.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.DateTimeRule.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.EthiopicCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.EthiopicCalendar.dat
similarity index 72%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.EthiopicCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.EthiopicCalendar.dat
index 9fd9fe3..f973d72 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.EthiopicCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.EthiopicCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.GregorianCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.GregorianCalendar.dat
similarity index 79%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.GregorianCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.GregorianCalendar.dat
index 435bef4..94bf1d6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.GregorianCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.GregorianCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.HebrewCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.HebrewCalendar.dat
similarity index 77%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.HebrewCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.HebrewCalendar.dat
index a116920..0c92d58 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.HebrewCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.HebrewCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ICUCloneNotSupportedException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.ICUCloneNotSupportedException.dat
similarity index 76%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ICUCloneNotSupportedException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.ICUCloneNotSupportedException.dat
index 531cf8e..920e9c6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ICUCloneNotSupportedException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.ICUCloneNotSupportedException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ICUException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.ICUException.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ICUException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.ICUException.dat
index b849606..4b2157f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ICUException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.ICUException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ICUUncheckedIOException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.ICUUncheckedIOException.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ICUUncheckedIOException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.ICUUncheckedIOException.dat
index d513fb9..d5541f5 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ICUUncheckedIOException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.ICUUncheckedIOException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.IllformedLocaleException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.IllformedLocaleException.dat
similarity index 64%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.IllformedLocaleException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.IllformedLocaleException.dat
index d51c022..338a1e9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.IllformedLocaleException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.IllformedLocaleException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.IndianCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.IndianCalendar.dat
similarity index 74%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.IndianCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.IndianCalendar.dat
index d7cb58e..a63d6e9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.IndianCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.IndianCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.InitialTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.InitialTimeZoneRule.dat
new file mode 100644
index 0000000..cc19377
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.InitialTimeZoneRule.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.IslamicCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.IslamicCalendar.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.IslamicCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.IslamicCalendar.dat
index 3df4589..102bfdc 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.IslamicCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.IslamicCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.JapaneseCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.JapaneseCalendar.dat
similarity index 75%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.JapaneseCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.JapaneseCalendar.dat
index bc9ac58..267c3a5 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.JapaneseCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.JapaneseCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.MeasureUnit.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.MeasureUnit.dat
new file mode 100644
index 0000000..e97cd29
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.MeasureUnit.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.PersianCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.PersianCalendar.dat
similarity index 81%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.PersianCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.PersianCalendar.dat
index 4d7c473..32287ef 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.PersianCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.PersianCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.RuleBasedTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.RuleBasedTimeZone.dat
new file mode 100644
index 0000000..9271a99
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.RuleBasedTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.SimpleTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.SimpleTimeZone.dat
similarity index 72%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.SimpleTimeZone.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.SimpleTimeZone.dat
index 216f9a5..71d8d1a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.SimpleTimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.SimpleTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.TaiwanCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.TaiwanCalendar.dat
similarity index 74%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.TaiwanCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.TaiwanCalendar.dat
index 6d03484..8c20892 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.TaiwanCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.TaiwanCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.TimeArrayTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.TimeArrayTimeZoneRule.dat
new file mode 100644
index 0000000..189e4da
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.TimeArrayTimeZoneRule.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.TimeUnit.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.TimeUnit.dat
new file mode 100644
index 0000000..e97cd29
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.TimeUnit.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.TimeZone.dat
similarity index 75%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeZone.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.TimeZone.dat
index 5d69e24..04eff58 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.TimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ULocale.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.ULocale.dat
similarity index 72%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ULocale.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.ULocale.dat
index ef20832..b222926 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ULocale.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.ULocale.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.UResourceTypeMismatchException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.UResourceTypeMismatchException.dat
similarity index 92%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.UResourceTypeMismatchException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.UResourceTypeMismatchException.dat
index acbe568..a99e099 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.UResourceTypeMismatchException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.UResourceTypeMismatchException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.VTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.VTimeZone.dat
similarity index 77%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.VTimeZone.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.VTimeZone.dat
index 77e2c5b..1f69b29 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.VTimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/android.icu.util.VTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.DateNumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.DateNumberFormat.dat
deleted file mode 100644
index 571713e..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.DateNumberFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.IllegalIcuArgumentException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.IllegalIcuArgumentException.dat
deleted file mode 100644
index 7992773..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.IllegalIcuArgumentException.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.JavaTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.JavaTimeZone.dat
deleted file mode 100644
index f3e44f0..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.JavaTimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.TZDBTimeZoneNames.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.TZDBTimeZoneNames.dat
deleted file mode 100644
index b3f344e..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.TZDBTimeZoneNames.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.TimeZoneGenericNames.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.TimeZoneGenericNames.dat
deleted file mode 100644
index 056868d..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.TimeZoneGenericNames.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.TimeZoneNamesImpl.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.TimeZoneNamesImpl.dat
deleted file mode 100644
index 9548e9a..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.TimeZoneNamesImpl.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.duration.BasicDurationFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.duration.BasicDurationFormat.dat
deleted file mode 100644
index 883e9ae..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.duration.BasicDurationFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.math.BigDecimal.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.math.BigDecimal.dat
deleted file mode 100644
index b27bcaf..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.math.BigDecimal.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.ChineseDateFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.ChineseDateFormat$Field.dat
deleted file mode 100644
index 2eb95fa..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.ChineseDateFormat$Field.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.CompactDecimalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.CompactDecimalFormat.dat
deleted file mode 100644
index 9252bf2..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.CompactDecimalFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.CurrencyPluralInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.CurrencyPluralInfo.dat
deleted file mode 100644
index ad74641..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.CurrencyPluralInfo.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateFormat$Field.dat
deleted file mode 100644
index a7cf736..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateFormat$Field.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateIntervalInfo$PatternInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateIntervalInfo$PatternInfo.dat
deleted file mode 100644
index 6bc48a9..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateIntervalInfo$PatternInfo.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateIntervalInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateIntervalInfo.dat
deleted file mode 100644
index b75cfcb..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DateIntervalInfo.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DecimalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DecimalFormat.dat
deleted file mode 100644
index 45de6ac..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.DecimalFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.MessageFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.MessageFormat$Field.dat
deleted file mode 100644
index f30df97..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.MessageFormat$Field.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.MessageFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.MessageFormat.dat
deleted file mode 100644
index 5f0b1bb..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.MessageFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.NumberFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.NumberFormat$Field.dat
deleted file mode 100644
index cab3e3d..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.NumberFormat$Field.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.PluralFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.PluralFormat.dat
deleted file mode 100644
index 6e30b1f..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.PluralFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.PluralRules.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.PluralRules.dat
deleted file mode 100644
index 6982646..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.PluralRules.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.RuleBasedNumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.RuleBasedNumberFormat.dat
deleted file mode 100644
index 280dd91..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.RuleBasedNumberFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.SelectFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.SelectFormat.dat
deleted file mode 100644
index 3fd758f..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.SelectFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.TimeUnitFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.TimeUnitFormat.dat
deleted file mode 100644
index 13fcf70..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.TimeUnitFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.TimeZoneFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.TimeZoneFormat.dat
deleted file mode 100644
index 6a8bffd..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.TimeZoneFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.AnnualTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.AnnualTimeZoneRule.dat
deleted file mode 100644
index 095de16..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.AnnualTimeZoneRule.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.Currency.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.Currency.dat
deleted file mode 100644
index 24627cc..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.Currency.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.DateInterval.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.DateInterval.dat
deleted file mode 100644
index 71d7222..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.DateInterval.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.DateTimeRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.DateTimeRule.dat
deleted file mode 100644
index ed13388..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.DateTimeRule.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.InitialTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.InitialTimeZoneRule.dat
deleted file mode 100644
index 7da9b4d..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.InitialTimeZoneRule.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.MeasureUnit.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.MeasureUnit.dat
deleted file mode 100644
index 9f01834..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.MeasureUnit.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.RuleBasedTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.RuleBasedTimeZone.dat
deleted file mode 100644
index 285f405..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.RuleBasedTimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.SimpleTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.SimpleTimeZone.dat
deleted file mode 100644
index 216f9a5..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.SimpleTimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.TimeArrayTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.TimeArrayTimeZoneRule.dat
deleted file mode 100644
index b2224bd..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.TimeArrayTimeZoneRule.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.TimeUnit.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.TimeUnit.dat
deleted file mode 100644
index 9f01834..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.TimeUnit.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.TimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.TimeZone.dat
deleted file mode 100644
index 5d69e24..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.TimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.VTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.VTimeZone.dat
deleted file mode 100644
index 77e2c5b..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.VTimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.DateNumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.DateNumberFormat.dat
similarity index 80%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.DateNumberFormat.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.DateNumberFormat.dat
index 571713e..ab393f6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.impl.DateNumberFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.DateNumberFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.IllegalIcuArgumentException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.IllegalIcuArgumentException.dat
new file mode 100644
index 0000000..9f92268
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.IllegalIcuArgumentException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.InvalidFormatException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.InvalidFormatException.dat
similarity index 92%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.InvalidFormatException.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.InvalidFormatException.dat
index 2a36979..c8d1cbe 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.InvalidFormatException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.InvalidFormatException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.OlsonTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.OlsonTimeZone.dat
similarity index 97%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.OlsonTimeZone.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.OlsonTimeZone.dat
index e639773..1644d97 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.OlsonTimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.OlsonTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.RelativeDateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.RelativeDateFormat.dat
similarity index 79%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.RelativeDateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.RelativeDateFormat.dat
index d989501..eb1a5ac 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.RelativeDateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.RelativeDateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.TZDBTimeZoneNames.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.TZDBTimeZoneNames.dat
new file mode 100644
index 0000000..be04632
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.TZDBTimeZoneNames.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.TimeZoneAdapter.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.TimeZoneAdapter.dat
similarity index 97%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.TimeZoneAdapter.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.TimeZoneAdapter.dat
index b28af99..561c870 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.TimeZoneAdapter.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.TimeZoneAdapter.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.TimeZoneGenericNames.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.TimeZoneGenericNames.dat
new file mode 100644
index 0000000..de19e07
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.TimeZoneGenericNames.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.TimeZoneNamesImpl.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.TimeZoneNamesImpl.dat
new file mode 100644
index 0000000..c04af70
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.TimeZoneNamesImpl.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.duration.BasicDurationFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.duration.BasicDurationFormat.dat
new file mode 100644
index 0000000..3bfb442
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.duration.BasicDurationFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.locale.LocaleSyntaxException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.locale.LocaleSyntaxException.dat
similarity index 64%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.locale.LocaleSyntaxException.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.locale.LocaleSyntaxException.dat
index aaa3774..4ea0dd1 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.impl.locale.LocaleSyntaxException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.impl.locale.LocaleSyntaxException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.math.BigDecimal.dat
similarity index 75%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.math.BigDecimal.dat
index b27bcaf..dd4ce52 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.math.BigDecimal.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.math.MathContext.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.math.MathContext.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.math.MathContext.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.math.MathContext.dat
index da7bc60..da71167 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.math.MathContext.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.math.MathContext.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.ArabicShapingException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.ArabicShapingException.dat
similarity index 92%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.ArabicShapingException.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.ArabicShapingException.dat
index 8c6fabd..6a1f856 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.ArabicShapingException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.ArabicShapingException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.ChineseDateFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.ChineseDateFormat$Field.dat
new file mode 100644
index 0000000..1480893
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.ChineseDateFormat$Field.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.ChineseDateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.ChineseDateFormat.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.ChineseDateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.ChineseDateFormat.dat
index 8161488..b00cfa4 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.ChineseDateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.ChineseDateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.ChineseDateFormatSymbols.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.ChineseDateFormatSymbols.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.ChineseDateFormatSymbols.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.ChineseDateFormatSymbols.dat
index ecaf871..bb08616 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.ChineseDateFormatSymbols.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.ChineseDateFormatSymbols.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.CompactDecimalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.CompactDecimalFormat.dat
new file mode 100644
index 0000000..4795b26
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.CompactDecimalFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.CurrencyPluralInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.CurrencyPluralInfo.dat
similarity index 67%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.CurrencyPluralInfo.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.CurrencyPluralInfo.dat
index ad74641..56cc8f2 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.CurrencyPluralInfo.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.CurrencyPluralInfo.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateFormat$Field.dat
similarity index 91%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormat$Field.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateFormat$Field.dat
index a7cf736..06b87bb 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateFormat$Field.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateFormat$Field.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateFormat.dat
similarity index 95%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateFormat.dat
index cc7f431..ae89494 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateFormatSymbols.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateFormatSymbols.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateFormatSymbols.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateFormatSymbols.dat
index ecdad79..c37aeed 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateFormatSymbols.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateFormatSymbols.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateIntervalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateIntervalFormat.dat
similarity index 79%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateIntervalFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateIntervalFormat.dat
index a21cd88..56b683c 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateIntervalFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateIntervalFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateIntervalInfo$PatternInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateIntervalInfo$PatternInfo.dat
new file mode 100644
index 0000000..25ebef5
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateIntervalInfo$PatternInfo.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateIntervalInfo.dat
similarity index 66%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalInfo.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateIntervalInfo.dat
index b75cfcb..59c719a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.DateIntervalInfo.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DateIntervalInfo.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DecimalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DecimalFormat.dat
similarity index 90%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DecimalFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DecimalFormat.dat
index edbb58e..64ba0b7 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DecimalFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DecimalFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DecimalFormatSymbols.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DecimalFormatSymbols.dat
similarity index 95%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DecimalFormatSymbols.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DecimalFormatSymbols.dat
index 1491b56..717bb22 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DecimalFormatSymbols.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.DecimalFormatSymbols.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.MeasureFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.MeasureFormat.dat
similarity index 72%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.MeasureFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.MeasureFormat.dat
index a83fac3..4f5a9ed 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.MeasureFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.MeasureFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MessageFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.MessageFormat$Field.dat
similarity index 74%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MessageFormat$Field.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.MessageFormat$Field.dat
index f30df97..a1aca43 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.MessageFormat$Field.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.MessageFormat$Field.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.MessageFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.MessageFormat.dat
new file mode 100644
index 0000000..3e8d13f
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.MessageFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.NumberFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.NumberFormat$Field.dat
similarity index 71%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.NumberFormat$Field.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.NumberFormat$Field.dat
index cab3e3d..78dbc51 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.NumberFormat$Field.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.NumberFormat$Field.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.NumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.NumberFormat.dat
similarity index 75%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.NumberFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.NumberFormat.dat
index ecbdbaa..4a31dc9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.NumberFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.NumberFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.PluralFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.PluralFormat.dat
similarity index 69%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.PluralFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.PluralFormat.dat
index 9311a78..5313c81 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.PluralFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.PluralFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.PluralRules.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.PluralRules.dat
similarity index 85%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.PluralRules.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.PluralRules.dat
index 6982646..8e3375b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.text.PluralRules.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.PluralRules.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.RuleBasedNumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.RuleBasedNumberFormat.dat
similarity index 98%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.RuleBasedNumberFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.RuleBasedNumberFormat.dat
index 205cff4..7fd77d2 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.RuleBasedNumberFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.RuleBasedNumberFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.SelectFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.SelectFormat.dat
new file mode 100644
index 0000000..bbd3865
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.SelectFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.SimpleDateFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.SimpleDateFormat.dat
similarity index 97%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.SimpleDateFormat.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.SimpleDateFormat.dat
index e7d32d7..80cd3fa 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.SimpleDateFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.SimpleDateFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.StringPrepParseException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.StringPrepParseException.dat
similarity index 95%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.StringPrepParseException.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.StringPrepParseException.dat
index 925ee49..9344bc5 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.text.StringPrepParseException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.StringPrepParseException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.TimeUnitFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.TimeUnitFormat.dat
similarity index 70%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.TimeUnitFormat.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.TimeUnitFormat.dat
index 13fcf70..269bb8b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_54.1/com.ibm.icu.text.TimeUnitFormat.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.TimeUnitFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.TimeZoneFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.TimeZoneFormat.dat
new file mode 100644
index 0000000..247ad4f
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.text.TimeZoneFormat.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.AnnualTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.AnnualTimeZoneRule.dat
similarity index 68%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.AnnualTimeZoneRule.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.AnnualTimeZoneRule.dat
index 095de16..da8dfef 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.AnnualTimeZoneRule.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.AnnualTimeZoneRule.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.BuddhistCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.BuddhistCalendar.dat
similarity index 73%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.BuddhistCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.BuddhistCalendar.dat
index cd0a599..445d218 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.BuddhistCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.BuddhistCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.Calendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.Calendar.dat
similarity index 79%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.Calendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.Calendar.dat
index a2ccc26..51dd37d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.Calendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.Calendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.ChineseCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.ChineseCalendar.dat
similarity index 77%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.ChineseCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.ChineseCalendar.dat
index fe4e26e..9b52b9c 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.ChineseCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.ChineseCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.CopticCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.CopticCalendar.dat
similarity index 75%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.CopticCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.CopticCalendar.dat
index 83fa46a..6699f07 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.CopticCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.CopticCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.Currency.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.Currency.dat
similarity index 81%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.Currency.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.Currency.dat
index 24627cc..7566c1d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.Currency.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.Currency.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.DangiCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.DangiCalendar.dat
similarity index 68%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.DangiCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.DangiCalendar.dat
index d45ec90..7132ff8 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.DangiCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.DangiCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.DateInterval.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.DateInterval.dat
new file mode 100644
index 0000000..c30bb84
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.DateInterval.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DateTimeRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.DateTimeRule.dat
similarity index 63%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DateTimeRule.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.DateTimeRule.dat
index ed13388..7057de9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.DateTimeRule.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.DateTimeRule.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.EthiopicCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.EthiopicCalendar.dat
similarity index 72%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.EthiopicCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.EthiopicCalendar.dat
index f913f40..c3d2f86 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.EthiopicCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.EthiopicCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.GregorianCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.GregorianCalendar.dat
similarity index 78%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.GregorianCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.GregorianCalendar.dat
index bd76132..26b979d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.GregorianCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.GregorianCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.HebrewCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.HebrewCalendar.dat
similarity index 77%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.HebrewCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.HebrewCalendar.dat
index be2a09f..461c09d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.HebrewCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.HebrewCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ICUCloneNotSupportedException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.ICUCloneNotSupportedException.dat
similarity index 76%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ICUCloneNotSupportedException.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.ICUCloneNotSupportedException.dat
index 531cf8e..920e9c6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ICUCloneNotSupportedException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.ICUCloneNotSupportedException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.ICUException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.ICUException.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.ICUException.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.ICUException.dat
index b849606..4b2157f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.ICUException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.ICUException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ICUUncheckedIOException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.ICUUncheckedIOException.dat
similarity index 80%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ICUUncheckedIOException.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.ICUUncheckedIOException.dat
index d513fb9..d5541f5 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.ICUUncheckedIOException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.ICUUncheckedIOException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.IllformedLocaleException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.IllformedLocaleException.dat
similarity index 64%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.IllformedLocaleException.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.IllformedLocaleException.dat
index d51c022..338a1e9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.IllformedLocaleException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.IllformedLocaleException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.IndianCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.IndianCalendar.dat
similarity index 74%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.IndianCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.IndianCalendar.dat
index 9cb1367..1046c12 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.IndianCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.IndianCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.InitialTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.InitialTimeZoneRule.dat
new file mode 100644
index 0000000..cc19377
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.InitialTimeZoneRule.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.IslamicCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.IslamicCalendar.dat
similarity index 79%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.IslamicCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.IslamicCalendar.dat
index 2ad20df..3074ebd 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.IslamicCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.IslamicCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.JapaneseCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.JapaneseCalendar.dat
similarity index 75%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.JapaneseCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.JapaneseCalendar.dat
index 315766c..73367a9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.JapaneseCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.JapaneseCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.MeasureUnit.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.MeasureUnit.dat
new file mode 100644
index 0000000..e97cd29
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.MeasureUnit.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.PersianCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.PersianCalendar.dat
similarity index 80%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.PersianCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.PersianCalendar.dat
index c24c050..61b2c37 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.PersianCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.PersianCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.RuleBasedTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.RuleBasedTimeZone.dat
new file mode 100644
index 0000000..9271a99
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.RuleBasedTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.SimpleTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.SimpleTimeZone.dat
similarity index 72%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.SimpleTimeZone.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.SimpleTimeZone.dat
index 216f9a5..71d8d1a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.SimpleTimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.SimpleTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.TaiwanCalendar.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.TaiwanCalendar.dat
similarity index 74%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.TaiwanCalendar.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.TaiwanCalendar.dat
index 2c2c3d3..32f448e 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.TaiwanCalendar.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.TaiwanCalendar.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.TimeArrayTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.TimeArrayTimeZoneRule.dat
new file mode 100644
index 0000000..189e4da
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.TimeArrayTimeZoneRule.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.TimeUnit.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.TimeUnit.dat
new file mode 100644
index 0000000..e97cd29
--- /dev/null
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.TimeUnit.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.TimeZone.dat
similarity index 75%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeZone.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.TimeZone.dat
index 5d69e24..04eff58 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.TimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.TimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.ULocale.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.ULocale.dat
similarity index 72%
rename from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.ULocale.dat
rename to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.ULocale.dat
index ef20832..b222926 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.ULocale.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.ULocale.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.UResourceTypeMismatchException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.UResourceTypeMismatchException.dat
similarity index 92%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.UResourceTypeMismatchException.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.UResourceTypeMismatchException.dat
index acbe568..a99e099 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_55.1/com.ibm.icu.util.UResourceTypeMismatchException.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.UResourceTypeMismatchException.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.VTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.VTimeZone.dat
similarity index 77%
copy from android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.VTimeZone.dat
copy to android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.VTimeZone.dat
index 77e2c5b..1f69b29 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_53.1/com.ibm.icu.util.VTimeZone.dat
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/android.icu.util.VTimeZone.dat
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.DateNumberFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.DateNumberFormat.dat
deleted file mode 100644
index 571713e..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.DateNumberFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.IllegalIcuArgumentException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.IllegalIcuArgumentException.dat
deleted file mode 100644
index 7992773..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.IllegalIcuArgumentException.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.InvalidFormatException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.InvalidFormatException.dat
deleted file mode 100644
index 2a36979..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.InvalidFormatException.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.JavaTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.JavaTimeZone.dat
deleted file mode 100644
index f3e44f0..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.JavaTimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.TZDBTimeZoneNames.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.TZDBTimeZoneNames.dat
deleted file mode 100644
index b3f344e..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.TZDBTimeZoneNames.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.TimeZoneGenericNames.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.TimeZoneGenericNames.dat
deleted file mode 100644
index 056868d..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.TimeZoneGenericNames.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.TimeZoneNamesImpl.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.TimeZoneNamesImpl.dat
deleted file mode 100644
index 9548e9a..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.TimeZoneNamesImpl.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.duration.BasicDurationFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.duration.BasicDurationFormat.dat
deleted file mode 100644
index 883e9ae..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.duration.BasicDurationFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.locale.LocaleSyntaxException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.locale.LocaleSyntaxException.dat
deleted file mode 100644
index aaa3774..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.impl.locale.LocaleSyntaxException.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.math.BigDecimal.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.math.BigDecimal.dat
deleted file mode 100644
index b27bcaf..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.math.BigDecimal.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.ArabicShapingException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.ArabicShapingException.dat
deleted file mode 100644
index 8c6fabd..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.ArabicShapingException.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.ChineseDateFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.ChineseDateFormat$Field.dat
deleted file mode 100644
index 2eb95fa..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.ChineseDateFormat$Field.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.CompactDecimalFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.CompactDecimalFormat.dat
deleted file mode 100644
index 9252bf2..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.CompactDecimalFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.CurrencyPluralInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.CurrencyPluralInfo.dat
deleted file mode 100644
index ad74641..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.CurrencyPluralInfo.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateFormat$Field.dat
deleted file mode 100644
index a7cf736..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateFormat$Field.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateIntervalInfo$PatternInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateIntervalInfo$PatternInfo.dat
deleted file mode 100644
index 6bc48a9..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateIntervalInfo$PatternInfo.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateIntervalInfo.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateIntervalInfo.dat
deleted file mode 100644
index b75cfcb..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.DateIntervalInfo.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.MessageFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.MessageFormat$Field.dat
deleted file mode 100644
index f30df97..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.MessageFormat$Field.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.MessageFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.MessageFormat.dat
deleted file mode 100644
index 5f0b1bb..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.MessageFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.NumberFormat$Field.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.NumberFormat$Field.dat
deleted file mode 100644
index cab3e3d..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.NumberFormat$Field.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.PluralRules.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.PluralRules.dat
deleted file mode 100644
index 6982646..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.PluralRules.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.SelectFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.SelectFormat.dat
deleted file mode 100644
index 3fd758f..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.SelectFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.StringPrepParseException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.StringPrepParseException.dat
deleted file mode 100644
index 925ee49..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.StringPrepParseException.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.TimeUnitFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.TimeUnitFormat.dat
deleted file mode 100644
index 13fcf70..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.TimeUnitFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.TimeZoneFormat.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.TimeZoneFormat.dat
deleted file mode 100644
index 6a8bffd..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.text.TimeZoneFormat.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.AnnualTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.AnnualTimeZoneRule.dat
deleted file mode 100644
index 095de16..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.AnnualTimeZoneRule.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.Currency.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.Currency.dat
deleted file mode 100644
index 24627cc..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.Currency.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.DateInterval.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.DateInterval.dat
deleted file mode 100644
index 71d7222..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.DateInterval.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.DateTimeRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.DateTimeRule.dat
deleted file mode 100644
index ed13388..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.DateTimeRule.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.ICUCloneNotSupportedException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.ICUCloneNotSupportedException.dat
deleted file mode 100644
index 531cf8e..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.ICUCloneNotSupportedException.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.ICUUncheckedIOException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.ICUUncheckedIOException.dat
deleted file mode 100644
index d513fb9..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.ICUUncheckedIOException.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.IllformedLocaleException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.IllformedLocaleException.dat
deleted file mode 100644
index d51c022..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.IllformedLocaleException.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.InitialTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.InitialTimeZoneRule.dat
deleted file mode 100644
index 7da9b4d..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.InitialTimeZoneRule.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.MeasureUnit.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.MeasureUnit.dat
deleted file mode 100644
index 9f01834..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.MeasureUnit.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.RuleBasedTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.RuleBasedTimeZone.dat
deleted file mode 100644
index 285f405..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.RuleBasedTimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.SimpleTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.SimpleTimeZone.dat
deleted file mode 100644
index 216f9a5..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.SimpleTimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.TimeArrayTimeZoneRule.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.TimeArrayTimeZoneRule.dat
deleted file mode 100644
index b2224bd..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.TimeArrayTimeZoneRule.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.TimeUnit.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.TimeUnit.dat
deleted file mode 100644
index 9f01834..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.TimeUnit.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.TimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.TimeZone.dat
deleted file mode 100644
index 5d69e24..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.TimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.UResourceTypeMismatchException.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.UResourceTypeMismatchException.dat
deleted file mode 100644
index acbe568..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.UResourceTypeMismatchException.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.VTimeZone.dat b/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.VTimeZone.dat
deleted file mode 100644
index 77e2c5b..0000000
--- a/android_icu4j/src/main/tests/android/icu/dev/test/serializable/data/ICU_56.1/com.ibm.icu.util.VTimeZone.dat
+++ /dev/null
Binary files differ
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/shaping/ArabicShapingRegTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/shaping/ArabicShapingRegTest.java
index f0d8a77..630867f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/shaping/ArabicShapingRegTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/shaping/ArabicShapingRegTest.java
@@ -13,10 +13,13 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.ArabicShaping;
 import android.icu.text.ArabicShapingException;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Regression test for Arabic shaping.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class ArabicShapingRegTest extends TestFmwk {
 
     /* constants copied from ArabicShaping for convenience */
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/IDNAConformanceTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/IDNAConformanceTest.java
index cba4fbe..a613341 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/IDNAConformanceTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/IDNAConformanceTest.java
@@ -23,11 +23,14 @@
 import android.icu.text.IDNA;
 import android.icu.text.StringPrepParseException;
 import android.icu.text.UTF16;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author limaoyu
  * 
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class IDNAConformanceTest extends TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestAll.java
index 896ed2f..c97bdd9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestAll.java
@@ -8,6 +8,8 @@
 package android.icu.dev.test.stringprep;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * @author ram
@@ -15,6 +17,7 @@
  * To change the template for this generated type comment go to
  * Window>Preferences>Java>Code Generation>Code and Comments
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestIDNA.java b/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestIDNA.java
index 875b311..28ab13e 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestIDNA.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestIDNA.java
@@ -16,10 +16,13 @@
 import android.icu.text.StringPrepParseException;
 import android.icu.text.UCharacterIterator;
 import android.icu.text.UTF16;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author ram
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TestIDNA extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new TestIDNA().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestIDNARef.java b/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestIDNARef.java
index 4edc1e1..b1dff49 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestIDNARef.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestIDNARef.java
@@ -10,6 +10,8 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.StringPrepParseException;
 import android.icu.text.UCharacterIterator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author ram
@@ -17,6 +19,7 @@
  * To change the template for this generated type comment go to
  * Window>Preferences>Java>Code Generation>Code and Comments
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TestIDNARef extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new TestIDNARef().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestStringPrep.java b/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestStringPrep.java
index 6a0bd8a..abd013b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestStringPrep.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestStringPrep.java
@@ -12,11 +12,14 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.StringPrep;
 import android.icu.text.StringPrepParseException;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author ram
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TestStringPrep extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new TestStringPrep().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestStringPrepProfiles.java b/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestStringPrepProfiles.java
index aab5054..71cfbd6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestStringPrepProfiles.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/stringprep/TestStringPrepProfiles.java
@@ -10,11 +10,14 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.text.StringPrep;
 import android.icu.text.StringPrepParseException;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author Michael Ow
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TestStringPrepProfiles extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new TestStringPrepProfiles().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/text/SpoofCheckerTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/text/SpoofCheckerTest.java
index 89c746b..683bc69 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/text/SpoofCheckerTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/text/SpoofCheckerTest.java
@@ -35,7 +35,10 @@
 import android.icu.text.SpoofChecker.RestrictionLevel;
 import android.icu.text.UnicodeSet;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class SpoofCheckerTest extends TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/text/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/text/TestAll.java
index c8fa1e5..49ce88d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/text/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/text/TestAll.java
@@ -8,10 +8,13 @@
 package android.icu.dev.test.text;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run text tests.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
     public static void main(String[] args) throws Exception {
         new TestAll().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/timescale/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/timescale/TestAll.java
index c417f5f..96ba1ac 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/timescale/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/timescale/TestAll.java
@@ -10,10 +10,13 @@
 package android.icu.dev.test.timescale;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run time scale tests as a batch.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
 
     public TestAll() {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/timescale/TimeScaleAPITest.java b/android_icu4j/src/main/tests/android/icu/dev/test/timescale/TimeScaleAPITest.java
index 6125cae..574ebd3 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/timescale/TimeScaleAPITest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/timescale/TimeScaleAPITest.java
@@ -12,10 +12,13 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.math.BigDecimal;
 import android.icu.util.UniversalTimeScale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test UniversalTimeScale API
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TimeScaleAPITest extends TestFmwk
 {
 
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/timescale/TimeScaleDataTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/timescale/TimeScaleDataTest.java
index 7ec1d95..5c739ab 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/timescale/TimeScaleDataTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/timescale/TimeScaleDataTest.java
@@ -17,6 +17,8 @@
 import android.icu.util.SimpleTimeZone;
 import android.icu.util.TimeZone;
 import android.icu.util.UniversalTimeScale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author Owner
@@ -24,6 +26,7 @@
  * TODO To change the template for this generated type comment go to
  * Window - Preferences - Java - Code Style - Code Templates
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TimeScaleDataTest extends TestFmwk
 {
 
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/timescale/TimeScaleMonkeyTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/timescale/TimeScaleMonkeyTest.java
index b326672..98d421b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/timescale/TimeScaleMonkeyTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/timescale/TimeScaleMonkeyTest.java
@@ -14,12 +14,15 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.math.BigDecimal;
 import android.icu.util.UniversalTimeScale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * This class tests the UniversalTimeScale class by
  * generating ramdon values in range and making sure
  * that they round-trip correctly.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TimeScaleMonkeyTest extends TestFmwk
 {
 
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TestAll.java
index 621cffb..2f7d26c 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TestAll.java
@@ -8,10 +8,13 @@
 package android.icu.dev.test.timezone;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run all other tests as a batch.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
     public static void main(String[] args) throws Exception {
         new TestAll().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneAliasTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneAliasTest.java
index 0336f12..38ec523 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneAliasTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneAliasTest.java
@@ -24,6 +24,8 @@
 
 import android.icu.dev.test.TestFmwk;
 import android.icu.util.TimeZone;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 /**
@@ -31,6 +33,7 @@
  * @author Davis
  * 
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TimeZoneAliasTest extends TestFmwk {
     
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneBoundaryTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneBoundaryTest.java
index eeb8836..0710c0a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneBoundaryTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneBoundaryTest.java
@@ -15,11 +15,14 @@
 import android.icu.util.Calendar;
 import android.icu.util.SimpleTimeZone;
 import android.icu.util.TimeZone;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * A test which discovers the boundaries of DST programmatically and verifies
  * that they are correct.
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TimeZoneBoundaryTest extends TestFmwk
 {
     static final int ONE_SECOND = 1000;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneOffsetLocalTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneOffsetLocalTest.java
index c923ab8..3263aef 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneOffsetLocalTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneOffsetLocalTest.java
@@ -20,10 +20,13 @@
 import android.icu.util.RuleBasedTimeZone;
 import android.icu.util.SimpleTimeZone;
 import android.icu.util.TimeZone;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Testing getOffset APIs using local time
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TimeZoneOffsetLocalTest extends TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneRegression.java b/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneRegression.java
index d2f9245..27b9935 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneRegression.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneRegression.java
@@ -30,7 +30,10 @@
 import android.icu.util.SimpleTimeZone;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TimeZoneRegression extends TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneRuleTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneRuleTest.java
index cf68b1b..06e1b8c 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneRuleTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneRuleTest.java
@@ -31,10 +31,13 @@
 import android.icu.util.TimeZoneTransition;
 import android.icu.util.ULocale;
 import android.icu.util.VTimeZone;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test cases for TimeZoneRule and RuleBasedTimeZone
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TimeZoneRuleTest extends TestFmwk {
 
     private static final int HOUR = 60 * 60 * 1000;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneTest.java
index 4c4c6e0..dcfe21e 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneTest.java
@@ -39,6 +39,8 @@
 import android.icu.util.UResourceBundle;
 import android.icu.util.VTimeZone;
 import android.icu.util.VersionInfo;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @test 1.22 99/09/21
@@ -46,6 +48,7 @@
  * @summary test TimeZone
  * @build TimeZoneTest
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TimeZoneTest extends TestFmwk
 {
     static final int millisPerHour = 3600000;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/translit/AnyScriptTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/translit/AnyScriptTest.java
index 1e8984f..1e7192b 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/translit/AnyScriptTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/translit/AnyScriptTest.java
@@ -14,11 +14,14 @@
 import android.icu.text.UnicodeSet;
 import android.icu.text.UnicodeSetIterator;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author markdavis
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class AnyScriptTest extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new AnyScriptTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/translit/CompoundTransliteratorTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/translit/CompoundTransliteratorTest.java
index 12f0300..0152e5f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/translit/CompoundTransliteratorTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/translit/CompoundTransliteratorTest.java
@@ -10,6 +10,8 @@
 import android.icu.impl.Utility;
 import android.icu.text.ReplaceableString;
 import android.icu.text.Transliterator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 
@@ -17,6 +19,7 @@
  * @test
  * @summary General test of CompoundTransliterator
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class CompoundTransliteratorTest extends TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/translit/ErrorTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/translit/ErrorTest.java
index 38b97ea..3f6ccb6 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/translit/ErrorTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/translit/ErrorTest.java
@@ -10,11 +10,14 @@
 import android.icu.text.ReplaceableString;
 import android.icu.text.Transliterator;
 import android.icu.text.UnicodeSet;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @test
  * @summary Error condition test of Transliterator
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class ErrorTest extends TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/translit/JamoTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/translit/JamoTest.java
index 74bc82c..8035fae 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/translit/JamoTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/translit/JamoTest.java
@@ -12,11 +12,14 @@
 
 import android.icu.impl.Utility;
 import android.icu.text.Transliterator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @test
  * @summary Test the Latin-Jamo transliterator
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class JamoTest extends TransliteratorTest {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/translit/PrettyPrinterTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/translit/PrettyPrinterTest.java
index 7a23608..2579edc 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/translit/PrettyPrinterTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/translit/PrettyPrinterTest.java
@@ -13,7 +13,10 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.dev.util.PrettyPrinter;
 import android.icu.text.UnicodeSet;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class PrettyPrinterTest extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new PrettyPrinterTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/translit/RegexUtilitiesTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/translit/RegexUtilitiesTest.java
index 5c332bd..896b635 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/translit/RegexUtilitiesTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/translit/RegexUtilitiesTest.java
@@ -20,10 +20,13 @@
 import android.icu.text.Transliterator;
 import android.icu.text.UTF16;
 import android.icu.text.UnicodeSet;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author markdavis
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class RegexUtilitiesTest extends TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/translit/ReplaceableTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/translit/ReplaceableTest.java
index 1f22d4c..a886a9e 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/translit/ReplaceableTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/translit/ReplaceableTest.java
@@ -12,11 +12,14 @@
 import android.icu.text.Replaceable;
 import android.icu.text.ReplaceableString;
 import android.icu.text.Transliterator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @test
  * @summary Round trip test of Transliterator
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class ReplaceableTest extends TestFmwk {
     
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/translit/RoundTripTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/translit/RoundTripTest.java
index 2e92777..419d3f1 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/translit/RoundTripTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/translit/RoundTripTest.java
@@ -29,11 +29,14 @@
 import android.icu.text.UnicodeSetIterator;
 import android.icu.util.LocaleData;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @test
  * @summary Round trip test of Transliterator
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class RoundTripTest extends TestFmwk {
 
     //TODO - revisit test cases referencing FIX_ME
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/translit/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/translit/TestAll.java
index bf6daa1..af82e9c 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/translit/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/translit/TestAll.java
@@ -8,11 +8,14 @@
 package android.icu.dev.test.translit;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run all other tests as a batch.
  */
 
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
     public static void main(String[] args) {
         new TestAll().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/translit/TestUnicodeProperty.java b/android_icu4j/src/main/tests/android/icu/dev/test/translit/TestUnicodeProperty.java
index 3cd7b7e..fa4f8e0 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/translit/TestUnicodeProperty.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/translit/TestUnicodeProperty.java
@@ -15,11 +15,14 @@
 import android.icu.dev.util.UnicodeProperty.Factory;
 import android.icu.dev.util.UnicodePropertySymbolTable;
 import android.icu.text.UnicodeSet;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author markdavis
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TestUnicodeProperty extends TestFmwk{
     public static void main(String[] args) {
         new TestUnicodeProperty().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/translit/ThreadTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/translit/ThreadTest.java
index ed306e3..698f108 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/translit/ThreadTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/translit/ThreadTest.java
@@ -10,10 +10,13 @@
 import java.util.ArrayList;
 
 import android.icu.text.Transliterator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 // Test for ICU Ticket #7201.  With threading bugs in RuleBasedTransliterator, this
 //   test would reliably crash.
 
+@RunWith(IcuTestFmwkRunner.class)
 public class ThreadTest extends TransliteratorTest {
     public static void main(String[] args) throws Exception {
         new ThreadTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/translit/TransliteratorTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/translit/TransliteratorTest.java
index 96116c2..ce54b73 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/translit/TransliteratorTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/translit/TransliteratorTest.java
@@ -36,6 +36,8 @@
 import android.icu.text.UnicodeSetIterator;
 import android.icu.util.CaseInsensitiveString;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /***********************************************************************
 
@@ -86,6 +88,7 @@
  * @test
  * @summary General test of Transliterator
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class TransliteratorTest extends TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/translit/UnicodeMapTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/translit/UnicodeMapTest.java
index 2e0a922..798066d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/translit/UnicodeMapTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/translit/UnicodeMapTest.java
@@ -24,11 +24,14 @@
 import android.icu.impl.Utility;
 import android.icu.text.UTF16;
 import android.icu.text.UnicodeSet;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @test
  * @summary General test of UnicodeSet
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class UnicodeMapTest extends TestFmwk {
 
     static final int MODIFY_TEST_LIMIT = 32;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/BytesTrieTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/BytesTrieTest.java
index eeef999..780e8d9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/BytesTrieTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/BytesTrieTest.java
@@ -18,7 +18,10 @@
 import android.icu.util.BytesTrie;
 import android.icu.util.BytesTrieBuilder;
 import android.icu.util.StringTrieBuilder;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class BytesTrieTest extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new BytesTrieTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/CharsTrieTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/CharsTrieTest.java
index 98ec7b9..38bb73e 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/CharsTrieTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/CharsTrieTest.java
@@ -19,7 +19,10 @@
 import android.icu.util.CharsTrie;
 import android.icu.util.CharsTrieBuilder;
 import android.icu.util.StringTrieBuilder;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class CharsTrieTest extends TestFmwk {
     public static void main(String[] args) throws Exception {
         new CharsTrieTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/CompactArrayTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/CompactArrayTest.java
index 157c6f1..a2447eb 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/CompactArrayTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/CompactArrayTest.java
@@ -11,10 +11,13 @@
 import android.icu.impl.Utility;
 import android.icu.util.CompactByteArray;
 import android.icu.util.CompactCharArray;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @since release 2.2
  */
+@RunWith(IcuTestFmwkRunner.class)
 public final class CompactArrayTest extends TestFmwk 
 { 
     public static void main(String[] args) throws Exception
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/CurrencyTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/CurrencyTest.java
index fd1d64c..de7c12a 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/CurrencyTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/CurrencyTest.java
@@ -34,11 +34,14 @@
 import android.icu.util.GregorianCalendar;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @test
  * @summary General test of Currency
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class CurrencyTest extends TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/DebugUtilitiesTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/DebugUtilitiesTest.java
index 4d05f8e..981c828 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/DebugUtilitiesTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/DebugUtilitiesTest.java
@@ -8,11 +8,14 @@
 package android.icu.dev.test.util;
 
 import android.icu.dev.test.TestFmwk;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author srl
  *
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class DebugUtilitiesTest extends TestFmwk {
 
     /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/DisplayNameTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/DisplayNameTest.java
index 9cb0e19..e6e8a00 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/DisplayNameTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/DisplayNameTest.java
@@ -25,7 +25,10 @@
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
 import android.icu.util.UResourceBundle;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class DisplayNameTest extends TestFmwk {
     static final boolean SHOW_ALL = false;
     
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/GenderInfoTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/GenderInfoTest.java
index 1766f93..fcb15fc 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/GenderInfoTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/GenderInfoTest.java
@@ -14,7 +14,10 @@
 import android.icu.util.GenderInfo;
 import android.icu.util.GenderInfo.Gender;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class GenderInfoTest extends TestFmwk {
     public static void main(String[] args) {
         new GenderInfoTest().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUBinaryTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUBinaryTest.java
index b53817a..caedb3d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUBinaryTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUBinaryTest.java
@@ -13,6 +13,8 @@
 
 import android.icu.dev.test.TestFmwk;
 import android.icu.impl.ICUBinary;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
 * Testing class for Trie. Tests here will be simple, since both CharTrie and 
@@ -21,6 +23,7 @@
 * @author Syn Wee Quek
 * @since release 2.1 Jan 01 2002
 */
+@RunWith(IcuTestFmwkRunner.class)
 public final class ICUBinaryTest extends TestFmwk 
 { 
     // constructor ---------------------------------------------------
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUResourceBundleCollationTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUResourceBundleCollationTest.java
index 2a04540..d5daac1 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUResourceBundleCollationTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUResourceBundleCollationTest.java
@@ -14,8 +14,11 @@
 import android.icu.text.Collator;
 import android.icu.util.ULocale;
 import android.icu.util.UResourceBundle;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
+@RunWith(IcuTestFmwkRunner.class)
 public final class ICUResourceBundleCollationTest extends TestFmwk {
     private static final String COLLATION_RESNAME = "collations";
     private static final String COLLATION_KEYWORD = "collation";
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUResourceBundleTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUResourceBundleTest.java
index 8742f4c..5592522 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUResourceBundleTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUResourceBundleTest.java
@@ -32,7 +32,10 @@
 import android.icu.util.UResourceBundle;
 import android.icu.util.UResourceBundleIterator;
 import android.icu.util.UResourceTypeMismatchException;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public final class ICUResourceBundleTest extends TestFmwk {
     private static final ClassLoader testLoader = ICUResourceBundleTest.class.getClassLoader();
 
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUServiceTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUServiceTest.java
index 637a1f7..084fc00 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUServiceTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUServiceTest.java
@@ -36,7 +36,10 @@
 import android.icu.impl.ICUService.SimpleFactory;
 import android.icu.impl.LocaleUtility;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class ICUServiceTest extends TestFmwk
 {
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUServiceThreadTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUServiceThreadTest.java
index ee102e8..c07d78f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUServiceThreadTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/ICUServiceThreadTest.java
@@ -30,7 +30,10 @@
 import android.icu.impl.ICUService.Factory;
 import android.icu.impl.ICUService.SimpleFactory;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class ICUServiceThreadTest extends TestFmwk
 {
     private static final boolean PRINTSTATS = false;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleAliasCollationTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleAliasCollationTest.java
index 1d1bb06..e989f31 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleAliasCollationTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleAliasCollationTest.java
@@ -12,7 +12,10 @@
 
 import android.icu.text.Collator;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class LocaleAliasCollationTest extends android.icu.dev.test.TestFmwk {
     private static final ULocale[][] _LOCALES = {
             {new ULocale("en", "RH"), new ULocale("en", "ZW")},
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleAliasTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleAliasTest.java
index 0de2640..0ec47e9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleAliasTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleAliasTest.java
@@ -20,7 +20,10 @@
 import android.icu.util.Calendar;
 import android.icu.util.ULocale;
 import android.icu.util.UResourceBundle;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class LocaleAliasTest extends android.icu.dev.test.TestFmwk {
     private static final ULocale[][] _LOCALES = {
 
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleBuilderTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleBuilderTest.java
index e25df37..6c86008 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleBuilderTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleBuilderTest.java
@@ -13,10 +13,13 @@
 import android.icu.util.IllformedLocaleException;
 import android.icu.util.ULocale;
 import android.icu.util.ULocale.Builder;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test cases for ULocale.LocaleBuilder
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class LocaleBuilderTest extends TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleDataTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleDataTest.java
index 1b7c898..3a1b2aa 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleDataTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleDataTest.java
@@ -18,6 +18,8 @@
 import android.icu.util.ICUException;
 import android.icu.util.LocaleData;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @author ram
@@ -25,6 +27,7 @@
  * To change the template for this generated type comment go to
  * Window>Preferences>Java>Code Generation>Code and Comments
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class LocaleDataTest extends TestFmwk{
 
     public static void main(String[] args) throws Exception{
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleMatcherTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleMatcherTest.java
index f7999b9..72dc624 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleMatcherTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/LocaleMatcherTest.java
@@ -16,12 +16,15 @@
 import android.icu.util.LocaleMatcher.LanguageMatcherData;
 import android.icu.util.LocalePriorityList;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test the LocaleMatcher.
  * 
  * @author markdavis
  */
+@RunWith(IcuTestFmwkRunner.class)
 @SuppressWarnings("deprecation")
 public class LocaleMatcherTest extends TestFmwk {
 
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/LocalePriorityListTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/LocalePriorityListTest.java
index 10e3eda..127d20f 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/LocalePriorityListTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/LocalePriorityListTest.java
@@ -11,11 +11,14 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.util.LocalePriorityList;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * Test the LanguagePriorityList
  * @author markdavis@google.com
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class LocalePriorityListTest extends TestFmwk {
     
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/RegionTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/RegionTest.java
index c3fcdf9..4fdd62d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/RegionTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/RegionTest.java
@@ -18,12 +18,15 @@
 import android.icu.dev.test.TestFmwk;
 import android.icu.util.Region;
 import android.icu.util.Region.RegionType;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @test
  * @summary General test of Regions
  */
 
+@RunWith(IcuTestFmwkRunner.class)
 public class RegionTest extends TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/SimplePatternFormatterTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/SimplePatternFormatterTest.java
index 08d2b11..004df78 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/SimplePatternFormatterTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/SimplePatternFormatterTest.java
@@ -11,7 +11,10 @@
 import android.icu.impl.SimplePatternFormatter;
 import android.icu.text.MessageFormat;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class SimplePatternFormatterTest extends TestFmwk {
 
     /**
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/StringTokenizerTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/StringTokenizerTest.java
index ba7ad18..f652bf4 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/StringTokenizerTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/StringTokenizerTest.java
@@ -13,12 +13,15 @@
 import android.icu.text.ReplaceableString;
 import android.icu.text.UnicodeSet;
 import android.icu.util.StringTokenizer;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
 * Testing class for StringTokenizer class
 * @author Syn Wee Quek
 * @since oct 26 2002
 */
+@RunWith(IcuTestFmwkRunner.class)
 public final class StringTokenizerTest extends TestFmwk
 { 
       // constructor ===================================================
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/TestAll.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/TestAll.java
index 5b8e9e5..c9737a9 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/TestAll.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/TestAll.java
@@ -8,10 +8,13 @@
 package android.icu.dev.test.util;
 
 import android.icu.dev.test.TestFmwk.TestGroup;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestGroupRunner;
 
 /**
  * Top level test used to run all other tests as a batch.
  */
+@RunWith(IcuTestGroupRunner.class)
 public class TestAll extends TestGroup {
     public static void main(String[] args) throws Exception {
         new TestAll().run(args);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/TestUtilities.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/TestUtilities.java
index c1cbe9f..58051d5 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/TestUtilities.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/TestUtilities.java
@@ -32,7 +32,10 @@
 import android.icu.lang.UCharacter;
 import android.icu.lang.UProperty;
 import android.icu.text.UnicodeSet;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TestUtilities extends TestFmwk {
     static final int LIMIT = 0x15; // limit to make testing more realistic in terms of collisions
     static final int ITERATIONS = 1000000;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/TextTrieMapTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/TextTrieMapTest.java
index b67f559..6837ef2 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/TextTrieMapTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/TextTrieMapTest.java
@@ -11,7 +11,10 @@
 
 import android.icu.dev.test.TestFmwk;
 import android.icu.impl.TextTrieMap;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TextTrieMapTest extends TestFmwk {
 
     private static final Integer SUN = new Integer(1);
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/Trie2Test.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/Trie2Test.java
index 004b195..53e8f30 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/Trie2Test.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/Trie2Test.java
@@ -21,7 +21,10 @@
 import android.icu.impl.Trie2Writable;
 import android.icu.impl.Trie2_16;
 import android.icu.impl.Trie2_32;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class Trie2Test extends TestFmwk {
     /**
      * Constructor
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/TrieMapTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/TrieMapTest.java
index 6401118..f8d3fb8 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/TrieMapTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/TrieMapTest.java
@@ -29,7 +29,10 @@
 import android.icu.text.UnicodeSet;
 import android.icu.util.StringTrieBuilder.Option;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class TrieMapTest extends TestFmwk {
     static final boolean SHORT = false;
     static final boolean HACK_TO_MAKE_TESTS_PASS = false;
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/TrieTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/TrieTest.java
index f080d9e..ceecbd0 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/TrieTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/TrieTest.java
@@ -17,6 +17,8 @@
 import android.icu.impl.TrieIterator;
 import android.icu.text.UTF16;
 import android.icu.util.RangeValueIterator;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
 * Testing class for Trie. Tests here will be simple, since both CharTrie and 
@@ -25,6 +27,7 @@
 * @author Syn Wee Quek
 * @since release 2.1 Jan 01 2002
 */
+@RunWith(IcuTestFmwkRunner.class)
 public final class TrieTest extends TestFmwk 
 { 
     // constructor ---------------------------------------------------
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/ULocaleCollationTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/ULocaleCollationTest.java
index 6adf4e3..f0ba99d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/ULocaleCollationTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/ULocaleCollationTest.java
@@ -29,7 +29,10 @@
 import android.icu.text.LocaleDisplayNames.UiListItem;
 import android.icu.util.IllformedLocaleException;
 import android.icu.util.ULocale;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class ULocaleCollationTest extends TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/ULocaleTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/ULocaleTest.java
index ac49c62..b679ff4 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/ULocaleTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/ULocaleTest.java
@@ -44,7 +44,10 @@
 import android.icu.util.ULocale.Minimize;
 import android.icu.util.UResourceBundle;
 import android.icu.util.VersionInfo;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
+@RunWith(IcuTestFmwkRunner.class)
 public class ULocaleTest extends TestFmwk {
 
     // Ticket #8078 and #11674
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/UtilityTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/UtilityTest.java
index ff07b19..da245e4 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/UtilityTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/UtilityTest.java
@@ -23,11 +23,14 @@
 import android.icu.text.UnicodeSet;
 import android.icu.util.ByteArrayWrapper;
 import android.icu.util.CaseInsensitiveString;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 /**
  * @test
  * @summary Test of internal Utility class
  */
+@RunWith(IcuTestFmwkRunner.class)
 public class UtilityTest extends TestFmwk {
 
     public static void main(String[] args) throws Exception {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/util/VersionInfoTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/util/VersionInfoTest.java
index 25c2641..88f438d 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/util/VersionInfoTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/util/VersionInfoTest.java
@@ -14,6 +14,8 @@
 
 import android.icu.dev.test.TestFmwk;
 import android.icu.util.VersionInfo;
+import org.junit.runner.RunWith;
+import android.icu.junit.IcuTestFmwkRunner;
 
 
 /**
@@ -21,6 +23,7 @@
 * @author Syn Wee Quek
 * @since release 2.1 March 01 2002
 */
+@RunWith(IcuTestFmwkRunner.class)
 public final class VersionInfoTest extends TestFmwk 
 { 
     // constructor ---------------------------------------------------
diff --git a/icu4c/source/common/Android.mk b/icu4c/source/common/Android.mk
index 3414799..8e5f757 100644
--- a/icu4c/source/common/Android.mk
+++ b/icu4c/source/common/Android.mk
@@ -19,9 +19,6 @@
 # Common definitions.
 #
 
-icu_common_tidy_checks := \
-    -google-build-using-namespace,-google-explicit-constructor
-
 src_files := \
 	cmemory.c \
 	cstring.c \
@@ -231,7 +228,6 @@
 #
 
 include $(CLEAR_VARS)
-LOCAL_TIDY_CHECKS := $(icu_common_tidy_checks)
 LOCAL_SRC_FILES += $(src_files)
 LOCAL_C_INCLUDES += $(c_includes) $(optional_android_logging_includes)
 LOCAL_CFLAGS += $(local_cflags) -DPIC -fPIC
@@ -254,7 +250,6 @@
 #
 
 include $(CLEAR_VARS)
-LOCAL_TIDY_CHECKS := $(icu_common_tidy_checks)
 LOCAL_SRC_FILES += $(src_files)
 LOCAL_C_INCLUDES += $(c_includes) $(optional_android_logging_includes)
 LOCAL_CFLAGS += $(local_cflags)
@@ -274,7 +269,6 @@
 #
 
 include $(CLEAR_VARS)
-LOCAL_TIDY_CHECKS := $(icu_common_tidy_checks)
 LOCAL_SDK_VERSION := 9
 LOCAL_NDK_STL_VARIANT := stlport_static
 LOCAL_C_INCLUDES += $(c_includes)
diff --git a/icu4c/source/i18n/Android.mk b/icu4c/source/i18n/Android.mk
index 396a56c..a3076f9 100644
--- a/icu4c/source/i18n/Android.mk
+++ b/icu4c/source/i18n/Android.mk
@@ -21,11 +21,6 @@
 
 include $(CLEAR_VARS)
 
-icu_i18n_tidy_checks := \
-    -google-build-using-namespace,-google-explicit-constructor
-
-LOCAL_TIDY_CHECKS := $(icu_i18n_tidy_checks)
-
 src_files := \
 	decContext.c \
 	decNumber.c \
@@ -241,7 +236,6 @@
 #
 
 include $(CLEAR_VARS)
-LOCAL_TIDY_CHECKS := $(icu_i18n_tidy_checks)
 LOCAL_SRC_FILES += $(src_files)
 LOCAL_C_INCLUDES += $(c_includes) $(optional_android_logging_includes)
 LOCAL_CFLAGS += $(local_cflags) -DPIC -fPIC
@@ -259,7 +253,6 @@
 #
 
 include $(CLEAR_VARS)
-LOCAL_TIDY_CHECKS := $(icu_i18n_tidy_checks)
 LOCAL_SRC_FILES += $(src_files)
 LOCAL_C_INCLUDES += $(c_includes) $(optional_android_logging_includes)
 LOCAL_CFLAGS += $(local_cflags)
@@ -277,7 +270,6 @@
 #
 
 include $(CLEAR_VARS)
-LOCAL_TIDY_CHECKS := $(icu_i18n_tidy_checks)
 LOCAL_SDK_VERSION := 9
 LOCAL_NDK_STL_VARIANT := stlport_static
 LOCAL_SRC_FILES += $(src_files)
diff --git a/icu4j/Android.mk b/icu4j/Android.mk
index 46ec3c0..563f7ac 100644
--- a/icu4j/Android.mk
+++ b/icu4j/Android.mk
@@ -98,6 +98,12 @@
     -C "$(LOCAL_PATH)/main/tests/core/src" \
     "com/ibm/icu/dev/test/serializable/data"
 
+#==========================================================
+# build ICU tests for host for testing purposes
+#
+# Run the tests using the ICU4J test framework with the following command:
+#   java -cp ${ANDROID_BUILD_TOP}/out/host/linux-x86/framework/icu4j-host.jar:${ANDROID_BUILD_TOP}/out/host/linux-x86/framework/icu4j-tests-host.jar com.ibm.icu.dev.test.TestAll
+#==========================================================
 include $(CLEAR_VARS)
 LOCAL_SRC_FILES := $(icu4j_test_src_files)
 LOCAL_JAVA_RESOURCE_DIRS := $(icu4j_test_resource_dirs)
@@ -138,24 +144,3 @@
 LOCAL_JARJAR_RULES := $(LOCAL_PATH)/liblayout-jarjar-rules.txt
 LOCAL_MODULE := icu4j-icutzdata-host-jarjar
 include $(BUILD_HOST_JAVA_LIBRARY)
-
-# build repackaged ICU tests
-#
-# Builds against core-libart and core-oj so that it can access all the
-# repackaged android.icu classes and methods and not just the ones available
-# through the Android API.
-include $(CLEAR_VARS)
-
-android_icu4j_tests := ../android_icu4j/src/main/tests
-
-# Don't include this package in any target
-LOCAL_MODULE_TAGS := tests
-LOCAL_SRC_FILES := \
-	$(call all-java-files-under,$(android_icu4j_tests))
-LOCAL_JAVA_RESOURCE_DIRS := $(android_icu4j_tests)
-LOCAL_JAVA_LIBRARIES := \
-	core-oj \
-	core-libart
-LOCAL_NO_STANDARD_LIBRARIES := true
-LOCAL_MODULE := android-icu4j-tests
-include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/DecimalFormat.java b/icu4j/main/classes/core/src/com/ibm/icu/text/DecimalFormat.java
index 6ae2c6b..d50ab20 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/text/DecimalFormat.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/text/DecimalFormat.java
@@ -925,10 +925,7 @@
         synchronized (digitList) {
             digitList.set(number, precision, !useExponentialNotation &&
                           !areSignificantDigitsUsed());
-            // Android patch (ticket #11913) begin.
-            return subformat(number, result, fieldPosition, isNegative, false, parseAttr,
-                    getMaximumIntegerDigits());
-            // Android patch (ticket #11913) end.
+            return subformat(number, result, fieldPosition, isNegative, false, parseAttr);
         }
     }
 
@@ -1129,10 +1126,7 @@
             if (digitList.wasRounded() && roundingMode == BigDecimal.ROUND_UNNECESSARY) {
                 throw new ArithmeticException("Rounding necessary");              
             }
-            // Android patch (ticket #11913) begin.
-            return subformat(number, result, fieldPosition, isNegative, true, parseAttr,
-                    getMaximumIntegerDigits());
-            // Android patch (ticket #11913) end.
+            return subformat(number, result, fieldPosition, isNegative, true, parseAttr);
         }
     }
 
@@ -1167,21 +1161,8 @@
             if (digitList.wasRounded() && roundingMode == BigDecimal.ROUND_UNNECESSARY) {
                 throw new ArithmeticException("Rounding necessary");              
             }
-            // Android patch (ticket #11913) begin.
-            // If the maximum integer digits are still set to the maximum for double, set the
-            // maximum integer digits we will display to the length of the BigInteger, as this can
-            // acceptably be longer than 309 digits.
-            int maxIntDigits;
-            if (getMaximumIntegerDigits() == DOUBLE_INTEGER_DIGITS) {
-                maxIntDigits = digitList.decimalAt;
-                if (maxIntDigits >= 0)
-                    maxIntDigits++;
-            } else {
-                maxIntDigits = getMaximumIntegerDigits();
-            }
             return subformat(number.intValue(), result, fieldPosition, number.signum() < 0, true,
-                             parseAttr, maxIntDigits);
-            // Android patch (ticket #11913) end.
+                             parseAttr);
         }
     }
 
@@ -1214,21 +1195,8 @@
             if (digitList.wasRounded() && roundingMode == BigDecimal.ROUND_UNNECESSARY) {
                 throw new ArithmeticException("Rounding necessary");              
             }
-            // Android patch (ticket #11913) begin.
-            // If the maximum integer digits are still set to the maximum for double, set the
-            // maximum integer digits we will display to the length of the BigDecimal, as this can
-            // acceptably be longer than 309 digits.
-            int maxIntDigits;
-            if (getMaximumIntegerDigits() == DOUBLE_INTEGER_DIGITS) {
-                maxIntDigits = digitList.decimalAt;
-                if (maxIntDigits >= 0)
-                    maxIntDigits++;
-            } else {
-                maxIntDigits = getMaximumIntegerDigits();
-            }
             return subformat(number.doubleValue(), result, fieldPosition, number.signum() < 0,
-                             false, parseAttr, maxIntDigits);
-            // Android patch (ticket #11913) end.
+                             false, parseAttr);
         }
     }
 
@@ -1260,22 +1228,8 @@
             if (digitList.wasRounded() && roundingMode == BigDecimal.ROUND_UNNECESSARY) {
                 throw new ArithmeticException("Rounding necessary");              
             }
-            // Android patch (ticket #11913) begin.
-            // If the maximum integer digits are still set to the maximum for double, set the
-            // maximum integer digits we will display to the length of the BigDecimal, as this can
-            // acceptably be longer than 309 digits.
-            int maxIntDigits;
-            if (getMaximumIntegerDigits() == DOUBLE_INTEGER_DIGITS) {
-                maxIntDigits = digitList.decimalAt;
-                if (maxIntDigits >= 0)
-                    maxIntDigits++;
-            } else {
-                maxIntDigits = getMaximumIntegerDigits();
-            }
-
             return subformat(number.doubleValue(), result, fieldPosition, number.signum() < 0,
-                             false, false, maxIntDigits);
-            // Android patch (ticket #11913) end.
+                             false, false);
         }
     }
 
@@ -1314,20 +1268,17 @@
         }
     }
 
-    // Android patch (ticket #11913) begin.
     private StringBuffer subformat(int number, StringBuffer result, FieldPosition fieldPosition,
-                                   boolean isNegative, boolean isInteger, boolean parseAttr,
-                                   int maxIntDig) {
+                                   boolean isNegative, boolean isInteger, boolean parseAttr) {
         if (currencySignCount == CURRENCY_SIGN_COUNT_IN_PLURAL_FORMAT) {
             // compute the plural category from the digitList plus other settings
             return subformat(currencyPluralInfo.select(getFixedDecimal(number)),
                              result, fieldPosition, isNegative,
-                             isInteger, parseAttr, maxIntDig);
+                             isInteger, parseAttr);
         } else {
-            return subformat(result, fieldPosition, isNegative, isInteger, parseAttr, maxIntDig);
+            return subformat(result, fieldPosition, isNegative, isInteger, parseAttr);
         }
     }
-    // Android patch (ticket #11913) end.
 
     /**
      * This is ugly, but don't see a better way to do it without major restructuring of the code.
@@ -1375,24 +1326,21 @@
         return new FixedDecimal(number, v, f);
     }
 
-    // Android patch (ticket #11913) begin.
     private StringBuffer subformat(double number, StringBuffer result, FieldPosition fieldPosition,
-                                   boolean isNegative, boolean isInteger, boolean parseAttr,
-                                   int maxIntDig) {
+                                   boolean isNegative,
+            boolean isInteger, boolean parseAttr) {
         if (currencySignCount == CURRENCY_SIGN_COUNT_IN_PLURAL_FORMAT) {
             // compute the plural category from the digitList plus other settings
             return subformat(currencyPluralInfo.select(getFixedDecimal(number)),
                              result, fieldPosition, isNegative,
-                             isInteger, parseAttr, maxIntDig);
+                             isInteger, parseAttr);
         } else {
-            return subformat(result, fieldPosition, isNegative, isInteger, parseAttr, maxIntDig);
+            return subformat(result, fieldPosition, isNegative, isInteger, parseAttr);
         }
     }
-    // Android patch (ticket #11913) end.
 
-    // Android patch (ticket #11913) begin.
     private StringBuffer subformat(String pluralCount, StringBuffer result, FieldPosition fieldPosition,
-            boolean isNegative, boolean isInteger, boolean parseAttr, int maxIntDig) {
+            boolean isNegative, boolean isInteger, boolean parseAttr) {
         // There are 2 ways to activate currency plural format: by applying a pattern with
         // 3 currency sign directly, or by instantiate a decimal formatter using
         // PLURALCURRENCYSTYLE.  For both cases, the number of currency sign in the
@@ -1418,18 +1366,15 @@
         // based on pattern alone, and it is already expanded during applying pattern, or
         // setDecimalFormatSymbols, or setCurrency.
         expandAffixAdjustWidth(pluralCount);
-        return subformat(result, fieldPosition, isNegative, isInteger, parseAttr, maxIntDig);
+        return subformat(result, fieldPosition, isNegative, isInteger, parseAttr);
     }
-    // Android patch (ticket #11913) end.
 
     /**
      * Complete the formatting of a finite number. On entry, the
      * digitList must be filled in with the correct digits.
      */
-    // Android patch (ticket #11913) begin.
     private StringBuffer subformat(StringBuffer result, FieldPosition fieldPosition,
-                                   boolean isNegative, boolean isInteger, boolean parseAttr,
-                                   int maxIntDig) {
+                                   boolean isNegative, boolean isInteger, boolean parseAttr) {
         // NOTE: This isn't required anymore because DigitList takes care of this.
         //
         // // The negative of the exponent represents the number of leading // zeros
@@ -1459,18 +1404,18 @@
         if (useExponentialNotation) {
             subformatExponential(result, fieldPosition, parseAttr);
         } else {
-            subformatFixed(result, fieldPosition, isInteger, parseAttr, maxIntDig);
+            subformatFixed(result, fieldPosition, isInteger, parseAttr);
         }
 
         int suffixLen = appendAffix(result, isNegative, false, fieldPosition, parseAttr);
         addPadding(result, fieldPosition, prefixLen, suffixLen);
         return result;
     }
-    // Android patch (ticket #11913) end.
 
-    // Android patch (ticket #11913) begin.
-    private void subformatFixed(StringBuffer result, FieldPosition fieldPosition,
-                                boolean isInteger, boolean parseAttr, int maxIntDig) {
+    private void subformatFixed(StringBuffer result,
+            FieldPosition fieldPosition,
+            boolean isInteger,
+            boolean parseAttr) {
         char [] digits = symbols.getDigitsLocal();
 
         char grouping = currencySignCount == CURRENCY_SIGN_COUNT_ZERO ?
@@ -1478,7 +1423,7 @@
         char decimal = currencySignCount == CURRENCY_SIGN_COUNT_ZERO ?
                 symbols.getDecimalSeparator() : symbols.getMonetaryDecimalSeparator();
         boolean useSigDig = areSignificantDigitsUsed();
-    // Android patch (ticket #11913) end.
+        int maxIntDig = getMaximumIntegerDigits();
         int minIntDig = getMinimumIntegerDigits();
         int i;
         // [Spark/CDL] Record the integer start index.
@@ -5278,14 +5223,15 @@
 
     /**
      * Sets the maximum number of digits allowed in the integer portion of a number. This
-     * override limits the integer digit count to 309.
+     * override limits the integer digit count to 2,000,000,000 to match ICU4C.
      *
      * @see NumberFormat#setMaximumIntegerDigits
      * @stable ICU 2.0
      */
     @Override
     public void setMaximumIntegerDigits(int newValue) {
-        super.setMaximumIntegerDigits(Math.min(newValue, DOUBLE_INTEGER_DIGITS));
+        // Android changed: Allow 2 billion integer digits.
+        super.setMaximumIntegerDigits(Math.min(newValue, MAX_INTEGER_DIGITS));
     }
 
     /**
@@ -5589,11 +5535,12 @@
         // InvalidObjectException("Digit count out of range"); }
 
 
-        // Truncate the maximumIntegerDigits to DOUBLE_INTEGER_DIGITS and
+        // Android changed: Allow 2 billion integer digits.
+        // Truncate the maximumIntegerDigits to MAX_INTEGER_DIGITS and
         // maximumFractionDigits to DOUBLE_FRACTION_DIGITS
 
-        if (getMaximumIntegerDigits() > DOUBLE_INTEGER_DIGITS) {
-            setMaximumIntegerDigits(DOUBLE_INTEGER_DIGITS);
+        if (getMaximumIntegerDigits() > MAX_INTEGER_DIGITS) {
+            setMaximumIntegerDigits(MAX_INTEGER_DIGITS);
         }
         if (getMaximumFractionDigits() > DOUBLE_FRACTION_DIGITS) {
             _setMaximumFractionDigits(DOUBLE_FRACTION_DIGITS);
@@ -6064,6 +6011,11 @@
      * Upper limit on integer and fraction digits for a Java double [Richard/GCL]
      */
     static final int DOUBLE_INTEGER_DIGITS = 309;
+    // Android changed: Allow 2 billion integer digits.
+    // This change is necessary to stay feature-compatible in java.text.DecimalFormat which
+    // used to be implemented using ICU4C (which has a 2 billion integer digits limit) and
+    // is now implemented based on this class.
+    static final int MAX_INTEGER_DIGITS = 2000000000;
     static final int DOUBLE_FRACTION_DIGITS = 340;
 
     /**
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/util/IslamicCalendar.java b/icu4j/main/classes/core/src/com/ibm/icu/util/IslamicCalendar.java
index 240cd9c..1dbc784 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/util/IslamicCalendar.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/util/IslamicCalendar.java
@@ -946,8 +946,7 @@
     /**
      * sets the calculation type for this calendar.
      * 
-     * @draft ICU 55
-     * @provisional This API might change or be removed in a future release.
+     * @stable ICU 55
      */
     public void setCalculationType(CalculationType type) {
         cType = type;
@@ -962,8 +961,7 @@
     /**
      * gets the calculation type for this calendar.
      * 
-     * @draft ICU 55
-     * @provisional This API might change or be removed in a future release.
+     * @stable ICU 55
      */
     public CalculationType getCalculationType() {
         return cType;
diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/serializable/CompatibilityTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/serializable/CompatibilityTest.java
index aa82854..48ff7eb 100644
--- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/serializable/CompatibilityTest.java
+++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/serializable/CompatibilityTest.java
@@ -17,6 +17,7 @@
 import java.io.InputStream;
 import java.io.ObjectInputStream;
 import java.net.JarURLConnection;
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Enumeration;
 import java.util.MissingResourceException;
@@ -235,6 +236,14 @@
         }
 
         try {
+            // android-changed - need to trim the directory off the JAR entry before opening the
+            // connection otherwise it could fail as it will try and find the entry within the JAR
+            // which may not exist.
+            String urlAsString = jarURL.toExternalForm();
+            ix = urlAsString.indexOf("!/");
+            jarURL = new URL(urlAsString.substring(0, ix + 2));
+            // end android-changed
+
             JarURLConnection conn = (JarURLConnection) jarURL.openConnection();
             JarFile jarFile = conn.getJarFile();
             try {
@@ -291,10 +300,28 @@
 
         return target;
     }
-    
+
+    // android-changed - need to access an actual resource file
+    /**
+     * The path to an actual data resource file in the JAR. This is needed because when the
+     * code is packaged for Android the resulting archive does not have entries for directories
+     * and so only actual resources can be found.
+     */
+    private static final String ACTUAL_RESOURCE = "/ICU_3.6/com.ibm.icu.impl.OlsonTimeZone.dat";
+    // end android-changed
+
     protected Target getTargets(String targetName)
     {
-        URL dataURL = getClass().getResource("data");
+        // android-changed - locate an actual resource and find the containing JAR file/directory
+        // Get the URL to an actual resource and then compute the URL to the directory just in
+        // case the resources are in a JAR file that doesn't have entries for directories.
+        URL dataURL = getClass().getResource("data" + ACTUAL_RESOURCE);
+        try {
+            dataURL = new URL(dataURL.toExternalForm().replace(ACTUAL_RESOURCE, ""));
+        } catch (MalformedURLException e) {
+            throw new RuntimeException(e);
+        }
+        // end android-changed
         String protocol = dataURL.getProtocol();
         
         if (protocol.equals("jar")) {
diff --git a/tools/srcgen/generate_android_icu4j.sh b/tools/srcgen/generate_android_icu4j.sh
index 8e376e9..da24b0c 100755
--- a/tools/srcgen/generate_android_icu4j.sh
+++ b/tools/srcgen/generate_android_icu4j.sh
@@ -72,13 +72,13 @@
 echo Processing test code
 # Create the android_icu4j test code
 ALL_TEST_INPUT_DIRS="${TEST_INPUT_DIRS} ${TESTDATA_DIR}"
-java ${SRCGEN_JAVA_ARGS} -cp ${CLASSPATH} com.android.icu4j.srcgen.Icu4jBasicTransform \
+java ${SRCGEN_JAVA_ARGS} -cp ${CLASSPATH} com.android.icu4j.srcgen.Icu4jTestsTransform \
   ${ALL_TEST_INPUT_DIRS} ${TEST_DEST_DIR}
 
 # Copy the data files.
 echo Copying test data
 for INPUT_DIR in ${ALL_TEST_INPUT_DIRS}; do
-  RESOURCES=$(find ${INPUT_DIR} -type f | egrep -v '(\.java|\/package\.html)' || true )
+  RESOURCES=$(find ${INPUT_DIR} -type f | egrep -v '(\.java|com\.ibm\.icu.*\.dat|/package\.html)' || true )
   for RESOURCE in ${RESOURCES}; do
     SOURCE_DIR=$(dirname ${RESOURCE})
     RELATIVE_SOURCE_DIR=$(echo ${SOURCE_DIR} | sed "s,${INPUT_DIR}/,,")
@@ -88,3 +88,21 @@
     cp $RESOURCE ${DEST_DIR}
   done
 done
+
+echo Repackaging serialized test data
+# Excludes JavaTimeZone.dat files as they depend on sun.util.calendar.ZoneInfo
+for INPUT_DIR in ${ALL_TEST_INPUT_DIRS}; do
+  RESOURCES=$(find ${INPUT_DIR} -type f | egrep '(/com\.ibm\.icu.*\.dat)' | egrep -v "JavaTimeZone.dat" || true )
+  for RESOURCE in ${RESOURCES}; do
+    SOURCE_DIR=$(dirname ${RESOURCE})
+    RELATIVE_SOURCE_DIR=$(echo ${SOURCE_DIR} | sed "s,${INPUT_DIR}/,,")
+    RELATIVE_DEST_DIR=$(echo ${RELATIVE_SOURCE_DIR} | sed 's,com/ibm/icu,android/icu,')
+    SOURCE_NAME=$(basename ${RESOURCE})
+    DEST_NAME=${SOURCE_NAME/com.ibm/android}
+    DEST_DIR=${TEST_DEST_DIR}/${RELATIVE_DEST_DIR}
+    mkdir -p ${DEST_DIR}
+    # A simple textual substitution works even though the file is binary as 'com.ibm' and 'android'
+    # are the same length.
+    sed 's|com[./]ibm|android|g' $RESOURCE > ${DEST_DIR}/${DEST_NAME} 
+  done
+done
diff --git a/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jBasicTransform.java b/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jBasicTransform.java
index 10a16d0..3635aef 100644
--- a/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jBasicTransform.java
+++ b/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jBasicTransform.java
@@ -32,7 +32,7 @@
  * Applies basic Android's ICU4J source code transformation rules to code and fixes up the
  * jcite start/end tags so they can be used with doclava.
  *
- * <p>Intended for use when transforming sample and test code.
+ * <p>Intended for use when transforming sample code.
  */
 public class Icu4jBasicTransform {
 
diff --git a/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jTestsTransform.java b/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jTestsTransform.java
new file mode 100644
index 0000000..3a468c3
--- /dev/null
+++ b/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jTestsTransform.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2016 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.icu4j.srcgen;
+
+import com.google.common.collect.Lists;
+import com.google.currysrc.Main;
+import com.google.currysrc.api.Rules;
+import com.google.currysrc.api.input.InputFileGenerator;
+import com.google.currysrc.api.output.OutputSourceFileGenerator;
+import com.google.currysrc.api.process.Rule;
+import com.google.currysrc.processors.ReplaceTextCommentScanner;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.List;
+
+import static com.android.icu4j.srcgen.Icu4jTransformRules.createOptionalRule;
+
+/**
+ * Applies Android's ICU4J source code transformation rules to test code, adds @RunWith annotations
+ * to test so that they can be run with JUnit and fixes up the jcite start/end tags.
+ *
+ * <p>Intended for use when transforming test code.
+ */
+public class Icu4jTestsTransform {
+
+  private static final boolean DEBUG = false;
+
+  private Icu4jTestsTransform() {
+  }
+
+  /**
+   * Usage:
+   * java com.android.icu4j.srcgen.Icu4jSampleTransform {source files/directories} {target dir}
+   */
+  public static void main(String[] args) throws Exception {
+    new Main(DEBUG).execute(new Icu4jBasicRules(args));
+  }
+
+  private static class Icu4jBasicRules implements Rules {
+
+    private final InputFileGenerator inputFileGenerator;
+
+    private final List<Rule> rules;
+
+    private final OutputSourceFileGenerator outputSourceFileGenerator;
+
+    public Icu4jBasicRules(String[] args) {
+      if (args.length < 2) {
+        throw new IllegalArgumentException("At least 2 arguments required.");
+      }
+
+      String[] inputDirNames = new String[args.length - 1];
+      System.arraycopy(args, 0, inputDirNames, 0, args.length - 1);
+      inputFileGenerator = Icu4jTransformRules.createInputFileGenerator(inputDirNames);
+      rules = createTransformRules();
+      outputSourceFileGenerator = Icu4jTransformRules.createOutputFileGenerator(
+          args[args.length - 1]);
+    }
+
+    @Override
+    public List<Rule> getRuleList(File ignored) {
+      return rules;
+    }
+
+    @Override
+    public InputFileGenerator getInputFileGenerator() {
+      return inputFileGenerator;
+    }
+
+    @Override
+    public OutputSourceFileGenerator getOutputSourceFileGenerator() {
+      return outputSourceFileGenerator;
+    }
+
+    private static List<Rule> createTransformRules() {
+      List<Rule> rules =
+              Lists.newArrayList(Icu4jTransform.Icu4jRules.getRepackagingRules());
+
+      // Annotate test files, ones that extend TestFmwk and TestFmwk.TestGroup with appropriate
+      // @RunWith annotation. This must run after those rules that repackage the classes.
+      rules.add(createOptionalRule(new RunWithAnnotator()));
+
+      // Switch all embedded comment references from com.ibm.icu to android.icu.
+      rules.add(
+          createOptionalRule(new ReplaceTextCommentScanner(
+              Icu4jTransform.ORIGINAL_ICU_PACKAGE, Icu4jTransform.ANDROID_ICU_PACKAGE)));
+
+      // Change sample jcite begin / end tags ---XYZ to Androids 'BEGIN(XYZ)' / 'END(XYZ)'
+      rules.add(createOptionalRule(new TranslateJcite.BeginEndTagsHandler()));
+
+      return rules;
+    }
+  }
+}
diff --git a/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jTransform.java b/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jTransform.java
index d544dc2..0c67659 100644
--- a/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jTransform.java
+++ b/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jTransform.java
@@ -506,11 +506,26 @@
       /* ASCII order please. */
       "field:android.icu.util.TimeZone#TIMEZONE_ICU",
       "field:android.icu.util.TimeZone#TIMEZONE_JDK",
+      "method:android.icu.text.UnicodeSet#addAllTo(Iterable<T>,T[])",
+      "method:android.icu.text.UnicodeSet#addAllTo(Iterable<T>,U)",
+      "method:android.icu.text.UnicodeSet#addAllTo(String[])",
+      "method:android.icu.text.UnicodeSet#compare(int,CharSequence)",
+      "method:android.icu.text.UnicodeSet#compare(CharSequence,int)",
+      "method:android.icu.text.UnicodeSet#compare(Collection<T>,Collection<T>,ComparisonStyle)",
+      "method:android.icu.text.UnicodeSet#compare(Iterable<T>,Iterable<T>)",
+      "method:android.icu.text.UnicodeSet#resemblesPattern(String,int)",
+      "method:android.icu.text.UnicodeSet#toArray(UnicodeSet)",
+      "method:android.icu.util.CECalendar#ceToJD(long,int,int,int)",
+      "method:android.icu.util.CECalendar#getJDEpochOffset()",
+      "method:android.icu.util.CECalendar#jdToCE(int,int,int[])",
+      "method:android.icu.util.IslamicCalendar#isCivil()",
+      "method:android.icu.util.IslamicCalendar#setCivil(boolean)",
       "method:android.icu.util.TimeZone#getDefaultTimeZoneType()",
       "method:android.icu.util.TimeZone#setDefault(TimeZone)",
       "method:android.icu.util.TimeZone#setDefaultTimeZoneType(int)",
       "method:android.icu.util.ULocale#setDefault(Category,ULocale)",
       "method:android.icu.util.ULocale#setDefault(ULocale)",
+      "method:android.icu.util.VersionInfo#main(String[])",
   };
 
   // The declarations with JavaDocs that have @.jcite tags that should be transformed to doclava
diff --git a/tools/srcgen/src/main/java/com/android/icu4j/srcgen/RunWithAnnotator.java b/tools/srcgen/src/main/java/com/android/icu4j/srcgen/RunWithAnnotator.java
new file mode 100644
index 0000000..6bf74e2
--- /dev/null
+++ b/tools/srcgen/src/main/java/com/android/icu4j/srcgen/RunWithAnnotator.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright (C) 2016 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.icu4j.srcgen;
+
+import com.google.currysrc.api.process.Context;
+import com.google.currysrc.api.process.Processor;
+import java.lang.reflect.Modifier;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+import org.eclipse.jdt.core.dom.AST;
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jdt.core.dom.ImportDeclaration;
+import org.eclipse.jdt.core.dom.Name;
+import org.eclipse.jdt.core.dom.QualifiedName;
+import org.eclipse.jdt.core.dom.SingleMemberAnnotation;
+import org.eclipse.jdt.core.dom.Type;
+import org.eclipse.jdt.core.dom.TypeDeclaration;
+import org.eclipse.jdt.core.dom.TypeLiteral;
+import org.eclipse.jdt.core.dom.rewrite.ASTRewrite;
+import org.eclipse.jdt.core.dom.rewrite.ListRewrite;
+
+/**
+ * Adds @RunWith annotations to test classes.
+ *
+ * <p>A class that extends {@code TestFmwk.TestGroup} will have an annotation
+ * {@code @RunWith(IcuTestGroupRunner.class)} added and a class that extends {@code TestFmwk} will
+ * have an annotation {@code @RunWith(IcuTestFmwkRunner.class)} added.
+ *
+ * <p>Ideally, this would operate on an AST that has resolved type information so that it was
+ * possible to traverse the class hierarchy to identify classes that are derived both directly and
+ * indirectly from the test classes. Unfortunately, that approach is very, very time consuming, an
+ * order of magnitude (if not two) slower than not resolving the types. Therefore, it was quicker
+ * to simply iteratively annotate and run the tests to find the set of direct dependencies and hard
+ * code them in here. That could be an issue if this had to deal with many changes in the test
+ * classes but this code should only have a very short lifespan given that the ICU4J team is
+ * already well on their way to porting the tests over to JUnit.
+ */
+class RunWithAnnotator implements Processor {
+
+    private static final String RUN_WITH_CLASS_NAME = "org.junit.runner.RunWith";
+
+    private static final String[] TEST_FMWK_BASE_CLASSES = {
+            "BidiTest",
+            "CalendarTest",
+            "android.icu.dev.test.TestFmwk",
+            "CompatibilityTest",
+            "CoverageTest",
+            "LanguageTestRoot",
+            "ModuleTest",
+            "TestFmwk",
+            "TestFmwk.TestGroup",
+            "TestGroup",
+            "TransliteratorTest",
+    };
+
+    private static final String[] TEST_GROUP_BASE_CLASSES = {
+            "TestFmwk.TestGroup",
+            "TestGroup",
+    };
+
+    private static Map<String, String> BASE_CLASS_2_RUNNER_CLASS = new TreeMap<>();
+    static {
+        for (String name : TEST_FMWK_BASE_CLASSES) {
+            BASE_CLASS_2_RUNNER_CLASS.put(name, "android.icu.junit.IcuTestFmwkRunner");
+        }
+        for (String name : TEST_GROUP_BASE_CLASSES) {
+            BASE_CLASS_2_RUNNER_CLASS.put(name, "android.icu.junit.IcuTestGroupRunner");
+        }
+    }
+
+    @Override
+    public void process(Context context, CompilationUnit cu) {
+        List types = cu.types();
+        ASTRewrite rewrite = context.rewrite();
+        boolean imported = false;
+        for (Object type : types) {
+            if (type instanceof TypeDeclaration) {
+                TypeDeclaration typeDeclaration = (TypeDeclaration) type;
+                imported = annotateTypeDeclaration(cu, rewrite, typeDeclaration, true, imported);
+            }
+        }
+    }
+
+    private boolean annotateTypeDeclaration(CompilationUnit cu,
+            ASTRewrite rewrite, TypeDeclaration typeDeclaration, boolean topLevelClass,
+            boolean imported) {
+
+        int modifiers = typeDeclaration.getModifiers();
+        if ((topLevelClass || Modifier.isStatic(modifiers)) && Modifier.isPublic(modifiers)
+                && !Modifier.isAbstract(modifiers)) {
+            Type superClassType = typeDeclaration.getSuperclassType();
+            if (superClassType != null) {
+                String name = superClassType.toString();
+                String runnerClass = BASE_CLASS_2_RUNNER_CLASS.get(name);
+                if (runnerClass != null) {
+                    addRunWithAnnotation(cu, rewrite, typeDeclaration, runnerClass, imported);
+                    imported = true;
+                }
+            }
+        }
+
+        for (TypeDeclaration innerClass : typeDeclaration.getTypes()) {
+            imported = annotateTypeDeclaration(cu, rewrite, innerClass, false, imported);
+        }
+
+        return imported;
+    }
+
+    private boolean addRunWithAnnotation(
+            CompilationUnit cu, ASTRewrite rewrite, TypeDeclaration type, String runnerClass,
+            boolean imported) {
+
+        AST ast = cu.getAST();
+
+        QualifiedName qRunWith = (QualifiedName) ast.newName(RUN_WITH_CLASS_NAME);
+        QualifiedName qRunner = (QualifiedName) ast.newName(runnerClass);
+        if (!imported) {
+            appendImport(cu, rewrite, qRunWith);
+            appendImport(cu, rewrite, qRunner);
+        }
+        String runWithName = qRunWith.getName().getIdentifier();
+        String runnerName = qRunner.getName().getIdentifier();
+
+        SingleMemberAnnotation annotation = ast.newSingleMemberAnnotation();
+        annotation.setTypeName(ast.newSimpleName(runWithName));
+
+        TypeLiteral junit4Literal = ast.newTypeLiteral();
+        junit4Literal.setType(ast.newSimpleType(ast.newSimpleName(runnerName)));
+        annotation.setValue(junit4Literal);
+
+        ListRewrite lrw = rewrite.getListRewrite(type, type.getModifiersProperty());
+        lrw.insertFirst(annotation, null);
+
+        return imported;
+    }
+
+    private void appendImport(CompilationUnit cu, ASTRewrite rewriter, Name name) {
+        ListRewrite lrw = rewriter.getListRewrite(cu, CompilationUnit.IMPORTS_PROPERTY);
+        AST ast = cu.getAST();
+        ImportDeclaration importDeclaration = ast.newImportDeclaration();
+        importDeclaration.setName(name);
+        lrw.insertLast(importDeclaration, null);
+    }
+
+}
