wequick / Small

A small framework to split app into small parts
http://code.wequick.net/Small
Apache License 2.0
5.04k stars 1.11k forks source link

Lib.* 间接引用导致app.*含有重复 资源&class文件 等等 #279

Closed hcanyz closed 8 years ago

hcanyz commented 8 years ago

工程事例:https://yunpan.cn/cMQLXxbU3icIx (提取码:1e09)

前提: 如Simple工程, 1.Lib.util引用 lib.analytics ,lib.analytics引用 lib.style 2.lib.style 中含有 res资源,jar (其他资源也有可能会被重复打入,需要覆盖验证) 3.app.home 直接引用 lib.util buildeBundle app.home中有重复资源 app.detail 引用lib.analytics, lib.style buildeBundle app.detail中没有重复资源

猜测: 应该是之前解决 #199 问题时引发的,现在so文件没有打入到app中,但是引发了此问题。

临时解决方案: 使用small 1.0.0 版本,将所有的jar和so文件,都放入到一个 lib.common 中,作为项目不动资源。 bundleBundle时,将作为lib入口的lib.public(app只会引用这个lib,这lib间接引用其他lib)去除 compile project(':lib.common ') ,可以解决jar重复打入问题,并且提高编译效率和速度。

galenlin commented 8 years ago

我执行的结果来看,好像 app.home 里并没有重复,你跑下:

$ ./gradlew small

看输出的结果是否与我相同:

------------------------------------------------------------
Small: A small framework to split your app into small parts 
  gradle-small: 1.0.0-beta7 (maven)
         small: 1.1.0-beta5 (maven)
------------------------------------------------------------
type name PP file size
host app
app app.main 0x77 libnet_wequick_example_small_app_main.so (armeabi) 14.5 KB
app app.mine 0x16 libnet_wequick_example_small_app_mine.so (armeabi) 39.1 KB
app app.detail 0x67 libnet_wequick_example_small_app_detail.so (armeabi) 6.6 KB
app app.home 0x70 libnet_wequick_example_small_app_home.so (armeabi) 14 KB
lib lib.analytics 0x76 libnet_wequick_example_lib_analytics.so (armeabi) 125.6 KB
lib lib.utils 0x73 libnet_wequick_example_small_lib_utils.so (armeabi) 5.9 KB
lib lib.style 0x79 libcom_example_mysmall_lib_style.so (armeabi) 7.9 KB
web web.about libnet_wequick_example_small_web_about.so (armeabi) 24.5 KB
hcanyz commented 8 years ago

Small: A small framework to split your app into small parts gradle-small: 1.0.0-beta7 (maven)

small: 1.1.0-beta5 (maven)

type name PP file size
host app
app app.main 0x77 libnet_wequick_example_small_app_main.so (armeabi) 14.5 KB
app app.mine 0x16 libnet_wequick_example_small_app_mine.so (armeabi) 39.1 KB
app app.detail 0x67 libnet_wequick_example_small_app_detail.so (armeabi) 6.4 KB
app app.home 0x70 libnet_wequick_example_small_app_home.so (armeabi) 14 KB
lib lib.analytics 0x76 libnet_wequick_example_lib_analytics.so (armeabi) 158.8 KB
lib lib.utils 0x73 libnet_wequick_example_small_lib_utils.so (armeabi) 6 KB
lib lib.style 0x79 libcom_example_mysmall_lib_style.so (armeabi) 7.9 KB
web web.about libnet_wequick_example_small_web_about.so (armeabi) 24.5 KB

BUILD SUCCESSFUL

lib.home res anim 中有my_fade_in.xml