History log of /frameworks/base/core/java/android/content/pm/split/DefaultSplitAssetLoader.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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