《BREW進階與精通——3G移動增值業務的運營、定製與開發》連載之62—BREW 應用開發中的一些原則

來源:互聯網
上載者:User

在基於BREW的移動增值業務開發中,遵循一定的開發原則有助於避免發生常見的錯誤,並可將測試、調試和重寫原始碼所需的時間量降至最低,提高系統的開發效率。通過研究和執行這些指導原則,可以將從Windows轉換至ARM架構的時間總量降至最低,並使應用程式儘可能在行動裝置上正常運行。這些開發原則如下所示:

(1)執行NULL指標檢查。建立BREW介面執行個體時必須檢查NULL指標,如果指標有誤,則該介面將無法使用。檢查已指派記憶體所傳遞和返回的所有指標,以確保其有效性。無效指標應使用異常處理機制進行處理。

(2)避免堆疊溢位。不要在函數內將大數組或變數聲明為本地變數,因為AEE環境可用的堆棧大小十分有限。如果需要大量記憶體(例如,大於256位元組),則使用動態記憶體分配操作符,例如MALLQC或Iheap。

(3)不要編寫緊湊迴圈。使用緊湊迴圈會導致某些目標手機會自動重啟裝置。因此,不要編寫需要花費大量時間處理應用程式中單個事件的緊湊迴圈,而是採用事件通知或者回調機制。這樣可以防止裝置重設,在收到事件時,應用程式將進行所需處理,然後從該事件返回,使得其它事件可以發送到該應用程式。

(4)力求應用程式與裝置無關。要確保應用程式獨立於記憶體大小、鍵盤、螢幕大小和色深而能夠在任何目標裝置上執行,請使用ISHELL GetDevicelnfo從目標裝置擷取說明。使用該結果指定顯示、按鍵和多媒體等參數,而不要將這些參數直接編碼在應用程式中。

(5)使用資源文章。使用資源儲存特定語言的字串、對話方塊和位元影像,這有助於應用程式本地化和國際化,即方便第從一種語言的目標裝置移植至另一種語言的目標裝置,而不要將這些類型的資訊直接編碼在應用程式中。

(6)清除記憶體。由於目標行動裝置上的可用記憶體十分有限,因此必須釋放未使用的記憶體。在以下兩種情況下需釋放記憶體:一是必須釋放所建立對象的所有執行個體。二是在應用程式終止時,必須釋放所有動態記憶體(所有已指派記憶體),而且在不需要記憶體時可以將其及時釋放。

(7)不要使用全域或靜態變數。BREW結構不支援全域或靜態變數(4.X以後的版本才開始支援全域或靜態變數的使用),因為動態載入的應用程式無法處理這些資料類型。此外,使用全域或靜態變數可能導致連接器出現目標錯誤,因而建議始終將持久資料存放區在應用的主結構中。

(8)定義結構時不要初始化結構。對於ARM編譯器,定義並初始化的結構被視為待用資料。

(9)不要在條件陳述式內分配變數。在使用ARM編譯器應避免此類問題,不要在條件陳述式中編寫帶有指派陳述式代碼。

(10)不要使用原始浮點運算(4.X以後的版本才開始支援原始浮點運算的使用)。與上述“不要使用全域變數”相同,此處包括類型轉換,建議使用助手函數中提供的浮點函數調用。

(11)要盡量使用BREW提供的標準庫函數。由於目標裝置上的RAM限制,需要將編譯後的代碼大小控制到最小,因此應使用標準C庫函數的BREW 子集〔如果已提供),而不要使用標準庫函數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.