Skip to content
/ Zucker Public

An easier way to automatically calculate the size of AAR in apk based on APP module

License

Notifications You must be signed in to change notification settings

wuba/Zucker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Android APP模块化大小自动分析统计工具-Zucker

基于APP模块的,一个简单无侵害计算AAR独有大小的工具(An easier way to automatically calculate the size of AAR in apk based on APP module)

介绍文档

英文文档

AAR独立大小和被引入到工程后打包后占用的大小是不一样的,这个有经验的开发者都应该了解。AAR独立大小一目了然,但是怎么计算AAR在APK中的独立占有大小(独有大小)呢?Zucker就此开源给出了一份答案。

依赖环境

  • Python 3.0+
  • Android编译环境

开始使用

Demo工程测试

  1. 克隆本工程
  2. 终端cd到本工程下的src目录
  3. 执行python脚本:python3 zucker.py Sample
  4. 根据终端列出的AAR列表,选择一个目标AAR输入得到结果

项目工程测试

  1. 将zucker.py脚本放置在需要测试工程的同级目录
  2. 同[Demo工程测试]步骤2
  3. 同[Demo工程测试]步骤3:python3 zucker.py targetProjectName
  4. 同[Demo工程测试]步骤4

注意事项

  1. 确保目标工程在不依赖Zucker脚本的前提下可以正常编译
  2. 编译时使用gradlew命令,以保证采用了项目的gradle配置
  3. 首次运行时间较长,请耐心等待...
./gradlew build

-> 〜python3 /Users/iann/EnterpriseProject/Zucker/src/zucker.py /Users/iann/EnterpriseProject/Zucker/Sample
cloneBaseProject DONE
findBaseAppDirs DONE
clearBaseFlavors DONE
insertBaseScript DONE

> Configure project :app
WARNING: API 'variantOutput.getPackageApplication()' is obsolete and has been re placed with 'variant.getPackageApplicationProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoid ance.
To determine what is calling variantOutput.getPackageApplication(), use -Pandroi d.debug.obsoleteApi=true on the command line to display more information.

BUILD SUCCESSFUL in 2s
5 actionable tasks: 4 executed, 1 up-to-date

脚本会自动执行,获取项目中的依赖关系并输出一级节点,可以选择目标节点进行AAR大小计算。

['app', 'app2'] 
com.github.moduth:blockcanary-android:1.2.1
com.squareup.okhttp3:okhttp:4.2.1
com.airbnb.android:lottie:2.5.6
输入AAR名称及版本,格式xxx.xxx:xxx:xxx:com.github.moduth:blockcanary-android:1.2.1
输出AAR------
['com.github.moduth:blockcanary-android:1.2.1', 'com.github.moduth:blockcanary-core:1.2.1']
/Users/iann/.gradle/caches/modules-2/files-2.1/com.github.moduth/blockcanary-android/1.2.l/78f65b7622338d512e79a26fe76e7bb9f7614190/blockcanary-android-l.2.1.aar
/Users/iann/.gradle/caches/modules-2/files-2.1/com.github.moduth/blockcanary-android/1.2.l/78f65b7622338d512e79a26fe76e7bb9f7614190/blockcanary-android-l.2.1.aar
替换 build.gradle

最后经过打包后,AAR大小就会显示在终端上。

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use f--warning-mode all1 to show the individual deprecation warnings.
See https://docs.gradle.org/5.4.l/userguide/command_line_interface.html#sec:comm ancLline一warnings

BUILD SUCCESSFUL in 9s
137 actionable tasks: 133 executed, 4 up-to-date
compile DONE
basePackSize: 2908419
aarPackSize: 2873610
aarSize: 34809

建议先在本项目的sample工程进行测试,具体流程见工程README

联系我们

  • 想了解更多开源项目信息?
  • 与项目成员零距离交流?
  • 扫码加小秘书微信
  • 一切应有尽有 jishu-58
  • 微信号 : jishu-58
  • 添加小秘书微信后由小秘书拉您进项目交流群

常见问题处理

解决办法:使用阿里云镜像,重新进行下载;修改build.gradle中的buildscript和allprojects的jcenter,添加url 'https://maven.aliyun.com/repository/jcenter'即可。

贡献代码

详见 CONTRIBUTING

About

An easier way to automatically calculate the size of AAR in apk based on APP module

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages