docs: public static Set<String> getFileNameByPackageName(Context context, final String packageName) throws PackageManager.NameNotFoundException, IOException, InterruptedException {
          final Set<String> classNames = new HashSet<>();
  
          List<String> paths = getSourcePaths(context);
          final CountDownLatch parserCtl = new CountDownLatch(paths.size());
  
          for (final String path : paths) {
              DefaultPoolExecutor.getInstance().execute(new Runnable() {
                  @Override
                  public void run() {
                      DexFile dexfile = null;
  
                      try {
                          if (path.endsWith(EXTRACTED_SUFFIX)) {
                              //NOT use new DexFile(path), because it will throw "permission error in /data/dalvik-cache"
                              dexfile = DexFile.loadDex(path, path + ".tmp", 0);
                          } else {
                              dexfile = new DexFile(path);
                          }
  
                          Enumeration<String> dexEntries = dexfile.entries();
                          while (dexEntries.hasMoreElements()) {
                              String className = dexEntries.nextElement();
                              if (className.startsWith(packageName)) {
                                  classNames.add(className);
                              }
                          }
                      } catch (Throwable ignore) {
                          Log.e("ARouter", "Scan map file in dex files made error.", ignore);
                      } finally {
                          if (null != dexfile) {
                              try {
                                  dexfile.close();
                              } catch (Throwable ignore) {
                              }
                          }
  
                          parserCtl.countDown();
                      }
                  }
              });
          }
  
          parserCtl.await();
  
          Log.d(Consts.TAG, "Filter " + classNames.size() + " classes by packageName <" + packageName + ">");
          return classNames;
      }