抽象ui介面
對於很多ui介面,不同版本的android會提供不同的介面。例如, tab,在level = 11(android3.0 honeycomb)中使用actionbar,而 在更低版本的android中沒有actionbar,但可以用tab控制項代替。
對於這些情況,如果要開發適應於所有版本的android應用,就需 要對這些ui介面進行抽象。通常使用介面或抽象類。並利用多型滿足不 同android版本的需求。
建立乙個tag抽象類
抽象actionbar.tab
1 抽象tabhelperpublic
abstract
class
compattab
1新的api實現compattabpublic
abstract
class
tabhelper
6public
abstract
void
addtab(compattab tab);
7...
8 }
1 新的api實現tabhelperpublic
class compattabhoneycomb extends
compattab
7public compattab settext(int
resid)
10 }
1 用較早版本api實現tabspublic
class tabhelperhoneycomb extends
tabhelper 10}
11... ...
12 }
通常很難完全將新版本ui移植到老版本上,而且老版本的使用者可能對 新版本的ui風格不習慣,所以應盡量使用老版本與新版本對應的ui。例如, 可以用tabwidget和tabhost來實現compattab和tabhelper。
檢測當前的android版本
1public
abstract
class
tabhelper else10}
11public
compattab newtab(string tag) else
18}19 ...
關於登錄檔向後相容的悲傷故事
當你嘗試設計乙個作業系統的時候,向後相容性,是其中乙個你不得不考慮的問題。如果新的應用程式依賴那些為舊版應用程式設計的 小技巧 時,你就得發狂了。在很久很久以前的乙個遙遠星系 windows 95的beta發布版本的代號是 m3 我們將那些用來描述特定資料夾的位置的資訊儲存到了名為 shell fo...
RPC 設計可擴充套件且向後相容的協議
協議 怎麼設計可擴充套件且向後相容的協議?瀏覽器收到命令後會封裝乙個請求,並把請求傳送到 dns 解析出來的 ip 上,通過抓包工具我們可以抓到請求的資料報,如下圖所示 協議的作用 rpc 請求在傳送到網路中之前,他需要把方法呼叫的請求引數轉成二進位制 轉成二進位制後,寫入本地 socket 中,然...
vue中element ie9的相容問題
可能的原因2,ie9瀏覽器過於老舊,單檔案最大行數超過一定限制將不再讀取後邊的內容,因此可以嘗試分割css檔案和打包的js檔案 分割js檔案,最好的方法是採用vue的路由懶載入,這樣打包時,vue loader會把每個路由對應的js檔案打包在一起。同時注意元件的合理劃分,避免單元件體積過大,並提高元...