知識彙總:自定義屬性(lib的引用問題)
自定義屬性
xmlns:app="http://schemas.android.com/apk/res/ 包路徑"
但如果你當前工程是做為lib使用,那麼你如上所寫 ,會出現找不到自定義屬性的錯誤 。
這時候你就可以 寫成
xmlns:app="http://schemas.android.com/apk/res-auto "
作為library工程可以引用外部jar包,但不能引用其它library工程,在library工程中不能使用aidl檔案,不能引用raw、assets下資源
1.兩個Library不能互相引用
2.Library中的Drawable檔案不能被專案中使用(該項有待進一步確認)
3.由於在專案中使用的上下文物件是屬於當前專案,所以在Library中獲取檔案物件Context.getAssets().open("fileName.txt"); 該檔案應該放在專案裡的assets。(該項有待進一步確認)
4.Library中不能使用View注入框架(如:BufferKnife),因為Library R檔案裡檔案的id都是靜態變數,而需要的是常量(Android專案中生成的就是常量)。但是,如果把框架放在Library中,專案中是可以用該框架的。
5.Library可以有自己的子Library
6.快取問題:如果在編碼時,一個子Library中的程式碼修改了,父Library中不能載入子Library中修改的程式碼,需要把子Library取消引用,再匯入引用就好了。
7.若使用庫中的activity之類的,需要在專案的AndroidManifest.xml中重新定義。因為manifest 配置檔案是獨立給工程的,不能複用。可以在Library不宣告Activity,但是在project中必須宣告。
8.資源同名的話,專案中的資源會覆蓋庫中的資源。
9.使用Library之後properties 檔案中會多了一個引用的定義。
10.Android Library可以重複使用java類,android元件和資源,但是assets的資源不會被重用。