aboutsummaryrefslogtreecommitdiff
path: root/testapps
diff options
context:
space:
mode:
Diffstat (limited to 'testapps')
-rw-r--r--testapps/.gitignore5
-rw-r--r--testapps/README.txt6
-rw-r--r--testapps/aidlTest/libWithAidl/.classpath8
-rw-r--r--testapps/aidlTest/libWithAidl/.project33
-rw-r--r--testapps/aidlTest/libWithAidl/AndroidManifest.xml18
-rw-r--r--testapps/aidlTest/libWithAidl/ant.properties17
-rw-r--r--testapps/aidlTest/libWithAidl/build.xml90
-rw-r--r--testapps/aidlTest/libWithAidl/proguard-project.txt20
-rw-r--r--testapps/aidlTest/libWithAidl/project.properties13
-rw-r--r--testapps/aidlTest/libWithAidl/res/layout/main.xml25
-rw-r--r--testapps/aidlTest/libWithAidl/res/values/strings.xml4
-rw-r--r--testapps/aidlTest/libWithAidl/src/com/android/tests/aidl/lib/MyParcelable.aidl3
-rw-r--r--testapps/aidlTest/libWithAidl/src/com/android/tests/aidl/lib/MyParcelable.java46
-rw-r--r--testapps/aidlTest/mainProject/.classpath8
-rw-r--r--testapps/aidlTest/mainProject/.project33
-rw-r--r--testapps/aidlTest/mainProject/AndroidManifest.xml19
-rw-r--r--testapps/aidlTest/mainProject/ant.properties17
-rw-r--r--testapps/aidlTest/mainProject/build.xml90
-rw-r--r--testapps/aidlTest/mainProject/proguard-project.txt20
-rw-r--r--testapps/aidlTest/mainProject/project.properties15
-rw-r--r--testapps/aidlTest/mainProject/res/values/strings.xml4
-rw-r--r--testapps/aidlTest/mainProject/src/com/android/tests/aidl/main/IRemoteService.aidl24
-rw-r--r--testapps/aidlTest/mainProject/src/com/android/tests/aidl/main/MyActivity.java32
-rw-r--r--testapps/basicJar/.classpath6
-rw-r--r--testapps/basicJar/.project17
-rw-r--r--testapps/basicJar/build.xml16
-rw-r--r--testapps/basicJar/src/com/android/tests/basicjar/BasicJar.java33
-rw-r--r--testapps/basicJar/src/com/android/tests/basicjar/basicJar.txt1
-rw-r--r--testapps/basicJar2/.classpath6
-rw-r--r--testapps/basicJar2/.project17
-rw-r--r--testapps/basicJar2/build.xml16
-rw-r--r--testapps/basicJar2/src/com/android/tests/basicjar2/BasicJar2.java33
-rw-r--r--testapps/basicJar2/src/com/android/tests/basicjar2/basicJar2.txt1
-rw-r--r--testapps/basicJar3/.classpath6
-rw-r--r--testapps/basicJar3/.project17
-rw-r--r--testapps/basicJar3/build.xml16
-rw-r--r--testapps/basicJar3/src/com/android/tests/basicjar3/BasicJar3.java33
-rw-r--r--testapps/basicJar3/src/com/android/tests/basicjar3/basicJar3.txt1
-rw-r--r--testapps/basicProjectWithAidl/.classpath8
-rw-r--r--testapps/basicProjectWithAidl/.project33
-rw-r--r--testapps/basicProjectWithAidl/AndroidManifest.xml15
-rw-r--r--testapps/basicProjectWithAidl/ant.properties17
-rw-r--r--testapps/basicProjectWithAidl/build.xml92
-rw-r--r--testapps/basicProjectWithAidl/project.properties12
-rw-r--r--testapps/basicProjectWithAidl/res/drawable/icon.pngbin0 -> 2574 bytes
-rw-r--r--testapps/basicProjectWithAidl/res/layout/main.xml13
-rw-r--r--testapps/basicProjectWithAidl/res/values/strings.xml4
-rw-r--r--testapps/basicProjectWithAidl/src/com/android/tests/basicprojectwithaidl/ITest.aidl6
-rw-r--r--testapps/basicProjectWithAidl/src/com/android/tests/basicprojectwithaidl/Main.java15
-rw-r--r--testapps/basicProjectWithAidl/src/com/android/tests/basicprojectwithaidl/Rect.aidl5
-rw-r--r--testapps/basicProjectWithAidl/src/com/android/tests/basicprojectwithaidl/Rect.java52
-rw-r--r--testapps/buildConfigTest/COMPILE_AND_RUN0
-rw-r--r--testapps/buildConfigTest/SUCCESS0
-rw-r--r--testapps/buildConfigTest/app/.classpath8
-rw-r--r--testapps/buildConfigTest/app/.project33
-rw-r--r--testapps/buildConfigTest/app/AndroidManifest.xml15
-rw-r--r--testapps/buildConfigTest/app/ant.properties17
-rw-r--r--testapps/buildConfigTest/app/build.xml92
-rw-r--r--testapps/buildConfigTest/app/lint.xml3
-rw-r--r--testapps/buildConfigTest/app/proguard-project.txt20
-rw-r--r--testapps/buildConfigTest/app/project.properties15
-rw-r--r--testapps/buildConfigTest/app/res/drawable-hdpi/ic_launcher.pngbin0 -> 4147 bytes
-rw-r--r--testapps/buildConfigTest/app/res/drawable-ldpi/ic_launcher.pngbin0 -> 1723 bytes
-rw-r--r--testapps/buildConfigTest/app/res/drawable-mdpi/ic_launcher.pngbin0 -> 2574 bytes
-rw-r--r--testapps/buildConfigTest/app/res/layout/main.xml22
-rw-r--r--testapps/buildConfigTest/app/res/values/strings.xml4
-rw-r--r--testapps/buildConfigTest/app/src/com/android/tests/buildconfigtest/Main.java26
-rw-r--r--testapps/buildConfigTest/lib1/.classpath8
-rw-r--r--testapps/buildConfigTest/lib1/.project33
-rw-r--r--testapps/buildConfigTest/lib1/AndroidManifest.xml21
-rw-r--r--testapps/buildConfigTest/lib1/build.xml92
-rw-r--r--testapps/buildConfigTest/lib1/proguard-project.txt20
-rw-r--r--testapps/buildConfigTest/lib1/project.properties15
-rw-r--r--testapps/buildConfigTest/lib1/res/drawable-hdpi/ic_launcher.pngbin0 -> 4147 bytes
-rw-r--r--testapps/buildConfigTest/lib1/res/drawable-ldpi/ic_launcher.pngbin0 -> 1723 bytes
-rw-r--r--testapps/buildConfigTest/lib1/res/drawable-mdpi/ic_launcher.pngbin0 -> 2574 bytes
-rw-r--r--testapps/buildConfigTest/lib1/res/values/strings.xml4
-rw-r--r--testapps/buildConfigTest/lib1/src/com/android/tests/buildconfigtest/lib1/Lib1.java17
-rw-r--r--testapps/customPropAnimTest/.classpath8
-rw-r--r--testapps/customPropAnimTest/.project33
-rw-r--r--testapps/customPropAnimTest/AndroidManifest.xml23
-rw-r--r--testapps/customPropAnimTest/build.xml90
-rw-r--r--testapps/customPropAnimTest/proguard-project.txt20
-rw-r--r--testapps/customPropAnimTest/project.properties15
-rw-r--r--testapps/customPropAnimTest/res/drawable-hdpi/ic_launcher.pngbin0 -> 9397 bytes
-rw-r--r--testapps/customPropAnimTest/res/drawable-ldpi/ic_launcher.pngbin0 -> 2729 bytes
-rw-r--r--testapps/customPropAnimTest/res/drawable-mdpi/ic_launcher.pngbin0 -> 5237 bytes
-rw-r--r--testapps/customPropAnimTest/res/drawable-xhdpi/ic_launcher.pngbin0 -> 14383 bytes
-rw-r--r--testapps/customPropAnimTest/res/layout/main.xml8
-rw-r--r--testapps/customPropAnimTest/res/values/strings.xml7
-rw-r--r--testapps/customPropAnimTest/src/com/android/custompropertyanimation/CustomPropertyAnimationActivity.java22
-rw-r--r--testapps/customPropAnimTest/src/com/android/custompropertyanimation/MyView.java24
-rw-r--r--testapps/customViewTest/libWithCustomView/.classpath8
-rw-r--r--testapps/customViewTest/libWithCustomView/.project33
-rw-r--r--testapps/customViewTest/libWithCustomView/AndroidManifest.xml18
-rw-r--r--testapps/customViewTest/libWithCustomView/ant.properties17
-rw-r--r--testapps/customViewTest/libWithCustomView/build.xml90
-rw-r--r--testapps/customViewTest/libWithCustomView/proguard-project.txt20
-rw-r--r--testapps/customViewTest/libWithCustomView/proguard.cfg40
-rw-r--r--testapps/customViewTest/libWithCustomView/project.properties13
-rw-r--r--testapps/customViewTest/libWithCustomView/res/layout/main.xml46
-rw-r--r--testapps/customViewTest/libWithCustomView/res/values/attrs.xml30
-rw-r--r--testapps/customViewTest/libWithCustomView/res/values/strings.xml4
-rw-r--r--testapps/customViewTest/libWithCustomView/src/com/android/tests/libwithcustom/LabelView.java193
-rw-r--r--testapps/customViewTest/mainProject/.classpath8
-rw-r--r--testapps/customViewTest/mainProject/.project33
-rw-r--r--testapps/customViewTest/mainProject/AndroidManifest.xml15
-rw-r--r--testapps/customViewTest/mainProject/ant.properties17
-rw-r--r--testapps/customViewTest/mainProject/build.xml90
-rw-r--r--testapps/customViewTest/mainProject/libs/foo.txt1
-rw-r--r--testapps/customViewTest/mainProject/proguard-project.txt20
-rw-r--r--testapps/customViewTest/mainProject/project.properties15
-rw-r--r--testapps/customViewTest/mainProject/res/values/strings.xml4
-rw-r--r--testapps/customViewTest/mainProject/src/com/android/tests/projectwithsupport/MyActivity.java15
-rw-r--r--testapps/gridlayoutTest/COMPILE_AND_RUN0
-rw-r--r--testapps/gridlayoutTest/SUCCESS0
-rw-r--r--testapps/gridlayoutTest/app/.classpath8
-rw-r--r--testapps/gridlayoutTest/app/.project33
-rw-r--r--testapps/gridlayoutTest/app/AndroidManifest.xml23
-rw-r--r--testapps/gridlayoutTest/app/ant.properties17
-rw-r--r--testapps/gridlayoutTest/app/build.xml83
-rw-r--r--testapps/gridlayoutTest/app/proguard-project.txt20
-rw-r--r--testapps/gridlayoutTest/app/project.properties15
-rw-r--r--testapps/gridlayoutTest/app/res/drawable-hdpi/ic_launcher.pngbin0 -> 4147 bytes
-rw-r--r--testapps/gridlayoutTest/app/res/drawable-ldpi/ic_launcher.pngbin0 -> 1723 bytes
-rw-r--r--testapps/gridlayoutTest/app/res/drawable-mdpi/ic_launcher.pngbin0 -> 2574 bytes
-rw-r--r--testapps/gridlayoutTest/app/res/layout/main.xml72
-rw-r--r--testapps/gridlayoutTest/app/res/values/strings.xml4
-rw-r--r--testapps/gridlayoutTest/app/src/com/android/test/gridlayout/Main.java15
-rw-r--r--testapps/gridlayoutTest/v7-gridlayout/.classpath8
-rw-r--r--testapps/gridlayoutTest/v7-gridlayout/.project33
-rw-r--r--testapps/gridlayoutTest/v7-gridlayout/AndroidManifest.xml9
-rw-r--r--testapps/gridlayoutTest/v7-gridlayout/build.xml83
-rw-r--r--testapps/gridlayoutTest/v7-gridlayout/libs/android-support-v7-gridlayout.jarbin0 -> 38322 bytes
-rw-r--r--testapps/gridlayoutTest/v7-gridlayout/proguard-project.txt20
-rw-r--r--testapps/gridlayoutTest/v7-gridlayout/project.properties15
-rw-r--r--testapps/gridlayoutTest/v7-gridlayout/res/values/attrs.xml198
-rw-r--r--testapps/gridlayoutTest/v7-gridlayout/res/values/dimens.xml7
-rw-r--r--testapps/gridlayoutTest/v7-gridlayout/src/.readme2
-rw-r--r--testapps/jarCheckTests1/SUCCESS0
-rw-r--r--testapps/jarCheckTests1/app/.classpath8
-rw-r--r--testapps/jarCheckTests1/app/.project33
-rw-r--r--testapps/jarCheckTests1/app/AndroidManifest.xml15
-rw-r--r--testapps/jarCheckTests1/app/ant.properties17
-rw-r--r--testapps/jarCheckTests1/app/build.xml85
-rw-r--r--testapps/jarCheckTests1/app/libs/android-support-v4.jarbin0 -> 247894 bytes
-rw-r--r--testapps/jarCheckTests1/app/libs/foo.txt1
-rw-r--r--testapps/jarCheckTests1/app/proguard-project.txt20
-rw-r--r--testapps/jarCheckTests1/app/project.properties13
-rw-r--r--testapps/jarCheckTests1/app/res/layout/main.xml13
-rw-r--r--testapps/jarCheckTests1/app/res/values/strings.xml4
-rw-r--r--testapps/jarCheckTests1/app/src/com/android/tests/projectwithsupport/MyActivity.java15
-rw-r--r--testapps/jarCheckTests1/lib1/.classpath8
-rw-r--r--testapps/jarCheckTests1/lib1/.project33
-rw-r--r--testapps/jarCheckTests1/lib1/AndroidManifest.xml15
-rw-r--r--testapps/jarCheckTests1/lib1/ant.properties17
-rw-r--r--testapps/jarCheckTests1/lib1/build.xml85
-rw-r--r--testapps/jarCheckTests1/lib1/libs/android-support-v4.jarbin0 -> 247894 bytes
-rw-r--r--testapps/jarCheckTests1/lib1/proguard-project.txt20
-rw-r--r--testapps/jarCheckTests1/lib1/project.properties13
-rw-r--r--testapps/jarCheckTests1/lib1/res/layout/main.xml13
-rw-r--r--testapps/jarCheckTests1/lib1/res/values/strings.xml4
-rw-r--r--testapps/jarCheckTests1/lib1/src/com/android/tests/libwithsupport/MyActivity.java15
-rw-r--r--testapps/jarCheckTests1/lib2/.classpath8
-rw-r--r--testapps/jarCheckTests1/lib2/.project33
-rw-r--r--testapps/jarCheckTests1/lib2/AndroidManifest.xml15
-rw-r--r--testapps/jarCheckTests1/lib2/ant.properties17
-rw-r--r--testapps/jarCheckTests1/lib2/build.xml85
-rw-r--r--testapps/jarCheckTests1/lib2/libs/android-support-v4.jarbin0 -> 247894 bytes
-rw-r--r--testapps/jarCheckTests1/lib2/proguard-project.txt20
-rw-r--r--testapps/jarCheckTests1/lib2/project.properties13
-rw-r--r--testapps/jarCheckTests1/lib2/res/layout/main.xml13
-rw-r--r--testapps/jarCheckTests1/lib2/res/values/strings.xml4
-rw-r--r--testapps/jarCheckTests1/lib2/src/com/android/tests/libwithsupport2/MyActivity.java15
-rw-r--r--testapps/jarCheckTests2/FAIL0
-rw-r--r--testapps/jarCheckTests2/app/.classpath8
-rw-r--r--testapps/jarCheckTests2/app/.project33
-rw-r--r--testapps/jarCheckTests2/app/AndroidManifest.xml15
-rw-r--r--testapps/jarCheckTests2/app/ant.properties17
-rw-r--r--testapps/jarCheckTests2/app/build.xml85
-rw-r--r--testapps/jarCheckTests2/app/libs/foo.txt1
-rw-r--r--testapps/jarCheckTests2/app/proguard-project.txt20
-rw-r--r--testapps/jarCheckTests2/app/project.properties13
-rw-r--r--testapps/jarCheckTests2/app/res/layout/main.xml13
-rw-r--r--testapps/jarCheckTests2/app/res/values/strings.xml4
-rw-r--r--testapps/jarCheckTests2/app/src/com/android/tests/projectwithsupport/MyActivity.java15
-rw-r--r--testapps/jarCheckTests2/lib1/.classpath8
-rw-r--r--testapps/jarCheckTests2/lib1/.project33
-rw-r--r--testapps/jarCheckTests2/lib1/AndroidManifest.xml15
-rw-r--r--testapps/jarCheckTests2/lib1/ant.properties17
-rw-r--r--testapps/jarCheckTests2/lib1/build.xml85
-rw-r--r--testapps/jarCheckTests2/lib1/libs/android-support-v4.jarbin0 -> 247894 bytes
-rw-r--r--testapps/jarCheckTests2/lib1/proguard-project.txt20
-rw-r--r--testapps/jarCheckTests2/lib1/project.properties13
-rw-r--r--testapps/jarCheckTests2/lib1/res/layout/main.xml13
-rw-r--r--testapps/jarCheckTests2/lib1/res/values/strings.xml4
-rw-r--r--testapps/jarCheckTests2/lib1/src/com/android/tests/libwithsupport/MyActivity.java15
-rw-r--r--testapps/jarCheckTests2/lib2/.classpath8
-rw-r--r--testapps/jarCheckTests2/lib2/.project33
-rw-r--r--testapps/jarCheckTests2/lib2/AndroidManifest.xml15
-rw-r--r--testapps/jarCheckTests2/lib2/ant.properties17
-rw-r--r--testapps/jarCheckTests2/lib2/build.xml85
-rw-r--r--testapps/jarCheckTests2/lib2/libs/android-support-v4.jarbin0 -> 244970 bytes
-rw-r--r--testapps/jarCheckTests2/lib2/proguard-project.txt20
-rw-r--r--testapps/jarCheckTests2/lib2/project.properties13
-rw-r--r--testapps/jarCheckTests2/lib2/res/layout/main.xml13
-rw-r--r--testapps/jarCheckTests2/lib2/res/values/strings.xml4
-rw-r--r--testapps/jarCheckTests2/lib2/src/com/android/tests/libwithsupport2/MyActivity.java15
-rw-r--r--testapps/jarCheckTests3/SUCCESS0
-rw-r--r--testapps/jarCheckTests3/app/.classpath8
-rw-r--r--testapps/jarCheckTests3/app/.project33
-rw-r--r--testapps/jarCheckTests3/app/AndroidManifest.xml15
-rw-r--r--testapps/jarCheckTests3/app/ant.properties17
-rw-r--r--testapps/jarCheckTests3/app/build.xml85
-rw-r--r--testapps/jarCheckTests3/app/libs/foo.txt1
-rw-r--r--testapps/jarCheckTests3/app/proguard-project.txt20
-rw-r--r--testapps/jarCheckTests3/app/project.properties13
-rw-r--r--testapps/jarCheckTests3/app/res/layout/main.xml13
-rw-r--r--testapps/jarCheckTests3/app/res/values/strings.xml4
-rw-r--r--testapps/jarCheckTests3/app/src/com/android/tests/projectwithsupport/MyActivity.java15
-rw-r--r--testapps/jarCheckTests3/lib1/.classpath8
-rw-r--r--testapps/jarCheckTests3/lib1/.project33
-rw-r--r--testapps/jarCheckTests3/lib1/AndroidManifest.xml15
-rw-r--r--testapps/jarCheckTests3/lib1/ant.properties17
-rw-r--r--testapps/jarCheckTests3/lib1/build.xml85
-rw-r--r--testapps/jarCheckTests3/lib1/libs/android-support-v4.jarbin0 -> 247894 bytes
-rw-r--r--testapps/jarCheckTests3/lib1/proguard-project.txt20
-rw-r--r--testapps/jarCheckTests3/lib1/project.properties13
-rw-r--r--testapps/jarCheckTests3/lib1/res/layout/main.xml13
-rw-r--r--testapps/jarCheckTests3/lib1/res/values/strings.xml4
-rw-r--r--testapps/jarCheckTests3/lib1/src/com/android/tests/libwithsupport/MyActivity.java15
-rw-r--r--testapps/jarCheckTests3/lib2/.classpath8
-rw-r--r--testapps/jarCheckTests3/lib2/.project33
-rw-r--r--testapps/jarCheckTests3/lib2/AndroidManifest.xml15
-rw-r--r--testapps/jarCheckTests3/lib2/ant.properties17
-rw-r--r--testapps/jarCheckTests3/lib2/build.xml85
-rw-r--r--testapps/jarCheckTests3/lib2/libs/android-support-v13.jarbin0 -> 307683 bytes
-rw-r--r--testapps/jarCheckTests3/lib2/proguard-project.txt20
-rw-r--r--testapps/jarCheckTests3/lib2/project.properties13
-rw-r--r--testapps/jarCheckTests3/lib2/res/layout/main.xml13
-rw-r--r--testapps/jarCheckTests3/lib2/res/values/strings.xml4
-rw-r--r--testapps/jarCheckTests3/lib2/src/com/android/tests/libwithsupport2/MyActivity.java15
-rw-r--r--testapps/javaProjectTest/COMPILE_AND_RUN0
-rw-r--r--testapps/javaProjectTest/ECLIPSEONLY0
-rw-r--r--testapps/javaProjectTest/README.txt5
-rw-r--r--testapps/javaProjectTest/SUCCESS0
-rw-r--r--testapps/javaProjectTest/app/.classpath9
-rw-r--r--testapps/javaProjectTest/app/.project33
-rw-r--r--testapps/javaProjectTest/app/AndroidManifest.xml23
-rw-r--r--testapps/javaProjectTest/app/proguard-project.txt22
-rw-r--r--testapps/javaProjectTest/app/project.properties16
-rw-r--r--testapps/javaProjectTest/app/res/drawable-hdpi/icon.pngbin0 -> 4147 bytes
-rw-r--r--testapps/javaProjectTest/app/res/drawable-ldpi/icon.pngbin0 -> 1723 bytes
-rw-r--r--testapps/javaProjectTest/app/res/drawable-mdpi/icon.pngbin0 -> 2574 bytes
-rw-r--r--testapps/javaProjectTest/app/res/layout/main.xml71
-rw-r--r--testapps/javaProjectTest/app/res/values/strings.xml6
-rw-r--r--testapps/javaProjectTest/app/src/com/android/tests/javaprojecttest/app/App.java33
-rw-r--r--testapps/javaProjectTest/app/src/com/android/tests/javaprojecttest/app/App.txt1
-rw-r--r--testapps/javaProjectTest/app/src/com/android/tests/javaprojecttest/app/Main.java51
-rw-r--r--testapps/javaProjectTest/javaProject/.classpath8
-rw-r--r--testapps/javaProjectTest/javaProject/.project17
-rw-r--r--testapps/javaProjectTest/javaProject/libs/basicJar.jarbin0 -> 1791 bytes
-rw-r--r--testapps/javaProjectTest/javaProject/src/com/android/tests/javaprojecttest/javaproject/JavaProject.java33
-rw-r--r--testapps/javaProjectTest/javaProject/src/com/android/tests/javaprojecttest/javaproject/JavaProject.txt1
-rw-r--r--testapps/javaProjectTest/javaProject2/.classpath7
-rw-r--r--testapps/javaProjectTest/javaProject2/.project17
-rw-r--r--testapps/javaProjectTest/javaProject2/libs/basicJar.jarbin0 -> 1791 bytes
-rw-r--r--testapps/javaProjectTest/javaProject2/libs/basicJar_not_in_classpath.jarbin0 -> 1813 bytes
-rw-r--r--testapps/javaProjectTest/javaProject2/src/com/android/tests/javaprojecttest/javaproject2/JavaProject2.java33
-rw-r--r--testapps/javaProjectTest/javaProject2/src/com/android/tests/javaprojecttest/javaproject2/JavaProject2.txt1
-rw-r--r--testapps/javaProjectTest/javaProject3/.classpath7
-rw-r--r--testapps/javaProjectTest/javaProject3/.project17
-rw-r--r--testapps/javaProjectTest/javaProject3/libs/basicJar2.jarbin0 -> 1803 bytes
-rw-r--r--testapps/javaProjectTest/javaProject3/src/com/android/tests/javaprojecttest/javaproject3/JavaProject3.java33
-rw-r--r--testapps/javaProjectTest/javaProject3/src/com/android/tests/javaprojecttest/javaproject3/JavaProject3.txt1
-rw-r--r--testapps/javaProjectTest/lib1/.classpath10
-rw-r--r--testapps/javaProjectTest/lib1/.project33
-rw-r--r--testapps/javaProjectTest/lib1/AndroidManifest.xml21
-rw-r--r--testapps/javaProjectTest/lib1/jars/basicJar3.jarbin0 -> 1802 bytes
-rw-r--r--testapps/javaProjectTest/lib1/libs/android-support-v4.jarbin0 -> 247894 bytes
-rw-r--r--testapps/javaProjectTest/lib1/proguard-project.txt20
-rw-r--r--testapps/javaProjectTest/lib1/project.properties15
-rw-r--r--testapps/javaProjectTest/lib1/res/drawable-hdpi/ic_launcher.pngbin0 -> 4147 bytes
-rw-r--r--testapps/javaProjectTest/lib1/res/drawable-ldpi/ic_launcher.pngbin0 -> 1723 bytes
-rw-r--r--testapps/javaProjectTest/lib1/res/drawable-mdpi/ic_launcher.pngbin0 -> 2574 bytes
-rw-r--r--testapps/javaProjectTest/lib1/res/layout/main.xml13
-rw-r--r--testapps/javaProjectTest/lib1/res/values/strings.xml4
-rw-r--r--testapps/javaProjectTest/lib1/src/com/android/tests/javaprojecttest/lib1/Lib1.java33
-rw-r--r--testapps/javaProjectTest/lib1/src/com/android/tests/javaprojecttest/lib1/Lib1.txt1
-rw-r--r--testapps/javaProjectTest/lib1/src/com/android/tests/javaprojecttest/lib1/Main.java15
-rw-r--r--testapps/javaProjectTest/lib2/.classpath9
-rw-r--r--testapps/javaProjectTest/lib2/.project33
-rw-r--r--testapps/javaProjectTest/lib2/AndroidManifest.xml21
-rw-r--r--testapps/javaProjectTest/lib2/libs/android-support-v4.jarbin0 -> 247894 bytes
-rw-r--r--testapps/javaProjectTest/lib2/proguard-project.txt20
-rw-r--r--testapps/javaProjectTest/lib2/project.properties15
-rw-r--r--testapps/javaProjectTest/lib2/res/drawable-hdpi/ic_launcher.pngbin0 -> 4147 bytes
-rw-r--r--testapps/javaProjectTest/lib2/res/drawable-ldpi/ic_launcher.pngbin0 -> 1723 bytes
-rw-r--r--testapps/javaProjectTest/lib2/res/drawable-mdpi/ic_launcher.pngbin0 -> 2574 bytes
-rw-r--r--testapps/javaProjectTest/lib2/res/layout/main.xml13
-rw-r--r--testapps/javaProjectTest/lib2/res/values/strings.xml4
-rw-r--r--testapps/javaProjectTest/lib2/src/com/android/tests/javaprojecttest/lib2/Lib2.java33
-rw-r--r--testapps/javaProjectTest/lib2/src/com/android/tests/javaprojecttest/lib2/Lib2.txt1
-rw-r--r--testapps/javaProjectTest/lib2/src/com/android/tests/javaprojecttest/lib2/Main.java15
-rw-r--r--testapps/legacyTest/.classpath9
-rw-r--r--testapps/legacyTest/.project33
-rw-r--r--testapps/legacyTest/AndroidManifest.xml23
-rw-r--r--testapps/legacyTest/ECLIPSEONLY0
-rw-r--r--testapps/legacyTest/SUCCESS0
-rw-r--r--testapps/legacyTest/libs/basicJar.jarbin0 -> 1791 bytes
-rw-r--r--testapps/legacyTest/project.properties14
-rw-r--r--testapps/legacyTest/res/drawable-hdpi/icon.pngbin0 -> 4147 bytes
-rw-r--r--testapps/legacyTest/res/drawable-ldpi/icon.pngbin0 -> 1723 bytes
-rw-r--r--testapps/legacyTest/res/drawable-mdpi/icon.pngbin0 -> 2574 bytes
-rw-r--r--testapps/legacyTest/res/layout/main.xml15
-rw-r--r--testapps/legacyTest/res/values/strings.xml6
-rw-r--r--testapps/legacyTest/src/com/android/tests/javaprojecttest/app/Main.java19
-rw-r--r--testapps/libsAndJarTest/COMPILE_AND_RUN0
-rw-r--r--testapps/libsAndJarTest/SUCCESS0
-rw-r--r--testapps/libsAndJarTest/app/.classpath8
-rw-r--r--testapps/libsAndJarTest/app/.project33
-rw-r--r--testapps/libsAndJarTest/app/AndroidManifest.xml23
-rw-r--r--testapps/libsAndJarTest/app/build.xml90
-rw-r--r--testapps/libsAndJarTest/app/libs/basicJar2.jarbin0 -> 1803 bytes
-rw-r--r--testapps/libsAndJarTest/app/libs/basicJar2.jar.properties1
-rw-r--r--testapps/libsAndJarTest/app/proguard-project.txt22
-rw-r--r--testapps/libsAndJarTest/app/project.properties15
-rw-r--r--testapps/libsAndJarTest/app/res/drawable-hdpi/icon.pngbin0 -> 4147 bytes
-rw-r--r--testapps/libsAndJarTest/app/res/drawable-ldpi/icon.pngbin0 -> 1723 bytes
-rw-r--r--testapps/libsAndJarTest/app/res/drawable-mdpi/icon.pngbin0 -> 2574 bytes
-rw-r--r--testapps/libsAndJarTest/app/res/layout/main.xml43
-rw-r--r--testapps/libsAndJarTest/app/res/values/strings.xml7
-rw-r--r--testapps/libsAndJarTest/app/src/com/android/tests/javaprojecttest/app/App.java33
-rw-r--r--testapps/libsAndJarTest/app/src/com/android/tests/javaprojecttest/app/App.txt1
-rw-r--r--testapps/libsAndJarTest/app/src/com/android/tests/javaprojecttest/app/Main.java34
-rw-r--r--testapps/libsAndJarTest/lib1/.classpath8
-rw-r--r--testapps/libsAndJarTest/lib1/.project33
-rw-r--r--testapps/libsAndJarTest/lib1/AndroidManifest.xml21
-rw-r--r--testapps/libsAndJarTest/lib1/build.xml90
-rw-r--r--testapps/libsAndJarTest/lib1/libs/android-support-v4.jarbin0 -> 247894 bytes
-rw-r--r--testapps/libsAndJarTest/lib1/proguard-project.txt20
-rw-r--r--testapps/libsAndJarTest/lib1/project.properties16
-rw-r--r--testapps/libsAndJarTest/lib1/res/drawable-hdpi/ic_launcher.pngbin0 -> 4147 bytes
-rw-r--r--testapps/libsAndJarTest/lib1/res/drawable-ldpi/ic_launcher.pngbin0 -> 1723 bytes
-rw-r--r--testapps/libsAndJarTest/lib1/res/drawable-mdpi/ic_launcher.pngbin0 -> 2574 bytes
-rw-r--r--testapps/libsAndJarTest/lib1/res/layout/main.xml13
-rw-r--r--testapps/libsAndJarTest/lib1/res/values/strings.xml7
-rw-r--r--testapps/libsAndJarTest/lib1/src/com/android/tests/javaprojecttest/lib1/Lib1.java33
-rw-r--r--testapps/libsAndJarTest/lib1/src/com/android/tests/javaprojecttest/lib1/Lib1.txt1
-rw-r--r--testapps/libsAndJarTest/lib1/src/com/android/tests/javaprojecttest/lib1/Main.java20
-rw-r--r--testapps/libsAndJarTest/lib2/.classpath8
-rw-r--r--testapps/libsAndJarTest/lib2/.project33
-rw-r--r--testapps/libsAndJarTest/lib2/AndroidManifest.xml21
-rw-r--r--testapps/libsAndJarTest/lib2/build.xml90
-rw-r--r--testapps/libsAndJarTest/lib2/libs/android-support-v4.jarbin0 -> 247894 bytes
-rw-r--r--testapps/libsAndJarTest/lib2/libs/basicJar.jarbin0 -> 1791 bytes
-rw-r--r--testapps/libsAndJarTest/lib2/libs/basicJar.jar.properties1
-rw-r--r--testapps/libsAndJarTest/lib2/proguard-project.txt20
-rw-r--r--testapps/libsAndJarTest/lib2/project.properties17
-rw-r--r--testapps/libsAndJarTest/lib2/res/drawable-hdpi/ic_launcher.pngbin0 -> 4147 bytes
-rw-r--r--testapps/libsAndJarTest/lib2/res/drawable-ldpi/ic_launcher.pngbin0 -> 1723 bytes
-rw-r--r--testapps/libsAndJarTest/lib2/res/drawable-mdpi/ic_launcher.pngbin0 -> 2574 bytes
-rw-r--r--testapps/libsAndJarTest/lib2/res/layout/main.xml13
-rw-r--r--testapps/libsAndJarTest/lib2/res/values/strings.xml7
-rw-r--r--testapps/libsAndJarTest/lib2/src/com/android/tests/javaprojecttest/lib2/Lib2.java33
-rw-r--r--testapps/libsAndJarTest/lib2/src/com/android/tests/javaprojecttest/lib2/Lib2.txt1
-rw-r--r--testapps/libsAndJarTest/lib2/src/com/android/tests/javaprojecttest/lib2/Main.java15
-rw-r--r--testapps/libsTest/COMPILE_AND_RUN0
-rw-r--r--testapps/libsTest/SUCCESS0
-rw-r--r--testapps/libsTest/app/.classpath8
-rw-r--r--testapps/libsTest/app/.project33
-rw-r--r--testapps/libsTest/app/AndroidManifest.xml25
-rw-r--r--testapps/libsTest/app/build.xml90
-rw-r--r--testapps/libsTest/app/proguard-project.txt22
-rw-r--r--testapps/libsTest/app/project.properties15
-rw-r--r--testapps/libsTest/app/res/drawable-hdpi/icon.pngbin0 -> 4147 bytes
-rw-r--r--testapps/libsTest/app/res/drawable-ldpi/icon.pngbin0 -> 1723 bytes
-rw-r--r--testapps/libsTest/app/res/drawable-mdpi/icon.pngbin0 -> 2574 bytes
-rw-r--r--testapps/libsTest/app/res/layout/main.xml21
-rw-r--r--testapps/libsTest/app/res/values/strings.xml7
-rw-r--r--testapps/libsTest/app/src/com/android/tests/libstest/app/App.java43
-rw-r--r--testapps/libsTest/app/src/com/android/tests/libstest/app/App.txt1
-rw-r--r--testapps/libsTest/app/src/com/android/tests/libstest/app/MainActivity.java20
-rw-r--r--testapps/libsTest/appTest/.classpath9
-rw-r--r--testapps/libsTest/appTest/.project34
-rw-r--r--testapps/libsTest/appTest/AndroidManifest.xml29
-rw-r--r--testapps/libsTest/appTest/build.xml92
-rw-r--r--testapps/libsTest/appTest/proguard-project.txt20
-rw-r--r--testapps/libsTest/appTest/project.properties15
-rw-r--r--testapps/libsTest/appTest/src/com/android/tests/libstest/app/MainActivityTest.java100
-rw-r--r--testapps/libsTest/lib1/.classpath8
-rw-r--r--testapps/libsTest/lib1/.project33
-rw-r--r--testapps/libsTest/lib1/AndroidManifest.xml21
-rw-r--r--testapps/libsTest/lib1/build.xml90
-rw-r--r--testapps/libsTest/lib1/proguard-project.txt20
-rw-r--r--testapps/libsTest/lib1/project.properties16
-rw-r--r--testapps/libsTest/lib1/res/drawable-hdpi/ic_launcher.pngbin0 -> 4147 bytes
-rw-r--r--testapps/libsTest/lib1/res/drawable-ldpi/ic_launcher.pngbin0 -> 1723 bytes
-rw-r--r--testapps/libsTest/lib1/res/drawable-mdpi/ic_launcher.pngbin0 -> 2574 bytes
-rw-r--r--testapps/libsTest/lib1/res/layout/lib1_main.xml20
-rw-r--r--testapps/libsTest/lib1/res/values/strings.xml7
-rw-r--r--testapps/libsTest/lib1/src/com/android/tests/libstest/lib1/Lib1.java43
-rw-r--r--testapps/libsTest/lib1/src/com/android/tests/libstest/lib1/Lib1.txt1
-rw-r--r--testapps/libsTest/lib1/src/com/android/tests/libstest/lib1/MainActivity.java18
-rw-r--r--testapps/libsTest/lib1Test/.classpath8
-rw-r--r--testapps/libsTest/lib1Test/.project34
-rw-r--r--testapps/libsTest/lib1Test/AndroidManifest.xml32
-rw-r--r--testapps/libsTest/lib1Test/build.xml92
-rw-r--r--testapps/libsTest/lib1Test/proguard-project.txt20
-rw-r--r--testapps/libsTest/lib1Test/project.properties16
-rw-r--r--testapps/libsTest/lib1Test/res/values/strings.xml6
-rw-r--r--testapps/libsTest/lib1Test/src/com/android/tests/libstest/lib1/MainActivityTest.java92
-rw-r--r--testapps/libsTest/lib2/.classpath8
-rw-r--r--testapps/libsTest/lib2/.project33
-rw-r--r--testapps/libsTest/lib2/AndroidManifest.xml21
-rw-r--r--testapps/libsTest/lib2/build.xml90
-rw-r--r--testapps/libsTest/lib2/proguard-project.txt20
-rw-r--r--testapps/libsTest/lib2/project.properties16
-rw-r--r--testapps/libsTest/lib2/res/drawable-hdpi/ic_launcher.pngbin0 -> 4147 bytes
-rw-r--r--testapps/libsTest/lib2/res/drawable-ldpi/ic_launcher.pngbin0 -> 1723 bytes
-rw-r--r--testapps/libsTest/lib2/res/drawable-mdpi/ic_launcher.pngbin0 -> 2574 bytes
-rw-r--r--testapps/libsTest/lib2/res/layout/lib2_main.xml18
-rw-r--r--testapps/libsTest/lib2/res/values/strings.xml7
-rw-r--r--testapps/libsTest/lib2/src/com/android/tests/libstest/lib2/Lib2.java43
-rw-r--r--testapps/libsTest/lib2/src/com/android/tests/libstest/lib2/Lib2.txt1
-rw-r--r--testapps/libsTest/lib2/src/com/android/tests/libstest/lib2/MainActivity.java15
-rw-r--r--testapps/libsTest/lib2Test/.classpath8
-rw-r--r--testapps/libsTest/lib2Test/.project34
-rw-r--r--testapps/libsTest/lib2Test/AndroidManifest.xml30
-rw-r--r--testapps/libsTest/lib2Test/build.xml92
-rw-r--r--testapps/libsTest/lib2Test/proguard-project.txt20
-rw-r--r--testapps/libsTest/lib2Test/project.properties16
-rw-r--r--testapps/libsTest/lib2Test/res/values/strings.xml6
-rw-r--r--testapps/libsTest/lib2Test/src/com/android/tests/libstest/lib2/MainActivityTest.java86
-rw-r--r--testapps/proguard.config31
-rw-r--r--testapps/testProjectTest/COMPILE_AND_RUN0
-rw-r--r--testapps/testProjectTest/SUCCESS0
-rw-r--r--testapps/testProjectTest/app/.classpath8
-rw-r--r--testapps/testProjectTest/app/.project33
-rw-r--r--testapps/testProjectTest/app/AndroidManifest.xml14
-rw-r--r--testapps/testProjectTest/app/build.xml92
-rw-r--r--testapps/testProjectTest/app/proguard-project.txt20
-rw-r--r--testapps/testProjectTest/app/project.properties16
-rw-r--r--testapps/testProjectTest/app/res/drawable-hdpi/ic_launcher.pngbin0 -> 9397 bytes
-rw-r--r--testapps/testProjectTest/app/res/drawable-ldpi/ic_launcher.pngbin0 -> 2729 bytes
-rw-r--r--testapps/testProjectTest/app/res/drawable-mdpi/ic_launcher.pngbin0 -> 5237 bytes
-rw-r--r--testapps/testProjectTest/app/res/drawable-xhdpi/ic_launcher.pngbin0 -> 14383 bytes
-rw-r--r--testapps/testProjectTest/app/res/values/strings.xml6
-rw-r--r--testapps/testProjectTest/app/src/readme.txt1
-rw-r--r--testapps/testProjectTest/lib/.classpath8
-rw-r--r--testapps/testProjectTest/lib/.project33
-rw-r--r--testapps/testProjectTest/lib/AndroidManifest.xml20
-rw-r--r--testapps/testProjectTest/lib/build.xml92
-rw-r--r--testapps/testProjectTest/lib/proguard-project.txt20
-rw-r--r--testapps/testProjectTest/lib/project.properties15
-rw-r--r--testapps/testProjectTest/lib/res/layout/main.xml15
-rw-r--r--testapps/testProjectTest/lib/res/values/strings.xml6
-rw-r--r--testapps/testProjectTest/lib/src/com/android/tests/testprojecttest/lib/LibActivity.java13
-rw-r--r--testapps/testProjectTest/testapp/.classpath9
-rw-r--r--testapps/testProjectTest/testapp/.project34
-rw-r--r--testapps/testProjectTest/testapp/AndroidManifest.xml27
-rw-r--r--testapps/testProjectTest/testapp/build.xml92
-rw-r--r--testapps/testProjectTest/testapp/proguard-project.txt20
-rw-r--r--testapps/testProjectTest/testapp/project.properties15
-rw-r--r--testapps/testProjectTest/testapp/src/com/android/tests/testprojecttest/lib/LibActivityTest.java72
-rw-r--r--testapps/testProjectTest/testapp/src/com/android/tests/testprojecttest/test/AllTests.java53
-rw-r--r--testapps/testProjectTest/testlib/.classpath9
-rw-r--r--testapps/testProjectTest/testlib/.project34
-rw-r--r--testapps/testProjectTest/testlib/AndroidManifest.xml27
-rw-r--r--testapps/testProjectTest/testlib/build.xml92
-rw-r--r--testapps/testProjectTest/testlib/proguard-project.txt20
-rw-r--r--testapps/testProjectTest/testlib/project.properties16
-rw-r--r--testapps/testProjectTest/testlib/res/values/strings.xml7
-rw-r--r--testapps/testProjectTest/testlib/src/com/android/tests/testprojecttest/lib/LibActivityTest.java72
-rw-r--r--testapps/testProjectTest/testlib/src/com/android/tests/testprojecttest/test/AllTests.java53
-rw-r--r--testapps/testSensors/.classpath8
-rw-r--r--testapps/testSensors/.project33
-rw-r--r--testapps/testSensors/AndroidManifest.xml41
-rw-r--r--testapps/testSensors/project.properties11
-rw-r--r--testapps/testSensors/res/drawable-hdpi/ic_launcher.pngbin0 -> 4147 bytes
-rw-r--r--testapps/testSensors/res/drawable-ldpi/ic_launcher.pngbin0 -> 1723 bytes
-rw-r--r--testapps/testSensors/res/drawable-mdpi/ic_launcher.pngbin0 -> 2574 bytes
-rw-r--r--testapps/testSensors/res/layout/main.xml15
-rw-r--r--testapps/testSensors/res/layout/one_row.xml20
-rw-r--r--testapps/testSensors/res/values/strings.xml7
-rw-r--r--testapps/testSensors/src/com/android/tests/testsensors/TestSensorsActivity.java246
-rw-r--r--testapps/userLibTest/.classpath9
-rw-r--r--testapps/userLibTest/.project33
-rw-r--r--testapps/userLibTest/AndroidManifest.xml15
-rw-r--r--testapps/userLibTest/COMPILE_AND_RUN0
-rw-r--r--testapps/userLibTest/ECLIPSEONLY0
-rw-r--r--testapps/userLibTest/README.txt5
-rw-r--r--testapps/userLibTest/SUCCESS0
-rw-r--r--testapps/userLibTest/jars/basicJar.jarbin0 -> 1791 bytes
-rw-r--r--testapps/userLibTest/proguard-project.txt20
-rw-r--r--testapps/userLibTest/project.properties14
-rw-r--r--testapps/userLibTest/res/drawable-hdpi/ic_launcher.pngbin0 -> 4147 bytes
-rw-r--r--testapps/userLibTest/res/drawable-ldpi/ic_launcher.pngbin0 -> 1723 bytes
-rw-r--r--testapps/userLibTest/res/drawable-mdpi/ic_launcher.pngbin0 -> 2574 bytes
-rw-r--r--testapps/userLibTest/res/layout/main.xml15
-rw-r--r--testapps/userLibTest/res/values/strings.xml4
-rw-r--r--testapps/userLibTest/src/com/android/tests/userlibtest/Main.java19
502 files changed, 10220 insertions, 0 deletions
diff --git a/testapps/.gitignore b/testapps/.gitignore
new file mode 100644
index 000000000..3d8282161
--- /dev/null
+++ b/testapps/.gitignore
@@ -0,0 +1,5 @@
+bin
+coverage
+local.properties
+gen
+proguard
diff --git a/testapps/README.txt b/testapps/README.txt
new file mode 100644
index 000000000..e76bc4de2
--- /dev/null
+++ b/testapps/README.txt
@@ -0,0 +1,6 @@
+This repository contains test applications used by the SDK automated tests.
+
+These are not meant to be packaged with the SDK.
+
+Each project represents a different test case. For more information, read
+the readme file located in the project directory. \ No newline at end of file
diff --git a/testapps/aidlTest/libWithAidl/.classpath b/testapps/aidlTest/libWithAidl/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/aidlTest/libWithAidl/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/aidlTest/libWithAidl/.project b/testapps/aidlTest/libWithAidl/.project
new file mode 100644
index 000000000..49d565f0d
--- /dev/null
+++ b/testapps/aidlTest/libWithAidl/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>aidlTest-libWithAidl</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/aidlTest/libWithAidl/AndroidManifest.xml b/testapps/aidlTest/libWithAidl/AndroidManifest.xml
new file mode 100644
index 000000000..d1d75dde0
--- /dev/null
+++ b/testapps/aidlTest/libWithAidl/AndroidManifest.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.aidl.lib"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <permission
+ android:name="com.foo.mypermission"
+ android:description="@string/app_name"
+ android:label="@string/app_name" >
+ </permission>
+ <permission
+ android:name="com.foo.mypermission2"
+ android:description="@string/app_name"
+ android:label="@string/app_name" >
+ </permission>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/aidlTest/libWithAidl/ant.properties b/testapps/aidlTest/libWithAidl/ant.properties
new file mode 100644
index 000000000..ee52d86d9
--- /dev/null
+++ b/testapps/aidlTest/libWithAidl/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked in Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/aidlTest/libWithAidl/build.xml b/testapps/aidlTest/libWithAidl/build.xml
new file mode 100644
index 000000000..07c2a49a0
--- /dev/null
+++ b/testapps/aidlTest/libWithAidl/build.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="libWithAidl" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var. -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/aidlTest/libWithAidl/proguard-project.txt b/testapps/aidlTest/libWithAidl/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/aidlTest/libWithAidl/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/aidlTest/libWithAidl/project.properties b/testapps/aidlTest/libWithAidl/project.properties
new file mode 100644
index 000000000..23d80c4e4
--- /dev/null
+++ b/testapps/aidlTest/libWithAidl/project.properties
@@ -0,0 +1,13 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-15
+android.library=true
+
diff --git a/testapps/aidlTest/libWithAidl/res/layout/main.xml b/testapps/aidlTest/libWithAidl/res/layout/main.xml
new file mode 100644
index 000000000..d11d11a5e
--- /dev/null
+++ b/testapps/aidlTest/libWithAidl/res/layout/main.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2007 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.
+-->
+
+<!-- Demonstrates defining custom views in a layout file. -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical" >
+</LinearLayout> \ No newline at end of file
diff --git a/testapps/aidlTest/libWithAidl/res/values/strings.xml b/testapps/aidlTest/libWithAidl/res/values/strings.xml
new file mode 100644
index 000000000..3fa203afd
--- /dev/null
+++ b/testapps/aidlTest/libWithAidl/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">MyActivity</string>
+</resources>
diff --git a/testapps/aidlTest/libWithAidl/src/com/android/tests/aidl/lib/MyParcelable.aidl b/testapps/aidlTest/libWithAidl/src/com/android/tests/aidl/lib/MyParcelable.aidl
new file mode 100644
index 000000000..b47faeca0
--- /dev/null
+++ b/testapps/aidlTest/libWithAidl/src/com/android/tests/aidl/lib/MyParcelable.aidl
@@ -0,0 +1,3 @@
+package com.android.tests.aidl.lib;
+
+parcelable MyParcelable; \ No newline at end of file
diff --git a/testapps/aidlTest/libWithAidl/src/com/android/tests/aidl/lib/MyParcelable.java b/testapps/aidlTest/libWithAidl/src/com/android/tests/aidl/lib/MyParcelable.java
new file mode 100644
index 000000000..ef9efdd26
--- /dev/null
+++ b/testapps/aidlTest/libWithAidl/src/com/android/tests/aidl/lib/MyParcelable.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2012 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.tests.aidl.lib;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+public class MyParcelable implements Parcelable {
+ private int mData;
+
+ public int describeContents() {
+ return 0;
+ }
+
+ public void writeToParcel(Parcel out, int flags) {
+ out.writeInt(mData);
+ }
+
+ public static final Parcelable.Creator<MyParcelable> CREATOR = new Parcelable.Creator<MyParcelable>() {
+ public MyParcelable createFromParcel(Parcel in) {
+ return new MyParcelable(in);
+ }
+
+ public MyParcelable[] newArray(int size) {
+ return new MyParcelable[size];
+ }
+ };
+
+ private MyParcelable(Parcel in) {
+ mData = in.readInt();
+ }
+}
diff --git a/testapps/aidlTest/mainProject/.classpath b/testapps/aidlTest/mainProject/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/aidlTest/mainProject/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/aidlTest/mainProject/.project b/testapps/aidlTest/mainProject/.project
new file mode 100644
index 000000000..81769cc55
--- /dev/null
+++ b/testapps/aidlTest/mainProject/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>aidlTest-mainProject</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/aidlTest/mainProject/AndroidManifest.xml b/testapps/aidlTest/mainProject/AndroidManifest.xml
new file mode 100644
index 000000000..f7315b01f
--- /dev/null
+++ b/testapps/aidlTest/mainProject/AndroidManifest.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.aidl.main"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <application android:label="@string/app_name" >
+ <activity
+ android:name="com.android.tests.aidl.main.MyActivity"
+ android:label="@string/app_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/aidlTest/mainProject/ant.properties b/testapps/aidlTest/mainProject/ant.properties
new file mode 100644
index 000000000..ee52d86d9
--- /dev/null
+++ b/testapps/aidlTest/mainProject/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked in Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/aidlTest/mainProject/build.xml b/testapps/aidlTest/mainProject/build.xml
new file mode 100644
index 000000000..30203f0c9
--- /dev/null
+++ b/testapps/aidlTest/mainProject/build.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="aidlTest-mainProject" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var. -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/aidlTest/mainProject/proguard-project.txt b/testapps/aidlTest/mainProject/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/aidlTest/mainProject/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/aidlTest/mainProject/project.properties b/testapps/aidlTest/mainProject/project.properties
new file mode 100644
index 000000000..633532029
--- /dev/null
+++ b/testapps/aidlTest/mainProject/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-15
+android.library.reference.1=../libWithAidl
+
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
diff --git a/testapps/aidlTest/mainProject/res/values/strings.xml b/testapps/aidlTest/mainProject/res/values/strings.xml
new file mode 100644
index 000000000..7dde73315
--- /dev/null
+++ b/testapps/aidlTest/mainProject/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">aidlTest</string>
+</resources>
diff --git a/testapps/aidlTest/mainProject/src/com/android/tests/aidl/main/IRemoteService.aidl b/testapps/aidlTest/mainProject/src/com/android/tests/aidl/main/IRemoteService.aidl
new file mode 100644
index 000000000..62126c12d
--- /dev/null
+++ b/testapps/aidlTest/mainProject/src/com/android/tests/aidl/main/IRemoteService.aidl
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2012 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.tests.aidl.main;
+
+import com.android.tests.aidl.lib.MyParcelable;
+
+interface IRemoteService {
+ MyParcelable get();
+}
+
diff --git a/testapps/aidlTest/mainProject/src/com/android/tests/aidl/main/MyActivity.java b/testapps/aidlTest/mainProject/src/com/android/tests/aidl/main/MyActivity.java
new file mode 100644
index 000000000..117198dd8
--- /dev/null
+++ b/testapps/aidlTest/mainProject/src/com/android/tests/aidl/main/MyActivity.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2012 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.tests.aidl.main;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class MyActivity extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+}
diff --git a/testapps/basicJar/.classpath b/testapps/basicJar/.classpath
new file mode 100644
index 000000000..11a4c988d
--- /dev/null
+++ b/testapps/basicJar/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/basicJar/.project b/testapps/basicJar/.project
new file mode 100644
index 000000000..b7bfb91e7
--- /dev/null
+++ b/testapps/basicJar/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>basicJar</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/basicJar/build.xml b/testapps/basicJar/build.xml
new file mode 100644
index 000000000..ebe77ff48
--- /dev/null
+++ b/testapps/basicJar/build.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="basicJar" default="compile">
+ <target name="compile">
+ <mkdir dir="${basedir}/bin" />
+ <mkdir dir="${basedir}/bin/classes" />
+ <javac encoding="ascii" target="1.5" source="1.5" debug="true" extdirs=""
+ srcdir="src" destdir="${basedir}/bin/classes" />
+ <jar destfile="${basedir}/bin/${ant.project.name}.jar">
+ <fileset dir="${basedir}/bin/classes" />
+ <fileset dir="src" excludes="**/*.java"/>
+ </jar>
+ </target>
+ <target name="clean">
+ <delete dir="bin" />
+ </target>
+</project>
diff --git a/testapps/basicJar/src/com/android/tests/basicjar/BasicJar.java b/testapps/basicJar/src/com/android/tests/basicjar/BasicJar.java
new file mode 100644
index 000000000..1046ce7c1
--- /dev/null
+++ b/testapps/basicJar/src/com/android/tests/basicjar/BasicJar.java
@@ -0,0 +1,33 @@
+package com.android.tests.basicjar;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class BasicJar {
+
+ public static String getContent() {
+ InputStream input = BasicJar.class.getResourceAsStream("/com/android/tests/basicjar/basicJar.txt");
+ if (input == null) {
+ return "FAILED TO FIND basicJar.txt";
+ }
+
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
+
+ return reader.readLine();
+ } catch (IOException e) {
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ return "FAILED TO READ CONTENT";
+ }
+} \ No newline at end of file
diff --git a/testapps/basicJar/src/com/android/tests/basicjar/basicJar.txt b/testapps/basicJar/src/com/android/tests/basicjar/basicJar.txt
new file mode 100644
index 000000000..d5a828567
--- /dev/null
+++ b/testapps/basicJar/src/com/android/tests/basicjar/basicJar.txt
@@ -0,0 +1 @@
+SUCCESS from basicJar.jar \ No newline at end of file
diff --git a/testapps/basicJar2/.classpath b/testapps/basicJar2/.classpath
new file mode 100644
index 000000000..11a4c988d
--- /dev/null
+++ b/testapps/basicJar2/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/basicJar2/.project b/testapps/basicJar2/.project
new file mode 100644
index 000000000..b7bfb91e7
--- /dev/null
+++ b/testapps/basicJar2/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>basicJar</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/basicJar2/build.xml b/testapps/basicJar2/build.xml
new file mode 100644
index 000000000..a5b0657b9
--- /dev/null
+++ b/testapps/basicJar2/build.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="basicJar2" default="compile">
+ <target name="compile">
+ <mkdir dir="${basedir}/bin" />
+ <mkdir dir="${basedir}/bin/classes" />
+ <javac encoding="ascii" target="1.5" source="1.5" debug="true" extdirs=""
+ srcdir="src" destdir="${basedir}/bin/classes" />
+ <jar destfile="${basedir}/bin/${ant.project.name}.jar">
+ <fileset dir="${basedir}/bin/classes" />
+ <fileset dir="src" excludes="**/*.java"/>
+ </jar>
+ </target>
+ <target name="clean">
+ <delete dir="bin" />
+ </target>
+</project>
diff --git a/testapps/basicJar2/src/com/android/tests/basicjar2/BasicJar2.java b/testapps/basicJar2/src/com/android/tests/basicjar2/BasicJar2.java
new file mode 100644
index 000000000..906fbc0e7
--- /dev/null
+++ b/testapps/basicJar2/src/com/android/tests/basicjar2/BasicJar2.java
@@ -0,0 +1,33 @@
+package com.android.tests.basicjar2;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class BasicJar2 {
+
+ public static String getContent() {
+ InputStream input = BasicJar2.class.getResourceAsStream("/com/android/tests/basicjar2/basicJar2.txt");
+ if (input == null) {
+ return "FAILED TO FIND basicJar2.txt";
+ }
+
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
+
+ return reader.readLine();
+ } catch (IOException e) {
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ return "FAILED TO READ CONTENT";
+ }
+} \ No newline at end of file
diff --git a/testapps/basicJar2/src/com/android/tests/basicjar2/basicJar2.txt b/testapps/basicJar2/src/com/android/tests/basicjar2/basicJar2.txt
new file mode 100644
index 000000000..c08eda2e2
--- /dev/null
+++ b/testapps/basicJar2/src/com/android/tests/basicjar2/basicJar2.txt
@@ -0,0 +1 @@
+SUCCESS from basicJar2.jar \ No newline at end of file
diff --git a/testapps/basicJar3/.classpath b/testapps/basicJar3/.classpath
new file mode 100644
index 000000000..11a4c988d
--- /dev/null
+++ b/testapps/basicJar3/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/basicJar3/.project b/testapps/basicJar3/.project
new file mode 100644
index 000000000..c9181f792
--- /dev/null
+++ b/testapps/basicJar3/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>basicJar3</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/basicJar3/build.xml b/testapps/basicJar3/build.xml
new file mode 100644
index 000000000..208501f45
--- /dev/null
+++ b/testapps/basicJar3/build.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="basicJar3" default="compile">
+ <target name="compile">
+ <mkdir dir="${basedir}/bin" />
+ <mkdir dir="${basedir}/bin/classes" />
+ <javac encoding="ascii" target="1.5" source="1.5" debug="true" extdirs=""
+ srcdir="src" destdir="${basedir}/bin/classes" />
+ <jar destfile="${basedir}/bin/${ant.project.name}.jar">
+ <fileset dir="${basedir}/bin/classes" />
+ <fileset dir="src" excludes="**/*.java"/>
+ </jar>
+ </target>
+ <target name="clean">
+ <delete dir="bin" />
+ </target>
+</project>
diff --git a/testapps/basicJar3/src/com/android/tests/basicjar3/BasicJar3.java b/testapps/basicJar3/src/com/android/tests/basicjar3/BasicJar3.java
new file mode 100644
index 000000000..684b58459
--- /dev/null
+++ b/testapps/basicJar3/src/com/android/tests/basicjar3/BasicJar3.java
@@ -0,0 +1,33 @@
+package com.android.tests.basicjar3;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class BasicJar3 {
+
+ public static String getContent() {
+ InputStream input = BasicJar3.class.getResourceAsStream("/com/android/tests/basicjar3/basicJar3.txt");
+ if (input == null) {
+ return "FAILED TO FIND basicJar3.txt";
+ }
+
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
+
+ return reader.readLine();
+ } catch (IOException e) {
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ return "FAILED TO READ CONTENT";
+ }
+} \ No newline at end of file
diff --git a/testapps/basicJar3/src/com/android/tests/basicjar3/basicJar3.txt b/testapps/basicJar3/src/com/android/tests/basicjar3/basicJar3.txt
new file mode 100644
index 000000000..a2dc23020
--- /dev/null
+++ b/testapps/basicJar3/src/com/android/tests/basicjar3/basicJar3.txt
@@ -0,0 +1 @@
+SUCCESS from basicJar3.jar \ No newline at end of file
diff --git a/testapps/basicProjectWithAidl/.classpath b/testapps/basicProjectWithAidl/.classpath
new file mode 100644
index 000000000..765e549ef
--- /dev/null
+++ b/testapps/basicProjectWithAidl/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testapps/basicProjectWithAidl/.project b/testapps/basicProjectWithAidl/.project
new file mode 100644
index 000000000..24ed8541a
--- /dev/null
+++ b/testapps/basicProjectWithAidl/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>basicProjectWithAidl</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/basicProjectWithAidl/AndroidManifest.xml b/testapps/basicProjectWithAidl/AndroidManifest.xml
new file mode 100644
index 000000000..4cf7553b3
--- /dev/null
+++ b/testapps/basicProjectWithAidl/AndroidManifest.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ android:versionCode="1"
+ android:versionName="1.0" package="com.android.tests.basicprojectwithaidl">
+ <application android:label="@string/app_name" android:icon="@drawable/icon">
+ <activity android:name="com.android.tests.basicprojectwithaidlwithaidl.Main"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+ <uses-sdk android:minSdkVersion="AOSP"/>
+</manifest>
diff --git a/testapps/basicProjectWithAidl/ant.properties b/testapps/basicProjectWithAidl/ant.properties
new file mode 100644
index 000000000..b0971e891
--- /dev/null
+++ b/testapps/basicProjectWithAidl/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked into Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/basicProjectWithAidl/build.xml b/testapps/basicProjectWithAidl/build.xml
new file mode 100644
index 000000000..c0aff2d28
--- /dev/null
+++ b/testapps/basicProjectWithAidl/build.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="basicProject" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var.
+ This must be done before we load project.properties since
+ the proguard config can use sdk.dir -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/basicProjectWithAidl/project.properties b/testapps/basicProjectWithAidl/project.properties
new file mode 100644
index 000000000..38db6608b
--- /dev/null
+++ b/testapps/basicProjectWithAidl/project.properties
@@ -0,0 +1,12 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "build.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-AOSP
+proguard.config=../proguard.config
diff --git a/testapps/basicProjectWithAidl/res/drawable/icon.png b/testapps/basicProjectWithAidl/res/drawable/icon.png
new file mode 100644
index 000000000..a07c69fa5
--- /dev/null
+++ b/testapps/basicProjectWithAidl/res/drawable/icon.png
Binary files differ
diff --git a/testapps/basicProjectWithAidl/res/layout/main.xml b/testapps/basicProjectWithAidl/res/layout/main.xml
new file mode 100644
index 000000000..783e4a05e
--- /dev/null
+++ b/testapps/basicProjectWithAidl/res/layout/main.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Basic Project"
+ />
+</LinearLayout>
+
diff --git a/testapps/basicProjectWithAidl/res/values/strings.xml b/testapps/basicProjectWithAidl/res/values/strings.xml
new file mode 100644
index 000000000..a7322d339
--- /dev/null
+++ b/testapps/basicProjectWithAidl/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">basicProject</string>
+</resources>
diff --git a/testapps/basicProjectWithAidl/src/com/android/tests/basicprojectwithaidl/ITest.aidl b/testapps/basicProjectWithAidl/src/com/android/tests/basicprojectwithaidl/ITest.aidl
new file mode 100644
index 000000000..718571571
--- /dev/null
+++ b/testapps/basicProjectWithAidl/src/com/android/tests/basicprojectwithaidl/ITest.aidl
@@ -0,0 +1,6 @@
+package com.android.tests.basicprojectwithaidl;
+
+interface ITest {
+ Rect getRect();
+}
+
diff --git a/testapps/basicProjectWithAidl/src/com/android/tests/basicprojectwithaidl/Main.java b/testapps/basicProjectWithAidl/src/com/android/tests/basicprojectwithaidl/Main.java
new file mode 100644
index 000000000..eaed51087
--- /dev/null
+++ b/testapps/basicProjectWithAidl/src/com/android/tests/basicprojectwithaidl/Main.java
@@ -0,0 +1,15 @@
+package com.android.tests.basicprojectwithaidl;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class Main extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+}
diff --git a/testapps/basicProjectWithAidl/src/com/android/tests/basicprojectwithaidl/Rect.aidl b/testapps/basicProjectWithAidl/src/com/android/tests/basicprojectwithaidl/Rect.aidl
new file mode 100644
index 000000000..734cf7725
--- /dev/null
+++ b/testapps/basicProjectWithAidl/src/com/android/tests/basicprojectwithaidl/Rect.aidl
@@ -0,0 +1,5 @@
+package com.android.tests.basicprojectwithaidl;
+
+// Declare Rect so AIDL can find it and knows that it implements
+// the parcelable protocol.
+parcelable Rect; \ No newline at end of file
diff --git a/testapps/basicProjectWithAidl/src/com/android/tests/basicprojectwithaidl/Rect.java b/testapps/basicProjectWithAidl/src/com/android/tests/basicprojectwithaidl/Rect.java
new file mode 100644
index 000000000..8e16926f0
--- /dev/null
+++ b/testapps/basicProjectWithAidl/src/com/android/tests/basicprojectwithaidl/Rect.java
@@ -0,0 +1,52 @@
+package com.android.tests.basicprojectwithaidl;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+public class Rect implements Parcelable {
+ public int left;
+ public int top;
+ public int right;
+ public int bottom;
+
+ public static final Parcelable.Creator<Rect> CREATOR = new Parcelable.Creator<Rect>() {
+ public Rect createFromParcel(Parcel in) {
+ return new Rect(in);
+ }
+
+ public Rect[] newArray(int size) {
+ return new Rect[size];
+ }
+ };
+
+ public Rect() {
+ }
+
+ private Rect(Parcel in) {
+ readFromParcel(in);
+ }
+
+ public void writeToParcel(Parcel out) {
+ out.writeInt(left);
+ out.writeInt(top);
+ out.writeInt(right);
+ out.writeInt(bottom);
+ }
+
+ public void readFromParcel(Parcel in) {
+ left = in.readInt();
+ top = in.readInt();
+ right = in.readInt();
+ bottom = in.readInt();
+ }
+
+ public int describeContents() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public void writeToParcel(Parcel arg0, int arg1) {
+ // TODO Auto-generated method stub
+
+ }
+}
diff --git a/testapps/buildConfigTest/COMPILE_AND_RUN b/testapps/buildConfigTest/COMPILE_AND_RUN
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/buildConfigTest/COMPILE_AND_RUN
diff --git a/testapps/buildConfigTest/SUCCESS b/testapps/buildConfigTest/SUCCESS
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/buildConfigTest/SUCCESS
diff --git a/testapps/buildConfigTest/app/.classpath b/testapps/buildConfigTest/app/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/buildConfigTest/app/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/buildConfigTest/app/.project b/testapps/buildConfigTest/app/.project
new file mode 100644
index 000000000..dd37abeb5
--- /dev/null
+++ b/testapps/buildConfigTest/app/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>buildConfigTest-app</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/buildConfigTest/app/AndroidManifest.xml b/testapps/buildConfigTest/app/AndroidManifest.xml
new file mode 100644
index 000000000..50e30b920
--- /dev/null
+++ b/testapps/buildConfigTest/app/AndroidManifest.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.buildconfigtest"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
+ <activity android:name="Main"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+</manifest>
diff --git a/testapps/buildConfigTest/app/ant.properties b/testapps/buildConfigTest/app/ant.properties
new file mode 100644
index 000000000..b0971e891
--- /dev/null
+++ b/testapps/buildConfigTest/app/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked into Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/buildConfigTest/app/build.xml b/testapps/buildConfigTest/app/build.xml
new file mode 100644
index 000000000..93dfe0f6a
--- /dev/null
+++ b/testapps/buildConfigTest/app/build.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="buildConfigTest" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var.
+ This must be done before we load project.properties since
+ the proguard config can use sdk.dir -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/buildConfigTest/app/lint.xml b/testapps/buildConfigTest/app/lint.xml
new file mode 100644
index 000000000..ee0eead5b
--- /dev/null
+++ b/testapps/buildConfigTest/app/lint.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<lint>
+</lint> \ No newline at end of file
diff --git a/testapps/buildConfigTest/app/proguard-project.txt b/testapps/buildConfigTest/app/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/buildConfigTest/app/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/buildConfigTest/app/project.properties b/testapps/buildConfigTest/app/project.properties
new file mode 100644
index 000000000..c42f7efc5
--- /dev/null
+++ b/testapps/buildConfigTest/app/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library.reference.1=../lib1
diff --git a/testapps/buildConfigTest/app/res/drawable-hdpi/ic_launcher.png b/testapps/buildConfigTest/app/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 000000000..8074c4c57
--- /dev/null
+++ b/testapps/buildConfigTest/app/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/buildConfigTest/app/res/drawable-ldpi/ic_launcher.png b/testapps/buildConfigTest/app/res/drawable-ldpi/ic_launcher.png
new file mode 100644
index 000000000..1095584ec
--- /dev/null
+++ b/testapps/buildConfigTest/app/res/drawable-ldpi/ic_launcher.png
Binary files differ
diff --git a/testapps/buildConfigTest/app/res/drawable-mdpi/ic_launcher.png b/testapps/buildConfigTest/app/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 000000000..a07c69fa5
--- /dev/null
+++ b/testapps/buildConfigTest/app/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/buildConfigTest/app/res/layout/main.xml b/testapps/buildConfigTest/app/res/layout/main.xml
new file mode 100644
index 000000000..6a3de6761
--- /dev/null
+++ b/testapps/buildConfigTest/app/res/layout/main.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical" >
+
+ <TextView
+ android:id="@+id/app"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="App: Release"
+ tools:ignore="HardcodedText" />
+
+ <TextView
+ android:id="@+id/lib1"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/testapps/buildConfigTest/app/res/values/strings.xml b/testapps/buildConfigTest/app/res/values/strings.xml
new file mode 100644
index 000000000..004b9f038
--- /dev/null
+++ b/testapps/buildConfigTest/app/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">BuildConfigTest</string>
+</resources>
diff --git a/testapps/buildConfigTest/app/src/com/android/tests/buildconfigtest/Main.java b/testapps/buildConfigTest/app/src/com/android/tests/buildconfigtest/Main.java
new file mode 100644
index 000000000..6421c60ed
--- /dev/null
+++ b/testapps/buildConfigTest/app/src/com/android/tests/buildconfigtest/Main.java
@@ -0,0 +1,26 @@
+package com.android.tests.buildconfigtest;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.widget.TextView;
+
+import com.android.tests.buildconfigtest.lib1.Lib1;
+
+public class Main extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+
+ if (BuildConfig.DEBUG) {
+ TextView tv = (TextView) findViewById(R.id.app);
+ tv.setText("App: DEBUG");
+ }
+
+ TextView tv = (TextView) findViewById(R.id.lib1);
+ tv.setText("Lib: " + Lib1.getContent());
+ }
+}
diff --git a/testapps/buildConfigTest/lib1/.classpath b/testapps/buildConfigTest/lib1/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/buildConfigTest/lib1/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/buildConfigTest/lib1/.project b/testapps/buildConfigTest/lib1/.project
new file mode 100644
index 000000000..22c9a5b70
--- /dev/null
+++ b/testapps/buildConfigTest/lib1/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>buildConfigTest-Lib</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/buildConfigTest/lib1/AndroidManifest.xml b/testapps/buildConfigTest/lib1/AndroidManifest.xml
new file mode 100644
index 000000000..58aa6243b
--- /dev/null
+++ b/testapps/buildConfigTest/lib1/AndroidManifest.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.javaprojecttest.lib1"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <application
+ android:icon="@drawable/ic_launcher"
+ android:label="@string/app_name" >
+ <activity
+ android:name="com.android.tests.buildconfigtest.lib1.Main"
+ android:label="@string/app_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/buildConfigTest/lib1/build.xml b/testapps/buildConfigTest/lib1/build.xml
new file mode 100644
index 000000000..a111b4d78
--- /dev/null
+++ b/testapps/buildConfigTest/lib1/build.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="lib1" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var.
+ This must be done before we load project.properties since
+ the proguard config can use sdk.dir -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/buildConfigTest/lib1/proguard-project.txt b/testapps/buildConfigTest/lib1/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/buildConfigTest/lib1/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/buildConfigTest/lib1/project.properties b/testapps/buildConfigTest/lib1/project.properties
new file mode 100644
index 000000000..36f15941e
--- /dev/null
+++ b/testapps/buildConfigTest/lib1/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library=true
diff --git a/testapps/buildConfigTest/lib1/res/drawable-hdpi/ic_launcher.png b/testapps/buildConfigTest/lib1/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 000000000..8074c4c57
--- /dev/null
+++ b/testapps/buildConfigTest/lib1/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/buildConfigTest/lib1/res/drawable-ldpi/ic_launcher.png b/testapps/buildConfigTest/lib1/res/drawable-ldpi/ic_launcher.png
new file mode 100644
index 000000000..1095584ec
--- /dev/null
+++ b/testapps/buildConfigTest/lib1/res/drawable-ldpi/ic_launcher.png
Binary files differ
diff --git a/testapps/buildConfigTest/lib1/res/drawable-mdpi/ic_launcher.png b/testapps/buildConfigTest/lib1/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 000000000..a07c69fa5
--- /dev/null
+++ b/testapps/buildConfigTest/lib1/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/buildConfigTest/lib1/res/values/strings.xml b/testapps/buildConfigTest/lib1/res/values/strings.xml
new file mode 100644
index 000000000..549e4ea50
--- /dev/null
+++ b/testapps/buildConfigTest/lib1/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Main</string>
+</resources>
diff --git a/testapps/buildConfigTest/lib1/src/com/android/tests/buildconfigtest/lib1/Lib1.java b/testapps/buildConfigTest/lib1/src/com/android/tests/buildconfigtest/lib1/Lib1.java
new file mode 100644
index 000000000..cca0eff83
--- /dev/null
+++ b/testapps/buildConfigTest/lib1/src/com/android/tests/buildconfigtest/lib1/Lib1.java
@@ -0,0 +1,17 @@
+package com.android.tests.buildconfigtest.lib1;
+
+import com.android.tests.javaprojecttest.lib1.BuildConfig;
+
+
+public class Lib1 {
+
+ public static String getContent() {
+ String a = "Release";
+
+ if (BuildConfig.DEBUG) {
+ a = "DEBUG";
+ }
+
+ return a;
+ }
+}
diff --git a/testapps/customPropAnimTest/.classpath b/testapps/customPropAnimTest/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/customPropAnimTest/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/customPropAnimTest/.project b/testapps/customPropAnimTest/.project
new file mode 100644
index 000000000..0d12fe9df
--- /dev/null
+++ b/testapps/customPropAnimTest/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>customPropAnimTest</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/customPropAnimTest/AndroidManifest.xml b/testapps/customPropAnimTest/AndroidManifest.xml
new file mode 100644
index 000000000..72c58d056
--- /dev/null
+++ b/testapps/customPropAnimTest/AndroidManifest.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.custompropertyanimation"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <uses-sdk android:minSdkVersion="15" />
+
+ <application
+ android:icon="@drawable/ic_launcher"
+ android:label="@string/app_name" >
+ <activity
+ android:name=".CustomPropertyAnimationActivity"
+ android:label="@string/app_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/customPropAnimTest/build.xml b/testapps/customPropAnimTest/build.xml
new file mode 100644
index 000000000..d6ee0bc88
--- /dev/null
+++ b/testapps/customPropAnimTest/build.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="CustomPropertyAnimationActivity" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var. -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/customPropAnimTest/proguard-project.txt b/testapps/customPropAnimTest/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/customPropAnimTest/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/customPropAnimTest/project.properties b/testapps/customPropAnimTest/project.properties
new file mode 100644
index 000000000..1a88dc6bc
--- /dev/null
+++ b/testapps/customPropAnimTest/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+
diff --git a/testapps/customPropAnimTest/res/drawable-hdpi/ic_launcher.png b/testapps/customPropAnimTest/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 000000000..96a442e5b
--- /dev/null
+++ b/testapps/customPropAnimTest/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/customPropAnimTest/res/drawable-ldpi/ic_launcher.png b/testapps/customPropAnimTest/res/drawable-ldpi/ic_launcher.png
new file mode 100644
index 000000000..99238729d
--- /dev/null
+++ b/testapps/customPropAnimTest/res/drawable-ldpi/ic_launcher.png
Binary files differ
diff --git a/testapps/customPropAnimTest/res/drawable-mdpi/ic_launcher.png b/testapps/customPropAnimTest/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 000000000..359047dfa
--- /dev/null
+++ b/testapps/customPropAnimTest/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/customPropAnimTest/res/drawable-xhdpi/ic_launcher.png b/testapps/customPropAnimTest/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 000000000..71c6d760f
--- /dev/null
+++ b/testapps/customPropAnimTest/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/customPropAnimTest/res/layout/main.xml b/testapps/customPropAnimTest/res/layout/main.xml
new file mode 100644
index 000000000..40f9f1ac7
--- /dev/null
+++ b/testapps/customPropAnimTest/res/layout/main.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical"
+ android:id="@+id/container">
+
+</LinearLayout> \ No newline at end of file
diff --git a/testapps/customPropAnimTest/res/values/strings.xml b/testapps/customPropAnimTest/res/values/strings.xml
new file mode 100644
index 000000000..9c3c31bdc
--- /dev/null
+++ b/testapps/customPropAnimTest/res/values/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="hello">Hello World, CustomPropertyAnimationActivity!</string>
+ <string name="app_name">CustomPropertyAnimation</string>
+
+</resources> \ No newline at end of file
diff --git a/testapps/customPropAnimTest/src/com/android/custompropertyanimation/CustomPropertyAnimationActivity.java b/testapps/customPropAnimTest/src/com/android/custompropertyanimation/CustomPropertyAnimationActivity.java
new file mode 100644
index 000000000..b1b91b981
--- /dev/null
+++ b/testapps/customPropAnimTest/src/com/android/custompropertyanimation/CustomPropertyAnimationActivity.java
@@ -0,0 +1,22 @@
+package com.android.custompropertyanimation;
+
+import android.animation.ObjectAnimator;
+import android.app.Activity;
+import android.os.Bundle;
+import android.widget.LinearLayout;
+
+public class CustomPropertyAnimationActivity extends Activity {
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ LinearLayout container = (LinearLayout) findViewById(R.id.container);
+
+ MyView view = new MyView(this);
+ container.addView(view);
+
+ ObjectAnimator anim = ObjectAnimator.ofFloat(view, "foo", 1);
+ anim.start();
+ }
+} \ No newline at end of file
diff --git a/testapps/customPropAnimTest/src/com/android/custompropertyanimation/MyView.java b/testapps/customPropAnimTest/src/com/android/custompropertyanimation/MyView.java
new file mode 100644
index 000000000..e557fdaa5
--- /dev/null
+++ b/testapps/customPropAnimTest/src/com/android/custompropertyanimation/MyView.java
@@ -0,0 +1,24 @@
+package com.android.custompropertyanimation;
+
+import android.content.Context;
+import android.view.View;
+
+public class MyView extends View {
+
+ float mFoo = 0;
+
+ public MyView(Context context) {
+ super(context);
+ }
+
+ public void setFoo(float foo) {
+ System.out.println("foo = " + foo);
+ mFoo = foo;
+ }
+
+ public float getFoo() {
+ System.out.println("getFoo() returning " + mFoo);
+ return mFoo;
+ }
+
+}
diff --git a/testapps/customViewTest/libWithCustomView/.classpath b/testapps/customViewTest/libWithCustomView/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/customViewTest/libWithCustomView/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/customViewTest/libWithCustomView/.project b/testapps/customViewTest/libWithCustomView/.project
new file mode 100644
index 000000000..0be1f6181
--- /dev/null
+++ b/testapps/customViewTest/libWithCustomView/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>customViewTest-libWithCustomView</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/customViewTest/libWithCustomView/AndroidManifest.xml b/testapps/customViewTest/libWithCustomView/AndroidManifest.xml
new file mode 100644
index 000000000..89cff95c0
--- /dev/null
+++ b/testapps/customViewTest/libWithCustomView/AndroidManifest.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.libwithcustom"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <permission
+ android:name="com.foo.mypermission"
+ android:description="@string/app_name"
+ android:label="@string/app_name" >
+ </permission>
+ <permission
+ android:name="com.foo.mypermission2"
+ android:description="@string/app_name"
+ android:label="@string/app_name" >
+ </permission>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/customViewTest/libWithCustomView/ant.properties b/testapps/customViewTest/libWithCustomView/ant.properties
new file mode 100644
index 000000000..ee52d86d9
--- /dev/null
+++ b/testapps/customViewTest/libWithCustomView/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked in Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/customViewTest/libWithCustomView/build.xml b/testapps/customViewTest/libWithCustomView/build.xml
new file mode 100644
index 000000000..7d9e0321e
--- /dev/null
+++ b/testapps/customViewTest/libWithCustomView/build.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="libWithCustomView" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var. -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/customViewTest/libWithCustomView/proguard-project.txt b/testapps/customViewTest/libWithCustomView/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/customViewTest/libWithCustomView/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/customViewTest/libWithCustomView/proguard.cfg b/testapps/customViewTest/libWithCustomView/proguard.cfg
new file mode 100644
index 000000000..b1cdf17b5
--- /dev/null
+++ b/testapps/customViewTest/libWithCustomView/proguard.cfg
@@ -0,0 +1,40 @@
+-optimizationpasses 5
+-dontusemixedcaseclassnames
+-dontskipnonpubliclibraryclasses
+-dontpreverify
+-verbose
+-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
+
+-keep public class * extends android.app.Activity
+-keep public class * extends android.app.Application
+-keep public class * extends android.app.Service
+-keep public class * extends android.content.BroadcastReceiver
+-keep public class * extends android.content.ContentProvider
+-keep public class * extends android.app.backup.BackupAgentHelper
+-keep public class * extends android.preference.Preference
+-keep public class com.android.vending.licensing.ILicensingService
+
+-keepclasseswithmembernames class * {
+ native <methods>;
+}
+
+-keepclasseswithmembers class * {
+ public <init>(android.content.Context, android.util.AttributeSet);
+}
+
+-keepclasseswithmembers class * {
+ public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+
+-keepclassmembers class * extends android.app.Activity {
+ public void *(android.view.View);
+}
+
+-keepclassmembers enum * {
+ public static **[] values();
+ public static ** valueOf(java.lang.String);
+}
+
+-keep class * implements android.os.Parcelable {
+ public static final android.os.Parcelable$Creator *;
+}
diff --git a/testapps/customViewTest/libWithCustomView/project.properties b/testapps/customViewTest/libWithCustomView/project.properties
new file mode 100644
index 000000000..23d80c4e4
--- /dev/null
+++ b/testapps/customViewTest/libWithCustomView/project.properties
@@ -0,0 +1,13 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-15
+android.library=true
+
diff --git a/testapps/customViewTest/libWithCustomView/res/layout/main.xml b/testapps/customViewTest/libWithCustomView/res/layout/main.xml
new file mode 100644
index 000000000..c906a76ad
--- /dev/null
+++ b/testapps/customViewTest/libWithCustomView/res/layout/main.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2007 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.
+-->
+
+<!-- Demonstrates defining custom views in a layout file. -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical" >
+
+ <com.android.tests.libwithcustom.LabelView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/red"
+ app:text="Red" />
+
+ <com.android.tests.libwithcustom.LabelView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/blue"
+ app:text="Blue"
+ app:textSize="20dp" />
+
+ <com.android.tests.libwithcustom.LabelView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/green"
+ app:text="Green"
+ app:textColor="#ffffffff" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/testapps/customViewTest/libWithCustomView/res/values/attrs.xml b/testapps/customViewTest/libWithCustomView/res/values/attrs.xml
new file mode 100644
index 000000000..f173e02ad
--- /dev/null
+++ b/testapps/customViewTest/libWithCustomView/res/values/attrs.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2007 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.
+-->
+
+<resources>
+
+ <declare-styleable name="LabelView">
+ <attr name="text" format="string" />
+ <attr name="textColor" format="color" />
+ <attr name="textSize" format="dimension" />
+ </declare-styleable>
+
+ <drawable name="red">#7f00</drawable>
+ <drawable name="blue">#770000ff</drawable>
+ <drawable name="green">#7700ff00</drawable>
+
+</resources> \ No newline at end of file
diff --git a/testapps/customViewTest/libWithCustomView/res/values/strings.xml b/testapps/customViewTest/libWithCustomView/res/values/strings.xml
new file mode 100644
index 000000000..3fa203afd
--- /dev/null
+++ b/testapps/customViewTest/libWithCustomView/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">MyActivity</string>
+</resources>
diff --git a/testapps/customViewTest/libWithCustomView/src/com/android/tests/libwithcustom/LabelView.java b/testapps/customViewTest/libWithCustomView/src/com/android/tests/libwithcustom/LabelView.java
new file mode 100644
index 000000000..d0b62e93b
--- /dev/null
+++ b/testapps/customViewTest/libWithCustomView/src/com/android/tests/libwithcustom/LabelView.java
@@ -0,0 +1,193 @@
+/*
+ * Copyright (C) 2007 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.tests.libwithcustom;
+
+// Need the following import to get access to the app resources, since this
+// class is in a sub-package.
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.util.AttributeSet;
+import android.view.View;
+
+
+/**
+ * Example of how to write a custom subclass of View. LabelView
+ * is used to draw simple text views. Note that it does not handle
+ * styled text or right-to-left writing systems.
+ *
+ */
+public class LabelView extends View {
+ private Paint mTextPaint;
+ private String mText;
+ private int mAscent;
+
+ /**
+ * Constructor. This version is only needed if you will be instantiating
+ * the object manually (not from a layout XML file).
+ * @param context
+ */
+ public LabelView(Context context) {
+ super(context);
+ initLabelView();
+ }
+
+ /**
+ * Construct object, initializing with any attributes we understand from a
+ * layout file. These attributes are defined in
+ * SDK/assets/res/any/classes.xml.
+ *
+ * @see android.view.View#View(android.content.Context, android.util.AttributeSet)
+ */
+ public LabelView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ initLabelView();
+
+
+ TypedArray a = context.obtainStyledAttributes(attrs,
+ R.styleable.LabelView);
+
+ CharSequence s = a.getString(R.styleable.LabelView_text);
+ if (s != null) {
+ setText(s.toString());
+ }
+
+ // Retrieve the color(s) to be used for this view and apply them.
+ // Note, if you only care about supporting a single color, that you
+ // can instead call a.getColor() and pass that to setTextColor().
+ setTextColor(a.getColor(R.styleable.LabelView_textColor, 0xFF000000));
+
+ int textSize = a.getDimensionPixelOffset(R.styleable.LabelView_textSize, 0);
+ if (textSize > 0) {
+ setTextSize(textSize);
+ }
+
+ a.recycle();
+ }
+
+ private final void initLabelView() {
+ mTextPaint = new Paint();
+ mTextPaint.setAntiAlias(true);
+ // Must manually scale the desired text size to match screen density
+ mTextPaint.setTextSize(16 * getResources().getDisplayMetrics().density);
+ mTextPaint.setColor(0xFF000000);
+ setPadding(3, 3, 3, 3);
+ }
+
+ /**
+ * Sets the text to display in this label
+ * @param text The text to display. This will be drawn as one line.
+ */
+ public void setText(String text) {
+ mText = text;
+ requestLayout();
+ invalidate();
+ }
+
+ /**
+ * Sets the text size for this label
+ * @param size Font size
+ */
+ public void setTextSize(int size) {
+ // This text size has been pre-scaled by the getDimensionPixelOffset method
+ mTextPaint.setTextSize(size);
+ requestLayout();
+ invalidate();
+ }
+
+ /**
+ * Sets the text color for this label.
+ * @param color ARGB value for the text
+ */
+ public void setTextColor(int color) {
+ mTextPaint.setColor(color);
+ invalidate();
+ }
+
+ /**
+ * @see android.view.View#measure(int, int)
+ */
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ setMeasuredDimension(measureWidth(widthMeasureSpec),
+ measureHeight(heightMeasureSpec));
+ }
+
+ /**
+ * Determines the width of this view
+ * @param measureSpec A measureSpec packed into an int
+ * @return The width of the view, honoring constraints from measureSpec
+ */
+ private int measureWidth(int measureSpec) {
+ int result = 0;
+ int specMode = MeasureSpec.getMode(measureSpec);
+ int specSize = MeasureSpec.getSize(measureSpec);
+
+ if (specMode == MeasureSpec.EXACTLY) {
+ // We were told how big to be
+ result = specSize;
+ } else {
+ // Measure the text
+ result = (int) mTextPaint.measureText(mText) + getPaddingLeft()
+ + getPaddingRight();
+ if (specMode == MeasureSpec.AT_MOST) {
+ // Respect AT_MOST value if that was what is called for by measureSpec
+ result = Math.min(result, specSize);
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ * Determines the height of this view
+ * @param measureSpec A measureSpec packed into an int
+ * @return The height of the view, honoring constraints from measureSpec
+ */
+ private int measureHeight(int measureSpec) {
+ int result = 0;
+ int specMode = MeasureSpec.getMode(measureSpec);
+ int specSize = MeasureSpec.getSize(measureSpec);
+
+ mAscent = (int) mTextPaint.ascent();
+ if (specMode == MeasureSpec.EXACTLY) {
+ // We were told how big to be
+ result = specSize;
+ } else {
+ // Measure the text (beware: ascent is a negative number)
+ result = (int) (-mAscent + mTextPaint.descent()) + getPaddingTop()
+ + getPaddingBottom();
+ if (specMode == MeasureSpec.AT_MOST) {
+ // Respect AT_MOST value if that was what is called for by measureSpec
+ result = Math.min(result, specSize);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Render the text
+ *
+ * @see android.view.View#onDraw(android.graphics.Canvas)
+ */
+ @Override
+ protected void onDraw(Canvas canvas) {
+ super.onDraw(canvas);
+ canvas.drawText(mText, getPaddingLeft(), getPaddingTop() - mAscent, mTextPaint);
+ }
+}
diff --git a/testapps/customViewTest/mainProject/.classpath b/testapps/customViewTest/mainProject/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/customViewTest/mainProject/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/customViewTest/mainProject/.project b/testapps/customViewTest/mainProject/.project
new file mode 100644
index 000000000..159296ee4
--- /dev/null
+++ b/testapps/customViewTest/mainProject/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>customViewTest-mainProject</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/customViewTest/mainProject/AndroidManifest.xml b/testapps/customViewTest/mainProject/AndroidManifest.xml
new file mode 100644
index 000000000..ff41761b5
--- /dev/null
+++ b/testapps/customViewTest/mainProject/AndroidManifest.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.projectwithsupport"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:label="@string/app_name">
+ <activity android:name=".MyActivity"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+</manifest>
diff --git a/testapps/customViewTest/mainProject/ant.properties b/testapps/customViewTest/mainProject/ant.properties
new file mode 100644
index 000000000..ee52d86d9
--- /dev/null
+++ b/testapps/customViewTest/mainProject/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked in Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/customViewTest/mainProject/build.xml b/testapps/customViewTest/mainProject/build.xml
new file mode 100644
index 000000000..2f98bb504
--- /dev/null
+++ b/testapps/customViewTest/mainProject/build.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="customViewTest-mainProject" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var. -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/customViewTest/mainProject/libs/foo.txt b/testapps/customViewTest/mainProject/libs/foo.txt
new file mode 100644
index 000000000..fe0c85275
--- /dev/null
+++ b/testapps/customViewTest/mainProject/libs/foo.txt
@@ -0,0 +1 @@
+sdf \ No newline at end of file
diff --git a/testapps/customViewTest/mainProject/proguard-project.txt b/testapps/customViewTest/mainProject/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/customViewTest/mainProject/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/customViewTest/mainProject/project.properties b/testapps/customViewTest/mainProject/project.properties
new file mode 100644
index 000000000..21d68c543
--- /dev/null
+++ b/testapps/customViewTest/mainProject/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-15
+android.library.reference.1=../libWithCustomView
+
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
diff --git a/testapps/customViewTest/mainProject/res/values/strings.xml b/testapps/customViewTest/mainProject/res/values/strings.xml
new file mode 100644
index 000000000..e86ca41dd
--- /dev/null
+++ b/testapps/customViewTest/mainProject/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">customViewTest</string>
+</resources>
diff --git a/testapps/customViewTest/mainProject/src/com/android/tests/projectwithsupport/MyActivity.java b/testapps/customViewTest/mainProject/src/com/android/tests/projectwithsupport/MyActivity.java
new file mode 100644
index 000000000..c06583970
--- /dev/null
+++ b/testapps/customViewTest/mainProject/src/com/android/tests/projectwithsupport/MyActivity.java
@@ -0,0 +1,15 @@
+package com.android.tests.projectwithsupport;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class MyActivity extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+}
diff --git a/testapps/gridlayoutTest/COMPILE_AND_RUN b/testapps/gridlayoutTest/COMPILE_AND_RUN
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/gridlayoutTest/COMPILE_AND_RUN
diff --git a/testapps/gridlayoutTest/SUCCESS b/testapps/gridlayoutTest/SUCCESS
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/gridlayoutTest/SUCCESS
diff --git a/testapps/gridlayoutTest/app/.classpath b/testapps/gridlayoutTest/app/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/gridlayoutTest/app/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/gridlayoutTest/app/.project b/testapps/gridlayoutTest/app/.project
new file mode 100644
index 000000000..9a73e09c7
--- /dev/null
+++ b/testapps/gridlayoutTest/app/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>gridlayouttest-app</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/gridlayoutTest/app/AndroidManifest.xml b/testapps/gridlayoutTest/app/AndroidManifest.xml
new file mode 100644
index 000000000..f85d20faa
--- /dev/null
+++ b/testapps/gridlayoutTest/app/AndroidManifest.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.test.gridlayout"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <uses-sdk android:minSdkVersion="7" />
+
+ <application
+ android:icon="@drawable/ic_launcher"
+ android:label="@string/app_name" >
+ <activity
+ android:name="Main"
+ android:label="@string/app_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/gridlayoutTest/app/ant.properties b/testapps/gridlayoutTest/app/ant.properties
new file mode 100644
index 000000000..b0971e891
--- /dev/null
+++ b/testapps/gridlayoutTest/app/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked into Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/gridlayoutTest/app/build.xml b/testapps/gridlayoutTest/app/build.xml
new file mode 100644
index 000000000..1160e8a4d
--- /dev/null
+++ b/testapps/gridlayoutTest/app/build.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="app" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/gridlayoutTest/app/proguard-project.txt b/testapps/gridlayoutTest/app/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/gridlayoutTest/app/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/gridlayoutTest/app/project.properties b/testapps/gridlayoutTest/app/project.properties
new file mode 100644
index 000000000..5fe06bdb4
--- /dev/null
+++ b/testapps/gridlayoutTest/app/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library.reference.1=../v7-gridlayout
diff --git a/testapps/gridlayoutTest/app/res/drawable-hdpi/ic_launcher.png b/testapps/gridlayoutTest/app/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 000000000..8074c4c57
--- /dev/null
+++ b/testapps/gridlayoutTest/app/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/gridlayoutTest/app/res/drawable-ldpi/ic_launcher.png b/testapps/gridlayoutTest/app/res/drawable-ldpi/ic_launcher.png
new file mode 100644
index 000000000..1095584ec
--- /dev/null
+++ b/testapps/gridlayoutTest/app/res/drawable-ldpi/ic_launcher.png
Binary files differ
diff --git a/testapps/gridlayoutTest/app/res/drawable-mdpi/ic_launcher.png b/testapps/gridlayoutTest/app/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 000000000..a07c69fa5
--- /dev/null
+++ b/testapps/gridlayoutTest/app/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/gridlayoutTest/app/res/layout/main.xml b/testapps/gridlayoutTest/app/res/layout/main.xml
new file mode 100644
index 000000000..75f560090
--- /dev/null
+++ b/testapps/gridlayoutTest/app/res/layout/main.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ app:columnCount="6" >
+
+ <Button
+ android:id="@+id/button1"
+ app:layout_column="1"
+ app:layout_columnSpan="2"
+ app:layout_gravity="left"
+ app:layout_row="1"
+ android:text="Button" />
+
+ <CheckBox
+ android:id="@+id/checkBox1"
+ app:layout_column="4"
+ app:layout_gravity="left"
+ app:layout_row="2"
+ android:text="CheckBox" />
+
+ <Button
+ android:id="@+id/button2"
+ app:layout_column="5"
+ app:layout_gravity="left"
+ app:layout_row="3"
+ android:text="Button" />
+
+ <android.support.v7.widget.Space
+ android:layout_width="21dp"
+ android:layout_height="1dp"
+ app:layout_column="0"
+ app:layout_gravity="fill_horizontal"
+ app:layout_row="0" />
+
+ <android.support.v7.widget.Space
+ android:layout_width="1dp"
+ android:layout_height="21dp"
+ app:layout_column="0"
+ app:layout_gravity="fill_horizontal"
+ app:layout_row="0" />
+
+ <android.support.v7.widget.Space
+ android:layout_width="10dp"
+ android:layout_height="1dp"
+ app:layout_column="3"
+ app:layout_gravity="fill_horizontal"
+ app:layout_row="0" />
+
+ <android.support.v7.widget.Space
+ android:layout_width="122dp"
+ android:layout_height="1dp"
+ app:layout_column="4"
+ app:layout_gravity="fill_horizontal"
+ app:layout_row="0" />
+
+ <android.support.v7.widget.Space
+ android:layout_width="1dp"
+ android:layout_height="168dp"
+ app:layout_column="0"
+ app:layout_gravity="fill_horizontal"
+ app:layout_row="1" />
+
+ <android.support.v7.widget.Space
+ android:layout_width="1dp"
+ android:layout_height="168dp"
+ app:layout_column="0"
+ app:layout_gravity="fill_horizontal"
+ app:layout_row="2" />
+
+</android.support.v7.widget.GridLayout> \ No newline at end of file
diff --git a/testapps/gridlayoutTest/app/res/values/strings.xml b/testapps/gridlayoutTest/app/res/values/strings.xml
new file mode 100644
index 000000000..549e4ea50
--- /dev/null
+++ b/testapps/gridlayoutTest/app/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Main</string>
+</resources>
diff --git a/testapps/gridlayoutTest/app/src/com/android/test/gridlayout/Main.java b/testapps/gridlayoutTest/app/src/com/android/test/gridlayout/Main.java
new file mode 100644
index 000000000..bf817dffe
--- /dev/null
+++ b/testapps/gridlayoutTest/app/src/com/android/test/gridlayout/Main.java
@@ -0,0 +1,15 @@
+package com.android.test.gridlayout;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class Main extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+}
diff --git a/testapps/gridlayoutTest/v7-gridlayout/.classpath b/testapps/gridlayoutTest/v7-gridlayout/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/gridlayoutTest/v7-gridlayout/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/gridlayoutTest/v7-gridlayout/.project b/testapps/gridlayoutTest/v7-gridlayout/.project
new file mode 100644
index 000000000..1e67516d0
--- /dev/null
+++ b/testapps/gridlayoutTest/v7-gridlayout/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>android-support-v7-gridlayout</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/gridlayoutTest/v7-gridlayout/AndroidManifest.xml b/testapps/gridlayoutTest/v7-gridlayout/AndroidManifest.xml
new file mode 100644
index 000000000..c3f71680a
--- /dev/null
+++ b/testapps/gridlayoutTest/v7-gridlayout/AndroidManifest.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="android.support.v7.gridlayout"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <uses-sdk android:minSdkVersion="7" />
+
+</manifest>
diff --git a/testapps/gridlayoutTest/v7-gridlayout/build.xml b/testapps/gridlayoutTest/v7-gridlayout/build.xml
new file mode 100644
index 000000000..a03e2b6d5
--- /dev/null
+++ b/testapps/gridlayoutTest/v7-gridlayout/build.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="v7-gridlayout" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/gridlayoutTest/v7-gridlayout/libs/android-support-v7-gridlayout.jar b/testapps/gridlayoutTest/v7-gridlayout/libs/android-support-v7-gridlayout.jar
new file mode 100644
index 000000000..00a946d4d
--- /dev/null
+++ b/testapps/gridlayoutTest/v7-gridlayout/libs/android-support-v7-gridlayout.jar
Binary files differ
diff --git a/testapps/gridlayoutTest/v7-gridlayout/proguard-project.txt b/testapps/gridlayoutTest/v7-gridlayout/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/gridlayoutTest/v7-gridlayout/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/gridlayoutTest/v7-gridlayout/project.properties b/testapps/gridlayoutTest/v7-gridlayout/project.properties
new file mode 100644
index 000000000..36f15941e
--- /dev/null
+++ b/testapps/gridlayoutTest/v7-gridlayout/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library=true
diff --git a/testapps/gridlayoutTest/v7-gridlayout/res/values/attrs.xml b/testapps/gridlayoutTest/v7-gridlayout/res/values/attrs.xml
new file mode 100644
index 000000000..ad2ef4e4c
--- /dev/null
+++ b/testapps/gridlayoutTest/v7-gridlayout/res/values/attrs.xml
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <declare-styleable name="GridLayout">
+
+ <!--
+ support versions. All attributes not present in ViewGroup/View are
+ redefined in the support library namespace.
+ -->
+
+
+ <!--
+ The orientation property is not used during layout. It is only used to
+ allocate row and column parameters when they are not specified by its children's
+ layout parameters. GridLayout works like LinearLayout in this case;
+ putting all the components either in a single row or in a single column -
+ depending on the value of this flag. In the horizontal case, a columnCount
+ property may be additionally supplied to force new rows to be created when a
+ row is full. The rowCount attribute may be used similarly in the vertical case.
+ The default is horizontal.
+ -->
+ <attr name="orientation">
+
+ <!-- Defines an horizontal widget. -->
+ <enum name="horizontal" value="0" />
+ <!-- Defines a vertical widget. -->
+ <enum name="vertical" value="1" />
+ </attr>
+ <!-- The maximum number of rows to create when automatically positioning children. -->
+ <attr name="rowCount" format="integer" />
+ <!-- The maximum number of columns to create when automatically positioning children. -->
+ <attr name="columnCount" format="integer" />
+ <!--
+ When set to true, tells GridLayout to use default margins when none are specified
+ in a view's layout parameters.
+ The default value is false.
+ See {@link android.widget.GridLayout#setUseDefaultMargins(boolean)}.
+ -->
+ <attr name="useDefaultMargins" format="boolean" />
+ <!--
+ When set to alignMargins, causes alignment to take place between the outer
+ boundary of a view, as defined by its margins. When set to alignBounds,
+ causes alignment to take place between the edges of the view.
+ The default is alignMargins.
+ See {@link android.widget.GridLayout#setAlignmentMode(int)}.
+ -->
+ <attr name="alignmentMode">
+
+ <!--
+ Align the bounds of the children.
+ See {@link android.widget.GridLayout#ALIGN_BOUNDS}.
+ -->
+ <enum name="alignBounds" value="0" />
+ <!--
+ Align the margins of the children.
+ See {@link android.widget.GridLayout#ALIGN_MARGINS}.
+ -->
+ <enum name="alignMargins" value="1" />
+ </attr>
+ <!--
+ When set to true, forces row boundaries to appear in the same order
+ as row indices.
+ The default is true.
+ See {@link android.widget.GridLayout#setRowOrderPreserved(boolean)}.
+ -->
+ <attr name="rowOrderPreserved" format="boolean" />
+ <!--
+ When set to true, forces column boundaries to appear in the same order
+ as column indices.
+ The default is true.
+ See {@link android.widget.GridLayout#setColumnOrderPreserved(boolean)}.
+ -->
+ <attr name="columnOrderPreserved" format="boolean" />
+ </declare-styleable>
+ <declare-styleable name="GridLayout_Layout">
+
+ <!--
+ support versions. All attributes not present in MarginLayout are
+ redefined in the support library name space.
+ -->
+
+
+ <!-- START MarginLayout layoutparams -->
+
+ <attr name="android:layout_width" />
+ <attr name="android:layout_height" />
+ <!--
+ Specifies extra space on the left, top, right and bottom
+ sides of this view. This space is outside this view's bounds.
+ -->
+ <attr name="android:layout_margin" />
+ <!--
+ Specifies extra space on the left side of this view.
+ This space is outside this view's bounds.
+ -->
+ <attr name="android:layout_marginLeft" />
+ <!--
+ Specifies extra space on the top side of this view.
+ This space is outside this view's bounds.
+ -->
+ <attr name="android:layout_marginTop" />
+ <!--
+ Specifies extra space on the right side of this view.
+ This space is outside this view's bounds.
+ -->
+ <attr name="android:layout_marginRight" />
+ <!--
+ Specifies extra space on the bottom side of this view.
+ This space is outside this view's bounds.
+ -->
+ <attr name="android:layout_marginBottom" />
+ <!--
+ Specifies extra space on the start side of this view.
+ This space is outside this view's bounds.
+ -->
+ <attr name="android:layout_marginStart" />
+ <!--
+ Specifies extra space on the end side of this view.
+ This space is outside this view's bounds.
+ -->
+ <attr name="android:layout_marginEnd" />
+
+ <!-- END MarginLayout layoutparams -->
+
+
+ <!--
+ The row boundary delimiting the top of the group of cells
+ occupied by this view.
+ -->
+ <attr name="layout_row" format="integer" />
+ <!--
+ The row span: the difference between the bottom and top
+ boundaries delimiting the group of cells occupied by this view.
+ The default is one.
+ See {@link android.widget.GridLayout.Spec}.
+ -->
+ <attr name="layout_rowSpan" format="integer" min="1" />
+ <!--
+ The column boundary delimiting the left of the group of cells
+ occupied by this view.
+ -->
+ <attr name="layout_column" format="integer" />
+ <!--
+ The column span: the difference between the right and left
+ boundaries delimiting the group of cells occupied by this view.
+ The default is one.
+ See {@link android.widget.GridLayout.Spec}.
+ -->
+ <attr name="layout_columnSpan" format="integer" min="1" />
+ <!--
+ Gravity specifies how a component should be placed in its group of cells.
+ The default is LEFT | BASELINE.
+ See {@link android.widget.GridLayout.LayoutParams#setGravity(int)}.
+ -->
+ <attr name="layout_gravity">
+
+ <!-- Push object to the top of its container, not changing its size. -->
+ <flag name="top" value="0x30" />
+ <!-- Push object to the bottom of its container, not changing its size. -->
+ <flag name="bottom" value="0x50" />
+ <!-- Push object to the left of its container, not changing its size. -->
+ <flag name="left" value="0x03" />
+ <!-- Push object to the right of its container, not changing its size. -->
+ <flag name="right" value="0x05" />
+ <!-- Place object in the vertical center of its container, not changing its size. -->
+ <flag name="center_vertical" value="0x10" />
+ <!-- Grow the vertical size of the object if needed so it completely fills its container. -->
+ <flag name="fill_vertical" value="0x70" />
+ <!-- Place object in the horizontal center of its container, not changing its size. -->
+ <flag name="center_horizontal" value="0x01" />
+ <!-- Grow the horizontal size of the object if needed so it completely fills its container. -->
+ <flag name="fill_horizontal" value="0x07" />
+ <!-- Place the object in the center of its container in both the vertical and horizontal axis, not changing its size. -->
+ <flag name="center" value="0x11" />
+ <!-- Grow the horizontal and vertical size of the object if needed so it completely fills its container. -->
+ <flag name="fill" value="0x77" />
+ <!--
+ Additional option that can be set to have the top and/or bottom edges of
+ the child clipped to its container's bounds.
+ The clip will be based on the vertical gravity: a top gravity will clip the bottom
+ edge, a bottom gravity will clip the top edge, and neither will clip both edges.
+ -->
+ <flag name="clip_vertical" value="0x80" />
+ <!--
+ Additional option that can be set to have the left and/or right edges of
+ the child clipped to its container's bounds.
+ The clip will be based on the horizontal gravity: a left gravity will clip the right
+ edge, a right gravity will clip the left edge, and neither will clip both edges.
+ -->
+ <flag name="clip_horizontal" value="0x08" />
+ <!-- Push object to the beginning of its container, not changing its size. -->
+ <flag name="start" value="0x00800003" />
+ <!-- Push object to the end of its container, not changing its size. -->
+ <flag name="end" value="0x00800005" />
+ </attr>
+ </declare-styleable>
+
+</resources>
diff --git a/testapps/gridlayoutTest/v7-gridlayout/res/values/dimens.xml b/testapps/gridlayoutTest/v7-gridlayout/res/values/dimens.xml
new file mode 100644
index 000000000..fda3febf0
--- /dev/null
+++ b/testapps/gridlayoutTest/v7-gridlayout/res/values/dimens.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <!-- The default gap between components in a layout. -->
+ <dimen name="default_gap">16dip</dimen>
+
+</resources>
diff --git a/testapps/gridlayoutTest/v7-gridlayout/src/.readme b/testapps/gridlayoutTest/v7-gridlayout/src/.readme
new file mode 100644
index 000000000..4bcebad80
--- /dev/null
+++ b/testapps/gridlayoutTest/v7-gridlayout/src/.readme
@@ -0,0 +1,2 @@
+This hidden file is there to ensure there is an src folder.
+Once we support binary library this will go away. \ No newline at end of file
diff --git a/testapps/jarCheckTests1/SUCCESS b/testapps/jarCheckTests1/SUCCESS
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/jarCheckTests1/SUCCESS
diff --git a/testapps/jarCheckTests1/app/.classpath b/testapps/jarCheckTests1/app/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/jarCheckTests1/app/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/jarCheckTests1/app/.project b/testapps/jarCheckTests1/app/.project
new file mode 100644
index 000000000..101d55351
--- /dev/null
+++ b/testapps/jarCheckTests1/app/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>jarCheckTests1-app</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/jarCheckTests1/app/AndroidManifest.xml b/testapps/jarCheckTests1/app/AndroidManifest.xml
new file mode 100644
index 000000000..ff41761b5
--- /dev/null
+++ b/testapps/jarCheckTests1/app/AndroidManifest.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.projectwithsupport"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:label="@string/app_name">
+ <activity android:name=".MyActivity"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+</manifest>
diff --git a/testapps/jarCheckTests1/app/ant.properties b/testapps/jarCheckTests1/app/ant.properties
new file mode 100644
index 000000000..ee52d86d9
--- /dev/null
+++ b/testapps/jarCheckTests1/app/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked in Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/jarCheckTests1/app/build.xml b/testapps/jarCheckTests1/app/build.xml
new file mode 100644
index 000000000..f3a3d91c9
--- /dev/null
+++ b/testapps/jarCheckTests1/app/build.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="basicProjectWithSupport" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
+ unless="sdk.dir"
+ />
+
+
+<!-- extension targets. Uncomment the ones where you want to do custom work
+ in between standard targets -->
+<!--
+ <target name="-pre-build">
+ </target>
+ <target name="-pre-compile">
+ </target>
+
+ /* This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir} */
+ <target name="-post-compile">
+ </target>
+-->
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/jarCheckTests1/app/libs/android-support-v4.jar b/testapps/jarCheckTests1/app/libs/android-support-v4.jar
new file mode 100644
index 000000000..d006198e6
--- /dev/null
+++ b/testapps/jarCheckTests1/app/libs/android-support-v4.jar
Binary files differ
diff --git a/testapps/jarCheckTests1/app/libs/foo.txt b/testapps/jarCheckTests1/app/libs/foo.txt
new file mode 100644
index 000000000..fe0c85275
--- /dev/null
+++ b/testapps/jarCheckTests1/app/libs/foo.txt
@@ -0,0 +1 @@
+sdf \ No newline at end of file
diff --git a/testapps/jarCheckTests1/app/proguard-project.txt b/testapps/jarCheckTests1/app/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/jarCheckTests1/app/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/jarCheckTests1/app/project.properties b/testapps/jarCheckTests1/app/project.properties
new file mode 100644
index 000000000..1d28b5171
--- /dev/null
+++ b/testapps/jarCheckTests1/app/project.properties
@@ -0,0 +1,13 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-15
+android.library.reference.1=../lib1
+android.library.reference.2=../lib2
diff --git a/testapps/jarCheckTests1/app/res/layout/main.xml b/testapps/jarCheckTests1/app/res/layout/main.xml
new file mode 100644
index 000000000..7fe5dceb2
--- /dev/null
+++ b/testapps/jarCheckTests1/app/res/layout/main.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, MyActivity"
+ />
+</LinearLayout>
+
diff --git a/testapps/jarCheckTests1/app/res/values/strings.xml b/testapps/jarCheckTests1/app/res/values/strings.xml
new file mode 100644
index 000000000..3fa203afd
--- /dev/null
+++ b/testapps/jarCheckTests1/app/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">MyActivity</string>
+</resources>
diff --git a/testapps/jarCheckTests1/app/src/com/android/tests/projectwithsupport/MyActivity.java b/testapps/jarCheckTests1/app/src/com/android/tests/projectwithsupport/MyActivity.java
new file mode 100644
index 000000000..c06583970
--- /dev/null
+++ b/testapps/jarCheckTests1/app/src/com/android/tests/projectwithsupport/MyActivity.java
@@ -0,0 +1,15 @@
+package com.android.tests.projectwithsupport;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class MyActivity extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+}
diff --git a/testapps/jarCheckTests1/lib1/.classpath b/testapps/jarCheckTests1/lib1/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/jarCheckTests1/lib1/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/jarCheckTests1/lib1/.project b/testapps/jarCheckTests1/lib1/.project
new file mode 100644
index 000000000..f5f00588b
--- /dev/null
+++ b/testapps/jarCheckTests1/lib1/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>jarCheckTests1-lib1</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/jarCheckTests1/lib1/AndroidManifest.xml b/testapps/jarCheckTests1/lib1/AndroidManifest.xml
new file mode 100644
index 000000000..a634bdb74
--- /dev/null
+++ b/testapps/jarCheckTests1/lib1/AndroidManifest.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.libwithsupport"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:label="@string/app_name">
+ <activity android:name=".MyActivity"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+</manifest>
diff --git a/testapps/jarCheckTests1/lib1/ant.properties b/testapps/jarCheckTests1/lib1/ant.properties
new file mode 100644
index 000000000..ee52d86d9
--- /dev/null
+++ b/testapps/jarCheckTests1/lib1/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked in Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/jarCheckTests1/lib1/build.xml b/testapps/jarCheckTests1/lib1/build.xml
new file mode 100644
index 000000000..772f42249
--- /dev/null
+++ b/testapps/jarCheckTests1/lib1/build.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="basicLibWithSupport" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
+ unless="sdk.dir"
+ />
+
+
+<!-- extension targets. Uncomment the ones where you want to do custom work
+ in between standard targets -->
+<!--
+ <target name="-pre-build">
+ </target>
+ <target name="-pre-compile">
+ </target>
+
+ /* This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir} */
+ <target name="-post-compile">
+ </target>
+-->
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/jarCheckTests1/lib1/libs/android-support-v4.jar b/testapps/jarCheckTests1/lib1/libs/android-support-v4.jar
new file mode 100644
index 000000000..d006198e6
--- /dev/null
+++ b/testapps/jarCheckTests1/lib1/libs/android-support-v4.jar
Binary files differ
diff --git a/testapps/jarCheckTests1/lib1/proguard-project.txt b/testapps/jarCheckTests1/lib1/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/jarCheckTests1/lib1/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/jarCheckTests1/lib1/project.properties b/testapps/jarCheckTests1/lib1/project.properties
new file mode 100644
index 000000000..23d80c4e4
--- /dev/null
+++ b/testapps/jarCheckTests1/lib1/project.properties
@@ -0,0 +1,13 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-15
+android.library=true
+
diff --git a/testapps/jarCheckTests1/lib1/res/layout/main.xml b/testapps/jarCheckTests1/lib1/res/layout/main.xml
new file mode 100644
index 000000000..7fe5dceb2
--- /dev/null
+++ b/testapps/jarCheckTests1/lib1/res/layout/main.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, MyActivity"
+ />
+</LinearLayout>
+
diff --git a/testapps/jarCheckTests1/lib1/res/values/strings.xml b/testapps/jarCheckTests1/lib1/res/values/strings.xml
new file mode 100644
index 000000000..3fa203afd
--- /dev/null
+++ b/testapps/jarCheckTests1/lib1/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">MyActivity</string>
+</resources>
diff --git a/testapps/jarCheckTests1/lib1/src/com/android/tests/libwithsupport/MyActivity.java b/testapps/jarCheckTests1/lib1/src/com/android/tests/libwithsupport/MyActivity.java
new file mode 100644
index 000000000..2c316ca67
--- /dev/null
+++ b/testapps/jarCheckTests1/lib1/src/com/android/tests/libwithsupport/MyActivity.java
@@ -0,0 +1,15 @@
+package com.android.tests.libwithsupport;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class MyActivity extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+}
diff --git a/testapps/jarCheckTests1/lib2/.classpath b/testapps/jarCheckTests1/lib2/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/jarCheckTests1/lib2/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/jarCheckTests1/lib2/.project b/testapps/jarCheckTests1/lib2/.project
new file mode 100644
index 000000000..1d49c52e7
--- /dev/null
+++ b/testapps/jarCheckTests1/lib2/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>jarCheckTests1-lib2</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/jarCheckTests1/lib2/AndroidManifest.xml b/testapps/jarCheckTests1/lib2/AndroidManifest.xml
new file mode 100644
index 000000000..6fa91eb07
--- /dev/null
+++ b/testapps/jarCheckTests1/lib2/AndroidManifest.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.libwithsupport2"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:label="@string/app_name">
+ <activity android:name=".MyActivity"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+</manifest>
diff --git a/testapps/jarCheckTests1/lib2/ant.properties b/testapps/jarCheckTests1/lib2/ant.properties
new file mode 100644
index 000000000..ee52d86d9
--- /dev/null
+++ b/testapps/jarCheckTests1/lib2/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked in Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/jarCheckTests1/lib2/build.xml b/testapps/jarCheckTests1/lib2/build.xml
new file mode 100644
index 000000000..772f42249
--- /dev/null
+++ b/testapps/jarCheckTests1/lib2/build.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="basicLibWithSupport" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
+ unless="sdk.dir"
+ />
+
+
+<!-- extension targets. Uncomment the ones where you want to do custom work
+ in between standard targets -->
+<!--
+ <target name="-pre-build">
+ </target>
+ <target name="-pre-compile">
+ </target>
+
+ /* This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir} */
+ <target name="-post-compile">
+ </target>
+-->
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/jarCheckTests1/lib2/libs/android-support-v4.jar b/testapps/jarCheckTests1/lib2/libs/android-support-v4.jar
new file mode 100644
index 000000000..d006198e6
--- /dev/null
+++ b/testapps/jarCheckTests1/lib2/libs/android-support-v4.jar
Binary files differ
diff --git a/testapps/jarCheckTests1/lib2/proguard-project.txt b/testapps/jarCheckTests1/lib2/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/jarCheckTests1/lib2/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/jarCheckTests1/lib2/project.properties b/testapps/jarCheckTests1/lib2/project.properties
new file mode 100644
index 000000000..23d80c4e4
--- /dev/null
+++ b/testapps/jarCheckTests1/lib2/project.properties
@@ -0,0 +1,13 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-15
+android.library=true
+
diff --git a/testapps/jarCheckTests1/lib2/res/layout/main.xml b/testapps/jarCheckTests1/lib2/res/layout/main.xml
new file mode 100644
index 000000000..7fe5dceb2
--- /dev/null
+++ b/testapps/jarCheckTests1/lib2/res/layout/main.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, MyActivity"
+ />
+</LinearLayout>
+
diff --git a/testapps/jarCheckTests1/lib2/res/values/strings.xml b/testapps/jarCheckTests1/lib2/res/values/strings.xml
new file mode 100644
index 000000000..3fa203afd
--- /dev/null
+++ b/testapps/jarCheckTests1/lib2/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">MyActivity</string>
+</resources>
diff --git a/testapps/jarCheckTests1/lib2/src/com/android/tests/libwithsupport2/MyActivity.java b/testapps/jarCheckTests1/lib2/src/com/android/tests/libwithsupport2/MyActivity.java
new file mode 100644
index 000000000..fc97aa7f7
--- /dev/null
+++ b/testapps/jarCheckTests1/lib2/src/com/android/tests/libwithsupport2/MyActivity.java
@@ -0,0 +1,15 @@
+package com.android.tests.libwithsupport2;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class MyActivity extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+}
diff --git a/testapps/jarCheckTests2/FAIL b/testapps/jarCheckTests2/FAIL
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/jarCheckTests2/FAIL
diff --git a/testapps/jarCheckTests2/app/.classpath b/testapps/jarCheckTests2/app/.classpath
new file mode 100644
index 000000000..3f9691c5d
--- /dev/null
+++ b/testapps/jarCheckTests2/app/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/jarCheckTests2/app/.project b/testapps/jarCheckTests2/app/.project
new file mode 100644
index 000000000..fb6801ce6
--- /dev/null
+++ b/testapps/jarCheckTests2/app/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>jarCheckTests2-app</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/jarCheckTests2/app/AndroidManifest.xml b/testapps/jarCheckTests2/app/AndroidManifest.xml
new file mode 100644
index 000000000..ff41761b5
--- /dev/null
+++ b/testapps/jarCheckTests2/app/AndroidManifest.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.projectwithsupport"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:label="@string/app_name">
+ <activity android:name=".MyActivity"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+</manifest>
diff --git a/testapps/jarCheckTests2/app/ant.properties b/testapps/jarCheckTests2/app/ant.properties
new file mode 100644
index 000000000..ee52d86d9
--- /dev/null
+++ b/testapps/jarCheckTests2/app/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked in Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/jarCheckTests2/app/build.xml b/testapps/jarCheckTests2/app/build.xml
new file mode 100644
index 000000000..f3a3d91c9
--- /dev/null
+++ b/testapps/jarCheckTests2/app/build.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="basicProjectWithSupport" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
+ unless="sdk.dir"
+ />
+
+
+<!-- extension targets. Uncomment the ones where you want to do custom work
+ in between standard targets -->
+<!--
+ <target name="-pre-build">
+ </target>
+ <target name="-pre-compile">
+ </target>
+
+ /* This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir} */
+ <target name="-post-compile">
+ </target>
+-->
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/jarCheckTests2/app/libs/foo.txt b/testapps/jarCheckTests2/app/libs/foo.txt
new file mode 100644
index 000000000..fe0c85275
--- /dev/null
+++ b/testapps/jarCheckTests2/app/libs/foo.txt
@@ -0,0 +1 @@
+sdf \ No newline at end of file
diff --git a/testapps/jarCheckTests2/app/proguard-project.txt b/testapps/jarCheckTests2/app/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/jarCheckTests2/app/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/jarCheckTests2/app/project.properties b/testapps/jarCheckTests2/app/project.properties
new file mode 100644
index 000000000..1d28b5171
--- /dev/null
+++ b/testapps/jarCheckTests2/app/project.properties
@@ -0,0 +1,13 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-15
+android.library.reference.1=../lib1
+android.library.reference.2=../lib2
diff --git a/testapps/jarCheckTests2/app/res/layout/main.xml b/testapps/jarCheckTests2/app/res/layout/main.xml
new file mode 100644
index 000000000..7fe5dceb2
--- /dev/null
+++ b/testapps/jarCheckTests2/app/res/layout/main.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, MyActivity"
+ />
+</LinearLayout>
+
diff --git a/testapps/jarCheckTests2/app/res/values/strings.xml b/testapps/jarCheckTests2/app/res/values/strings.xml
new file mode 100644
index 000000000..3fa203afd
--- /dev/null
+++ b/testapps/jarCheckTests2/app/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">MyActivity</string>
+</resources>
diff --git a/testapps/jarCheckTests2/app/src/com/android/tests/projectwithsupport/MyActivity.java b/testapps/jarCheckTests2/app/src/com/android/tests/projectwithsupport/MyActivity.java
new file mode 100644
index 000000000..c06583970
--- /dev/null
+++ b/testapps/jarCheckTests2/app/src/com/android/tests/projectwithsupport/MyActivity.java
@@ -0,0 +1,15 @@
+package com.android.tests.projectwithsupport;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class MyActivity extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+}
diff --git a/testapps/jarCheckTests2/lib1/.classpath b/testapps/jarCheckTests2/lib1/.classpath
new file mode 100644
index 000000000..3f9691c5d
--- /dev/null
+++ b/testapps/jarCheckTests2/lib1/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/jarCheckTests2/lib1/.project b/testapps/jarCheckTests2/lib1/.project
new file mode 100644
index 000000000..467950fad
--- /dev/null
+++ b/testapps/jarCheckTests2/lib1/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>test2Lib1</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/jarCheckTests2/lib1/AndroidManifest.xml b/testapps/jarCheckTests2/lib1/AndroidManifest.xml
new file mode 100644
index 000000000..a634bdb74
--- /dev/null
+++ b/testapps/jarCheckTests2/lib1/AndroidManifest.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.libwithsupport"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:label="@string/app_name">
+ <activity android:name=".MyActivity"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+</manifest>
diff --git a/testapps/jarCheckTests2/lib1/ant.properties b/testapps/jarCheckTests2/lib1/ant.properties
new file mode 100644
index 000000000..ee52d86d9
--- /dev/null
+++ b/testapps/jarCheckTests2/lib1/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked in Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/jarCheckTests2/lib1/build.xml b/testapps/jarCheckTests2/lib1/build.xml
new file mode 100644
index 000000000..772f42249
--- /dev/null
+++ b/testapps/jarCheckTests2/lib1/build.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="basicLibWithSupport" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
+ unless="sdk.dir"
+ />
+
+
+<!-- extension targets. Uncomment the ones where you want to do custom work
+ in between standard targets -->
+<!--
+ <target name="-pre-build">
+ </target>
+ <target name="-pre-compile">
+ </target>
+
+ /* This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir} */
+ <target name="-post-compile">
+ </target>
+-->
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/jarCheckTests2/lib1/libs/android-support-v4.jar b/testapps/jarCheckTests2/lib1/libs/android-support-v4.jar
new file mode 100644
index 000000000..d006198e6
--- /dev/null
+++ b/testapps/jarCheckTests2/lib1/libs/android-support-v4.jar
Binary files differ
diff --git a/testapps/jarCheckTests2/lib1/proguard-project.txt b/testapps/jarCheckTests2/lib1/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/jarCheckTests2/lib1/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/jarCheckTests2/lib1/project.properties b/testapps/jarCheckTests2/lib1/project.properties
new file mode 100644
index 000000000..23d80c4e4
--- /dev/null
+++ b/testapps/jarCheckTests2/lib1/project.properties
@@ -0,0 +1,13 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-15
+android.library=true
+
diff --git a/testapps/jarCheckTests2/lib1/res/layout/main.xml b/testapps/jarCheckTests2/lib1/res/layout/main.xml
new file mode 100644
index 000000000..7fe5dceb2
--- /dev/null
+++ b/testapps/jarCheckTests2/lib1/res/layout/main.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, MyActivity"
+ />
+</LinearLayout>
+
diff --git a/testapps/jarCheckTests2/lib1/res/values/strings.xml b/testapps/jarCheckTests2/lib1/res/values/strings.xml
new file mode 100644
index 000000000..3fa203afd
--- /dev/null
+++ b/testapps/jarCheckTests2/lib1/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">MyActivity</string>
+</resources>
diff --git a/testapps/jarCheckTests2/lib1/src/com/android/tests/libwithsupport/MyActivity.java b/testapps/jarCheckTests2/lib1/src/com/android/tests/libwithsupport/MyActivity.java
new file mode 100644
index 000000000..2c316ca67
--- /dev/null
+++ b/testapps/jarCheckTests2/lib1/src/com/android/tests/libwithsupport/MyActivity.java
@@ -0,0 +1,15 @@
+package com.android.tests.libwithsupport;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class MyActivity extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+}
diff --git a/testapps/jarCheckTests2/lib2/.classpath b/testapps/jarCheckTests2/lib2/.classpath
new file mode 100644
index 000000000..3f9691c5d
--- /dev/null
+++ b/testapps/jarCheckTests2/lib2/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/jarCheckTests2/lib2/.project b/testapps/jarCheckTests2/lib2/.project
new file mode 100644
index 000000000..efeaaae2f
--- /dev/null
+++ b/testapps/jarCheckTests2/lib2/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>test2Lib2</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/jarCheckTests2/lib2/AndroidManifest.xml b/testapps/jarCheckTests2/lib2/AndroidManifest.xml
new file mode 100644
index 000000000..6fa91eb07
--- /dev/null
+++ b/testapps/jarCheckTests2/lib2/AndroidManifest.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.libwithsupport2"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:label="@string/app_name">
+ <activity android:name=".MyActivity"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+</manifest>
diff --git a/testapps/jarCheckTests2/lib2/ant.properties b/testapps/jarCheckTests2/lib2/ant.properties
new file mode 100644
index 000000000..ee52d86d9
--- /dev/null
+++ b/testapps/jarCheckTests2/lib2/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked in Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/jarCheckTests2/lib2/build.xml b/testapps/jarCheckTests2/lib2/build.xml
new file mode 100644
index 000000000..772f42249
--- /dev/null
+++ b/testapps/jarCheckTests2/lib2/build.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="basicLibWithSupport" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
+ unless="sdk.dir"
+ />
+
+
+<!-- extension targets. Uncomment the ones where you want to do custom work
+ in between standard targets -->
+<!--
+ <target name="-pre-build">
+ </target>
+ <target name="-pre-compile">
+ </target>
+
+ /* This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir} */
+ <target name="-post-compile">
+ </target>
+-->
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/jarCheckTests2/lib2/libs/android-support-v4.jar b/testapps/jarCheckTests2/lib2/libs/android-support-v4.jar
new file mode 100644
index 000000000..1e9071855
--- /dev/null
+++ b/testapps/jarCheckTests2/lib2/libs/android-support-v4.jar
Binary files differ
diff --git a/testapps/jarCheckTests2/lib2/proguard-project.txt b/testapps/jarCheckTests2/lib2/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/jarCheckTests2/lib2/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/jarCheckTests2/lib2/project.properties b/testapps/jarCheckTests2/lib2/project.properties
new file mode 100644
index 000000000..23d80c4e4
--- /dev/null
+++ b/testapps/jarCheckTests2/lib2/project.properties
@@ -0,0 +1,13 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-15
+android.library=true
+
diff --git a/testapps/jarCheckTests2/lib2/res/layout/main.xml b/testapps/jarCheckTests2/lib2/res/layout/main.xml
new file mode 100644
index 000000000..7fe5dceb2
--- /dev/null
+++ b/testapps/jarCheckTests2/lib2/res/layout/main.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, MyActivity"
+ />
+</LinearLayout>
+
diff --git a/testapps/jarCheckTests2/lib2/res/values/strings.xml b/testapps/jarCheckTests2/lib2/res/values/strings.xml
new file mode 100644
index 000000000..3fa203afd
--- /dev/null
+++ b/testapps/jarCheckTests2/lib2/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">MyActivity</string>
+</resources>
diff --git a/testapps/jarCheckTests2/lib2/src/com/android/tests/libwithsupport2/MyActivity.java b/testapps/jarCheckTests2/lib2/src/com/android/tests/libwithsupport2/MyActivity.java
new file mode 100644
index 000000000..fc97aa7f7
--- /dev/null
+++ b/testapps/jarCheckTests2/lib2/src/com/android/tests/libwithsupport2/MyActivity.java
@@ -0,0 +1,15 @@
+package com.android.tests.libwithsupport2;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class MyActivity extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+}
diff --git a/testapps/jarCheckTests3/SUCCESS b/testapps/jarCheckTests3/SUCCESS
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/jarCheckTests3/SUCCESS
diff --git a/testapps/jarCheckTests3/app/.classpath b/testapps/jarCheckTests3/app/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/jarCheckTests3/app/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/jarCheckTests3/app/.project b/testapps/jarCheckTests3/app/.project
new file mode 100644
index 000000000..f2075af3e
--- /dev/null
+++ b/testapps/jarCheckTests3/app/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>jarCheckTests3-app</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/jarCheckTests3/app/AndroidManifest.xml b/testapps/jarCheckTests3/app/AndroidManifest.xml
new file mode 100644
index 000000000..ff41761b5
--- /dev/null
+++ b/testapps/jarCheckTests3/app/AndroidManifest.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.projectwithsupport"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:label="@string/app_name">
+ <activity android:name=".MyActivity"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+</manifest>
diff --git a/testapps/jarCheckTests3/app/ant.properties b/testapps/jarCheckTests3/app/ant.properties
new file mode 100644
index 000000000..ee52d86d9
--- /dev/null
+++ b/testapps/jarCheckTests3/app/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked in Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/jarCheckTests3/app/build.xml b/testapps/jarCheckTests3/app/build.xml
new file mode 100644
index 000000000..f3a3d91c9
--- /dev/null
+++ b/testapps/jarCheckTests3/app/build.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="basicProjectWithSupport" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
+ unless="sdk.dir"
+ />
+
+
+<!-- extension targets. Uncomment the ones where you want to do custom work
+ in between standard targets -->
+<!--
+ <target name="-pre-build">
+ </target>
+ <target name="-pre-compile">
+ </target>
+
+ /* This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir} */
+ <target name="-post-compile">
+ </target>
+-->
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/jarCheckTests3/app/libs/foo.txt b/testapps/jarCheckTests3/app/libs/foo.txt
new file mode 100644
index 000000000..fe0c85275
--- /dev/null
+++ b/testapps/jarCheckTests3/app/libs/foo.txt
@@ -0,0 +1 @@
+sdf \ No newline at end of file
diff --git a/testapps/jarCheckTests3/app/proguard-project.txt b/testapps/jarCheckTests3/app/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/jarCheckTests3/app/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/jarCheckTests3/app/project.properties b/testapps/jarCheckTests3/app/project.properties
new file mode 100644
index 000000000..1d28b5171
--- /dev/null
+++ b/testapps/jarCheckTests3/app/project.properties
@@ -0,0 +1,13 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-15
+android.library.reference.1=../lib1
+android.library.reference.2=../lib2
diff --git a/testapps/jarCheckTests3/app/res/layout/main.xml b/testapps/jarCheckTests3/app/res/layout/main.xml
new file mode 100644
index 000000000..7fe5dceb2
--- /dev/null
+++ b/testapps/jarCheckTests3/app/res/layout/main.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, MyActivity"
+ />
+</LinearLayout>
+
diff --git a/testapps/jarCheckTests3/app/res/values/strings.xml b/testapps/jarCheckTests3/app/res/values/strings.xml
new file mode 100644
index 000000000..3fa203afd
--- /dev/null
+++ b/testapps/jarCheckTests3/app/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">MyActivity</string>
+</resources>
diff --git a/testapps/jarCheckTests3/app/src/com/android/tests/projectwithsupport/MyActivity.java b/testapps/jarCheckTests3/app/src/com/android/tests/projectwithsupport/MyActivity.java
new file mode 100644
index 000000000..c06583970
--- /dev/null
+++ b/testapps/jarCheckTests3/app/src/com/android/tests/projectwithsupport/MyActivity.java
@@ -0,0 +1,15 @@
+package com.android.tests.projectwithsupport;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class MyActivity extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+}
diff --git a/testapps/jarCheckTests3/lib1/.classpath b/testapps/jarCheckTests3/lib1/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/jarCheckTests3/lib1/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/jarCheckTests3/lib1/.project b/testapps/jarCheckTests3/lib1/.project
new file mode 100644
index 000000000..14ffc89ae
--- /dev/null
+++ b/testapps/jarCheckTests3/lib1/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>jarCheckTests3-lib1</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/jarCheckTests3/lib1/AndroidManifest.xml b/testapps/jarCheckTests3/lib1/AndroidManifest.xml
new file mode 100644
index 000000000..a634bdb74
--- /dev/null
+++ b/testapps/jarCheckTests3/lib1/AndroidManifest.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.libwithsupport"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:label="@string/app_name">
+ <activity android:name=".MyActivity"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+</manifest>
diff --git a/testapps/jarCheckTests3/lib1/ant.properties b/testapps/jarCheckTests3/lib1/ant.properties
new file mode 100644
index 000000000..ee52d86d9
--- /dev/null
+++ b/testapps/jarCheckTests3/lib1/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked in Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/jarCheckTests3/lib1/build.xml b/testapps/jarCheckTests3/lib1/build.xml
new file mode 100644
index 000000000..772f42249
--- /dev/null
+++ b/testapps/jarCheckTests3/lib1/build.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="basicLibWithSupport" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
+ unless="sdk.dir"
+ />
+
+
+<!-- extension targets. Uncomment the ones where you want to do custom work
+ in between standard targets -->
+<!--
+ <target name="-pre-build">
+ </target>
+ <target name="-pre-compile">
+ </target>
+
+ /* This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir} */
+ <target name="-post-compile">
+ </target>
+-->
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/jarCheckTests3/lib1/libs/android-support-v4.jar b/testapps/jarCheckTests3/lib1/libs/android-support-v4.jar
new file mode 100644
index 000000000..d006198e6
--- /dev/null
+++ b/testapps/jarCheckTests3/lib1/libs/android-support-v4.jar
Binary files differ
diff --git a/testapps/jarCheckTests3/lib1/proguard-project.txt b/testapps/jarCheckTests3/lib1/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/jarCheckTests3/lib1/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/jarCheckTests3/lib1/project.properties b/testapps/jarCheckTests3/lib1/project.properties
new file mode 100644
index 000000000..23d80c4e4
--- /dev/null
+++ b/testapps/jarCheckTests3/lib1/project.properties
@@ -0,0 +1,13 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-15
+android.library=true
+
diff --git a/testapps/jarCheckTests3/lib1/res/layout/main.xml b/testapps/jarCheckTests3/lib1/res/layout/main.xml
new file mode 100644
index 000000000..7fe5dceb2
--- /dev/null
+++ b/testapps/jarCheckTests3/lib1/res/layout/main.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, MyActivity"
+ />
+</LinearLayout>
+
diff --git a/testapps/jarCheckTests3/lib1/res/values/strings.xml b/testapps/jarCheckTests3/lib1/res/values/strings.xml
new file mode 100644
index 000000000..3fa203afd
--- /dev/null
+++ b/testapps/jarCheckTests3/lib1/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">MyActivity</string>
+</resources>
diff --git a/testapps/jarCheckTests3/lib1/src/com/android/tests/libwithsupport/MyActivity.java b/testapps/jarCheckTests3/lib1/src/com/android/tests/libwithsupport/MyActivity.java
new file mode 100644
index 000000000..2c316ca67
--- /dev/null
+++ b/testapps/jarCheckTests3/lib1/src/com/android/tests/libwithsupport/MyActivity.java
@@ -0,0 +1,15 @@
+package com.android.tests.libwithsupport;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class MyActivity extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+}
diff --git a/testapps/jarCheckTests3/lib2/.classpath b/testapps/jarCheckTests3/lib2/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/jarCheckTests3/lib2/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/jarCheckTests3/lib2/.project b/testapps/jarCheckTests3/lib2/.project
new file mode 100644
index 000000000..1441449b4
--- /dev/null
+++ b/testapps/jarCheckTests3/lib2/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>jarCheckTests3-lib2</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/jarCheckTests3/lib2/AndroidManifest.xml b/testapps/jarCheckTests3/lib2/AndroidManifest.xml
new file mode 100644
index 000000000..6fa91eb07
--- /dev/null
+++ b/testapps/jarCheckTests3/lib2/AndroidManifest.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.libwithsupport2"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:label="@string/app_name">
+ <activity android:name=".MyActivity"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+</manifest>
diff --git a/testapps/jarCheckTests3/lib2/ant.properties b/testapps/jarCheckTests3/lib2/ant.properties
new file mode 100644
index 000000000..ee52d86d9
--- /dev/null
+++ b/testapps/jarCheckTests3/lib2/ant.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked in Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/jarCheckTests3/lib2/build.xml b/testapps/jarCheckTests3/lib2/build.xml
new file mode 100644
index 000000000..772f42249
--- /dev/null
+++ b/testapps/jarCheckTests3/lib2/build.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="basicLibWithSupport" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
+ unless="sdk.dir"
+ />
+
+
+<!-- extension targets. Uncomment the ones where you want to do custom work
+ in between standard targets -->
+<!--
+ <target name="-pre-build">
+ </target>
+ <target name="-pre-compile">
+ </target>
+
+ /* This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir} */
+ <target name="-post-compile">
+ </target>
+-->
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/jarCheckTests3/lib2/libs/android-support-v13.jar b/testapps/jarCheckTests3/lib2/libs/android-support-v13.jar
new file mode 100644
index 000000000..c9354ec50
--- /dev/null
+++ b/testapps/jarCheckTests3/lib2/libs/android-support-v13.jar
Binary files differ
diff --git a/testapps/jarCheckTests3/lib2/proguard-project.txt b/testapps/jarCheckTests3/lib2/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/jarCheckTests3/lib2/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/jarCheckTests3/lib2/project.properties b/testapps/jarCheckTests3/lib2/project.properties
new file mode 100644
index 000000000..23d80c4e4
--- /dev/null
+++ b/testapps/jarCheckTests3/lib2/project.properties
@@ -0,0 +1,13 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-15
+android.library=true
+
diff --git a/testapps/jarCheckTests3/lib2/res/layout/main.xml b/testapps/jarCheckTests3/lib2/res/layout/main.xml
new file mode 100644
index 000000000..7fe5dceb2
--- /dev/null
+++ b/testapps/jarCheckTests3/lib2/res/layout/main.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, MyActivity"
+ />
+</LinearLayout>
+
diff --git a/testapps/jarCheckTests3/lib2/res/values/strings.xml b/testapps/jarCheckTests3/lib2/res/values/strings.xml
new file mode 100644
index 000000000..3fa203afd
--- /dev/null
+++ b/testapps/jarCheckTests3/lib2/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">MyActivity</string>
+</resources>
diff --git a/testapps/jarCheckTests3/lib2/src/com/android/tests/libwithsupport2/MyActivity.java b/testapps/jarCheckTests3/lib2/src/com/android/tests/libwithsupport2/MyActivity.java
new file mode 100644
index 000000000..fc97aa7f7
--- /dev/null
+++ b/testapps/jarCheckTests3/lib2/src/com/android/tests/libwithsupport2/MyActivity.java
@@ -0,0 +1,15 @@
+package com.android.tests.libwithsupport2;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class MyActivity extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+}
diff --git a/testapps/javaProjectTest/COMPILE_AND_RUN b/testapps/javaProjectTest/COMPILE_AND_RUN
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/javaProjectTest/COMPILE_AND_RUN
diff --git a/testapps/javaProjectTest/ECLIPSEONLY b/testapps/javaProjectTest/ECLIPSEONLY
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/javaProjectTest/ECLIPSEONLY
diff --git a/testapps/javaProjectTest/README.txt b/testapps/javaProjectTest/README.txt
new file mode 100644
index 000000000..2035b7eaf
--- /dev/null
+++ b/testapps/javaProjectTest/README.txt
@@ -0,0 +1,5 @@
+This test requires a workspace setup:
+
+- Create User Library called "USERLIBTEST2"
+- Add to this library the jar located in lib1/jars/basicJar3.jar
+- App should compile, and deploy on device and UI show show SUCCESS \ No newline at end of file
diff --git a/testapps/javaProjectTest/SUCCESS b/testapps/javaProjectTest/SUCCESS
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/javaProjectTest/SUCCESS
diff --git a/testapps/javaProjectTest/app/.classpath b/testapps/javaProjectTest/app/.classpath
new file mode 100644
index 000000000..af6448074
--- /dev/null
+++ b/testapps/javaProjectTest/app/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry combineaccessrules="false" exported="true" kind="src" path="/javaProjectTest-javaProject3"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/javaProjectTest/app/.project b/testapps/javaProjectTest/app/.project
new file mode 100644
index 000000000..187fb0e14
--- /dev/null
+++ b/testapps/javaProjectTest/app/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>javaProjectTest-app</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/javaProjectTest/app/AndroidManifest.xml b/testapps/javaProjectTest/app/AndroidManifest.xml
new file mode 100644
index 000000000..36ec8fb11
--- /dev/null
+++ b/testapps/javaProjectTest/app/AndroidManifest.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.javaprojecttest.app"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <uses-sdk android:minSdkVersion="15" />
+
+ <application
+ android:icon="@drawable/icon"
+ android:label="@string/app_name" >
+ <activity
+ android:name="com.android.tests.javaprojecttest.app.Main"
+ android:label="@string/app_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/javaProjectTest/app/proguard-project.txt b/testapps/javaProjectTest/app/proguard-project.txt
new file mode 100644
index 000000000..349f80f9c
--- /dev/null
+++ b/testapps/javaProjectTest/app/proguard-project.txt
@@ -0,0 +1,22 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+-adaptclassstrings \ No newline at end of file
diff --git a/testapps/javaProjectTest/app/project.properties b/testapps/javaProjectTest/app/project.properties
new file mode 100644
index 000000000..9384511de
--- /dev/null
+++ b/testapps/javaProjectTest/app/project.properties
@@ -0,0 +1,16 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library.reference.1=../lib1
+android.library.reference.2=../lib2
diff --git a/testapps/javaProjectTest/app/res/drawable-hdpi/icon.png b/testapps/javaProjectTest/app/res/drawable-hdpi/icon.png
new file mode 100644
index 000000000..8074c4c57
--- /dev/null
+++ b/testapps/javaProjectTest/app/res/drawable-hdpi/icon.png
Binary files differ
diff --git a/testapps/javaProjectTest/app/res/drawable-ldpi/icon.png b/testapps/javaProjectTest/app/res/drawable-ldpi/icon.png
new file mode 100644
index 000000000..1095584ec
--- /dev/null
+++ b/testapps/javaProjectTest/app/res/drawable-ldpi/icon.png
Binary files differ
diff --git a/testapps/javaProjectTest/app/res/drawable-mdpi/icon.png b/testapps/javaProjectTest/app/res/drawable-mdpi/icon.png
new file mode 100644
index 000000000..a07c69fa5
--- /dev/null
+++ b/testapps/javaProjectTest/app/res/drawable-mdpi/icon.png
Binary files differ
diff --git a/testapps/javaProjectTest/app/res/layout/main.xml b/testapps/javaProjectTest/app/res/layout/main.xml
new file mode 100644
index 000000000..29accb3a5
--- /dev/null
+++ b/testapps/javaProjectTest/app/res/layout/main.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical" >
+
+ <TextView
+ android:id="@+id/app"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+ <TextView
+ android:id="@+id/lib1"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+ <TextView
+ android:id="@+id/lib2"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+ <TextView
+ android:id="@+id/javaProject1"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+ <TextView
+ android:id="@+id/javaProject2"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+ <TextView
+ android:id="@+id/javaProject3"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+ <TextView
+ android:id="@+id/basicJar"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+ <TextView
+ android:id="@+id/basicJar2"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+ <TextView
+ android:id="@+id/basicJar3"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/testapps/javaProjectTest/app/res/values/strings.xml b/testapps/javaProjectTest/app/res/values/strings.xml
new file mode 100644
index 000000000..705a56504
--- /dev/null
+++ b/testapps/javaProjectTest/app/res/values/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="app_name">javaProjectTest-app</string>
+
+</resources> \ No newline at end of file
diff --git a/testapps/javaProjectTest/app/src/com/android/tests/javaprojecttest/app/App.java b/testapps/javaProjectTest/app/src/com/android/tests/javaprojecttest/app/App.java
new file mode 100644
index 000000000..aa5d1571f
--- /dev/null
+++ b/testapps/javaProjectTest/app/src/com/android/tests/javaprojecttest/app/App.java
@@ -0,0 +1,33 @@
+package com.android.tests.javaprojecttest.app;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class App {
+
+ public static String getContent() {
+ InputStream input = App.class.getResourceAsStream("App.txt");
+ if (input == null) {
+ return "FAILED TO FIND App.txt";
+ }
+
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
+
+ return reader.readLine();
+ } catch (IOException e) {
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ return "FAILED TO READ CONTENT";
+ }
+}
diff --git a/testapps/javaProjectTest/app/src/com/android/tests/javaprojecttest/app/App.txt b/testapps/javaProjectTest/app/src/com/android/tests/javaprojecttest/app/App.txt
new file mode 100644
index 000000000..d488bc465
--- /dev/null
+++ b/testapps/javaProjectTest/app/src/com/android/tests/javaprojecttest/app/App.txt
@@ -0,0 +1 @@
+SUCCESS from App \ No newline at end of file
diff --git a/testapps/javaProjectTest/app/src/com/android/tests/javaprojecttest/app/Main.java b/testapps/javaProjectTest/app/src/com/android/tests/javaprojecttest/app/Main.java
new file mode 100644
index 000000000..51b322862
--- /dev/null
+++ b/testapps/javaProjectTest/app/src/com/android/tests/javaprojecttest/app/Main.java
@@ -0,0 +1,51 @@
+package com.android.tests.javaprojecttest.app;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.widget.TextView;
+
+import com.android.tests.basicjar.BasicJar;
+import com.android.tests.basicjar2.BasicJar2;
+import com.android.tests.basicjar3.BasicJar3;
+import com.android.tests.javaprojecttest.javaproject.JavaProject;
+import com.android.tests.javaprojecttest.javaproject2.JavaProject2;
+import com.android.tests.javaprojecttest.javaproject3.JavaProject3;
+import com.android.tests.javaprojecttest.lib1.Lib1;
+import com.android.tests.javaprojecttest.lib2.Lib2;
+
+public class Main extends Activity {
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+
+ TextView tv = (TextView) findViewById(R.id.app);
+ tv.setText("App: " + App.getContent());
+
+ tv = (TextView) findViewById(R.id.lib1);
+ tv.setText("Lib1: " + Lib1.getContent());
+
+ tv = (TextView) findViewById(R.id.lib2);
+ tv.setText("Lib2: " + Lib2.getContent());
+
+ tv = (TextView) findViewById(R.id.javaProject1);
+ tv.setText("JavaProject: " + JavaProject.getContent());
+
+ tv = (TextView) findViewById(R.id.javaProject2);
+ tv.setText("JavaProject2: " + JavaProject2.getContent());
+
+ tv = (TextView) findViewById(R.id.javaProject3);
+ tv.setText("JavaProject3: " + JavaProject3.getContent());
+
+ tv = (TextView) findViewById(R.id.basicJar);
+ tv.setText("BasicJar: " + BasicJar.getContent());
+
+ tv = (TextView) findViewById(R.id.basicJar2);
+ tv.setText("BasicJar2: " + BasicJar2.getContent());
+
+ tv = (TextView) findViewById(R.id.basicJar3);
+ tv.setText("BasicJar3: " + BasicJar3.getContent());
+
+ }
+} \ No newline at end of file
diff --git a/testapps/javaProjectTest/javaProject/.classpath b/testapps/javaProjectTest/javaProject/.classpath
new file mode 100644
index 000000000..f9167204b
--- /dev/null
+++ b/testapps/javaProjectTest/javaProject/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry combineaccessrules="false" exported="true" kind="src" path="/javaProjectTest-javaProject2"/>
+ <classpathentry kind="lib" path="libs/basicJar.jar"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testapps/javaProjectTest/javaProject/.project b/testapps/javaProjectTest/javaProject/.project
new file mode 100644
index 000000000..8d99b08e5
--- /dev/null
+++ b/testapps/javaProjectTest/javaProject/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>javaProjectTest-javaProject</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/javaProjectTest/javaProject/libs/basicJar.jar b/testapps/javaProjectTest/javaProject/libs/basicJar.jar
new file mode 100644
index 000000000..319ed0245
--- /dev/null
+++ b/testapps/javaProjectTest/javaProject/libs/basicJar.jar
Binary files differ
diff --git a/testapps/javaProjectTest/javaProject/src/com/android/tests/javaprojecttest/javaproject/JavaProject.java b/testapps/javaProjectTest/javaProject/src/com/android/tests/javaprojecttest/javaproject/JavaProject.java
new file mode 100644
index 000000000..fe0e8824e
--- /dev/null
+++ b/testapps/javaProjectTest/javaProject/src/com/android/tests/javaprojecttest/javaproject/JavaProject.java
@@ -0,0 +1,33 @@
+package com.android.tests.javaprojecttest.javaproject;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class JavaProject {
+
+ public static String getContent() {
+ InputStream input = JavaProject.class.getResourceAsStream("/com/android/tests/javaprojecttest/javaproject/JavaProject.txt");
+ if (input == null) {
+ return "FAILED TO FIND JavaProject.txt";
+ }
+
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
+
+ return reader.readLine();
+ } catch (IOException e) {
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ return "FAILED TO READ CONTENT";
+ }
+}
diff --git a/testapps/javaProjectTest/javaProject/src/com/android/tests/javaprojecttest/javaproject/JavaProject.txt b/testapps/javaProjectTest/javaProject/src/com/android/tests/javaprojecttest/javaproject/JavaProject.txt
new file mode 100644
index 000000000..5742eaaf9
--- /dev/null
+++ b/testapps/javaProjectTest/javaProject/src/com/android/tests/javaprojecttest/javaproject/JavaProject.txt
@@ -0,0 +1 @@
+SUCCESS from javaProject \ No newline at end of file
diff --git a/testapps/javaProjectTest/javaProject2/.classpath b/testapps/javaProjectTest/javaProject2/.classpath
new file mode 100644
index 000000000..bd5c4bf9a
--- /dev/null
+++ b/testapps/javaProjectTest/javaProject2/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry exported="true" kind="lib" path="libs/basicJar.jar"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testapps/javaProjectTest/javaProject2/.project b/testapps/javaProjectTest/javaProject2/.project
new file mode 100644
index 000000000..70658ffa7
--- /dev/null
+++ b/testapps/javaProjectTest/javaProject2/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>javaProjectTest-javaProject2</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/javaProjectTest/javaProject2/libs/basicJar.jar b/testapps/javaProjectTest/javaProject2/libs/basicJar.jar
new file mode 100644
index 000000000..319ed0245
--- /dev/null
+++ b/testapps/javaProjectTest/javaProject2/libs/basicJar.jar
Binary files differ
diff --git a/testapps/javaProjectTest/javaProject2/libs/basicJar_not_in_classpath.jar b/testapps/javaProjectTest/javaProject2/libs/basicJar_not_in_classpath.jar
new file mode 100644
index 000000000..a81b92978
--- /dev/null
+++ b/testapps/javaProjectTest/javaProject2/libs/basicJar_not_in_classpath.jar
Binary files differ
diff --git a/testapps/javaProjectTest/javaProject2/src/com/android/tests/javaprojecttest/javaproject2/JavaProject2.java b/testapps/javaProjectTest/javaProject2/src/com/android/tests/javaprojecttest/javaproject2/JavaProject2.java
new file mode 100644
index 000000000..5324fc193
--- /dev/null
+++ b/testapps/javaProjectTest/javaProject2/src/com/android/tests/javaprojecttest/javaproject2/JavaProject2.java
@@ -0,0 +1,33 @@
+package com.android.tests.javaprojecttest.javaproject2;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class JavaProject2 {
+
+ public static String getContent() {
+ InputStream input = JavaProject2.class.getResourceAsStream("/com/android/tests/javaprojecttest/javaproject2/JavaProject2.txt");
+ if (input == null) {
+ return "FAILED TO FIND JavaProject2.txt";
+ }
+
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
+
+ return reader.readLine();
+ } catch (IOException e) {
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ return "FAILED TO READ CONTENT";
+ }
+}
diff --git a/testapps/javaProjectTest/javaProject2/src/com/android/tests/javaprojecttest/javaproject2/JavaProject2.txt b/testapps/javaProjectTest/javaProject2/src/com/android/tests/javaprojecttest/javaproject2/JavaProject2.txt
new file mode 100644
index 000000000..6ab43f7db
--- /dev/null
+++ b/testapps/javaProjectTest/javaProject2/src/com/android/tests/javaprojecttest/javaproject2/JavaProject2.txt
@@ -0,0 +1 @@
+SUCCESS from javaProject2 \ No newline at end of file
diff --git a/testapps/javaProjectTest/javaProject3/.classpath b/testapps/javaProjectTest/javaProject3/.classpath
new file mode 100644
index 000000000..3ded3045b
--- /dev/null
+++ b/testapps/javaProjectTest/javaProject3/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry exported="true" kind="lib" path="libs/basicJar2.jar" sourcepath="/Volumes/Android/int/master/sdk/testapps/basicJar2/src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testapps/javaProjectTest/javaProject3/.project b/testapps/javaProjectTest/javaProject3/.project
new file mode 100644
index 000000000..b3b323709
--- /dev/null
+++ b/testapps/javaProjectTest/javaProject3/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>javaProjectTest-javaProject3</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/javaProjectTest/javaProject3/libs/basicJar2.jar b/testapps/javaProjectTest/javaProject3/libs/basicJar2.jar
new file mode 100644
index 000000000..5af7cf072
--- /dev/null
+++ b/testapps/javaProjectTest/javaProject3/libs/basicJar2.jar
Binary files differ
diff --git a/testapps/javaProjectTest/javaProject3/src/com/android/tests/javaprojecttest/javaproject3/JavaProject3.java b/testapps/javaProjectTest/javaProject3/src/com/android/tests/javaprojecttest/javaproject3/JavaProject3.java
new file mode 100644
index 000000000..bafe0828b
--- /dev/null
+++ b/testapps/javaProjectTest/javaProject3/src/com/android/tests/javaprojecttest/javaproject3/JavaProject3.java
@@ -0,0 +1,33 @@
+package com.android.tests.javaprojecttest.javaproject3;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class JavaProject3 {
+
+ public static String getContent() {
+ InputStream input = JavaProject3.class.getResourceAsStream("/com/android/tests/javaprojecttest/javaproject3/JavaProject3.txt");
+ if (input == null) {
+ return "FAILED TO FIND JavaProject3.txt";
+ }
+
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
+
+ return reader.readLine();
+ } catch (IOException e) {
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ return "FAILED TO READ CONTENT";
+ }
+}
diff --git a/testapps/javaProjectTest/javaProject3/src/com/android/tests/javaprojecttest/javaproject3/JavaProject3.txt b/testapps/javaProjectTest/javaProject3/src/com/android/tests/javaprojecttest/javaproject3/JavaProject3.txt
new file mode 100644
index 000000000..b47ec766d
--- /dev/null
+++ b/testapps/javaProjectTest/javaProject3/src/com/android/tests/javaprojecttest/javaproject3/JavaProject3.txt
@@ -0,0 +1 @@
+SUCCESS from javaProject3 \ No newline at end of file
diff --git a/testapps/javaProjectTest/lib1/.classpath b/testapps/javaProjectTest/lib1/.classpath
new file mode 100644
index 000000000..e609be11a
--- /dev/null
+++ b/testapps/javaProjectTest/lib1/.classpath
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry combineaccessrules="false" exported="true" kind="src" path="/javaProjectTest-javaProject"/>
+ <classpathentry exported="true" kind="con" path="org.eclipse.jdt.USER_LIBRARY/USERLIBTEST2"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/javaProjectTest/lib1/.project b/testapps/javaProjectTest/lib1/.project
new file mode 100644
index 000000000..cac8ac1a0
--- /dev/null
+++ b/testapps/javaProjectTest/lib1/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>javaProjectTest-Lib1</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/javaProjectTest/lib1/AndroidManifest.xml b/testapps/javaProjectTest/lib1/AndroidManifest.xml
new file mode 100644
index 000000000..c51696be6
--- /dev/null
+++ b/testapps/javaProjectTest/lib1/AndroidManifest.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.javaprojecttest.lib1"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <application
+ android:icon="@drawable/ic_launcher"
+ android:label="@string/app_name" >
+ <activity
+ android:name=".Main"
+ android:label="@string/app_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/javaProjectTest/lib1/jars/basicJar3.jar b/testapps/javaProjectTest/lib1/jars/basicJar3.jar
new file mode 100644
index 000000000..3fbf064a1
--- /dev/null
+++ b/testapps/javaProjectTest/lib1/jars/basicJar3.jar
Binary files differ
diff --git a/testapps/javaProjectTest/lib1/libs/android-support-v4.jar b/testapps/javaProjectTest/lib1/libs/android-support-v4.jar
new file mode 100644
index 000000000..d006198e6
--- /dev/null
+++ b/testapps/javaProjectTest/lib1/libs/android-support-v4.jar
Binary files differ
diff --git a/testapps/javaProjectTest/lib1/proguard-project.txt b/testapps/javaProjectTest/lib1/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/javaProjectTest/lib1/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/javaProjectTest/lib1/project.properties b/testapps/javaProjectTest/lib1/project.properties
new file mode 100644
index 000000000..36f15941e
--- /dev/null
+++ b/testapps/javaProjectTest/lib1/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library=true
diff --git a/testapps/javaProjectTest/lib1/res/drawable-hdpi/ic_launcher.png b/testapps/javaProjectTest/lib1/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 000000000..8074c4c57
--- /dev/null
+++ b/testapps/javaProjectTest/lib1/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/javaProjectTest/lib1/res/drawable-ldpi/ic_launcher.png b/testapps/javaProjectTest/lib1/res/drawable-ldpi/ic_launcher.png
new file mode 100644
index 000000000..1095584ec
--- /dev/null
+++ b/testapps/javaProjectTest/lib1/res/drawable-ldpi/ic_launcher.png
Binary files differ
diff --git a/testapps/javaProjectTest/lib1/res/drawable-mdpi/ic_launcher.png b/testapps/javaProjectTest/lib1/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 000000000..a07c69fa5
--- /dev/null
+++ b/testapps/javaProjectTest/lib1/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/javaProjectTest/lib1/res/layout/main.xml b/testapps/javaProjectTest/lib1/res/layout/main.xml
new file mode 100644
index 000000000..b79cddb17
--- /dev/null
+++ b/testapps/javaProjectTest/lib1/res/layout/main.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, Main"
+ />
+</LinearLayout>
+
diff --git a/testapps/javaProjectTest/lib1/res/values/strings.xml b/testapps/javaProjectTest/lib1/res/values/strings.xml
new file mode 100644
index 000000000..549e4ea50
--- /dev/null
+++ b/testapps/javaProjectTest/lib1/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Main</string>
+</resources>
diff --git a/testapps/javaProjectTest/lib1/src/com/android/tests/javaprojecttest/lib1/Lib1.java b/testapps/javaProjectTest/lib1/src/com/android/tests/javaprojecttest/lib1/Lib1.java
new file mode 100644
index 000000000..fe4a2a12b
--- /dev/null
+++ b/testapps/javaProjectTest/lib1/src/com/android/tests/javaprojecttest/lib1/Lib1.java
@@ -0,0 +1,33 @@
+package com.android.tests.javaprojecttest.lib1;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class Lib1 {
+
+ public static String getContent() {
+ InputStream input = Lib1.class.getResourceAsStream("Lib1.txt");
+ if (input == null) {
+ return "FAILED TO FIND Lib1.txt";
+ }
+
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
+
+ return reader.readLine();
+ } catch (IOException e) {
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ return "FAILED TO READ CONTENT";
+ }
+}
diff --git a/testapps/javaProjectTest/lib1/src/com/android/tests/javaprojecttest/lib1/Lib1.txt b/testapps/javaProjectTest/lib1/src/com/android/tests/javaprojecttest/lib1/Lib1.txt
new file mode 100644
index 000000000..b3e210d04
--- /dev/null
+++ b/testapps/javaProjectTest/lib1/src/com/android/tests/javaprojecttest/lib1/Lib1.txt
@@ -0,0 +1 @@
+SUCCESS from Lib1 \ No newline at end of file
diff --git a/testapps/javaProjectTest/lib1/src/com/android/tests/javaprojecttest/lib1/Main.java b/testapps/javaProjectTest/lib1/src/com/android/tests/javaprojecttest/lib1/Main.java
new file mode 100644
index 000000000..f09e1cd5f
--- /dev/null
+++ b/testapps/javaProjectTest/lib1/src/com/android/tests/javaprojecttest/lib1/Main.java
@@ -0,0 +1,15 @@
+package com.android.tests.javaprojecttest.lib1;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class Main extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+}
diff --git a/testapps/javaProjectTest/lib2/.classpath b/testapps/javaProjectTest/lib2/.classpath
new file mode 100644
index 000000000..3cdb2e00f
--- /dev/null
+++ b/testapps/javaProjectTest/lib2/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry combineaccessrules="false" exported="true" kind="src" path="/javaProjectTest-javaProject"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/javaProjectTest/lib2/.project b/testapps/javaProjectTest/lib2/.project
new file mode 100644
index 000000000..63d7a48d1
--- /dev/null
+++ b/testapps/javaProjectTest/lib2/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>javaProjectTest-Lib2</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/javaProjectTest/lib2/AndroidManifest.xml b/testapps/javaProjectTest/lib2/AndroidManifest.xml
new file mode 100644
index 000000000..10d4a001b
--- /dev/null
+++ b/testapps/javaProjectTest/lib2/AndroidManifest.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.javaprojecttest.lib2"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <application
+ android:icon="@drawable/ic_launcher"
+ android:label="@string/app_name" >
+ <activity
+ android:name="com.android.tests.javaprojecttest.lib2.Main"
+ android:label="@string/app_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/javaProjectTest/lib2/libs/android-support-v4.jar b/testapps/javaProjectTest/lib2/libs/android-support-v4.jar
new file mode 100644
index 000000000..d006198e6
--- /dev/null
+++ b/testapps/javaProjectTest/lib2/libs/android-support-v4.jar
Binary files differ
diff --git a/testapps/javaProjectTest/lib2/proguard-project.txt b/testapps/javaProjectTest/lib2/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/javaProjectTest/lib2/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/javaProjectTest/lib2/project.properties b/testapps/javaProjectTest/lib2/project.properties
new file mode 100644
index 000000000..36f15941e
--- /dev/null
+++ b/testapps/javaProjectTest/lib2/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library=true
diff --git a/testapps/javaProjectTest/lib2/res/drawable-hdpi/ic_launcher.png b/testapps/javaProjectTest/lib2/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 000000000..8074c4c57
--- /dev/null
+++ b/testapps/javaProjectTest/lib2/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/javaProjectTest/lib2/res/drawable-ldpi/ic_launcher.png b/testapps/javaProjectTest/lib2/res/drawable-ldpi/ic_launcher.png
new file mode 100644
index 000000000..1095584ec
--- /dev/null
+++ b/testapps/javaProjectTest/lib2/res/drawable-ldpi/ic_launcher.png
Binary files differ
diff --git a/testapps/javaProjectTest/lib2/res/drawable-mdpi/ic_launcher.png b/testapps/javaProjectTest/lib2/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 000000000..a07c69fa5
--- /dev/null
+++ b/testapps/javaProjectTest/lib2/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/javaProjectTest/lib2/res/layout/main.xml b/testapps/javaProjectTest/lib2/res/layout/main.xml
new file mode 100644
index 000000000..b79cddb17
--- /dev/null
+++ b/testapps/javaProjectTest/lib2/res/layout/main.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, Main"
+ />
+</LinearLayout>
+
diff --git a/testapps/javaProjectTest/lib2/res/values/strings.xml b/testapps/javaProjectTest/lib2/res/values/strings.xml
new file mode 100644
index 000000000..549e4ea50
--- /dev/null
+++ b/testapps/javaProjectTest/lib2/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Main</string>
+</resources>
diff --git a/testapps/javaProjectTest/lib2/src/com/android/tests/javaprojecttest/lib2/Lib2.java b/testapps/javaProjectTest/lib2/src/com/android/tests/javaprojecttest/lib2/Lib2.java
new file mode 100644
index 000000000..5831cb2d1
--- /dev/null
+++ b/testapps/javaProjectTest/lib2/src/com/android/tests/javaprojecttest/lib2/Lib2.java
@@ -0,0 +1,33 @@
+package com.android.tests.javaprojecttest.lib2;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class Lib2 {
+
+ public static String getContent() {
+ InputStream input = Lib2.class.getResourceAsStream("Lib2.txt");
+ if (input == null) {
+ return "FAILED TO FIND Lib2.txt";
+ }
+
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
+
+ return reader.readLine();
+ } catch (IOException e) {
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ return "FAILED TO READ CONTENT";
+ }
+}
diff --git a/testapps/javaProjectTest/lib2/src/com/android/tests/javaprojecttest/lib2/Lib2.txt b/testapps/javaProjectTest/lib2/src/com/android/tests/javaprojecttest/lib2/Lib2.txt
new file mode 100644
index 000000000..3ba8e357a
--- /dev/null
+++ b/testapps/javaProjectTest/lib2/src/com/android/tests/javaprojecttest/lib2/Lib2.txt
@@ -0,0 +1 @@
+SUCCESS from Lib2 \ No newline at end of file
diff --git a/testapps/javaProjectTest/lib2/src/com/android/tests/javaprojecttest/lib2/Main.java b/testapps/javaProjectTest/lib2/src/com/android/tests/javaprojecttest/lib2/Main.java
new file mode 100644
index 000000000..14598969a
--- /dev/null
+++ b/testapps/javaProjectTest/lib2/src/com/android/tests/javaprojecttest/lib2/Main.java
@@ -0,0 +1,15 @@
+package com.android.tests.javaprojecttest.lib2;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class Main extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+}
diff --git a/testapps/legacyTest/.classpath b/testapps/legacyTest/.classpath
new file mode 100644
index 000000000..1f92fafbf
--- /dev/null
+++ b/testapps/legacyTest/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="lib" path="libs/basicJar.jar"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/legacyTest/.project b/testapps/legacyTest/.project
new file mode 100644
index 000000000..3e2af0ea7
--- /dev/null
+++ b/testapps/legacyTest/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>legacyTest</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/legacyTest/AndroidManifest.xml b/testapps/legacyTest/AndroidManifest.xml
new file mode 100644
index 000000000..36ec8fb11
--- /dev/null
+++ b/testapps/legacyTest/AndroidManifest.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.javaprojecttest.app"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <uses-sdk android:minSdkVersion="15" />
+
+ <application
+ android:icon="@drawable/icon"
+ android:label="@string/app_name" >
+ <activity
+ android:name="com.android.tests.javaprojecttest.app.Main"
+ android:label="@string/app_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/legacyTest/ECLIPSEONLY b/testapps/legacyTest/ECLIPSEONLY
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/legacyTest/ECLIPSEONLY
diff --git a/testapps/legacyTest/SUCCESS b/testapps/legacyTest/SUCCESS
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/legacyTest/SUCCESS
diff --git a/testapps/legacyTest/libs/basicJar.jar b/testapps/legacyTest/libs/basicJar.jar
new file mode 100644
index 000000000..319ed0245
--- /dev/null
+++ b/testapps/legacyTest/libs/basicJar.jar
Binary files differ
diff --git a/testapps/legacyTest/project.properties b/testapps/legacyTest/project.properties
new file mode 100644
index 000000000..0840b4a05
--- /dev/null
+++ b/testapps/legacyTest/project.properties
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
diff --git a/testapps/legacyTest/res/drawable-hdpi/icon.png b/testapps/legacyTest/res/drawable-hdpi/icon.png
new file mode 100644
index 000000000..8074c4c57
--- /dev/null
+++ b/testapps/legacyTest/res/drawable-hdpi/icon.png
Binary files differ
diff --git a/testapps/legacyTest/res/drawable-ldpi/icon.png b/testapps/legacyTest/res/drawable-ldpi/icon.png
new file mode 100644
index 000000000..1095584ec
--- /dev/null
+++ b/testapps/legacyTest/res/drawable-ldpi/icon.png
Binary files differ
diff --git a/testapps/legacyTest/res/drawable-mdpi/icon.png b/testapps/legacyTest/res/drawable-mdpi/icon.png
new file mode 100644
index 000000000..a07c69fa5
--- /dev/null
+++ b/testapps/legacyTest/res/drawable-mdpi/icon.png
Binary files differ
diff --git a/testapps/legacyTest/res/layout/main.xml b/testapps/legacyTest/res/layout/main.xml
new file mode 100644
index 000000000..3e65644f0
--- /dev/null
+++ b/testapps/legacyTest/res/layout/main.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical" >
+
+ <TextView
+ android:id="@+id/basicJar"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/testapps/legacyTest/res/values/strings.xml b/testapps/legacyTest/res/values/strings.xml
new file mode 100644
index 000000000..705a56504
--- /dev/null
+++ b/testapps/legacyTest/res/values/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="app_name">javaProjectTest-app</string>
+
+</resources> \ No newline at end of file
diff --git a/testapps/legacyTest/src/com/android/tests/javaprojecttest/app/Main.java b/testapps/legacyTest/src/com/android/tests/javaprojecttest/app/Main.java
new file mode 100644
index 000000000..5790753f7
--- /dev/null
+++ b/testapps/legacyTest/src/com/android/tests/javaprojecttest/app/Main.java
@@ -0,0 +1,19 @@
+package com.android.tests.javaprojecttest.app;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.widget.TextView;
+
+import com.android.tests.basicjar.BasicJar;
+
+public class Main extends Activity {
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+
+ TextView tv = (TextView) findViewById(R.id.basicJar);
+ tv.setText("basicJar: " + BasicJar.getContent());
+ }
+} \ No newline at end of file
diff --git a/testapps/libsAndJarTest/COMPILE_AND_RUN b/testapps/libsAndJarTest/COMPILE_AND_RUN
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/libsAndJarTest/COMPILE_AND_RUN
diff --git a/testapps/libsAndJarTest/SUCCESS b/testapps/libsAndJarTest/SUCCESS
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/libsAndJarTest/SUCCESS
diff --git a/testapps/libsAndJarTest/app/.classpath b/testapps/libsAndJarTest/app/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/libsAndJarTest/app/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/libsAndJarTest/app/.project b/testapps/libsAndJarTest/app/.project
new file mode 100644
index 000000000..dc5f570ea
--- /dev/null
+++ b/testapps/libsAndJarTest/app/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>libsAndJarTest-app</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/libsAndJarTest/app/AndroidManifest.xml b/testapps/libsAndJarTest/app/AndroidManifest.xml
new file mode 100644
index 000000000..36ec8fb11
--- /dev/null
+++ b/testapps/libsAndJarTest/app/AndroidManifest.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.javaprojecttest.app"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <uses-sdk android:minSdkVersion="15" />
+
+ <application
+ android:icon="@drawable/icon"
+ android:label="@string/app_name" >
+ <activity
+ android:name="com.android.tests.javaprojecttest.app.Main"
+ android:label="@string/app_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/libsAndJarTest/app/build.xml b/testapps/libsAndJarTest/app/build.xml
new file mode 100644
index 000000000..c084512cd
--- /dev/null
+++ b/testapps/libsAndJarTest/app/build.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="libsAndJarTest-app" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var. -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/libsAndJarTest/app/libs/basicJar2.jar b/testapps/libsAndJarTest/app/libs/basicJar2.jar
new file mode 100644
index 000000000..5af7cf072
--- /dev/null
+++ b/testapps/libsAndJarTest/app/libs/basicJar2.jar
Binary files differ
diff --git a/testapps/libsAndJarTest/app/libs/basicJar2.jar.properties b/testapps/libsAndJarTest/app/libs/basicJar2.jar.properties
new file mode 100644
index 000000000..d8099d281
--- /dev/null
+++ b/testapps/libsAndJarTest/app/libs/basicJar2.jar.properties
@@ -0,0 +1 @@
+src=../../../basicJar2/src/ \ No newline at end of file
diff --git a/testapps/libsAndJarTest/app/proguard-project.txt b/testapps/libsAndJarTest/app/proguard-project.txt
new file mode 100644
index 000000000..349f80f9c
--- /dev/null
+++ b/testapps/libsAndJarTest/app/proguard-project.txt
@@ -0,0 +1,22 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+-adaptclassstrings \ No newline at end of file
diff --git a/testapps/libsAndJarTest/app/project.properties b/testapps/libsAndJarTest/app/project.properties
new file mode 100644
index 000000000..9df42215a
--- /dev/null
+++ b/testapps/libsAndJarTest/app/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# Project target.
+target=android-15
+android.library.reference.1=../lib1
+
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
diff --git a/testapps/libsAndJarTest/app/res/drawable-hdpi/icon.png b/testapps/libsAndJarTest/app/res/drawable-hdpi/icon.png
new file mode 100644
index 000000000..8074c4c57
--- /dev/null
+++ b/testapps/libsAndJarTest/app/res/drawable-hdpi/icon.png
Binary files differ
diff --git a/testapps/libsAndJarTest/app/res/drawable-ldpi/icon.png b/testapps/libsAndJarTest/app/res/drawable-ldpi/icon.png
new file mode 100644
index 000000000..1095584ec
--- /dev/null
+++ b/testapps/libsAndJarTest/app/res/drawable-ldpi/icon.png
Binary files differ
diff --git a/testapps/libsAndJarTest/app/res/drawable-mdpi/icon.png b/testapps/libsAndJarTest/app/res/drawable-mdpi/icon.png
new file mode 100644
index 000000000..a07c69fa5
--- /dev/null
+++ b/testapps/libsAndJarTest/app/res/drawable-mdpi/icon.png
Binary files differ
diff --git a/testapps/libsAndJarTest/app/res/layout/main.xml b/testapps/libsAndJarTest/app/res/layout/main.xml
new file mode 100644
index 000000000..16df43ce1
--- /dev/null
+++ b/testapps/libsAndJarTest/app/res/layout/main.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical" >
+
+ <TextView
+ android:id="@+id/app"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+ <TextView
+ android:id="@+id/lib1"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+ <TextView
+ android:id="@+id/lib2"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+ <TextView
+ android:id="@+id/basicJar"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+ <TextView
+ android:id="@+id/basicJar2"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/testapps/libsAndJarTest/app/res/values/strings.xml b/testapps/libsAndJarTest/app/res/values/strings.xml
new file mode 100644
index 000000000..6dc9f4725
--- /dev/null
+++ b/testapps/libsAndJarTest/app/res/values/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="app_name">libsAndJarTest-app</string>
+ <string name="main">foo</string>
+
+</resources> \ No newline at end of file
diff --git a/testapps/libsAndJarTest/app/src/com/android/tests/javaprojecttest/app/App.java b/testapps/libsAndJarTest/app/src/com/android/tests/javaprojecttest/app/App.java
new file mode 100644
index 000000000..aa5d1571f
--- /dev/null
+++ b/testapps/libsAndJarTest/app/src/com/android/tests/javaprojecttest/app/App.java
@@ -0,0 +1,33 @@
+package com.android.tests.javaprojecttest.app;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class App {
+
+ public static String getContent() {
+ InputStream input = App.class.getResourceAsStream("App.txt");
+ if (input == null) {
+ return "FAILED TO FIND App.txt";
+ }
+
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
+
+ return reader.readLine();
+ } catch (IOException e) {
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ return "FAILED TO READ CONTENT";
+ }
+}
diff --git a/testapps/libsAndJarTest/app/src/com/android/tests/javaprojecttest/app/App.txt b/testapps/libsAndJarTest/app/src/com/android/tests/javaprojecttest/app/App.txt
new file mode 100644
index 000000000..d488bc465
--- /dev/null
+++ b/testapps/libsAndJarTest/app/src/com/android/tests/javaprojecttest/app/App.txt
@@ -0,0 +1 @@
+SUCCESS from App \ No newline at end of file
diff --git a/testapps/libsAndJarTest/app/src/com/android/tests/javaprojecttest/app/Main.java b/testapps/libsAndJarTest/app/src/com/android/tests/javaprojecttest/app/Main.java
new file mode 100644
index 000000000..95dd00c3e
--- /dev/null
+++ b/testapps/libsAndJarTest/app/src/com/android/tests/javaprojecttest/app/Main.java
@@ -0,0 +1,34 @@
+package com.android.tests.javaprojecttest.app;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.widget.TextView;
+
+import com.android.tests.basicjar.BasicJar;
+import com.android.tests.basicjar2.BasicJar2;
+import com.android.tests.javaprojecttest.lib1.Lib1;
+import com.android.tests.javaprojecttest.lib2.Lib2;
+
+public class Main extends Activity {
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+
+ TextView tv = (TextView) findViewById(R.id.app);
+ tv.setText("App: " + App.getContent());
+
+ tv = (TextView) findViewById(R.id.lib1);
+ tv.setText("Lib1: " + Lib1.getContent());
+
+ tv = (TextView) findViewById(R.id.lib2);
+ tv.setText("Lib2: " + Lib2.getContent());
+
+ tv = (TextView) findViewById(R.id.basicJar);
+ tv.setText("BasicJar: " + BasicJar.getContent());
+
+ tv = (TextView) findViewById(R.id.basicJar2);
+ tv.setText("BasicJar2: " + BasicJar2.getContent());
+ }
+} \ No newline at end of file
diff --git a/testapps/libsAndJarTest/lib1/.classpath b/testapps/libsAndJarTest/lib1/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/libsAndJarTest/lib1/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/libsAndJarTest/lib1/.project b/testapps/libsAndJarTest/lib1/.project
new file mode 100644
index 000000000..616ff1fc9
--- /dev/null
+++ b/testapps/libsAndJarTest/lib1/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>libsAndJarTest-Lib1</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/libsAndJarTest/lib1/AndroidManifest.xml b/testapps/libsAndJarTest/lib1/AndroidManifest.xml
new file mode 100644
index 000000000..c51696be6
--- /dev/null
+++ b/testapps/libsAndJarTest/lib1/AndroidManifest.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.javaprojecttest.lib1"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <application
+ android:icon="@drawable/ic_launcher"
+ android:label="@string/app_name" >
+ <activity
+ android:name=".Main"
+ android:label="@string/app_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/libsAndJarTest/lib1/build.xml b/testapps/libsAndJarTest/lib1/build.xml
new file mode 100644
index 000000000..ed2552189
--- /dev/null
+++ b/testapps/libsAndJarTest/lib1/build.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="libsAndJarTest-lib1" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var. -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/libsAndJarTest/lib1/libs/android-support-v4.jar b/testapps/libsAndJarTest/lib1/libs/android-support-v4.jar
new file mode 100644
index 000000000..d006198e6
--- /dev/null
+++ b/testapps/libsAndJarTest/lib1/libs/android-support-v4.jar
Binary files differ
diff --git a/testapps/libsAndJarTest/lib1/proguard-project.txt b/testapps/libsAndJarTest/lib1/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/libsAndJarTest/lib1/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/libsAndJarTest/lib1/project.properties b/testapps/libsAndJarTest/lib1/project.properties
new file mode 100644
index 000000000..480c5b62a
--- /dev/null
+++ b/testapps/libsAndJarTest/lib1/project.properties
@@ -0,0 +1,16 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library=true
+android.library.reference.1=../lib2
diff --git a/testapps/libsAndJarTest/lib1/res/drawable-hdpi/ic_launcher.png b/testapps/libsAndJarTest/lib1/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 000000000..8074c4c57
--- /dev/null
+++ b/testapps/libsAndJarTest/lib1/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/libsAndJarTest/lib1/res/drawable-ldpi/ic_launcher.png b/testapps/libsAndJarTest/lib1/res/drawable-ldpi/ic_launcher.png
new file mode 100644
index 000000000..1095584ec
--- /dev/null
+++ b/testapps/libsAndJarTest/lib1/res/drawable-ldpi/ic_launcher.png
Binary files differ
diff --git a/testapps/libsAndJarTest/lib1/res/drawable-mdpi/ic_launcher.png b/testapps/libsAndJarTest/lib1/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 000000000..a07c69fa5
--- /dev/null
+++ b/testapps/libsAndJarTest/lib1/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/libsAndJarTest/lib1/res/layout/main.xml b/testapps/libsAndJarTest/lib1/res/layout/main.xml
new file mode 100644
index 000000000..b79cddb17
--- /dev/null
+++ b/testapps/libsAndJarTest/lib1/res/layout/main.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, Main"
+ />
+</LinearLayout>
+
diff --git a/testapps/libsAndJarTest/lib1/res/values/strings.xml b/testapps/libsAndJarTest/lib1/res/values/strings.xml
new file mode 100644
index 000000000..1993ff60d
--- /dev/null
+++ b/testapps/libsAndJarTest/lib1/res/values/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="app_name">Main</string>
+ <string name="foo1">foo</string>
+
+</resources> \ No newline at end of file
diff --git a/testapps/libsAndJarTest/lib1/src/com/android/tests/javaprojecttest/lib1/Lib1.java b/testapps/libsAndJarTest/lib1/src/com/android/tests/javaprojecttest/lib1/Lib1.java
new file mode 100644
index 000000000..fe4a2a12b
--- /dev/null
+++ b/testapps/libsAndJarTest/lib1/src/com/android/tests/javaprojecttest/lib1/Lib1.java
@@ -0,0 +1,33 @@
+package com.android.tests.javaprojecttest.lib1;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class Lib1 {
+
+ public static String getContent() {
+ InputStream input = Lib1.class.getResourceAsStream("Lib1.txt");
+ if (input == null) {
+ return "FAILED TO FIND Lib1.txt";
+ }
+
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
+
+ return reader.readLine();
+ } catch (IOException e) {
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ return "FAILED TO READ CONTENT";
+ }
+}
diff --git a/testapps/libsAndJarTest/lib1/src/com/android/tests/javaprojecttest/lib1/Lib1.txt b/testapps/libsAndJarTest/lib1/src/com/android/tests/javaprojecttest/lib1/Lib1.txt
new file mode 100644
index 000000000..b3e210d04
--- /dev/null
+++ b/testapps/libsAndJarTest/lib1/src/com/android/tests/javaprojecttest/lib1/Lib1.txt
@@ -0,0 +1 @@
+SUCCESS from Lib1 \ No newline at end of file
diff --git a/testapps/libsAndJarTest/lib1/src/com/android/tests/javaprojecttest/lib1/Main.java b/testapps/libsAndJarTest/lib1/src/com/android/tests/javaprojecttest/lib1/Main.java
new file mode 100644
index 000000000..1c3ed355d
--- /dev/null
+++ b/testapps/libsAndJarTest/lib1/src/com/android/tests/javaprojecttest/lib1/Main.java
@@ -0,0 +1,20 @@
+package com.android.tests.javaprojecttest.lib1;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+import com.android.tests.javaprojecttest.lib2.Lib2;
+
+public class Main extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+
+ //Access some class from Lib2 to make sure we can access them.
+ String foo = Lib2.getContent();
+ }
+}
diff --git a/testapps/libsAndJarTest/lib2/.classpath b/testapps/libsAndJarTest/lib2/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/libsAndJarTest/lib2/.project b/testapps/libsAndJarTest/lib2/.project
new file mode 100644
index 000000000..3f2ef161f
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>libsAndJarTest-Lib2</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/libsAndJarTest/lib2/AndroidManifest.xml b/testapps/libsAndJarTest/lib2/AndroidManifest.xml
new file mode 100644
index 000000000..10d4a001b
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/AndroidManifest.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.javaprojecttest.lib2"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <application
+ android:icon="@drawable/ic_launcher"
+ android:label="@string/app_name" >
+ <activity
+ android:name="com.android.tests.javaprojecttest.lib2.Main"
+ android:label="@string/app_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/libsAndJarTest/lib2/build.xml b/testapps/libsAndJarTest/lib2/build.xml
new file mode 100644
index 000000000..4f351c875
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/build.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="libsAndJarTest-lib2" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var. -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/libsAndJarTest/lib2/libs/android-support-v4.jar b/testapps/libsAndJarTest/lib2/libs/android-support-v4.jar
new file mode 100644
index 000000000..d006198e6
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/libs/android-support-v4.jar
Binary files differ
diff --git a/testapps/libsAndJarTest/lib2/libs/basicJar.jar b/testapps/libsAndJarTest/lib2/libs/basicJar.jar
new file mode 100644
index 000000000..319ed0245
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/libs/basicJar.jar
Binary files differ
diff --git a/testapps/libsAndJarTest/lib2/libs/basicJar.jar.properties b/testapps/libsAndJarTest/lib2/libs/basicJar.jar.properties
new file mode 100644
index 000000000..c6b82fb45
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/libs/basicJar.jar.properties
@@ -0,0 +1 @@
+src=../../../basicJar/src/ \ No newline at end of file
diff --git a/testapps/libsAndJarTest/lib2/proguard-project.txt b/testapps/libsAndJarTest/lib2/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/libsAndJarTest/lib2/project.properties b/testapps/libsAndJarTest/lib2/project.properties
new file mode 100644
index 000000000..9be883066
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/project.properties
@@ -0,0 +1,17 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library=true
+verbose=true
+
diff --git a/testapps/libsAndJarTest/lib2/res/drawable-hdpi/ic_launcher.png b/testapps/libsAndJarTest/lib2/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 000000000..8074c4c57
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/libsAndJarTest/lib2/res/drawable-ldpi/ic_launcher.png b/testapps/libsAndJarTest/lib2/res/drawable-ldpi/ic_launcher.png
new file mode 100644
index 000000000..1095584ec
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/res/drawable-ldpi/ic_launcher.png
Binary files differ
diff --git a/testapps/libsAndJarTest/lib2/res/drawable-mdpi/ic_launcher.png b/testapps/libsAndJarTest/lib2/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 000000000..a07c69fa5
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/libsAndJarTest/lib2/res/layout/main.xml b/testapps/libsAndJarTest/lib2/res/layout/main.xml
new file mode 100644
index 000000000..b79cddb17
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/res/layout/main.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, Main"
+ />
+</LinearLayout>
+
diff --git a/testapps/libsAndJarTest/lib2/res/values/strings.xml b/testapps/libsAndJarTest/lib2/res/values/strings.xml
new file mode 100644
index 000000000..e1e7a9dd4
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/res/values/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="app_name">Main</string>
+ <string name="foo2">foo</string>
+
+</resources> \ No newline at end of file
diff --git a/testapps/libsAndJarTest/lib2/src/com/android/tests/javaprojecttest/lib2/Lib2.java b/testapps/libsAndJarTest/lib2/src/com/android/tests/javaprojecttest/lib2/Lib2.java
new file mode 100644
index 000000000..5831cb2d1
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/src/com/android/tests/javaprojecttest/lib2/Lib2.java
@@ -0,0 +1,33 @@
+package com.android.tests.javaprojecttest.lib2;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class Lib2 {
+
+ public static String getContent() {
+ InputStream input = Lib2.class.getResourceAsStream("Lib2.txt");
+ if (input == null) {
+ return "FAILED TO FIND Lib2.txt";
+ }
+
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
+
+ return reader.readLine();
+ } catch (IOException e) {
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ return "FAILED TO READ CONTENT";
+ }
+}
diff --git a/testapps/libsAndJarTest/lib2/src/com/android/tests/javaprojecttest/lib2/Lib2.txt b/testapps/libsAndJarTest/lib2/src/com/android/tests/javaprojecttest/lib2/Lib2.txt
new file mode 100644
index 000000000..3ba8e357a
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/src/com/android/tests/javaprojecttest/lib2/Lib2.txt
@@ -0,0 +1 @@
+SUCCESS from Lib2 \ No newline at end of file
diff --git a/testapps/libsAndJarTest/lib2/src/com/android/tests/javaprojecttest/lib2/Main.java b/testapps/libsAndJarTest/lib2/src/com/android/tests/javaprojecttest/lib2/Main.java
new file mode 100644
index 000000000..14598969a
--- /dev/null
+++ b/testapps/libsAndJarTest/lib2/src/com/android/tests/javaprojecttest/lib2/Main.java
@@ -0,0 +1,15 @@
+package com.android.tests.javaprojecttest.lib2;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class Main extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+}
diff --git a/testapps/libsTest/COMPILE_AND_RUN b/testapps/libsTest/COMPILE_AND_RUN
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/libsTest/COMPILE_AND_RUN
diff --git a/testapps/libsTest/SUCCESS b/testapps/libsTest/SUCCESS
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/libsTest/SUCCESS
diff --git a/testapps/libsTest/app/.classpath b/testapps/libsTest/app/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/libsTest/app/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/libsTest/app/.project b/testapps/libsTest/app/.project
new file mode 100644
index 000000000..4edc688ac
--- /dev/null
+++ b/testapps/libsTest/app/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>libsTest-app</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/libsTest/app/AndroidManifest.xml b/testapps/libsTest/app/AndroidManifest.xml
new file mode 100644
index 000000000..74f0ff2a1
--- /dev/null
+++ b/testapps/libsTest/app/AndroidManifest.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.libstest.app"
+ android:versionCode="1"
+ android:versionName="1.0" xmlns:tools="http://schemas.android.com/tools">
+
+ <uses-sdk
+ android:minSdkVersion="15"
+ tools:ignore="UsesMinSdkAttributes" />
+
+ <application
+ android:icon="@drawable/icon"
+ android:label="@string/app_name" >
+ <activity
+ android:name="com.android.tests.libstest.app.MainActivity"
+ android:label="@string/app_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/libsTest/app/build.xml b/testapps/libsTest/app/build.xml
new file mode 100644
index 000000000..c084512cd
--- /dev/null
+++ b/testapps/libsTest/app/build.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="libsAndJarTest-app" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var. -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/libsTest/app/proguard-project.txt b/testapps/libsTest/app/proguard-project.txt
new file mode 100644
index 000000000..349f80f9c
--- /dev/null
+++ b/testapps/libsTest/app/proguard-project.txt
@@ -0,0 +1,22 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+-adaptclassstrings \ No newline at end of file
diff --git a/testapps/libsTest/app/project.properties b/testapps/libsTest/app/project.properties
new file mode 100644
index 000000000..9df42215a
--- /dev/null
+++ b/testapps/libsTest/app/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# Project target.
+target=android-15
+android.library.reference.1=../lib1
+
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
diff --git a/testapps/libsTest/app/res/drawable-hdpi/icon.png b/testapps/libsTest/app/res/drawable-hdpi/icon.png
new file mode 100644
index 000000000..8074c4c57
--- /dev/null
+++ b/testapps/libsTest/app/res/drawable-hdpi/icon.png
Binary files differ
diff --git a/testapps/libsTest/app/res/drawable-ldpi/icon.png b/testapps/libsTest/app/res/drawable-ldpi/icon.png
new file mode 100644
index 000000000..1095584ec
--- /dev/null
+++ b/testapps/libsTest/app/res/drawable-ldpi/icon.png
Binary files differ
diff --git a/testapps/libsTest/app/res/drawable-mdpi/icon.png b/testapps/libsTest/app/res/drawable-mdpi/icon.png
new file mode 100644
index 000000000..a07c69fa5
--- /dev/null
+++ b/testapps/libsTest/app/res/drawable-mdpi/icon.png
Binary files differ
diff --git a/testapps/libsTest/app/res/layout/main.xml b/testapps/libsTest/app/res/layout/main.xml
new file mode 100644
index 000000000..f735960e3
--- /dev/null
+++ b/testapps/libsTest/app/res/layout/main.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical" >
+
+ <TextView
+ android:id="@+id/app_text1"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/app_string" />
+
+ <TextView
+ android:id="@+id/app_text2"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content" />
+
+ <include layout="@layout/lib1_main" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/testapps/libsTest/app/res/values/strings.xml b/testapps/libsTest/app/res/values/strings.xml
new file mode 100644
index 000000000..2a2e00668
--- /dev/null
+++ b/testapps/libsTest/app/res/values/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="app_name">libsTest-app</string>
+ <string name="app_string">SUCCESS-APP</string>
+
+</resources> \ No newline at end of file
diff --git a/testapps/libsTest/app/src/com/android/tests/libstest/app/App.java b/testapps/libsTest/app/src/com/android/tests/libstest/app/App.java
new file mode 100644
index 000000000..54e2a09de
--- /dev/null
+++ b/testapps/libsTest/app/src/com/android/tests/libstest/app/App.java
@@ -0,0 +1,43 @@
+package com.android.tests.libstest.app;
+
+import android.app.Activity;
+import android.widget.TextView;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class App {
+
+ public static void handleTextView(Activity a) {
+ TextView tv = (TextView) a.findViewById(R.id.app_text2);
+ if (tv != null) {
+ tv.setText(getContent());
+ }
+ }
+
+ private static String getContent() {
+ InputStream input = App.class.getResourceAsStream("App.txt");
+ if (input == null) {
+ return "FAILED TO FIND App.txt";
+ }
+
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
+
+ return reader.readLine();
+ } catch (IOException e) {
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ return "FAILED TO READ CONTENT";
+ }
+}
diff --git a/testapps/libsTest/app/src/com/android/tests/libstest/app/App.txt b/testapps/libsTest/app/src/com/android/tests/libstest/app/App.txt
new file mode 100644
index 000000000..084e7d0cc
--- /dev/null
+++ b/testapps/libsTest/app/src/com/android/tests/libstest/app/App.txt
@@ -0,0 +1 @@
+SUCCESS-APP \ No newline at end of file
diff --git a/testapps/libsTest/app/src/com/android/tests/libstest/app/MainActivity.java b/testapps/libsTest/app/src/com/android/tests/libstest/app/MainActivity.java
new file mode 100644
index 000000000..8992066bd
--- /dev/null
+++ b/testapps/libsTest/app/src/com/android/tests/libstest/app/MainActivity.java
@@ -0,0 +1,20 @@
+package com.android.tests.libstest.app;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+import com.android.tests.libstest.lib1.Lib1;
+import com.android.tests.libstest.lib2.Lib2;
+
+public class MainActivity extends Activity {
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+
+ App.handleTextView(this);
+ Lib1.handleTextView(this);
+ Lib2.handleTextView(this);
+ }
+} \ No newline at end of file
diff --git a/testapps/libsTest/appTest/.classpath b/testapps/libsTest/appTest/.classpath
new file mode 100644
index 000000000..ad42d947f
--- /dev/null
+++ b/testapps/libsTest/appTest/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/libsTest-app"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/libsTest/appTest/.project b/testapps/libsTest/appTest/.project
new file mode 100644
index 000000000..5fa994dce
--- /dev/null
+++ b/testapps/libsTest/appTest/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>libsTest-appTest</name>
+ <comment></comment>
+ <projects>
+ <project>testProjectTest-app</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/libsTest/appTest/AndroidManifest.xml b/testapps/libsTest/appTest/AndroidManifest.xml
new file mode 100644
index 000000000..5c3bbbda8
--- /dev/null
+++ b/testapps/libsTest/appTest/AndroidManifest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.libstest.app.test"
+ android:versionCode="1"
+ android:versionName="1.0" xmlns:tools="http://schemas.android.com/tools">
+
+ <uses-sdk
+ android:minSdkVersion="15"
+ tools:ignore="UsesMinSdkAttributes" />
+
+ <!--
+ We add an application tag here just so that we can indicate that
+ this package needs to link against the android.test library,
+ which is needed when building test cases.
+ -->
+ <application android:label="libsTest-appTest" >
+ <uses-library android:name="android.test.runner" />
+ </application>
+
+ <!--
+ This declares that this app uses the instrumentation test runner targeting
+ the package of com.android.tests.testprojecttest.app. To run the tests use the command:
+ "adb shell am instrument -w com.android.tests.testprojecttest.test/android.test.InstrumentationTestRunner"
+ -->
+ <instrumentation
+ android:name="android.test.InstrumentationTestRunner"
+ android:targetPackage="com.android.tests.libstest.app" />
+
+</manifest> \ No newline at end of file
diff --git a/testapps/libsTest/appTest/build.xml b/testapps/libsTest/appTest/build.xml
new file mode 100644
index 000000000..4f12210eb
--- /dev/null
+++ b/testapps/libsTest/appTest/build.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="testProjectTest-testapp" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var.
+ This must be done before we load project.properties since
+ the proguard config can use sdk.dir -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/libsTest/appTest/proguard-project.txt b/testapps/libsTest/appTest/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/libsTest/appTest/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/libsTest/appTest/project.properties b/testapps/libsTest/appTest/project.properties
new file mode 100644
index 000000000..4c13b857b
--- /dev/null
+++ b/testapps/libsTest/appTest/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+tested.project.dir=../app
diff --git a/testapps/libsTest/appTest/src/com/android/tests/libstest/app/MainActivityTest.java b/testapps/libsTest/appTest/src/com/android/tests/libstest/app/MainActivityTest.java
new file mode 100644
index 000000000..65e081ba6
--- /dev/null
+++ b/testapps/libsTest/appTest/src/com/android/tests/libstest/app/MainActivityTest.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2008 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.tests.libstest.app;
+
+import android.test.ActivityInstrumentationTestCase2;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.widget.TextView;
+
+/**
+ * An example of an {@link ActivityInstrumentationTestCase2} of a specific activity {@link Focus2}.
+ * By virtue of extending {@link ActivityInstrumentationTestCase2}, the target activity is automatically
+ * launched and finished before and after each test. This also extends
+ * {@link android.test.InstrumentationTestCase}, which provides
+ * access to methods for sending events to the target activity, such as key and
+ * touch events. See {@link #sendKeys}.
+ *
+ * In general, {@link android.test.InstrumentationTestCase}s and {@link ActivityInstrumentationTestCase2}s
+ * are heavier weight functional tests available for end to end testing of your
+ * user interface. When run via a {@link android.test.InstrumentationTestRunner},
+ * the necessary {@link android.app.Instrumentation} will be injected for you to
+ * user via {@link #getInstrumentation} in your tests.
+ *
+ * See {@link com.example.android.apis.AllTests} for documentation on running
+ * all tests and individual tests in this application.
+ */
+public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {
+
+ private TextView mAppTextView1;
+ private TextView mAppTextView2;
+ private TextView mLib1TextView1;
+ private TextView mLib1TextView2;
+ private TextView mLib2TextView1;
+ private TextView mLib2TextView2;
+
+ /**
+ * Creates an {@link ActivityInstrumentationTestCase2} that tests the {@link Focus2} activity.
+ */
+ public MainActivityTest() {
+ super(MainActivity.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ final MainActivity a = getActivity();
+ // ensure a valid handle to the activity has been returned
+ assertNotNull(a);
+
+ mAppTextView1 = (TextView) a.findViewById(R.id.app_text1);
+ mAppTextView2 = (TextView) a.findViewById(R.id.app_text1);
+ mLib1TextView1 = (TextView) a.findViewById(R.id.lib1_text1);
+ mLib1TextView2 = (TextView) a.findViewById(R.id.lib1_text2);
+ mLib2TextView1 = (TextView) a.findViewById(R.id.lib2_text1);
+ mLib2TextView2 = (TextView) a.findViewById(R.id.lib2_text2);
+ }
+
+ /**
+ * The name 'test preconditions' is a convention to signal that if this
+ * test doesn't pass, the test case was not set up properly and it might
+ * explain any and all failures in other tests. This is not guaranteed
+ * to run before other tests, as junit uses reflection to find the tests.
+ */
+ @MediumTest
+ public void testPreconditions() {
+ assertNotNull(mAppTextView1);
+ assertNotNull(mAppTextView2);
+ assertNotNull(mLib1TextView1);
+ assertNotNull(mLib1TextView2);
+ assertNotNull(mLib2TextView1);
+ assertNotNull(mLib2TextView2);
+ }
+
+ @MediumTest
+ public void testAndroidStrings() {
+ assertEquals("SUCCESS-APP", mAppTextView1.getText());
+ assertEquals("SUCCESS-LIB1", mLib1TextView1.getText());
+ assertEquals("SUCCESS-LIB2", mLib2TextView1.getText());
+ }
+
+ @MediumTest
+ public void testJavaStrings() {
+ assertEquals("SUCCESS-APP", mAppTextView2.getText());
+ assertEquals("SUCCESS-LIB1", mLib1TextView2.getText());
+ assertEquals("SUCCESS-LIB2", mLib2TextView2.getText());
+ }
+}
diff --git a/testapps/libsTest/lib1/.classpath b/testapps/libsTest/lib1/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/libsTest/lib1/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/libsTest/lib1/.project b/testapps/libsTest/lib1/.project
new file mode 100644
index 000000000..627133591
--- /dev/null
+++ b/testapps/libsTest/lib1/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>libsTest-Lib1</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/libsTest/lib1/AndroidManifest.xml b/testapps/libsTest/lib1/AndroidManifest.xml
new file mode 100644
index 000000000..194faeabe
--- /dev/null
+++ b/testapps/libsTest/lib1/AndroidManifest.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.libstest.lib1"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <application
+ android:icon="@drawable/ic_launcher"
+ android:label="@string/lib1_name" >
+ <activity
+ android:name="com.android.tests.libstest.lib1.MainActivity"
+ android:label="@string/lib1_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/libsTest/lib1/build.xml b/testapps/libsTest/lib1/build.xml
new file mode 100644
index 000000000..ed2552189
--- /dev/null
+++ b/testapps/libsTest/lib1/build.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="libsAndJarTest-lib1" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var. -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/libsTest/lib1/proguard-project.txt b/testapps/libsTest/lib1/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/libsTest/lib1/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/libsTest/lib1/project.properties b/testapps/libsTest/lib1/project.properties
new file mode 100644
index 000000000..480c5b62a
--- /dev/null
+++ b/testapps/libsTest/lib1/project.properties
@@ -0,0 +1,16 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library=true
+android.library.reference.1=../lib2
diff --git a/testapps/libsTest/lib1/res/drawable-hdpi/ic_launcher.png b/testapps/libsTest/lib1/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 000000000..8074c4c57
--- /dev/null
+++ b/testapps/libsTest/lib1/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/libsTest/lib1/res/drawable-ldpi/ic_launcher.png b/testapps/libsTest/lib1/res/drawable-ldpi/ic_launcher.png
new file mode 100644
index 000000000..1095584ec
--- /dev/null
+++ b/testapps/libsTest/lib1/res/drawable-ldpi/ic_launcher.png
Binary files differ
diff --git a/testapps/libsTest/lib1/res/drawable-mdpi/ic_launcher.png b/testapps/libsTest/lib1/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 000000000..a07c69fa5
--- /dev/null
+++ b/testapps/libsTest/lib1/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/libsTest/lib1/res/layout/lib1_main.xml b/testapps/libsTest/lib1/res/layout/lib1_main.xml
new file mode 100644
index 000000000..3666d1296
--- /dev/null
+++ b/testapps/libsTest/lib1/res/layout/lib1_main.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical" >
+
+ <TextView
+ android:id="@+id/lib1_text1"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/lib1_string" />
+
+ <TextView
+ android:id="@+id/lib1_text2"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content" />
+
+ <include layout="@layout/lib2_main" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/testapps/libsTest/lib1/res/values/strings.xml b/testapps/libsTest/lib1/res/values/strings.xml
new file mode 100644
index 000000000..8d2061094
--- /dev/null
+++ b/testapps/libsTest/lib1/res/values/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="lib1_name">LibsTest-lib1</string>
+ <string name="lib1_string">SUCCESS-LIB1</string>
+
+</resources> \ No newline at end of file
diff --git a/testapps/libsTest/lib1/src/com/android/tests/libstest/lib1/Lib1.java b/testapps/libsTest/lib1/src/com/android/tests/libstest/lib1/Lib1.java
new file mode 100644
index 000000000..c62bec228
--- /dev/null
+++ b/testapps/libsTest/lib1/src/com/android/tests/libstest/lib1/Lib1.java
@@ -0,0 +1,43 @@
+package com.android.tests.libstest.lib1;
+
+import android.app.Activity;
+import android.widget.TextView;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class Lib1 {
+
+ public static void handleTextView(Activity a) {
+ TextView tv = (TextView) a.findViewById(R.id.lib1_text2);
+ if (tv != null) {
+ tv.setText(Lib1.getContent());
+ }
+ }
+
+ public static String getContent() {
+ InputStream input = Lib1.class.getResourceAsStream("Lib1.txt");
+ if (input == null) {
+ return "FAILED TO FIND Lib1.txt";
+ }
+
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
+
+ return reader.readLine();
+ } catch (IOException e) {
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ return "FAILED TO READ CONTENT";
+ }
+}
diff --git a/testapps/libsTest/lib1/src/com/android/tests/libstest/lib1/Lib1.txt b/testapps/libsTest/lib1/src/com/android/tests/libstest/lib1/Lib1.txt
new file mode 100644
index 000000000..452e39773
--- /dev/null
+++ b/testapps/libsTest/lib1/src/com/android/tests/libstest/lib1/Lib1.txt
@@ -0,0 +1 @@
+SUCCESS-LIB1 \ No newline at end of file
diff --git a/testapps/libsTest/lib1/src/com/android/tests/libstest/lib1/MainActivity.java b/testapps/libsTest/lib1/src/com/android/tests/libstest/lib1/MainActivity.java
new file mode 100644
index 000000000..078bf64cf
--- /dev/null
+++ b/testapps/libsTest/lib1/src/com/android/tests/libstest/lib1/MainActivity.java
@@ -0,0 +1,18 @@
+package com.android.tests.libstest.lib1;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+import com.android.tests.libstest.lib2.Lib2;
+
+public class MainActivity extends Activity {
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.lib1_main);
+
+ Lib1.handleTextView(this);
+ Lib2.handleTextView(this);
+ }
+}
diff --git a/testapps/libsTest/lib1Test/.classpath b/testapps/libsTest/lib1Test/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/libsTest/lib1Test/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/libsTest/lib1Test/.project b/testapps/libsTest/lib1Test/.project
new file mode 100644
index 000000000..10f729cc6
--- /dev/null
+++ b/testapps/libsTest/lib1Test/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>libsTest-lib1Test</name>
+ <comment></comment>
+ <projects>
+ <project>testProjectTest-app</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/libsTest/lib1Test/AndroidManifest.xml b/testapps/libsTest/lib1Test/AndroidManifest.xml
new file mode 100644
index 000000000..851b295c5
--- /dev/null
+++ b/testapps/libsTest/lib1Test/AndroidManifest.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ package="com.android.tests.libstest.lib1.test"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <uses-sdk
+ android:minSdkVersion="15"
+ tools:ignore="UsesMinSdkAttributes" />
+
+ <!--
+ We add an application tag here just so that we can indicate that
+ this package needs to link against the android.test library,
+ which is needed when building test cases.
+ -->
+ <application
+ android:icon="@drawable/ic_launcher"
+ android:label="@string/lib1_name" >
+ <uses-library android:name="android.test.runner" />
+ </application>
+
+ <!--
+ This declares that this app uses the instrumentation test runner targeting
+ the package of com.android.tests.testprojecttest.testlib. To run the tests use the command:
+ "adb shell am instrument -w com.android.tests.testprojecttest.testlib/android.test.InstrumentationTestRunner"
+ -->
+ <instrumentation
+ android:name="android.test.InstrumentationTestRunner"
+ android:targetPackage="com.android.tests.libstest.lib1.test" />
+
+</manifest> \ No newline at end of file
diff --git a/testapps/libsTest/lib1Test/build.xml b/testapps/libsTest/lib1Test/build.xml
new file mode 100644
index 000000000..b59cc6570
--- /dev/null
+++ b/testapps/libsTest/lib1Test/build.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="testProjectTest-testlib" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var.
+ This must be done before we load project.properties since
+ the proguard config can use sdk.dir -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/libsTest/lib1Test/proguard-project.txt b/testapps/libsTest/lib1Test/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/libsTest/lib1Test/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/libsTest/lib1Test/project.properties b/testapps/libsTest/lib1Test/project.properties
new file mode 100644
index 000000000..53eb84821
--- /dev/null
+++ b/testapps/libsTest/lib1Test/project.properties
@@ -0,0 +1,16 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library.reference.1=../lib1
+manifestmerger.enabled=true
diff --git a/testapps/libsTest/lib1Test/res/values/strings.xml b/testapps/libsTest/lib1Test/res/values/strings.xml
new file mode 100644
index 000000000..ee6ef6606
--- /dev/null
+++ b/testapps/libsTest/lib1Test/res/values/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="lib1_name">LibsTest-lib1Test</string>
+
+</resources> \ No newline at end of file
diff --git a/testapps/libsTest/lib1Test/src/com/android/tests/libstest/lib1/MainActivityTest.java b/testapps/libsTest/lib1Test/src/com/android/tests/libstest/lib1/MainActivityTest.java
new file mode 100644
index 000000000..4ed7ae6f6
--- /dev/null
+++ b/testapps/libsTest/lib1Test/src/com/android/tests/libstest/lib1/MainActivityTest.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2008 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.tests.libstest.lib1;
+
+import android.test.ActivityInstrumentationTestCase2;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.widget.TextView;
+
+/**
+ * An example of an {@link ActivityInstrumentationTestCase2} of a specific activity {@link Focus2}.
+ * By virtue of extending {@link ActivityInstrumentationTestCase2}, the target activity is automatically
+ * launched and finished before and after each test. This also extends
+ * {@link android.test.InstrumentationTestCase}, which provides
+ * access to methods for sending events to the target activity, such as key and
+ * touch events. See {@link #sendKeys}.
+ *
+ * In general, {@link android.test.InstrumentationTestCase}s and {@link ActivityInstrumentationTestCase2}s
+ * are heavier weight functional tests available for end to end testing of your
+ * user interface. When run via a {@link android.test.InstrumentationTestRunner},
+ * the necessary {@link android.app.Instrumentation} will be injected for you to
+ * user via {@link #getInstrumentation} in your tests.
+ *
+ * See {@link com.example.android.apis.AllTests} for documentation on running
+ * all tests and individual tests in this application.
+ */
+public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {
+
+ private TextView mLib1TextView1;
+ private TextView mLib1TextView2;
+ private TextView mLib2TextView1;
+ private TextView mLib2TextView2;
+
+ /**
+ * Creates an {@link ActivityInstrumentationTestCase2} that tests the {@link Focus2} activity.
+ */
+ public MainActivityTest() {
+ super(MainActivity.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ final MainActivity a = getActivity();
+ // ensure a valid handle to the activity has been returned
+ assertNotNull(a);
+
+ mLib1TextView1 = (TextView) a.findViewById(R.id.lib1_text1);
+ mLib1TextView2 = (TextView) a.findViewById(R.id.lib1_text2);
+ mLib2TextView1 = (TextView) a.findViewById(R.id.lib2_text1);
+ mLib2TextView2 = (TextView) a.findViewById(R.id.lib2_text2);
+ }
+
+ /**
+ * The name 'test preconditions' is a convention to signal that if this
+ * test doesn't pass, the test case was not set up properly and it might
+ * explain any and all failures in other tests. This is not guaranteed
+ * to run before other tests, as junit uses reflection to find the tests.
+ */
+ @MediumTest
+ public void testPreconditions() {
+ assertNotNull(mLib1TextView1);
+ assertNotNull(mLib1TextView2);
+ assertNotNull(mLib2TextView1);
+ assertNotNull(mLib2TextView2);
+ }
+
+ @MediumTest
+ public void testAndroidStrings() {
+ assertEquals("SUCCESS-LIB1", mLib1TextView1.getText());
+ assertEquals("SUCCESS-LIB2", mLib2TextView1.getText());
+ }
+
+ @MediumTest
+ public void testJavaStrings() {
+ assertEquals("SUCCESS-LIB1", mLib1TextView2.getText());
+ assertEquals("SUCCESS-LIB2", mLib2TextView2.getText());
+ }
+}
diff --git a/testapps/libsTest/lib2/.classpath b/testapps/libsTest/lib2/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/libsTest/lib2/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/libsTest/lib2/.project b/testapps/libsTest/lib2/.project
new file mode 100644
index 000000000..456bba835
--- /dev/null
+++ b/testapps/libsTest/lib2/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>libsTest-Lib2</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/libsTest/lib2/AndroidManifest.xml b/testapps/libsTest/lib2/AndroidManifest.xml
new file mode 100644
index 000000000..0765effd3
--- /dev/null
+++ b/testapps/libsTest/lib2/AndroidManifest.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.libstest.lib2"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <application
+ android:icon="@drawable/ic_launcher"
+ android:label="@string/lib2_name" >
+ <activity
+ android:name="com.android.tests.libstest.lib2.MainActivity"
+ android:label="@string/lib2_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/libsTest/lib2/build.xml b/testapps/libsTest/lib2/build.xml
new file mode 100644
index 000000000..4f351c875
--- /dev/null
+++ b/testapps/libsTest/lib2/build.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="libsAndJarTest-lib2" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var. -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/libsTest/lib2/proguard-project.txt b/testapps/libsTest/lib2/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/libsTest/lib2/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/libsTest/lib2/project.properties b/testapps/libsTest/lib2/project.properties
new file mode 100644
index 000000000..e94ecb80c
--- /dev/null
+++ b/testapps/libsTest/lib2/project.properties
@@ -0,0 +1,16 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library=true
+
diff --git a/testapps/libsTest/lib2/res/drawable-hdpi/ic_launcher.png b/testapps/libsTest/lib2/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 000000000..8074c4c57
--- /dev/null
+++ b/testapps/libsTest/lib2/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/libsTest/lib2/res/drawable-ldpi/ic_launcher.png b/testapps/libsTest/lib2/res/drawable-ldpi/ic_launcher.png
new file mode 100644
index 000000000..1095584ec
--- /dev/null
+++ b/testapps/libsTest/lib2/res/drawable-ldpi/ic_launcher.png
Binary files differ
diff --git a/testapps/libsTest/lib2/res/drawable-mdpi/ic_launcher.png b/testapps/libsTest/lib2/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 000000000..a07c69fa5
--- /dev/null
+++ b/testapps/libsTest/lib2/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/libsTest/lib2/res/layout/lib2_main.xml b/testapps/libsTest/lib2/res/layout/lib2_main.xml
new file mode 100644
index 000000000..bb639d14d
--- /dev/null
+++ b/testapps/libsTest/lib2/res/layout/lib2_main.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical" >
+
+ <TextView
+ android:id="@+id/lib2_text1"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/lib2_string" />
+
+ <TextView
+ android:id="@+id/lib2_text2"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/testapps/libsTest/lib2/res/values/strings.xml b/testapps/libsTest/lib2/res/values/strings.xml
new file mode 100644
index 000000000..215b8fae9
--- /dev/null
+++ b/testapps/libsTest/lib2/res/values/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="lib2_name">LibsTest-lib2</string>
+ <string name="lib2_string">SUCCESS-LIB2</string>
+
+</resources> \ No newline at end of file
diff --git a/testapps/libsTest/lib2/src/com/android/tests/libstest/lib2/Lib2.java b/testapps/libsTest/lib2/src/com/android/tests/libstest/lib2/Lib2.java
new file mode 100644
index 000000000..bb8e4db03
--- /dev/null
+++ b/testapps/libsTest/lib2/src/com/android/tests/libstest/lib2/Lib2.java
@@ -0,0 +1,43 @@
+package com.android.tests.libstest.lib2;
+
+import android.app.Activity;
+import android.widget.TextView;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class Lib2 {
+
+ public static void handleTextView(Activity a) {
+ TextView tv = (TextView) a.findViewById(R.id.lib2_text2);
+ if (tv != null) {
+ tv.setText(getContent());
+ }
+ }
+
+ private static String getContent() {
+ InputStream input = Lib2.class.getResourceAsStream("Lib2.txt");
+ if (input == null) {
+ return "FAILED TO FIND Lib2.txt";
+ }
+
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
+
+ return reader.readLine();
+ } catch (IOException e) {
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ return "FAILED TO READ CONTENT";
+ }
+}
diff --git a/testapps/libsTest/lib2/src/com/android/tests/libstest/lib2/Lib2.txt b/testapps/libsTest/lib2/src/com/android/tests/libstest/lib2/Lib2.txt
new file mode 100644
index 000000000..94cabe40f
--- /dev/null
+++ b/testapps/libsTest/lib2/src/com/android/tests/libstest/lib2/Lib2.txt
@@ -0,0 +1 @@
+SUCCESS-LIB2 \ No newline at end of file
diff --git a/testapps/libsTest/lib2/src/com/android/tests/libstest/lib2/MainActivity.java b/testapps/libsTest/lib2/src/com/android/tests/libstest/lib2/MainActivity.java
new file mode 100644
index 000000000..012f20385
--- /dev/null
+++ b/testapps/libsTest/lib2/src/com/android/tests/libstest/lib2/MainActivity.java
@@ -0,0 +1,15 @@
+package com.android.tests.libstest.lib2;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class MainActivity extends Activity {
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.lib2_main);
+
+ Lib2.handleTextView(this);
+ }
+}
diff --git a/testapps/libsTest/lib2Test/.classpath b/testapps/libsTest/lib2Test/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/libsTest/lib2Test/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/libsTest/lib2Test/.project b/testapps/libsTest/lib2Test/.project
new file mode 100644
index 000000000..5ef5c2c47
--- /dev/null
+++ b/testapps/libsTest/lib2Test/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>libsTest-lib2Test</name>
+ <comment></comment>
+ <projects>
+ <project>testProjectTest-app</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/libsTest/lib2Test/AndroidManifest.xml b/testapps/libsTest/lib2Test/AndroidManifest.xml
new file mode 100644
index 000000000..e6b59a1fb
--- /dev/null
+++ b/testapps/libsTest/lib2Test/AndroidManifest.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ package="com.android.tests.libstest.lib2.test"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <uses-sdk
+ android:minSdkVersion="15"
+ tools:ignore="UsesMinSdkAttributes" />
+
+ <!--
+ We add an application tag here just so that we can indicate that
+ this package needs to link against the android.test library,
+ which is needed when building test cases.
+ -->
+ <application android:label="testProjectTest-testlib" >
+ <uses-library android:name="android.test.runner" />
+ </application>
+
+ <!--
+ This declares that this app uses the instrumentation test runner targeting
+ the package of com.android.tests.testprojecttest.testlib. To run the tests use the command:
+ "adb shell am instrument -w com.android.tests.testprojecttest.testlib/android.test.InstrumentationTestRunner"
+ -->
+ <instrumentation
+ android:name="android.test.InstrumentationTestRunner"
+ android:targetPackage="com.android.tests.libstest.lib2.test" />
+
+</manifest> \ No newline at end of file
diff --git a/testapps/libsTest/lib2Test/build.xml b/testapps/libsTest/lib2Test/build.xml
new file mode 100644
index 000000000..b59cc6570
--- /dev/null
+++ b/testapps/libsTest/lib2Test/build.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="testProjectTest-testlib" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var.
+ This must be done before we load project.properties since
+ the proguard config can use sdk.dir -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/libsTest/lib2Test/proguard-project.txt b/testapps/libsTest/lib2Test/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/libsTest/lib2Test/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/libsTest/lib2Test/project.properties b/testapps/libsTest/lib2Test/project.properties
new file mode 100644
index 000000000..dfe40b0c8
--- /dev/null
+++ b/testapps/libsTest/lib2Test/project.properties
@@ -0,0 +1,16 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library.reference.1=../lib2
+manifestmerger.enabled=true
diff --git a/testapps/libsTest/lib2Test/res/values/strings.xml b/testapps/libsTest/lib2Test/res/values/strings.xml
new file mode 100644
index 000000000..68ce7718b
--- /dev/null
+++ b/testapps/libsTest/lib2Test/res/values/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="lib2_name">LibsTest-lib2Test</string>
+
+</resources> \ No newline at end of file
diff --git a/testapps/libsTest/lib2Test/src/com/android/tests/libstest/lib2/MainActivityTest.java b/testapps/libsTest/lib2Test/src/com/android/tests/libstest/lib2/MainActivityTest.java
new file mode 100644
index 000000000..6ac4a5c54
--- /dev/null
+++ b/testapps/libsTest/lib2Test/src/com/android/tests/libstest/lib2/MainActivityTest.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2008 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.tests.libstest.lib2;
+
+import android.test.ActivityInstrumentationTestCase2;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.widget.TextView;
+
+import com.android.tests.libstest.lib2.R;
+
+/**
+ * An example of an {@link ActivityInstrumentationTestCase2} of a specific activity {@link Focus2}.
+ * By virtue of extending {@link ActivityInstrumentationTestCase2}, the target activity is automatically
+ * launched and finished before and after each test. This also extends
+ * {@link android.test.InstrumentationTestCase}, which provides
+ * access to methods for sending events to the target activity, such as key and
+ * touch events. See {@link #sendKeys}.
+ *
+ * In general, {@link android.test.InstrumentationTestCase}s and {@link ActivityInstrumentationTestCase2}s
+ * are heavier weight functional tests available for end to end testing of your
+ * user interface. When run via a {@link android.test.InstrumentationTestRunner},
+ * the necessary {@link android.app.Instrumentation} will be injected for you to
+ * user via {@link #getInstrumentation} in your tests.
+ *
+ * See {@link com.example.android.apis.AllTests} for documentation on running
+ * all tests and individual tests in this application.
+ */
+public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {
+
+ private TextView mTextView1;
+ private TextView mTextView2;
+
+ /**
+ * Creates an {@link ActivityInstrumentationTestCase2} that tests the {@link Focus2} activity.
+ */
+ public MainActivityTest() {
+ super(MainActivity.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ final MainActivity a = getActivity();
+ // ensure a valid handle to the activity has been returned
+ assertNotNull(a);
+
+ mTextView1 = (TextView) a.findViewById(R.id.lib2_text1);
+ mTextView2 = (TextView) a.findViewById(R.id.lib2_text2);
+ }
+
+ /**
+ * The name 'test preconditions' is a convention to signal that if this
+ * test doesn't pass, the test case was not set up properly and it might
+ * explain any and all failures in other tests. This is not guaranteed
+ * to run before other tests, as junit uses reflection to find the tests.
+ */
+ @MediumTest
+ public void testPreconditions() {
+ assertNotNull(mTextView1);
+ assertNotNull(mTextView2);
+ }
+
+ @MediumTest
+ public void testAndroidStrings() {
+ assertEquals("SUCCESS-LIB2", mTextView1.getText());
+ }
+
+ @MediumTest
+ public void testJavaStrings() {
+ assertEquals("SUCCESS-LIB2", mTextView2.getText());
+ }
+}
diff --git a/testapps/proguard.config b/testapps/proguard.config
new file mode 100644
index 000000000..b9dab4067
--- /dev/null
+++ b/testapps/proguard.config
@@ -0,0 +1,31 @@
+-optimizationpasses 5
+-dontusemixedcaseclassnames
+-dontskipnonpubliclibraryclasses
+-dontpreverify
+-verbose
+-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
+
+-keep public class * extends android.app.Activity
+-keep public class * extends android.app.Application
+-keep public class * extends android.app.Service
+-keep public class * extends android.content.BroadcastReceiver
+-keep public class * extends android.content.ContentProvider
+-keep public class com.android.vending.licensing.ILicensingService
+
+-keepclasseswithmembernames class * {
+ native <methods>;
+}
+
+-keepclasseswithmembernames class * {
+ public <init>(android.content.Context, android.util.AttributeSet);
+}
+
+-keepclasseswithmembernames class * {
+ public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+
+-keepclassmembers enum * {
+ public static **[] values();
+ public static ** valueOf(java.lang.String);
+}
+
diff --git a/testapps/testProjectTest/COMPILE_AND_RUN b/testapps/testProjectTest/COMPILE_AND_RUN
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/testProjectTest/COMPILE_AND_RUN
diff --git a/testapps/testProjectTest/SUCCESS b/testapps/testProjectTest/SUCCESS
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/testProjectTest/SUCCESS
diff --git a/testapps/testProjectTest/app/.classpath b/testapps/testProjectTest/app/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/testProjectTest/app/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/testProjectTest/app/.project b/testapps/testProjectTest/app/.project
new file mode 100644
index 000000000..344feb870
--- /dev/null
+++ b/testapps/testProjectTest/app/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>testProjectTest-app</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/testProjectTest/app/AndroidManifest.xml b/testapps/testProjectTest/app/AndroidManifest.xml
new file mode 100644
index 000000000..41e6b82bd
--- /dev/null
+++ b/testapps/testProjectTest/app/AndroidManifest.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.testprojecttest.app"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <uses-sdk android:minSdkVersion="15" />
+
+ <application
+ android:icon="@drawable/ic_launcher"
+ android:label="@string/app_name" >
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/testProjectTest/app/build.xml b/testapps/testProjectTest/app/build.xml
new file mode 100644
index 000000000..1a886cebe
--- /dev/null
+++ b/testapps/testProjectTest/app/build.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="testProjectTest-app" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var.
+ This must be done before we load project.properties since
+ the proguard config can use sdk.dir -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/testProjectTest/app/proguard-project.txt b/testapps/testProjectTest/app/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/testProjectTest/app/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/testProjectTest/app/project.properties b/testapps/testProjectTest/app/project.properties
new file mode 100644
index 000000000..01b6493a0
--- /dev/null
+++ b/testapps/testProjectTest/app/project.properties
@@ -0,0 +1,16 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library.reference.1=../lib
+manifestmerger.enabled=true
diff --git a/testapps/testProjectTest/app/res/drawable-hdpi/ic_launcher.png b/testapps/testProjectTest/app/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 000000000..96a442e5b
--- /dev/null
+++ b/testapps/testProjectTest/app/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/testProjectTest/app/res/drawable-ldpi/ic_launcher.png b/testapps/testProjectTest/app/res/drawable-ldpi/ic_launcher.png
new file mode 100644
index 000000000..99238729d
--- /dev/null
+++ b/testapps/testProjectTest/app/res/drawable-ldpi/ic_launcher.png
Binary files differ
diff --git a/testapps/testProjectTest/app/res/drawable-mdpi/ic_launcher.png b/testapps/testProjectTest/app/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 000000000..359047dfa
--- /dev/null
+++ b/testapps/testProjectTest/app/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/testProjectTest/app/res/drawable-xhdpi/ic_launcher.png b/testapps/testProjectTest/app/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 000000000..71c6d760f
--- /dev/null
+++ b/testapps/testProjectTest/app/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/testProjectTest/app/res/values/strings.xml b/testapps/testProjectTest/app/res/values/strings.xml
new file mode 100644
index 000000000..c933032e7
--- /dev/null
+++ b/testapps/testProjectTest/app/res/values/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="app_name">TestProjectTest-app</string>
+
+</resources> \ No newline at end of file
diff --git a/testapps/testProjectTest/app/src/readme.txt b/testapps/testProjectTest/app/src/readme.txt
new file mode 100644
index 000000000..103fd769f
--- /dev/null
+++ b/testapps/testProjectTest/app/src/readme.txt
@@ -0,0 +1 @@
+Just there so that the src folder doesn't disappear. \ No newline at end of file
diff --git a/testapps/testProjectTest/lib/.classpath b/testapps/testProjectTest/lib/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/testProjectTest/lib/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/testProjectTest/lib/.project b/testapps/testProjectTest/lib/.project
new file mode 100644
index 000000000..274b51241
--- /dev/null
+++ b/testapps/testProjectTest/lib/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>testProjectTest-lib</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/testProjectTest/lib/AndroidManifest.xml b/testapps/testProjectTest/lib/AndroidManifest.xml
new file mode 100644
index 000000000..b8bc11cab
--- /dev/null
+++ b/testapps/testProjectTest/lib/AndroidManifest.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.testprojecttest.lib"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <uses-sdk android:minSdkVersion="15" />
+
+ <application>
+ <activity
+ android:name="com.android.tests.testprojecttest.lib.LibActivity"
+ android:label="@string/app_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/testProjectTest/lib/build.xml b/testapps/testProjectTest/lib/build.xml
new file mode 100644
index 000000000..88c684568
--- /dev/null
+++ b/testapps/testProjectTest/lib/build.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="testProjectTest-lib" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var.
+ This must be done before we load project.properties since
+ the proguard config can use sdk.dir -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/testProjectTest/lib/proguard-project.txt b/testapps/testProjectTest/lib/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/testProjectTest/lib/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/testProjectTest/lib/project.properties b/testapps/testProjectTest/lib/project.properties
new file mode 100644
index 000000000..36f15941e
--- /dev/null
+++ b/testapps/testProjectTest/lib/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library=true
diff --git a/testapps/testProjectTest/lib/res/layout/main.xml b/testapps/testProjectTest/lib/res/layout/main.xml
new file mode 100644
index 000000000..14a9c4bb7
--- /dev/null
+++ b/testapps/testProjectTest/lib/res/layout/main.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical" >
+
+ <TextView
+ android:id="@+id/text"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="some string"
+ tools:ignore="HardcodedText" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/testapps/testProjectTest/lib/res/values/strings.xml b/testapps/testProjectTest/lib/res/values/strings.xml
new file mode 100644
index 000000000..fdb227260
--- /dev/null
+++ b/testapps/testProjectTest/lib/res/values/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="app_name">TestProjectTest-lib</string>
+
+</resources> \ No newline at end of file
diff --git a/testapps/testProjectTest/lib/src/com/android/tests/testprojecttest/lib/LibActivity.java b/testapps/testProjectTest/lib/src/com/android/tests/testprojecttest/lib/LibActivity.java
new file mode 100644
index 000000000..7d7f6079e
--- /dev/null
+++ b/testapps/testProjectTest/lib/src/com/android/tests/testprojecttest/lib/LibActivity.java
@@ -0,0 +1,13 @@
+package com.android.tests.testprojecttest.lib;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class LibActivity extends Activity {
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ }
+} \ No newline at end of file
diff --git a/testapps/testProjectTest/testapp/.classpath b/testapps/testProjectTest/testapp/.classpath
new file mode 100644
index 000000000..9afbc3814
--- /dev/null
+++ b/testapps/testProjectTest/testapp/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/testProjectTest-app"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/testProjectTest/testapp/.project b/testapps/testProjectTest/testapp/.project
new file mode 100644
index 000000000..796ccc1da
--- /dev/null
+++ b/testapps/testProjectTest/testapp/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>testProjectTest-testapp</name>
+ <comment></comment>
+ <projects>
+ <project>testProjectTest-app</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/testProjectTest/testapp/AndroidManifest.xml b/testapps/testProjectTest/testapp/AndroidManifest.xml
new file mode 100644
index 000000000..5252972bc
--- /dev/null
+++ b/testapps/testProjectTest/testapp/AndroidManifest.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.testprojecttest.test"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <uses-sdk android:minSdkVersion="15" />
+
+ <!--
+ We add an application tag here just so that we can indicate that
+ this package needs to link against the android.test library,
+ which is needed when building test cases.
+ -->
+ <application android:label="testProjectTest-testapp">
+ <uses-library android:name="android.test.runner" />
+ </application>
+
+ <!--
+ This declares that this app uses the instrumentation test runner targeting
+ the package of com.android.tests.testprojecttest.app. To run the tests use the command:
+ "adb shell am instrument -w com.android.tests.testprojecttest.test/android.test.InstrumentationTestRunner"
+ -->
+ <instrumentation
+ android:name="android.test.InstrumentationTestRunner"
+ android:targetPackage="com.android.tests.testprojecttest.app" />
+
+</manifest> \ No newline at end of file
diff --git a/testapps/testProjectTest/testapp/build.xml b/testapps/testProjectTest/testapp/build.xml
new file mode 100644
index 000000000..4f12210eb
--- /dev/null
+++ b/testapps/testProjectTest/testapp/build.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="testProjectTest-testapp" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var.
+ This must be done before we load project.properties since
+ the proguard config can use sdk.dir -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/testProjectTest/testapp/proguard-project.txt b/testapps/testProjectTest/testapp/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/testProjectTest/testapp/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/testProjectTest/testapp/project.properties b/testapps/testProjectTest/testapp/project.properties
new file mode 100644
index 000000000..4c13b857b
--- /dev/null
+++ b/testapps/testProjectTest/testapp/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+tested.project.dir=../app
diff --git a/testapps/testProjectTest/testapp/src/com/android/tests/testprojecttest/lib/LibActivityTest.java b/testapps/testProjectTest/testapp/src/com/android/tests/testprojecttest/lib/LibActivityTest.java
new file mode 100644
index 000000000..9be6f97d2
--- /dev/null
+++ b/testapps/testProjectTest/testapp/src/com/android/tests/testprojecttest/lib/LibActivityTest.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2008 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.tests.testprojecttest.lib;
+
+import android.test.ActivityInstrumentationTestCase2;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.widget.TextView;
+
+import com.android.tests.testprojecttest.app.R;
+
+/**
+ * An example of an {@link ActivityInstrumentationTestCase2} of a specific activity {@link Focus2}.
+ * By virtue of extending {@link ActivityInstrumentationTestCase2}, the target activity is automatically
+ * launched and finished before and after each test. This also extends
+ * {@link android.test.InstrumentationTestCase}, which provides
+ * access to methods for sending events to the target activity, such as key and
+ * touch events. See {@link #sendKeys}.
+ *
+ * In general, {@link android.test.InstrumentationTestCase}s and {@link ActivityInstrumentationTestCase2}s
+ * are heavier weight functional tests available for end to end testing of your
+ * user interface. When run via a {@link android.test.InstrumentationTestRunner},
+ * the necessary {@link android.app.Instrumentation} will be injected for you to
+ * user via {@link #getInstrumentation} in your tests.
+ *
+ * See {@link com.example.android.apis.AllTests} for documentation on running
+ * all tests and individual tests in this application.
+ */
+public class LibActivityTest extends ActivityInstrumentationTestCase2<LibActivity> {
+
+ private TextView mTextView;
+
+ /**
+ * Creates an {@link ActivityInstrumentationTestCase2} that tests the {@link Focus2} activity.
+ */
+ public LibActivityTest() {
+ super(LibActivity.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ final LibActivity a = getActivity();
+ // ensure a valid handle to the activity has been returned
+ assertNotNull(a);
+ mTextView = (TextView) a.findViewById(R.id.text);
+ }
+
+ /**
+ * The name 'test preconditions' is a convention to signal that if this
+ * test doesn't pass, the test case was not set up properly and it might
+ * explain any and all failures in other tests. This is not guaranteed
+ * to run before other tests, as junit uses reflection to find the tests.
+ */
+ @MediumTest
+ public void testPreconditions() {
+ assertNotNull(mTextView);
+ }
+}
diff --git a/testapps/testProjectTest/testapp/src/com/android/tests/testprojecttest/test/AllTests.java b/testapps/testProjectTest/testapp/src/com/android/tests/testprojecttest/test/AllTests.java
new file mode 100644
index 000000000..a77b53ce8
--- /dev/null
+++ b/testapps/testProjectTest/testapp/src/com/android/tests/testprojecttest/test/AllTests.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2008 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.tests.testprojecttest.test;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import android.test.suitebuilder.TestSuiteBuilder;
+
+/**
+ * A test suite containing all tests for ApiDemos.
+ *
+ * To run all suites found in this apk:
+ * $ adb shell am instrument -w \
+ * com.example.android.apis.tests/android.test.InstrumentationTestRunner
+ *
+ * To run just this suite from the command line:
+ * $ adb shell am instrument -w \
+ * -e class com.example.android.apis.AllTests \
+ * com.example.android.apis.tests/android.test.InstrumentationTestRunner
+ *
+ * To run an individual test case, e.g. {@link com.example.android.apis.os.MorseCodeConverterTest}:
+ * $ adb shell am instrument -w \
+ * -e class com.example.android.apis.os.MorseCodeConverterTest \
+ * com.example.android.apis.tests/android.test.InstrumentationTestRunner
+ *
+ * To run an individual test, e.g. {@link com.example.android.apis.os.MorseCodeConverterTest#testCharacterS()}:
+ * $ adb shell am instrument -w \
+ * -e class com.example.android.apis.os.MorseCodeConverterTest#testCharacterS \
+ * com.example.android.apis.tests/android.test.InstrumentationTestRunner
+ */
+public class AllTests extends TestSuite {
+
+ public static Test suite() {
+ return new TestSuiteBuilder(AllTests.class)
+ .includeAllPackagesUnderHere()
+ .build();
+ }
+}
diff --git a/testapps/testProjectTest/testlib/.classpath b/testapps/testProjectTest/testlib/.classpath
new file mode 100644
index 000000000..9afbc3814
--- /dev/null
+++ b/testapps/testProjectTest/testlib/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/testProjectTest-app"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/testProjectTest/testlib/.project b/testapps/testProjectTest/testlib/.project
new file mode 100644
index 000000000..84502179a
--- /dev/null
+++ b/testapps/testProjectTest/testlib/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>testProjectTest-testlib</name>
+ <comment></comment>
+ <projects>
+ <project>testProjectTest-app</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/testProjectTest/testlib/AndroidManifest.xml b/testapps/testProjectTest/testlib/AndroidManifest.xml
new file mode 100644
index 000000000..93b02e420
--- /dev/null
+++ b/testapps/testProjectTest/testlib/AndroidManifest.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.testprojecttest.testlib"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <uses-sdk android:minSdkVersion="15" />
+
+ <!--
+ We add an application tag here just so that we can indicate that
+ this package needs to link against the android.test library,
+ which is needed when building test cases.
+ -->
+ <application android:label="testProjectTest-testlib">
+ <uses-library android:name="android.test.runner" />
+ </application>
+
+ <!--
+ This declares that this app uses the instrumentation test runner targeting
+ the package of com.android.tests.testprojecttest.testlib. To run the tests use the command:
+ "adb shell am instrument -w com.android.tests.testprojecttest.testlib/android.test.InstrumentationTestRunner"
+ -->
+ <instrumentation
+ android:name="android.test.InstrumentationTestRunner"
+ android:targetPackage="com.android.tests.testprojecttest.testlib" />
+
+</manifest> \ No newline at end of file
diff --git a/testapps/testProjectTest/testlib/build.xml b/testapps/testProjectTest/testlib/build.xml
new file mode 100644
index 000000000..b59cc6570
--- /dev/null
+++ b/testapps/testProjectTest/testlib/build.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="testProjectTest-testlib" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <property file="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- if sdk.dir was not set from one of the property file, then
+ get it from the ANDROID_HOME env var.
+ This must be done before we load project.properties since
+ the proguard config can use sdk.dir -->
+ <property environment="env" />
+ <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+ <isset property="env.ANDROID_HOME" />
+ </condition>
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+ unless="sdk.dir"
+ />
+
+ <!--
+ Import per project custom build rules if present at the root of the project.
+ This is the place to put custom intermediary targets such as:
+ -pre-build
+ -pre-compile
+ -post-compile (This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir})
+ -post-package
+ -post-build
+ -pre-clean
+ -->
+ <import file="custom_rules.xml" optional="true" />
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/testapps/testProjectTest/testlib/proguard-project.txt b/testapps/testProjectTest/testlib/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/testProjectTest/testlib/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/testProjectTest/testlib/project.properties b/testapps/testProjectTest/testlib/project.properties
new file mode 100644
index 000000000..01b6493a0
--- /dev/null
+++ b/testapps/testProjectTest/testlib/project.properties
@@ -0,0 +1,16 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library.reference.1=../lib
+manifestmerger.enabled=true
diff --git a/testapps/testProjectTest/testlib/res/values/strings.xml b/testapps/testProjectTest/testlib/res/values/strings.xml
new file mode 100644
index 000000000..ef424788d
--- /dev/null
+++ b/testapps/testProjectTest/testlib/res/values/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="hello">Hello World!</string>
+ <string name="app_name">TestProjectTest-testTest</string>
+
+</resources> \ No newline at end of file
diff --git a/testapps/testProjectTest/testlib/src/com/android/tests/testprojecttest/lib/LibActivityTest.java b/testapps/testProjectTest/testlib/src/com/android/tests/testprojecttest/lib/LibActivityTest.java
new file mode 100644
index 000000000..6632c5810
--- /dev/null
+++ b/testapps/testProjectTest/testlib/src/com/android/tests/testprojecttest/lib/LibActivityTest.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2008 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.tests.testprojecttest.lib;
+
+import android.test.ActivityInstrumentationTestCase2;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.widget.TextView;
+
+import com.android.tests.testprojecttest.lib.R;
+
+/**
+ * An example of an {@link ActivityInstrumentationTestCase2} of a specific activity {@link Focus2}.
+ * By virtue of extending {@link ActivityInstrumentationTestCase2}, the target activity is automatically
+ * launched and finished before and after each test. This also extends
+ * {@link android.test.InstrumentationTestCase}, which provides
+ * access to methods for sending events to the target activity, such as key and
+ * touch events. See {@link #sendKeys}.
+ *
+ * In general, {@link android.test.InstrumentationTestCase}s and {@link ActivityInstrumentationTestCase2}s
+ * are heavier weight functional tests available for end to end testing of your
+ * user interface. When run via a {@link android.test.InstrumentationTestRunner},
+ * the necessary {@link android.app.Instrumentation} will be injected for you to
+ * user via {@link #getInstrumentation} in your tests.
+ *
+ * See {@link com.example.android.apis.AllTests} for documentation on running
+ * all tests and individual tests in this application.
+ */
+public class LibActivityTest extends ActivityInstrumentationTestCase2<LibActivity> {
+
+ private TextView mTextView;
+
+ /**
+ * Creates an {@link ActivityInstrumentationTestCase2} that tests the {@link Focus2} activity.
+ */
+ public LibActivityTest() {
+ super(LibActivity.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ final LibActivity a = getActivity();
+ // ensure a valid handle to the activity has been returned
+ assertNotNull(a);
+ mTextView = (TextView) a.findViewById(R.id.text);
+ }
+
+ /**
+ * The name 'test preconditions' is a convention to signal that if this
+ * test doesn't pass, the test case was not set up properly and it might
+ * explain any and all failures in other tests. This is not guaranteed
+ * to run before other tests, as junit uses reflection to find the tests.
+ */
+ @MediumTest
+ public void testPreconditions() {
+ assertNotNull(mTextView);
+ }
+}
diff --git a/testapps/testProjectTest/testlib/src/com/android/tests/testprojecttest/test/AllTests.java b/testapps/testProjectTest/testlib/src/com/android/tests/testprojecttest/test/AllTests.java
new file mode 100644
index 000000000..a77b53ce8
--- /dev/null
+++ b/testapps/testProjectTest/testlib/src/com/android/tests/testprojecttest/test/AllTests.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2008 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.tests.testprojecttest.test;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import android.test.suitebuilder.TestSuiteBuilder;
+
+/**
+ * A test suite containing all tests for ApiDemos.
+ *
+ * To run all suites found in this apk:
+ * $ adb shell am instrument -w \
+ * com.example.android.apis.tests/android.test.InstrumentationTestRunner
+ *
+ * To run just this suite from the command line:
+ * $ adb shell am instrument -w \
+ * -e class com.example.android.apis.AllTests \
+ * com.example.android.apis.tests/android.test.InstrumentationTestRunner
+ *
+ * To run an individual test case, e.g. {@link com.example.android.apis.os.MorseCodeConverterTest}:
+ * $ adb shell am instrument -w \
+ * -e class com.example.android.apis.os.MorseCodeConverterTest \
+ * com.example.android.apis.tests/android.test.InstrumentationTestRunner
+ *
+ * To run an individual test, e.g. {@link com.example.android.apis.os.MorseCodeConverterTest#testCharacterS()}:
+ * $ adb shell am instrument -w \
+ * -e class com.example.android.apis.os.MorseCodeConverterTest#testCharacterS \
+ * com.example.android.apis.tests/android.test.InstrumentationTestRunner
+ */
+public class AllTests extends TestSuite {
+
+ public static Test suite() {
+ return new TestSuiteBuilder(AllTests.class)
+ .includeAllPackagesUnderHere()
+ .build();
+ }
+}
diff --git a/testapps/testSensors/.classpath b/testapps/testSensors/.classpath
new file mode 100644
index 000000000..a4763d1ee
--- /dev/null
+++ b/testapps/testSensors/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/testSensors/.project b/testapps/testSensors/.project
new file mode 100644
index 000000000..de0da91e0
--- /dev/null
+++ b/testapps/testSensors/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>TestSensorsActivity</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/testSensors/AndroidManifest.xml b/testapps/testSensors/AndroidManifest.xml
new file mode 100644
index 000000000..375717436
--- /dev/null
+++ b/testapps/testSensors/AndroidManifest.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright 2010 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.
+ */
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.testsensors"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <uses-sdk android:minSdkVersion="8" />
+ <uses-permission android:name="android.permission.INTERNET" />
+
+ <application
+ android:icon="@drawable/ic_launcher"
+ android:label="@string/app_name" >
+ <activity
+ android:label="@string/app_name"
+ android:name=".TestSensorsActivity" >
+ <intent-filter >
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/testapps/testSensors/project.properties b/testapps/testSensors/project.properties
new file mode 100644
index 000000000..ea89160e0
--- /dev/null
+++ b/testapps/testSensors/project.properties
@@ -0,0 +1,11 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-8
diff --git a/testapps/testSensors/res/drawable-hdpi/ic_launcher.png b/testapps/testSensors/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 000000000..8074c4c57
--- /dev/null
+++ b/testapps/testSensors/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/testSensors/res/drawable-ldpi/ic_launcher.png b/testapps/testSensors/res/drawable-ldpi/ic_launcher.png
new file mode 100644
index 000000000..1095584ec
--- /dev/null
+++ b/testapps/testSensors/res/drawable-ldpi/ic_launcher.png
Binary files differ
diff --git a/testapps/testSensors/res/drawable-mdpi/ic_launcher.png b/testapps/testSensors/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 000000000..a07c69fa5
--- /dev/null
+++ b/testapps/testSensors/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/testSensors/res/layout/main.xml b/testapps/testSensors/res/layout/main.xml
new file mode 100644
index 000000000..1f73c9c40
--- /dev/null
+++ b/testapps/testSensors/res/layout/main.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/scrollView1"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent" >
+
+ <TableLayout
+ android:id="@+id/tableLayout"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:saveEnabled="false" />
+
+</ScrollView>
+
diff --git a/testapps/testSensors/res/layout/one_row.xml b/testapps/testSensors/res/layout/one_row.xml
new file mode 100644
index 000000000..e3c54b890
--- /dev/null
+++ b/testapps/testSensors/res/layout/one_row.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent" >
+ <TextView
+ android:id="@+id/row_textview_name"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:saveEnabled="false"
+ android:layout_marginRight="10dp"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+ <TextView
+ android:id="@+id/row_textview_value"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+</TableRow> \ No newline at end of file
diff --git a/testapps/testSensors/res/values/strings.xml b/testapps/testSensors/res/values/strings.xml
new file mode 100644
index 000000000..bc7d7c8c8
--- /dev/null
+++ b/testapps/testSensors/res/values/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="hello">Hello World, TestSensorsActivity!</string>
+ <string name="app_name">TestSensors</string>
+
+</resources> \ No newline at end of file
diff --git a/testapps/testSensors/src/com/android/tests/testsensors/TestSensorsActivity.java b/testapps/testSensors/src/com/android/tests/testsensors/TestSensorsActivity.java
new file mode 100644
index 000000000..c30e05fd5
--- /dev/null
+++ b/testapps/testSensors/src/com/android/tests/testsensors/TestSensorsActivity.java
@@ -0,0 +1,246 @@
+/*
+ * Copyright (C) 2011 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.tests.testsensors;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import android.app.Activity;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.widget.TableLayout;
+import android.widget.TableRow;
+import android.widget.TextView;
+
+public class TestSensorsActivity extends Activity {
+ private static final String TAG = "testSensors";
+ /** Array containing monitored sensors. */
+ private List<MonitoredSensor> mSensors;
+ /** Controls displayed list of sensors. */
+ private TableLayout mTableLayout;
+
+ /**
+ * Encapsulates a sensor.
+ */
+ private class MonitoredSensor implements SensorEventListener {
+ /** Sensor to monitor. */
+ private final Sensor mSensor;
+ /** Check box representing the sensor on the screen. */
+ private final TextView mName;
+ /** Text view displaying the value of the sensor. */
+ private final TextView mVal;
+ /** Formats string to show in the TextView. */
+ private String mTextFmt;
+
+ /**
+ * Constructs MonitoredSensor instance, and register the listeners.
+ *
+ * @param sensor Sensor to monitor.
+ */
+ MonitoredSensor(Sensor sensor) {
+ mSensor = sensor;
+
+ // Add a row representing this sensor on the display
+ final LayoutInflater inflater = getLayoutInflater();
+ final TableRow row = (TableRow) inflater.inflate(R.layout.one_row, mTableLayout, false);
+ mTableLayout.addView(row);
+
+ // Initialize displayed checkbox for this sensor, and register
+ // checked state listener for it.
+ mName = (TextView) row.findViewById(R.id.row_textview_name);
+
+ // Initialize displayed text box for this sensor.
+ mVal = (TextView) row.findViewById(R.id.row_textview_value);
+ mVal.setText("");
+
+ // Set appropriate sensor name depending on the type. Unfortunately,
+ // we can't really use sensor.getName() here, since the value it
+ // returns (although resembles the purpose) is a bit vaguer than it
+ // should be. Also choose an appropriate format for the strings that
+ // display sensor's value, and strings that are sent to the
+ // emulator.
+ switch (sensor.getType()) {
+ case Sensor.TYPE_ACCELEROMETER:
+ mName.setText("Accelerometer");
+ // 3 floats.
+ mTextFmt = "%+.2f %+.2f %+.2f";
+ break;
+ case 9: // Sensor.TYPE_GRAVITY is missing in API 7
+ // 3 floats.
+ mName.setText("Gravity");
+ mTextFmt = "%+.2f %+.2f %+.2f";
+ break;
+ case Sensor.TYPE_GYROSCOPE:
+ mName.setText("Gyroscope");
+ // 3 floats.
+ mTextFmt = "%+.2f %+.2f %+.2f";
+ break;
+ case Sensor.TYPE_LIGHT:
+ mName.setText("Light");
+ // 1 integer.
+ mTextFmt = "%.0f";
+ break;
+ case 10: // Sensor.TYPE_LINEAR_ACCELERATION is missing in API 7
+ mName.setText("Linear acceleration");
+ // 3 floats.
+ mTextFmt = "%+.2f %+.2f %+.2f";
+ break;
+ case Sensor.TYPE_MAGNETIC_FIELD:
+ mName.setText("Magnetic field");
+ // 3 floats.
+ mTextFmt = "%+.2f %+.2f %+.2f";
+ break;
+ case Sensor.TYPE_ORIENTATION:
+ mName.setText("Orientation");
+ // 3 integers.
+ mTextFmt = "%+03.0f %+03.0f %+03.0f";
+ break;
+ case Sensor.TYPE_PRESSURE:
+ mName.setText("Pressure");
+ // 1 integer.
+ mTextFmt = "%.0f";
+ break;
+ case Sensor.TYPE_PROXIMITY:
+ mName.setText("Proximity");
+ // 1 integer.
+ mTextFmt = "%.0f";
+ break;
+ case 11: // Sensor.TYPE_ROTATION_VECTOR is missing in API 7
+ mName.setText("Rotation");
+ // 3 floats.
+ mTextFmt = "%+.2f %+.2f %+.2f";
+ break;
+ case Sensor.TYPE_TEMPERATURE:
+ mName.setText("Temperature");
+ // 1 integer.
+ mTextFmt = "%.0f";
+ break;
+ default:
+ mName.setText("<Unknown>");
+ mTextFmt = "N/A";
+ break;
+ }
+ }
+
+ /**
+ * Gets sensor type.
+ *
+ * @return Sensor type as one of the Sensor.TYPE_XXX constants.
+ */
+ private int getType() {
+ return mSensor.getType();
+ }
+
+ /**
+ * Starts monitoring the sensor. NOTE: This method is called from
+ * outside of the UI thread.
+ */
+ private void startListening() {
+ SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
+ sm.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_UI);
+ }
+
+ /**
+ * Stops monitoring the sensor. NOTE: This method is called from outside
+ * of the UI thread.
+ */
+ private void stopListening() {
+ SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
+ sm.unregisterListener(this);
+ }
+
+ /**
+ * Handles "sensor changed" event. This is an implementation of the
+ * SensorEventListener interface.
+ */
+ @Override
+ public void onSensorChanged(SensorEvent event) {
+ // Display current sensor value, and format message that will be
+ // sent to the emulator.
+ final int nArgs = event.values.length;
+ String val;
+ if (nArgs == 3) {
+ val = String.format(mTextFmt, event.values[0], event.values[1], event.values[2]);
+ } else if (nArgs == 2) {
+ val = String.format(mTextFmt, event.values[0], event.values[1]);
+ } else if (nArgs == 1) {
+ val = String.format(mTextFmt, event.values[0]);
+ } else {
+ return;
+ }
+ mVal.setText(val);
+ }
+
+ /**
+ * Handles "sensor accuracy changed" event. This is an implementation of
+ * the SensorEventListener interface.
+ */
+ @Override
+ public void onAccuracyChanged(Sensor sensor, int accuracy) {
+ }
+ } // MonitoredSensor
+
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+
+ mTableLayout = (TableLayout) findViewById(R.id.tableLayout);
+
+ // Iterate through the available sensors, adding them to the array.
+ mSensors = new ArrayList<MonitoredSensor>();
+ SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
+ List<Sensor> sensors = sm.getSensorList(Sensor.TYPE_ALL);
+ int cur_index = 0;
+ for (int n = 0; n < sensors.size(); n++) {
+ Sensor avail_sensor = sensors.get(n);
+
+ // There can be multiple sensors of the same type. We need only one.
+ if (!isSensorTypeAlreadyMonitored(avail_sensor.getType())) {
+ // The first sensor we've got for the given type is not
+ // necessarily the right one. So, use the default sensor
+ // for the given type.
+ Sensor def_sens = sm.getDefaultSensor(avail_sensor.getType());
+ MonitoredSensor to_add = new MonitoredSensor(def_sens);
+ cur_index++;
+ mSensors.add(to_add);
+ to_add.startListening();
+ }
+ }
+ }
+
+ /**
+ * Checks if a sensor for the given type is already monitored.
+ *
+ * @param type Sensor type (one of the Sensor.TYPE_XXX constants)
+ * @return true if a sensor for the given type is already monitored, or
+ * false if the sensor is not monitored.
+ */
+ private boolean isSensorTypeAlreadyMonitored(int type) {
+ for (int n = 0; n < mSensors.size(); n++) {
+ if (mSensors.get(n).getType() == type) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/testapps/userLibTest/.classpath b/testapps/userLibTest/.classpath
new file mode 100644
index 000000000..132d8c93f
--- /dev/null
+++ b/testapps/userLibTest/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/USERLIBTEST"/>
+ <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/testapps/userLibTest/.project b/testapps/userLibTest/.project
new file mode 100644
index 000000000..226edb7f0
--- /dev/null
+++ b/testapps/userLibTest/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>userLibTest</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/testapps/userLibTest/AndroidManifest.xml b/testapps/userLibTest/AndroidManifest.xml
new file mode 100644
index 000000000..588360768
--- /dev/null
+++ b/testapps/userLibTest/AndroidManifest.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.userlibtest"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
+ <activity android:name="Main"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+</manifest>
diff --git a/testapps/userLibTest/COMPILE_AND_RUN b/testapps/userLibTest/COMPILE_AND_RUN
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/userLibTest/COMPILE_AND_RUN
diff --git a/testapps/userLibTest/ECLIPSEONLY b/testapps/userLibTest/ECLIPSEONLY
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/userLibTest/ECLIPSEONLY
diff --git a/testapps/userLibTest/README.txt b/testapps/userLibTest/README.txt
new file mode 100644
index 000000000..5d63f4ed2
--- /dev/null
+++ b/testapps/userLibTest/README.txt
@@ -0,0 +1,5 @@
+This test requires a workspace setup:
+
+- Create User Library called "USERLIBTEST"
+- Add to this library the jar located in jars/basicJar.jar
+- App should compile, and deploy on device and UI show show SUCCESS \ No newline at end of file
diff --git a/testapps/userLibTest/SUCCESS b/testapps/userLibTest/SUCCESS
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testapps/userLibTest/SUCCESS
diff --git a/testapps/userLibTest/jars/basicJar.jar b/testapps/userLibTest/jars/basicJar.jar
new file mode 100644
index 000000000..319ed0245
--- /dev/null
+++ b/testapps/userLibTest/jars/basicJar.jar
Binary files differ
diff --git a/testapps/userLibTest/proguard-project.txt b/testapps/userLibTest/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/testapps/userLibTest/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/testapps/userLibTest/project.properties b/testapps/userLibTest/project.properties
new file mode 100644
index 000000000..0840b4a05
--- /dev/null
+++ b/testapps/userLibTest/project.properties
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
diff --git a/testapps/userLibTest/res/drawable-hdpi/ic_launcher.png b/testapps/userLibTest/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 000000000..8074c4c57
--- /dev/null
+++ b/testapps/userLibTest/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/userLibTest/res/drawable-ldpi/ic_launcher.png b/testapps/userLibTest/res/drawable-ldpi/ic_launcher.png
new file mode 100644
index 000000000..1095584ec
--- /dev/null
+++ b/testapps/userLibTest/res/drawable-ldpi/ic_launcher.png
Binary files differ
diff --git a/testapps/userLibTest/res/drawable-mdpi/ic_launcher.png b/testapps/userLibTest/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 000000000..a07c69fa5
--- /dev/null
+++ b/testapps/userLibTest/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/testapps/userLibTest/res/layout/main.xml b/testapps/userLibTest/res/layout/main.xml
new file mode 100644
index 000000000..3e65644f0
--- /dev/null
+++ b/testapps/userLibTest/res/layout/main.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical" >
+
+ <TextView
+ android:id="@+id/basicJar"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="\\?"
+ tools:ignore="HardcodedText" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/testapps/userLibTest/res/values/strings.xml b/testapps/userLibTest/res/values/strings.xml
new file mode 100644
index 000000000..549e4ea50
--- /dev/null
+++ b/testapps/userLibTest/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Main</string>
+</resources>
diff --git a/testapps/userLibTest/src/com/android/tests/userlibtest/Main.java b/testapps/userLibTest/src/com/android/tests/userlibtest/Main.java
new file mode 100644
index 000000000..b2f1be3c2
--- /dev/null
+++ b/testapps/userLibTest/src/com/android/tests/userlibtest/Main.java
@@ -0,0 +1,19 @@
+package com.android.tests.userlibtest;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.widget.TextView;
+
+import com.android.tests.basicjar.BasicJar;
+
+public class Main extends Activity {
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+
+ TextView tv = (TextView) findViewById(R.id.basicJar);
+ tv.setText("BasicJar: " + BasicJar.getContent());
+ }
+}