bebfcc46a249a70af04bc18490a897888a142fb8 |
|
12-Feb-2018 |
Adam Lesinski <adamlesinski@google.com> |
Refactor AssetManager Bug: 64071469 Test: atest CtsContentTestCases Change-Id: Ia6856157e8813856268fba003e1e591d690cb26e
/frameworks/base/core/java/android/content/pm/split/DefaultSplitAssetLoader.java
|
56c82be0d4075a434217a0d56be8e6544fb05a96 |
|
09-Feb-2018 |
Adam Lesinski <adamlesinski@google.com> |
Revert "Make idiomatic use of ApkAssets and AssetManager" This reverts commit 633085456e5047e16e53da6c95e193e2a0189633. Bug: 73134570 Change-Id: I7c5171e752dd178dcd64497a780ba0f97d03b7a0
/frameworks/base/core/java/android/content/pm/split/DefaultSplitAssetLoader.java
|
633085456e5047e16e53da6c95e193e2a0189633 |
|
02-Dec-2017 |
Adam Lesinski <adamlesinski@google.com> |
Make idiomatic use of ApkAssets and AssetManager Move away from using deprecated addAssetPath methods and cache the instances of ApkAssets created. Test: CTS passes Change-Id: Ie95cd5a9e205a35806e7b142df5af02aa90d83ca
/frameworks/base/core/java/android/content/pm/split/DefaultSplitAssetLoader.java
|
16b3dff2d5e81914d1e57a09931191ff8c8aea17 |
|
25-Jan-2018 |
Artem Iglikov <artikz@google.com> |
Revert "Make idiomatic use of ApkAssets and AssetManager" This reverts commit e70b57a659e4486d07f30ebe3b067715b53f1378. Reason for revert: b/72482083 Bug: 72482083 Change-Id: I36b0aff6d533d7fb59d367a1cd4e96e03df5f462
/frameworks/base/core/java/android/content/pm/split/DefaultSplitAssetLoader.java
|
e70b57a659e4486d07f30ebe3b067715b53f1378 |
|
02-Dec-2017 |
Adam Lesinski <adamlesinski@google.com> |
Make idiomatic use of ApkAssets and AssetManager Move away from using deprecated addAssetPath methods and cache the instances of ApkAssets created. Test: CTS passes Change-Id: I257c72261a97e4aa802abb46dc1f44d80e1d42ad
/frameworks/base/core/java/android/content/pm/split/DefaultSplitAssetLoader.java
|
68d10d00a52be904766d69acda98bc934e768e7f |
|
23-Jan-2018 |
Adam Lesinski <adamlesinski@google.com> |
Revert "Make idiomatic use of ApkAssets and AssetManager" This reverts commit c857766ca5aa37df0833c816922e6b3b85a742f9.
/frameworks/base/core/java/android/content/pm/split/DefaultSplitAssetLoader.java
|
c857766ca5aa37df0833c816922e6b3b85a742f9 |
|
02-Dec-2017 |
Adam Lesinski <adamlesinski@google.com> |
Make idiomatic use of ApkAssets and AssetManager Move away from using deprecated addAssetPath methods and cache the instances of ApkAssets created. Test: CTS passes Change-Id: I9e7048bcffd6471ed6a42e5175cc678dc4ac3b96
/frameworks/base/core/java/android/content/pm/split/DefaultSplitAssetLoader.java
|
408afbf06040ea29d1a9d60e9dc50d1923068de4 |
|
25-Jan-2017 |
Romain Guy <romainguy@google.com> |
Change configuration's color mode based on the display's color mode Bug: 32984164 Test: CtsContentTestCases Change-Id: Iedc7d1cc488b80718576082667b6e96956c4f847
/frameworks/base/core/java/android/content/pm/split/DefaultSplitAssetLoader.java
|
4e8628157ad0c8c52e74b720eb0328086272ffda |
|
22-Nov-2016 |
Adam Lesinski <adamlesinski@google.com> |
Add support for Split APK dependcies Apps can now declare in their base APK AndroidManifest.xml that they want to have their split APKs loaded in isolated Contexts. This means code and resources from the split get loaded into their own ClassLoader and AssetManager. <manifest xmlns:android="..." ... android:isolatedSplits="true" ... In order to make this more useful, splits can declare dependencies on other splits, which will all get pulled in to the Context and run as expected at runtime. A split declares its dependency on another split by using the tag <uses-split> in its AndroidManifest.xml: <manifest xmlns:android="..."> ... <uses-split android:name="feature_split_1" /> ... A split can have a single parent on which it depends on. This is due to the limitation of having a single ClassLoader parent. All splits depend on the base APK implicitly. PackageManager verifies that no cycles exist and that each dependency is present before allowing an installation to succeed. The runtime will then load splits based on the dependencies. Given the following APKs: base <-- split A <-- split C ^----- split B If an Activity defined in split C is launched, then the base, split A, and split C will be loaded into the ClassLoader defined for the Activity's Context. The AssetManager will similarly be loaded with the resources of the splits. A split can be manually loaded by creating a Context for that split, defined by its name: Context.createContextForSplit("my_feature_split_1"); All installed Activities, Services, Receivers, and Providers are accessible to other apps via Intent resolution. When they are instantiated, they are given the appropriate Context that satisfies any dependencies the split they were defined in stipulated. Test: WIP (CTS tests to come) Change-Id: I8989712b241b7bc84381f2919d88455fcad62161
/frameworks/base/core/java/android/content/pm/split/DefaultSplitAssetLoader.java
|