aa1a911d9a0f797748b001c41bd8df2f517b318c |
|
10-Apr-2018 |
Jeff Sharkey <jsharkey@android.com> |
Fix broken target SDK checks. Consider an app targeting the final API 28, but running on an older build where "P" is still API 10000. Those apps need to be treated as legacy apps. In general, the logical pattern that should be used when enforcing target SDK behaviors is below. For applying behavior to legacy apps: // BROKEN if (targetSdkVersion <= Build.VERSION_CODES.N_MR1) { // CORRECT if (targetSdkVersion < Build.VERSION_CODES.O) { For applying behavior to new apps: // BROKEN if (targetSdkVersion > Build.VERSION_CODES.N_MR1) { // CORRECT if (targetSdkVersion >= Build.VERSION_CODES.O) { Bug: 77865751 Test: builds, boots Change-Id: Ia83bd446a940751d51a6542c7a5b9cca174c5296
/frameworks/base/core/java/android/content/pm/PackageSharedLibraryUpdater.java
|
0692a566a974593fc2bf9b6b19ea88509d5ce2b4 |
|
09-Jan-2018 |
Paul Duffin <paulduffin@google.com> |
Refactor the PackageBackwardCompatibilityTest An upcoming change will add another library that needs to be added for backwards compatibility. Merging the tests for those into the existing test class makes it much harder to see and the tests start to overlap, i.e. some tests will test more than one aspect which makes maintenance more difficult and debugging more complex. This splits the test methods in PackageBackwardCompatibilityTest out into separate tests for the different PackageSharedLibraryUpdater implementations into their own classes and simply tests that the PackageBackwardCompatibility class uses the correct implementations. This allows each PackageSharedLibraryUpdater to provide comprehensive tests for their own behavior without affecting tests for the other classes. The OrgApacheHttpLegacyUpdaterTest only runs if the OrgApacheHttpLegacyUpdater class is on the classpath. That is done using OptionalClassRunner which is a custom JUnit Runner that runs the tests in a class iff a specific class is present. Otherwise, it behaves as if the class had a single test that made an invalid assumption. Tested by building with and without REMOVE_OAHL_FROM_BCP=true and then running the following: adb install -r -g out/target/product/marlin/testcases/FrameworksCoreTests/FrameworksCoreTests.apk && adb shell am instrument -w -e class android.content.pm.PackageBackwardCompatibilityTest,android.content.pm.AndroidTestRunnerSplitUpdaterTest,android.content.pm.OrgApacheHttpLegacyUpdaterTest,android.content.pm.RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner Bug: 18027885 Test: as above Change-Id: Idd1a343d234a57d518010c5a79030cbd7682e0c1
/frameworks/base/core/java/android/content/pm/PackageSharedLibraryUpdater.java
|
beee5dcdfadf4d4b34d3d6ac733be3c420746c84 |
|
23-Jan-2018 |
Paul Duffin <paulduffin@google.com> |
Support conditional removal of oahl from bootclasspath This makes the runtime handling of the org.apache.http.legacy library conditional based on a build flag REMOVE_OAHL_FROM_BCP. When REMOVE_OAHL_FROM_BCP=true: * The framework-oahl-backward-compatibility is added to the bootclasspath instead of org.apache.http.legacy. * Any APK that targets pre-P has org.apache.http.legacy added to their library list. Otherwise: * The org.apache.http.legacy library is added to the bootclasspath. * Any APK that explicitly specifies that it depends on the org.apache.http.legacy library has the library removed as the classes are available at runtime. Tested both cases by building with or without the build flag, flashing, setting up, adding an account, adding a trusted place. Adding an account failed when REMOVE_OAHL_FROM_BCP=true. adb install -r -g out/target/product/marlin/testcases/FrameworksCoreTests/FrameworksCoreTests.apk adb shell am instrument -w -e class android.content.pm.PackageBackwardCompatibilityTest com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner Bug: 18027885 Bug: 72375096 Test: as above Change-Id: Ie88fb79da76d3cbbd27eaf820c872191ecba2b17
/frameworks/base/core/java/android/content/pm/PackageSharedLibraryUpdater.java
|