解析android的佈局文件

項目要求在android裏面動態加載插件.就是向客戶端發送一個jar包,用來擴充或者更新應用.

要求jar包可以向用戶提供獨立的用戶界面.就是說,jar包裏的佈局文件要單獨解析成view了.

剛開始,還不是很有思路,看了看android的源碼,解析佈局文件真的是,,,有點麻煩啊...

翻翻論壇,國外論壇大多表示這個做不到,或者比較難,

最後在一個國內安卓的帖子裏找到相關的文章,還有源碼試例,看了看,得到點兒啓示,開工.(那帖子隨後貼上.)


大概思路如下:

無論如何,還是要去分析xml文件的內容的.一樣用android提供的XmlPullParser來解析.

用XmlPullParser處理一直的xml佈局文件,逐條獲得佈局文件中的佈局類名.

通過類名來反射獲得類的實例,於是我們就獲得了view的實例.

然後,在依照佈局文件中的各項屬性,對已獲得的view實例進行設置.

麻煩就在view的屬性設置裏了,父類View的屬性有60多項,部分佈局、子類控件的屬性還要多些,要合理的安排,以避免重複的工作,同時還要提高效率。


思路到這裏,接下來就是體力活了。

整體來看,並不難,首先從XmlPullParser開始分析xml就好。

根據分析得到view的實例後,就可以對view開始設置了。

最後,因爲view的屬性太多了,要合理安排算法(或者設計模式?)來提高效率和代碼複用率。


解析的帖子 http://www.eoeandroid.com/thread-247266-1-1.html

遇到一些麻煩,style解析起來比較繁瑣。另外,style不能在代碼中設置,只能在xml中設置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章