9 建立向後相容的用

2022-03-26 18:06:33 字數 1306 閱讀 5577

 抽象ui介面

對於很多ui介面,不同版本的android會提供不同的介面。例如, tab,在level = 11(android3.0 honeycomb)中使用actionbar,而 在更低版本的android中沒有actionbar,但可以用tab控制項代替。

對於這些情況,如果要開發適應於所有版本的android應用,就需 要對這些ui介面進行抽象。通常使用介面或抽象類。並利用多型滿足不 同android版本的需求。 

 建立乙個tag抽象類

抽象actionbar.tab 

1

public

abstract

class

compattab

 抽象tabhelper 

1

public

abstract

class

tabhelper

6public

abstract

void

addtab(compattab tab);

7...

8 }

新的api實現compattab 

1

public

class compattabhoneycomb extends

compattab

7public compattab settext(int

resid)

10 }

 新的api實現tabhelper 

1

public

class tabhelperhoneycomb extends

tabhelper 10}

11... ...

12 }

 用較早版本api實現tabs 

通常很難完全將新版本ui移植到老版本上,而且老版本的使用者可能對 新版本的ui風格不習慣,所以應盡量使用老版本與新版本對應的ui。例如, 可以用tabwidget和tabhost來實現compattab和tabhelper。 

 檢測當前的android版本 

1

public

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檔案打包在一起。同時注意元件的合理劃分,避免單元件體積過大,並提高元...