ReadMainDexList.java 文件源码

java
阅读 38 收藏 0 点赞 0 评论 0

项目:r8 作者:
private void run(String[] args) throws Exception {
  if (args.length < 1 || args.length > 3) {
    System.out.println("Usage: command [-k] <main_dex_list> [<proguard_map>]");
    System.exit(0);
  }

  Iterator<String> arguments = Iterators.forArray(args);
  Function<String, String> outputGenerator;
  String arg = arguments.next();
  if (arg.equals("-k")) {
    outputGenerator = this::toKeepRule;
    arg = arguments.next();
  } else {
    outputGenerator = this::toClassFilePath;
  }
  Path mainDexList = Paths.get(arg);

  final ClassNameMapper mapper =
      arguments.hasNext() ? ProguardMapReader.mapperFromFile(Paths.get(arguments.next())) : null;

  FileUtils.readTextFile(mainDexList)
      .stream()
      .map(this::stripDotClass)
      .map(name -> name.replace('/', '.'))
      .map(name -> deobfuscateClassName(name, mapper))
      .map(outputGenerator)
      .sorted()
      .collect(Collectors.toList())
      .forEach(System.out::println);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号