在Android应用程序中,我们包含许多库文件,如google-play-services-lib
和Facebook-SDK
等。但我们从来没有真正使用这些库中的所有功能和类,所以我的问题是当.apk
文件被创建时,是否包含所有这些类,使用包括在我们的应用程序中?如果是,那么我们可以解决这个问题吗?即我们可以删除或做一些事情,以避免包含所有类?我们的应用程序是否会加载包含的库文件中的所有类?
谢谢你...
在Android应用程序中,我们包含许多库文件,如google-play-services-lib
和Facebook-SDK
等。但我们从来没有真正使用这些库中的所有功能和类,所以我的问题是当.apk
文件被创建时,是否包含所有这些类,使用包括在我们的应用程序中?如果是,那么我们可以解决这个问题吗?即我们可以删除或做一些事情,以避免包含所有类?我们的应用程序是否会加载包含的库文件中的所有类?
谢谢你...
你应该保持你的Android应用程序尽可能小。因此,你应该只包括你真正需要的罐子里的课程。
http://www.vogella.com/blog/2010/02/11/java-library-jar-android/
最好是使用ProGuard混淆你的代码。
ProGuard是一个Java类文件收缩器,优化器,混淆器和预校验器。 缩小步骤可检测并删除未使用的类,字段,方法和属性。优化步骤分析并优化方法的字节码。模糊处理还可以在一定程度上保护您的代码。
要启用ProGuard的在你的项目中,编辑project.properties
# Project target.
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt
target=Google Inc.:Google APIs:16
android.library.reference.1=../actionbarsherlock
http://developer.android.com/tools/help/proguard.html
http://proguard.sourceforge.net/index.html#manual/introduction.html
如果手动删除未使用的lib类文件,可以吗? – 2013-04-09 07:15:36
是的,你可以但你确保你包含在你的项目中的类不依赖于那些被删除的类。如果有很多类相互依存,找到合适的删除将是问题。更好地配置proguard – Raghunandan 2013-04-09 07:18:10
K谢谢你,这个proguard是一个内置的工具吗? – 2013-04-09 07:21:25
... [proguard的(http://developer.android.com/tools/ help/proguard.html).... – Selvin 2013-04-09 06:42:30