Merge "Expose SharedLibrary APIs for use by SupplementalProcess module"
This commit is contained in:
committed by
Android (Google) Code Review
commit
8b869af356
@@ -139,9 +139,14 @@ package android.content {
|
||||
|
||||
package android.content.pm {
|
||||
|
||||
public class ApplicationInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
|
||||
method @NonNull public java.util.List<android.content.pm.SharedLibraryInfo> getSharedLibraryInfos();
|
||||
}
|
||||
|
||||
public abstract class PackageManager {
|
||||
method @NonNull public String getPermissionControllerPackageName();
|
||||
method @NonNull public String getSupplementalProcessPackageName();
|
||||
field public static final int MATCH_STATIC_SHARED_AND_SDK_LIBRARIES = 67108864; // 0x4000000
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package android.content.pm;
|
||||
import static android.os.Build.VERSION_CODES.DONUT;
|
||||
|
||||
import android.annotation.IntDef;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.SystemApi;
|
||||
import android.annotation.TestApi;
|
||||
@@ -48,6 +49,7 @@ import java.lang.annotation.RetentionPolicy;
|
||||
import java.text.Collator;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
@@ -62,58 +64,58 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
private static ForBoolean sForBoolean = Parcelling.Cache.getOrCreate(ForBoolean.class);
|
||||
|
||||
/**
|
||||
* Default task affinity of all activities in this application. See
|
||||
* {@link ActivityInfo#taskAffinity} for more information. This comes
|
||||
* from the "taskAffinity" attribute.
|
||||
* Default task affinity of all activities in this application. See
|
||||
* {@link ActivityInfo#taskAffinity} for more information. This comes
|
||||
* from the "taskAffinity" attribute.
|
||||
*/
|
||||
public String taskAffinity;
|
||||
|
||||
|
||||
/**
|
||||
* Optional name of a permission required to be able to access this
|
||||
* application's components. From the "permission" attribute.
|
||||
*/
|
||||
public String permission;
|
||||
|
||||
|
||||
/**
|
||||
* The name of the process this application should run in. From the
|
||||
* "process" attribute or, if not set, the same as
|
||||
* <var>packageName</var>.
|
||||
*/
|
||||
public String processName;
|
||||
|
||||
|
||||
/**
|
||||
* Class implementing the Application object. From the "class"
|
||||
* attribute.
|
||||
*/
|
||||
public String className;
|
||||
|
||||
|
||||
/**
|
||||
* A style resource identifier (in the package's resources) of the
|
||||
* description of an application. From the "description" attribute
|
||||
* or, if not set, 0.
|
||||
*/
|
||||
public int descriptionRes;
|
||||
|
||||
public int descriptionRes;
|
||||
|
||||
/**
|
||||
* A style resource identifier (in the package's resources) of the
|
||||
* default visual theme of the application. From the "theme" attribute
|
||||
* or, if not set, 0.
|
||||
*/
|
||||
public int theme;
|
||||
|
||||
|
||||
/**
|
||||
* Class implementing the Application's manage space
|
||||
* functionality. From the "manageSpaceActivity"
|
||||
* attribute. This is an optional attribute and will be null if
|
||||
* applications don't specify it in their manifest
|
||||
*/
|
||||
public String manageSpaceActivityName;
|
||||
|
||||
public String manageSpaceActivityName;
|
||||
|
||||
/**
|
||||
* Class implementing the Application's backup functionality. From
|
||||
* the "backupAgent" attribute. This is an optional attribute and
|
||||
* will be null if the application does not specify it in its manifest.
|
||||
*
|
||||
*
|
||||
* <p>If android:allowBackup is set to false, this attribute is ignored.
|
||||
*/
|
||||
public String backupAgentName;
|
||||
@@ -174,7 +176,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
* {@code signatureOrSystem}.
|
||||
*/
|
||||
public static final int FLAG_SYSTEM = 1<<0;
|
||||
|
||||
|
||||
/**
|
||||
* Value for {@link #flags}: set to true if this application would like to
|
||||
* allow debugging of its
|
||||
@@ -183,7 +185,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
* android:debuggable} of the <application> tag.
|
||||
*/
|
||||
public static final int FLAG_DEBUGGABLE = 1<<1;
|
||||
|
||||
|
||||
/**
|
||||
* Value for {@link #flags}: set to true if this application has code
|
||||
* associated with it. Comes
|
||||
@@ -191,7 +193,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
* android:hasCode} of the <application> tag.
|
||||
*/
|
||||
public static final int FLAG_HAS_CODE = 1<<2;
|
||||
|
||||
|
||||
/**
|
||||
* Value for {@link #flags}: set to true if this application is persistent.
|
||||
* Comes from {@link android.R.styleable#AndroidManifestApplication_persistent
|
||||
@@ -212,20 +214,20 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
* android:allowTaskReparenting} of the <application> tag.
|
||||
*/
|
||||
public static final int FLAG_ALLOW_TASK_REPARENTING = 1<<5;
|
||||
|
||||
|
||||
/**
|
||||
* Value for {@link #flags}: default value for the corresponding ActivityInfo flag.
|
||||
* Comes from {@link android.R.styleable#AndroidManifestApplication_allowClearUserData
|
||||
* android:allowClearUserData} of the <application> tag.
|
||||
*/
|
||||
public static final int FLAG_ALLOW_CLEAR_USER_DATA = 1<<6;
|
||||
|
||||
|
||||
/**
|
||||
* Value for {@link #flags}: this is set if this application has been
|
||||
* installed as an update to a built-in system application.
|
||||
*/
|
||||
public static final int FLAG_UPDATED_SYSTEM_APP = 1<<7;
|
||||
|
||||
|
||||
/**
|
||||
* Value for {@link #flags}: this is set if the application has specified
|
||||
* {@link android.R.styleable#AndroidManifestApplication_testOnly
|
||||
@@ -240,15 +242,15 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
* android:smallScreens}.
|
||||
*/
|
||||
public static final int FLAG_SUPPORTS_SMALL_SCREENS = 1<<9;
|
||||
|
||||
|
||||
/**
|
||||
* Value for {@link #flags}: true when the application's window can be
|
||||
* displayed on normal screens. Corresponds to
|
||||
* {@link android.R.styleable#AndroidManifestSupportsScreens_normalScreens
|
||||
* android:normalScreens}.
|
||||
*/
|
||||
public static final int FLAG_SUPPORTS_NORMAL_SCREENS = 1<<10;
|
||||
|
||||
public static final int FLAG_SUPPORTS_NORMAL_SCREENS = 1<<10;
|
||||
|
||||
/**
|
||||
* Value for {@link #flags}: true when the application's window can be
|
||||
* increased in size for larger screens. Corresponds to
|
||||
@@ -256,7 +258,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
* android:largeScreens}.
|
||||
*/
|
||||
public static final int FLAG_SUPPORTS_LARGE_SCREENS = 1<<11;
|
||||
|
||||
|
||||
/**
|
||||
* Value for {@link #flags}: true when the application knows how to adjust
|
||||
* its UI for different screen sizes. Corresponds to
|
||||
@@ -264,7 +266,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
* android:resizeable}.
|
||||
*/
|
||||
public static final int FLAG_RESIZEABLE_FOR_SCREENS = 1<<12;
|
||||
|
||||
|
||||
/**
|
||||
* Value for {@link #flags}: true when the application knows how to
|
||||
* accommodate different screen densities. Corresponds to
|
||||
@@ -276,7 +278,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
*/
|
||||
@Deprecated
|
||||
public static final int FLAG_SUPPORTS_SCREEN_DENSITIES = 1<<13;
|
||||
|
||||
|
||||
/**
|
||||
* Value for {@link #flags}: set to true if this application would like to
|
||||
* request the VM to operate under the safe mode. Comes from
|
||||
@@ -288,7 +290,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
/**
|
||||
* Value for {@link #flags}: set to <code>false</code> if the application does not wish
|
||||
* to permit any OS-driven backups of its data; <code>true</code> otherwise.
|
||||
*
|
||||
*
|
||||
* <p>Comes from the
|
||||
* {@link android.R.styleable#AndroidManifestApplication_allowBackup android:allowBackup}
|
||||
* attribute of the <application> tag.
|
||||
@@ -351,7 +353,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
* android:xlargeScreens}.
|
||||
*/
|
||||
public static final int FLAG_SUPPORTS_XLARGE_SCREENS = 1<<19;
|
||||
|
||||
|
||||
/**
|
||||
* Value for {@link #flags}: true when the application has requested a
|
||||
* large heap for its processes. Corresponds to
|
||||
@@ -1114,7 +1116,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
* the same uid).
|
||||
*/
|
||||
public int uid;
|
||||
|
||||
|
||||
/**
|
||||
* The minimum SDK version this application can run on. It will not run
|
||||
* on earlier versions.
|
||||
@@ -1817,7 +1819,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
if (sb == null) {
|
||||
sb = ab.packageName;
|
||||
}
|
||||
|
||||
|
||||
return sCollator.compare(sa.toString(), sb.toString());
|
||||
}
|
||||
|
||||
@@ -1830,7 +1832,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
public ApplicationInfo() {
|
||||
createTimestamp = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
|
||||
public ApplicationInfo(ApplicationInfo orig) {
|
||||
super(orig);
|
||||
taskAffinity = orig.taskAffinity;
|
||||
@@ -2125,7 +2127,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
|
||||
/**
|
||||
* Disable compatibility mode
|
||||
*
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
|
||||
@@ -2346,7 +2348,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
}
|
||||
return pm.getDefaultActivityIcon();
|
||||
}
|
||||
|
||||
|
||||
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
|
||||
private boolean isPackageUnavailable(PackageManager pm) {
|
||||
try {
|
||||
@@ -2655,4 +2657,22 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
public int getLocaleConfigRes() {
|
||||
return localeConfigRes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* List of all shared libraries this application is linked against. This
|
||||
* list will only be set if the {@link PackageManager#GET_SHARED_LIBRARY_FILES
|
||||
* PackageManager.GET_SHARED_LIBRARY_FILES} flag was used when retrieving the structure.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@NonNull
|
||||
@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
|
||||
public List<SharedLibraryInfo> getSharedLibraryInfos() {
|
||||
if (sharedLibraryInfos == null) {
|
||||
return Collections.EMPTY_LIST;
|
||||
}
|
||||
return sharedLibraryInfos;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1063,6 +1063,7 @@ public abstract class PackageManager {
|
||||
* via this flag.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
|
||||
public static final int MATCH_STATIC_SHARED_AND_SDK_LIBRARIES = 0x04000000;
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user