{"id":27771437,"url":"https://github.com/wuba/zucker","last_synced_at":"2025-04-29T22:39:50.152Z","repository":{"id":79238713,"uuid":"248383156","full_name":"wuba/Zucker","owner":"wuba","description":"An easier way to automatically calculate the size of AAR in apk based on APP module","archived":false,"fork":false,"pushed_at":"2020-03-30T10:31:11.000Z","size":2886,"stargazers_count":89,"open_issues_count":3,"forks_count":14,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-29T22:39:29.898Z","etag":null,"topics":["android","gradle","python"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wuba.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.txt","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-03-19T01:33:43.000Z","updated_at":"2024-11-12T08:58:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"30d02803-929f-406d-b60c-3f58f3e7b6ab","html_url":"https://github.com/wuba/Zucker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wuba%2FZucker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wuba%2FZucker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wuba%2FZucker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wuba%2FZucker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wuba","download_url":"https://codeload.github.com/wuba/Zucker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251596590,"owners_count":21615011,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","gradle","python"],"created_at":"2025-04-29T22:39:49.712Z","updated_at":"2025-04-29T22:39:50.138Z","avatar_url":"https://github.com/wuba.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Android APP模块化大小自动分析统计工具-Zucker\n\n基于APP模块的，一个简单无侵害计算AAR独有大小的工具（An easier way to automatically calculate the size of AAR in apk based on APP module）\n\n[介绍文档](/docs/介绍文档.md)\n\n[英文文档](README_EN.md)\n\n\u003e AAR独立大小和被引入到工程后打包后占用的大小是不一样的，这个有经验的开发者都应该了解。AAR独立大小一目了然，但是怎么计算AAR在APK中的独立占有大小（独有大小）呢？Zucker就此开源给出了一份答案。\n\n## 依赖环境\n- Python 3.0+\n- Android编译环境\n\n## 开始使用\n### Demo工程测试\n1. 克隆本工程\n2. 终端cd到本工程下的src目录\n3. 执行python脚本：python3 zucker.py Sample\n4. 根据终端列出的AAR列表，选择一个目标AAR输入得到结果\n\n### 项目工程测试\n1. 将zucker.py脚本放置在需要测试工程的同级目录\n2. 同[Demo工程测试]步骤2\n3. 同[Demo工程测试]步骤3：python3 zucker.py [targetProjectName](Android工程名)\n4. 同[Demo工程测试]步骤4\n\n### 注意事项\n1. 确保目标工程在不依赖Zucker脚本的前提下可以正常编译\n2. 编译时使用`gradlew`命令，以保证采用了项目的`gradle`配置\n3. 首次运行时间较长，请耐心等待...\n\n```\n./gradlew build\n\n```\n```\n-\u003e 〜python3 /Users/iann/EnterpriseProject/Zucker/src/zucker.py /Users/iann/EnterpriseProject/Zucker/Sample\ncloneBaseProject DONE\nfindBaseAppDirs DONE\nclearBaseFlavors DONE\ninsertBaseScript DONE\n\n\u003e Configure project :app\nWARNING: API 'variantOutput.getPackageApplication()' is obsolete and has been re placed with 'variant.getPackageApplicationProvider()'.\nIt will be removed at the end of 2019.\nFor more information, see https://d.android.com/r/tools/task-configuration-avoid ance.\nTo determine what is calling variantOutput.getPackageApplication(), use -Pandroi d.debug.obsoleteApi=true on the command line to display more information.\n\nBUILD SUCCESSFUL in 2s\n5 actionable tasks: 4 executed, 1 up-to-date\n```\n\n脚本会自动执行，获取项目中的依赖关系并输出一级节点，可以选择目标节点进行AAR大小计算。\n\n```\n['app', 'app2'] \ncom.github.moduth:blockcanary-android:1.2.1\ncom.squareup.okhttp3:okhttp:4.2.1\ncom.airbnb.android:lottie:2.5.6\n输入AAR名称及版本，格式xxx.xxx:xxx:xxx:com.github.moduth:blockcanary-android:1.2.1\n输出AAR------\n['com.github.moduth:blockcanary-android:1.2.1', 'com.github.moduth:blockcanary-core:1.2.1']\n/Users/iann/.gradle/caches/modules-2/files-2.1/com.github.moduth/blockcanary-android/1.2.l/78f65b7622338d512e79a26fe76e7bb9f7614190/blockcanary-android-l.2.1.aar\n/Users/iann/.gradle/caches/modules-2/files-2.1/com.github.moduth/blockcanary-android/1.2.l/78f65b7622338d512e79a26fe76e7bb9f7614190/blockcanary-android-l.2.1.aar\n替换 build.gradle\n```\n\n最后经过打包后，AAR大小就会显示在终端上。\n\n```\nDeprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.\nUse f--warning-mode all1 to show the individual deprecation warnings.\nSee https://docs.gradle.org/5.4.l/userguide/command_line_interface.html#sec:comm ancLline一warnings\n\nBUILD SUCCESSFUL in 9s\n137 actionable tasks: 133 executed, 4 up-to-date\ncompile DONE\nbasePackSize: 2908419\naarPackSize: 2873610\naarSize: 34809\n```\n\n\u003e 建议先在本项目的`sample工程`进行测试，具体流程见工程[README](Sample/README.md)\n\n## 联系我们\n\n -  想了解更多开源项目信息？\n -  与项目成员零距离交流？\n -  扫码加小秘书微信\n -  一切应有尽有\n![jishu-58](docs/imgs/zucker_contact.png)\n -  微信号 : jishu-58\n -  添加小秘书微信后由小秘书拉您进项目交流群\n\n## 常见问题处理\n -  暂不支持工程依赖类型的测量 `implementation project(':xxx')` \n -  在build过程中发生报错：Could not get resource 'https://jcenter.bintray.com/com/google/guava/guava/27.0.1-jre/guava-27.0.1-jre.jar'\n \n 解决办法：使用阿里云镜像，重新进行下载；修改build.gradle中的buildscript和allprojects的jcenter，添加url 'https://maven.aliyun.com/repository/jcenter'即可。\n\n## 贡献代码\n详见 [CONTRIBUTING](CONTRIBUTING.rst)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwuba%2Fzucker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwuba%2Fzucker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwuba%2Fzucker/lists"}