我正在试图弄清楚为什么我导出时我的APK大到21 MB。我正在使用HoloEverywhere和ActionBarSherlock,所以我正在做一个实验,看看没有它们我的APK有多大。为此,我取消了两个库的引用。但是,我注意到在src-> .git-> modules文件夹中,仍然有一个ActionBarSherlock文件夹,它为整个项目文件添加了大约10 MB。如果我在我的项目中取消引用两个库并且没有与ABS的其他连接,为什么它仍然在那里?我也试过清理我的项目,但没有运气。
答案 0 :(得分:1)
.git目录中的所有内容都适用于您的git repo。由于git是一个SCM库,它不仅仅是忘记了事情。当你提交更多代码时,.git目录将继续变大,即使这些提交删除了东西。 (删除一个文件,它会变得更小,因为它添加了一个条目,表示它被删除了)
现在,就.git / module目录而言,我认为git使用它来跟踪子模块。删除它可能会破坏您对主项目的回购。如果您决定要删除它,请先将其移动到另一个目录,然后查看是否可以检查旧标记/分支/提交并获取提交历史记录。即使这一切都有效,我怀疑你是否能够提取旧的标签/分支并进行构建,因为你将缺少它所依赖的模块。
如果您担心自己的APK为何如此之大,请将其拆分以找出原因。在这里查看我的答案的第二部分: Android Http client library issue
这是APK的简单解压缩。这将允许您查看所有非java文件和classes.dex文件的大小。如果您想知道dex内部的大小是什么,请使用dex2jar。请注意,因为JVM是基于堆栈的,而Dalvik是基于寄存器的,所以.class文件实际上比等效的Dalvik字节码略小。