2013-04-09 24 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