《BREW進階與精通——3G移動增值業務的運營、定製與開發》連載之87——面向BREW平臺的移植
版權宣告:本文為半吊子子全棧工匠(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的效能。
相關文章
- 《BREW進階與精通——3G移動增值業務的運營、定製與開發》連載之12—BREW裡面有什麼
- 《BREW進階與精通——3G移動增值業務的運營、定製與開發》連載之6---移動增值業務概述
- 《BREW進階與精通——3G移動增值業務的運營、定製與開發》連載之86——不同品牌BREW手機間的應用移植
- 《BREW進階與精通——3G移動增值業務的運營、定製與開發》連載之61-BREW開發商的註冊
- 《BREW進階與精通——3G移動增值業務的運營、定製與開發》連載之77——BREW中位置資訊的獲得(LBS應用)
- 《BREW進階與精通——3G移動增值業務的運營、定製與開發》連載之8—Symbian,WindowsMobile,Palm,Linux,J2ME,BREWWindowsLinux
- 《BREW進階與精通——3G移動增值業務的運營、定製與開發》連載之56—BREWSDK個版本的區別(下)
- 《BREW進階與精通——3G移動增值業務的運營、定製與開發》連載之51—BREWSDK九大功能之安全服務
- 《BREW進階與精通——3G移動增值業務的運營、定製與開發》連載之34—手機上應用的預安裝
- Mac brew swoole 安裝與升級Mac
- 移動開發的跨平臺技術演進移動開發
- 3G與全業務運營應高度重視網路資訊保安
- macOS - brew 提速的方法Mac
- 使用 brew 和 brew-cask 安裝常用程式
- HTML5、Web引擎與跨平臺移動App開發HTMLWebAPP
- Mac中brew命令的使用Mac
- 運維管理平臺OEM定製整合開發,激發IT價值運維
- MM將成中國移動業務發展的戰略平臺
- DSW:面向AI研發的整合開發平臺AI
- Brew Elasticsearch 升級Elasticsearch
- MAC 安裝BrewMac
- brew安裝很慢
- mac上brew使用Mac
- 移動端跨平臺開發的深度解析
- 使用Termux打造你的移動開發平臺UX移動開發
- Flutter 基礎(一)移動開發的跨平臺技術演進Flutter移動開發
- Java 與 .NET 的平臺發展之爭Java
- 什麼是BREW分發系統?
- IBM:開創性業務平臺與生態系統的威力(附下載)IBM
- 風雲線上SaaS運營平臺促進CRM二次開發
- Mac下使用Brew搭建PHP(LNMP/LAMP)開發環境MacPHPLNMPLAMP開發環境
- Android系統移植與驅動開發Android
- BREW中的特殊語音處理
- TypeScript, Angular 和移動端的跨平臺開發TypeScriptAngular
- 機器學習研究與開發平臺的選擇機器學習
- brew 常用命令
- brew update /usr/local is not writable
- Mac下安裝brewMac