code: public boolean GetResourceName(int resid, ResourceName out_name) {
      final Ref<FindEntryResult> entryRef = new Ref<>(null);
      ApkAssetsCookie cookie =
          FindEntry(resid, (short) 0 /* density_override */, true /* stop_at_first_match */, entryRef);
      if (cookie.intValue() == kInvalidCookie) {
        return false;
      }
  
      final LoadedPackage package_ =
          apk_assets_.get(cookie.intValue()).GetLoadedArsc().GetPackageById(get_package_id(resid));
      if (package_ == null) {
        return false;
      }
  
      out_name.package_ = package_.GetPackageName();
      // out_name.package_len = out_name.package_.length();
  
      FindEntryResult entry = entryRef.get();
      out_name.type = entry.type_string_ref.string();
      // out_name.type_len = out_name.type == null ? 0 : out_name.type.length();
      // out_name.type16 = null;
      if (out_name.type == null) {
        // out_name.type16 = entry.type_string_ref.string();
        // out_name.type_len = out_name.type16 == null ? 0 : out_name.type16.length();
        // if (out_name.type16 == null) {
          return false;
        // }
      }
  
      out_name.entry = entry.entry_string_ref.string();
      // out_name.entry_len = out_name.entry == null ? 0 : out_name.entry.length();
      // out_name.entry16 = null;
      if (out_name.entry == null) {
        // out_name.entry16 = entry.entry_string_ref.string();
        // out_name.entry_len = out_name.entry16 == null ? 0 : out_name.entry16.length();
        // if (out_name.entry16 == null) {
          return false;
        // }
      }
      return true;
    }
docs: boolean GetResourceName(int resid, ResourceName* out_name);