2013-04-09 25 views
3

在Android应用程序中,我们包含许多库文件,如google-play-services-libFacebook-SDK等。但我们从来没有真正使用这些库中的所有功能和类,所以我的问题是当.apk文件被创建时,是否包含所有这些类,使用包括在我们的应用程序中?如果是,那么我们可以解决这个问题吗?即我们可以删除或做一些事情,以避免包含所有类?我们的应用程序是否会加载包含的库文件中的所有类?

谢谢你...

+3

... [proguard的(http://developer.android.com/tools/ help/proguard.html).... – Selvin 2013-04-09 06:42:30

回答

3

你应该保持你的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

+0

如果手动删除未使用的lib类文件,可以吗? – 2013-04-09 07:15:36

+2

是的,你可以但你确保你包含在你的项目中的类不依赖于那些被删除的类。如果有很多类相互依存,找到合适的删除将是问题。更好地配置proguard – Raghunandan 2013-04-09 07:18:10

+0

K谢谢你,这个proguard是一个内置的工具吗? – 2013-04-09 07:21:25