resources/src/main/java/org/robolectric/res/android/CppAssetManager.java
static Asset openAssetFromFileLocked(final String8 pathName,
      AccessMode mode) {
    Asset pAsset = null;

    if (pathName.getPathExtension().toLowerCase().equals(".gz")) {
      //printf("TRYING '%s'\n", (final char*) pathName);
      pAsset = Asset.createFromCompressedFile(pathName.string(), mode);
    } else {
      //printf("TRYING '%s'\n", (final char*) pathName);
      pAsset = Asset.createFromFile(pathName.string(), mode);
    }

    return pAsset;
  }
static Asset openAssetFromFileLocked(final String8 pathName,
      AccessMode mode) {
    Asset pAsset = null;

    if (pathName.getPathExtension().toLowerCase().equals(".gz")) {
      //printf("TRYING '%s'\n", (final char*) pathName);
      pAsset = Asset.createFromCompressedFile(pathName.string(), mode);
    } else {
      //printf("TRYING '%s'\n", (final char*) pathName);
      pAsset = Asset.createFromFile(pathName.string(), mode);
    }

    return pAsset;
  }
/*
Try to open an asset from a file on disk.

If the file is compressed with gzip, we seek to the start of the
deflated data and pass that in (just like we would for a Zip archive).

For uncompressed data, we may already have an mmap()ed version sitting
around.  If so, we want to hand that to the Asset instead.

This returns null if the file doesn't exist, couldn't be opened, or
claims to be a ".gz" but isn't.