library-modularization 2020-11-

2020-11-09  本文已影响0人  orgcheng

传递依赖的问题

├── app
├── library
└── modules
    ├── database
    └── ui-components

如果app通过maven依赖library,library本地依赖database和ui-components,那么app运行时会crash,找不到
database和ui-components中的类和资源。

此时可以把database和ui-components上传到maven,让library远程依赖他们,并通过pom.xml保留依赖信息

子模块的接口污染了SDK对外暴漏的接口

  1. 在kotlin中,可以通过internal关键字,把私有的接口卸载internal包名下面,类似square开源的库
  2. 通过Proguard/R8来混淆,但是不一定可靠,偶尔会出现问题,需要仔细测试

混淆文件的配置和集成到jar/aar

#将所有重命名后的包移动到给定的包中重新打包
repackageclasses com.jeroenmols.internal

可以把混淆文件放在META-INFO/proguard/proguard.txt

资源来自于:

  1. https://jeroenmols.com/blog/2020/11/04/library-modularization/
  2. https://developer.android.google.cn/studio/build/shrink-code#add-configuration
上一篇下一篇

猜你喜欢

热点阅读