Methods Summary |
---|
public final int | addAssetPath(java.lang.String path)Add an additional set of assets to the asset manager. This can be
either a directory or ZIP file. Not for use by applications. Returns
the cookie of the added asset, or 0 on failure.
{@hide}
synchronized (this) {
int res = addAssetPathNative(path);
makeStringBlocks(mStringBlocks);
return res;
}
|
private final native int | addAssetPathNative(java.lang.String path)
|
public final int[] | addAssetPaths(java.lang.String[] paths)Add multiple sets of assets to the asset manager at once. See
{@link #addAssetPath(String)} for more information. Returns array of
cookies for each added asset with 0 indicating failure, or null if
the input array of paths is null.
{@hide}
if (paths == null) {
return null;
}
int[] cookies = new int[paths.length];
for (int i = 0; i < paths.length; i++) {
cookies[i] = addAssetPath(paths[i]);
}
return cookies;
|
public final native int | addOverlayPath(java.lang.String idmapPath)Add a set of assets to overlay an already added set of assets.
This is only intended for application resources. System wide resources
are handled before any Java code is executed.
{@hide}
|
static final native boolean | applyStyle(long theme, int defStyleAttr, int defStyleRes, long xmlParser, int[] inAttrs, int[] outValues, int[] outIndices)
|
static final native void | applyThemeStyle(long theme, int styleRes, boolean force)
|
public void | close()Close this asset manager.
synchronized(this) {
//System.out.println("Release: num=" + mNumRefs
// + ", released=" + mReleased);
if (mOpen) {
mOpen = false;
decRefsLocked(this.hashCode());
}
}
|
static final native void | copyTheme(long dest, long source)
|
final long | createTheme()
synchronized (this) {
if (!mOpen) {
throw new RuntimeException("Assetmanager has been closed");
}
long res = newTheme();
incRefsLocked(res);
return res;
}
|
private final void | decRefsLocked(long id)
if (DEBUG_REFS && mRefStacks != null) {
mRefStacks.remove(id);
}
mNumRefs--;
//System.out.println("Dec streams: mNumRefs=" + mNumRefs
// + " mReleased=" + mReleased);
if (mNumRefs == 0) {
destroy();
}
|
private final native void | deleteTheme(long theme)
|
private final native void | destroy()
|
private final native void | destroyAsset(long asset)
|
static final native void | dumpTheme(long theme, int priority, java.lang.String tag, java.lang.String prefix)
|
final void | ensureStringBlocks()
if (mStringBlocks == null) {
synchronized (this) {
if (mStringBlocks == null) {
makeStringBlocks(sSystem.mStringBlocks);
}
}
}
|
private static void | ensureSystemAssets()
synchronized (sSync) {
if (sSystem == null) {
AssetManager system = new AssetManager(true);
system.makeStringBlocks(null);
sSystem = system;
}
}
|
protected void | finalize()
try {
if (DEBUG_REFS && mNumRefs != 0) {
Log.w(TAG, "AssetManager " + this
+ " finalized with non-zero refs: " + mNumRefs);
if (mRefStacks != null) {
for (RuntimeException e : mRefStacks.values()) {
Log.w(TAG, "Reference from here", e);
}
}
}
destroy();
} finally {
super.finalize();
}
|
final native int[] | getArrayIntResource(int arrayRes)
|
final native int | getArraySize(int resource)
|
private final native int[] | getArrayStringInfo(int arrayRes)
|
private final native java.lang.String[] | getArrayStringResource(int arrayRes)
|
public static final native java.lang.String | getAssetAllocations(){@hide}
|
private final native long | getAssetLength(long asset)
|
private final native long | getAssetRemainingLength(long asset)
|
public final native android.util.SparseArray | getAssignedPackageIdentifiers(){@hide}
|
public final native java.lang.String | getCookieName(int cookie){@hide}
|
public static final native int | getGlobalAssetCount(){@hide}
|
public static final native int | getGlobalAssetManagerCount(){@hide}
|
public final native java.lang.String[] | getLocales()Get the locales that this asset manager contains data for.
On SDK 21 (Android 5.0: Lollipop) and above, Locale strings are valid
BCP-47 language tags and can be
parsed using {@link java.util.Locale#forLanguageTag(String)}.
On SDK 20 (Android 4.4W: Kitkat for watches) and below, locale strings
are of the form {@code ll_CC} where {@code ll} is a two letter language code,
and {@code CC} is a two letter country code.
|
private final native long | getNativeStringBlock(int block)
|
final java.lang.CharSequence | getPooledStringForCookie(int cookie, int id)
// Cookies map to string blocks starting at 1.
return mStringBlocks[cookie - 1].get(id);
|
final java.lang.CharSequence | getResourceBagText(int ident, int bagEntryId)Retrieve the string value associated with a particular resource
identifier for the current configuration / skin.
synchronized (this) {
TypedValue tmpValue = mValue;
int block = loadResourceBagValue(ident, bagEntryId, tmpValue, true);
if (block >= 0) {
if (tmpValue.type == TypedValue.TYPE_STRING) {
return mStringBlocks[block].get(tmpValue.data);
}
return tmpValue.coerceToString();
}
}
return null;
|
final native java.lang.String | getResourceEntryName(int resid)
|
final native int | getResourceIdentifier(java.lang.String type, java.lang.String name, java.lang.String defPackage)Retrieve the resource identifier for the given resource name.
|
final native java.lang.String | getResourceName(int resid)
|
final native java.lang.String | getResourcePackageName(int resid)
|
final java.lang.String[] | getResourceStringArray(int id)Retrieve the string array associated with a particular resource
identifier.
String[] retArray = getArrayStringResource(id);
return retArray;
|
final java.lang.CharSequence | getResourceText(int ident)Retrieve the string value associated with a particular resource
identifier for the current configuration / skin.
synchronized (this) {
TypedValue tmpValue = mValue;
int block = loadResourceValue(ident, (short) 0, tmpValue, true);
if (block >= 0) {
if (tmpValue.type == TypedValue.TYPE_STRING) {
return mStringBlocks[block].get(tmpValue.data);
}
return tmpValue.coerceToString();
}
}
return null;
|
final java.lang.CharSequence[] | getResourceTextArray(int id)Retrieve the text array associated with a particular resource
identifier.
int[] rawInfoArray = getArrayStringInfo(id);
int rawInfoArrayLen = rawInfoArray.length;
final int infoArrayLen = rawInfoArrayLen / 2;
int block;
int index;
CharSequence[] retArray = new CharSequence[infoArrayLen];
for (int i = 0, j = 0; i < rawInfoArrayLen; i = i + 2, j++) {
block = rawInfoArray[i];
index = rawInfoArray[i + 1];
retArray[j] = index >= 0 ? mStringBlocks[block].get(index) : null;
}
return retArray;
|
final native java.lang.String | getResourceTypeName(int resid)
|
final boolean | getResourceValue(int ident, int density, android.util.TypedValue outValue, boolean resolveRefs)
int block = loadResourceValue(ident, (short) density, outValue, resolveRefs);
if (block >= 0) {
if (outValue.type != TypedValue.TYPE_STRING) {
return true;
}
outValue.string = mStringBlocks[block].get(outValue.data);
return true;
}
return false;
|
private final native int | getStringBlockCount()
|
final native int[] | getStyleAttributes(int themeRes)
|
public static android.content.res.AssetManager | getSystem()Return a global shared asset manager that provides access to only
system assets (no application assets).
{@hide}
ensureSystemAssets();
return sSystem;
|
final boolean | getThemeValue(long theme, int ident, android.util.TypedValue outValue, boolean resolveRefs)
int block = loadThemeAttributeValue(theme, ident, outValue, resolveRefs);
if (block >= 0) {
if (outValue.type != TypedValue.TYPE_STRING) {
return true;
}
StringBlock[] blocks = mStringBlocks;
if (blocks == null) {
ensureStringBlocks();
blocks = mStringBlocks;
}
outValue.string = blocks[block].get(outValue.data);
return true;
}
return false;
|
private final void | incRefsLocked(long id)
/*package*/
/*package*/
/*package*/
/*package*/
/*package*/
/*package*/
/*package*/
/*package*/
/*package*/
/*package*/
/*package*/
if (DEBUG_REFS) {
if (mRefStacks == null) {
mRefStacks = new HashMap<Long, RuntimeException>();
}
RuntimeException ex = new RuntimeException();
ex.fillInStackTrace();
mRefStacks.put(id, ex);
}
mNumRefs++;
|
private final native void | init(boolean isSystem)
|
public final native boolean | isUpToDate()Determine whether the state in this asset manager is up-to-date with
the files on the filesystem. If false is returned, you need to
instantiate a new AssetManager class to see the new data.
{@hide}
|
public final native java.lang.String[] | list(java.lang.String path)Return a String array of all the assets at the given path.
|
private final native int | loadResourceBagValue(int ident, int bagEntryId, android.util.TypedValue outValue, boolean resolve)Returns true if the resource was found, filling in mRetStringBlock and
mRetData.
|
private final native int | loadResourceValue(int ident, short density, android.util.TypedValue outValue, boolean resolve)Returns true if the resource was found, filling in mRetStringBlock and
mRetData.
|
static final native int | loadThemeAttributeValue(long theme, int ident, android.util.TypedValue outValue, boolean resolve)
|
final void | makeStringBlocks(StringBlock[] seed)
final int seedNum = (seed != null) ? seed.length : 0;
final int num = getStringBlockCount();
mStringBlocks = new StringBlock[num];
if (localLOGV) Log.v(TAG, "Making string blocks for " + this
+ ": " + num);
for (int i=0; i<num; i++) {
if (i < seedNum) {
mStringBlocks[i] = seed[i];
} else {
mStringBlocks[i] = new StringBlock(getNativeStringBlock(i), true);
}
}
|
private final native long | newTheme()
|
public final java.io.InputStream | open(java.lang.String fileName)Open an asset using ACCESS_STREAMING mode. This provides access to
files that have been bundled with an application as assets -- that is,
files placed in to the "assets" directory.
return open(fileName, ACCESS_STREAMING);
|
public final java.io.InputStream | open(java.lang.String fileName, int accessMode)Open an asset using an explicit access mode, returning an InputStream to
read its contents. This provides access to files that have been bundled
with an application as assets -- that is, files placed in to the
"assets" directory.
synchronized (this) {
if (!mOpen) {
throw new RuntimeException("Assetmanager has been closed");
}
long asset = openAsset(fileName, accessMode);
if (asset != 0) {
AssetInputStream res = new AssetInputStream(asset);
incRefsLocked(res.hashCode());
return res;
}
}
throw new FileNotFoundException("Asset file: " + fileName);
|
private final native long | openAsset(java.lang.String fileName, int accessMode)
|
private final native android.os.ParcelFileDescriptor | openAssetFd(java.lang.String fileName, long[] outOffsets)
|
public final AssetFileDescriptor | openFd(java.lang.String fileName)
synchronized (this) {
if (!mOpen) {
throw new RuntimeException("Assetmanager has been closed");
}
ParcelFileDescriptor pfd = openAssetFd(fileName, mOffsets);
if (pfd != null) {
return new AssetFileDescriptor(pfd, mOffsets[0], mOffsets[1]);
}
}
throw new FileNotFoundException("Asset file: " + fileName);
|
public final java.io.InputStream | openNonAsset(java.lang.String fileName){@hide}
Open a non-asset file as an asset using ACCESS_STREAMING mode. This
provides direct access to all of the files included in an application
package (not only its assets). Applications should not normally use
this.
return openNonAsset(0, fileName, ACCESS_STREAMING);
|
public final java.io.InputStream | openNonAsset(java.lang.String fileName, int accessMode){@hide}
Open a non-asset file as an asset using a specific access mode. This
provides direct access to all of the files included in an application
package (not only its assets). Applications should not normally use
this.
return openNonAsset(0, fileName, accessMode);
|
public final java.io.InputStream | openNonAsset(int cookie, java.lang.String fileName){@hide}
Open a non-asset in a specified package. Not for use by applications.
return openNonAsset(cookie, fileName, ACCESS_STREAMING);
|
public final java.io.InputStream | openNonAsset(int cookie, java.lang.String fileName, int accessMode){@hide}
Open a non-asset in a specified package. Not for use by applications.
synchronized (this) {
if (!mOpen) {
throw new RuntimeException("Assetmanager has been closed");
}
long asset = openNonAssetNative(cookie, fileName, accessMode);
if (asset != 0) {
AssetInputStream res = new AssetInputStream(asset);
incRefsLocked(res.hashCode());
return res;
}
}
throw new FileNotFoundException("Asset absolute file: " + fileName);
|
public final AssetFileDescriptor | openNonAssetFd(java.lang.String fileName)
return openNonAssetFd(0, fileName);
|
public final AssetFileDescriptor | openNonAssetFd(int cookie, java.lang.String fileName)
synchronized (this) {
if (!mOpen) {
throw new RuntimeException("Assetmanager has been closed");
}
ParcelFileDescriptor pfd = openNonAssetFdNative(cookie,
fileName, mOffsets);
if (pfd != null) {
return new AssetFileDescriptor(pfd, mOffsets[0], mOffsets[1]);
}
}
throw new FileNotFoundException("Asset absolute file: " + fileName);
|
private native android.os.ParcelFileDescriptor | openNonAssetFdNative(int cookie, java.lang.String fileName, long[] outOffsets)
|
private final native long | openNonAssetNative(int cookie, java.lang.String fileName, int accessMode)
|
private final native long | openXmlAssetNative(int cookie, java.lang.String fileName)
|
final XmlBlock | openXmlBlockAsset(java.lang.String fileName){@hide}
Retrieve a non-asset as a compiled XML file. Not for use by
applications.
return openXmlBlockAsset(0, fileName);
|
final XmlBlock | openXmlBlockAsset(int cookie, java.lang.String fileName){@hide}
Retrieve a non-asset as a compiled XML file. Not for use by
applications.
synchronized (this) {
if (!mOpen) {
throw new RuntimeException("Assetmanager has been closed");
}
long xmlBlock = openXmlAssetNative(cookie, fileName);
if (xmlBlock != 0) {
XmlBlock res = new XmlBlock(this, xmlBlock);
incRefsLocked(res.hashCode());
return res;
}
}
throw new FileNotFoundException("Asset XML file: " + fileName);
|
public final XmlResourceParser | openXmlResourceParser(java.lang.String fileName)Retrieve a parser for a compiled XML file.
return openXmlResourceParser(0, fileName);
|
public final XmlResourceParser | openXmlResourceParser(int cookie, java.lang.String fileName)Retrieve a parser for a compiled XML file.
XmlBlock block = openXmlBlockAsset(cookie, fileName);
XmlResourceParser rp = block.newParser();
block.close();
return rp;
|
private final native int | readAsset(long asset, byte[] b, int off, int len)
|
private final native int | readAssetChar(long asset)
|
final void | releaseTheme(long theme)
synchronized (this) {
deleteTheme(theme);
decRefsLocked(theme);
}
|
static final native boolean | resolveAttrs(long theme, int defStyleAttr, int defStyleRes, int[] inValues, int[] inAttrs, int[] outValues, int[] outIndices)
|
final native int | retrieveArray(int resource, int[] outValues)
|
final native boolean | retrieveAttributes(long xmlParser, int[] inAttrs, int[] outValues, int[] outIndices)
|
private final native long | seekAsset(long asset, long offset, int whence)
|
public final native void | setConfiguration(int mcc, int mnc, java.lang.String locale, int orientation, int touchscreen, int density, int keyboard, int keyboardHidden, int navigation, int screenWidth, int screenHeight, int smallestScreenWidthDp, int screenWidthDp, int screenHeightDp, int screenLayout, int uiMode, int majorVersion)Change the configuation used when retrieving resources. Not for use by
applications.
{@hide}
|
public final native void | setLocale(java.lang.String locale)Change the locale being used by this asset manager. Not for use by
applications.
{@hide}
|
void | xmlBlockGone(int id)
synchronized (this) {
decRefsLocked(id);
}
|