《BREW進階與精通——3G移動增值業務的運營、定製與開發》連載之87——面向BREW平臺的移植

abel_cao發表於2010-11-02

版權宣告:本文為半吊子子全棧工匠(wireless_com,同公眾號)原創文章,未經允許不得轉載。 https://blog.csdn.net/wireless_com/article/details/5981433

在移植之前,要確定移植的目標即該應用可能採用的商業模式,判定哪些內容需要移植,是應用的演算法還是資料結構,是商業邏輯還高層網路邏輯,或者是使用者介面。

            在移植之前的另一件事情是確定哪些是平臺獨立的介面屬性,哪些是特定平臺的介面屬性。看一看有沒有使用C的標準庫函式,有沒有依賴於特定平臺的函式,最好是對這些巨集和函式進行封裝而不是簡單的替代他們。明確執行時的限制同樣非常重要,例如記憶體,執行緒,同步介面,位元組對齊等等。對於原來基於多執行緒的應用,在移植到BREW平臺上的時候,一般要採用回撥機制來實現(AEECallback)。

            在移植的開始時最好建立一個自己的測試環境來檢驗應用移植層關鍵的API以及應用中重要的API,並提供對記憶體和資源使用狀況的跟蹤。採用OEM層類似的方法,可以建立一個應用移植層的參考實現,將與平臺相關的屬性在這一應用移植層實現,這樣會使將來的應用除錯非常簡便。

            在將應用移植層建立之後,需要在自己的測試環境進行檢驗,首先是單元測試,然後在模擬器執行,最後在手機上執行測試,同時檢測記憶體的使用狀況和演算法執行的效能。在測試完應用移植層外,就可以將目標應用平臺獨立程式碼和應用移植層整合起來了。這時可能會合並或者建立自己的使用者介面,接下來就是測試整個應用,然後認證(一般是商用測試TBT)並且釋出移植的應用了。

            將一個PC上的應用移植到BREW上時,要特別關注記憶體模型,一般要重寫演算法和資料結構,考慮一個單獨的記憶體分配器,同時要注意執行時的效能。從其他手機平臺向BREW平臺移植可能會簡單一些,通常要特別注意檔案組織結構和使用者介面。在移植的時候要牢記,不要讀寫應用中的資料段,BREW中不建議全域性和靜態的變數,注意位元組對齊和高地位的位元組順序以及非同步通訊方式。在移植的時候最好能夠獲得更多的編譯器警告,通常到Level 4 的告警,可以把這些告警當做是移植時產生的錯誤。在定義依賴於平臺的介面時,以及在手機上執行時,要剖析記憶體和CPU的效能。


相關文章