在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