5/20/2009 1:36:23 pm
brew
lbrew
提供了多組不同功能物件(介面)和功能,這些物件和功能統稱為服務,這些服務包括:
1、提供支援簡單的基於事件的處理方式的應用程式服務
2、提供訪問檔案系統、網路服務、記憶體和顯示的核心服務
3、提供增強的圖形功能、多**、聲音和gps定位等增強服務
4、提供諸如支援瀏覽器開發的綜合服務
在這些不同功能和級別的服務中包含了brew的多種型別的介面,如ishell介面負責應用程式的控制和管理等功能;idisplay負責顯示的控制和螢幕重新整理等功能。brew的每乙個介面使用乙個32位的介面id表示,這個介面id叫做class id。這些class id都是由高通公司統一管理的,如果需要公開自己開發的介面,那麼必須使用高通的註冊網頁申請乙個id,申請後這個id就會保留下來給我們自己,不會再分配給其他的人。如果我們的介面只是做為本地測試使用,那麼我們可以使用自己定義的介面class id,需要注意的就是不要與現有介面的id相同就可以了。每乙個brew介面都是繼承自乙個叫做ibase的介面。
在使用乙個介面之前,必須首先使用ishell_createinstance()介面函式建立介面例項。ishell的介面指標是通過呼叫ishell_createinstance()介面的當前應用程式,或介面的入口函式傳遞進來的,不需要建立。建立例項後,這個介面例項的指標將通過ishell_createinstance()方法傳遞回來。對於一些特定的介面不是通過這個方法建立的,而是通過其他方法直接返回的,如iimage介面就是通過ishell_loadimage()方法獲得的。
brew
l開發乙個brew應用程式所需的元件:
1、brew aee隨sdk提供的標頭檔案(在sdk中的inc目錄下的.**件)23
4、使用mif檔案編輯器建立mif檔案
5注意,應用程式中使用的原始檔,對於windows環境和指定裝置環境下是相同的,使用同樣的原始檔去建立windows的dll二進位制檔案和裝置指定的mod二進位制檔案。
建立乙個介面的例項
1、查詢支援當前類的模組
2、將這個模組載入記憶體(如果當前沒有載入的話)
3、呼叫imoudule_createinstance()成員函式建立介面例項
如果成功建立了這個類的例項,那麼,將會通過引數ppobj返回這個介面例項的指標。在這個介面的使用者不再需要這個介面的時候,必須呼叫該類的release方法釋放介面例項,同時將介面指標置空。在編寫brew應用程式的時候,建立例項的應用程式一定要負責釋放這個例項。
l所有的brew類都是從ibase繼承而來的。
ibase
介面中有兩個方法,ibase_addref和ibase_release,由於全部的類都是從ibase繼承而來,那麼,全部brew類都支援addref和release方法。這兩個方法是用來控制介面例項引用計數的。引用計數也就是指當前的類例項有多少個指標指向它(也就是引用它)。當增加乙個引用的時候,必須呼叫addref方法增加類例項內部的引用計數,當釋放乙個引用的時候必須呼叫release方法減少引用計數。當內部引用計數為0的時候,就會釋放這個類的例項。我們必須嚴格的遵守這個規則,否則將不能夠正確地釋放介面例項所占用的系統資源,如記憶體等,會引起系統資源的耗盡,從而導致系統崩潰。
lbrew12
l …
其他brew事件(evt_key等)
…(可選)
(可選)
…其他brew事件(evt_key等)
… l
建立自定義通知
通知事件是brew提供的一種常用的高階功能。通過這個通知機制,我們可以接收到來自網路、鬧鐘等模組的事件,而不必採用輪詢的方式進行監測,這大大提高了程式的效率。最常見的幾種通知型別是通話、簡訊息、鬧鐘(鬧鐘使用的是evt_alarm事件,但它與通知事件原理相同)事件。乙個應用程式如果要獲得這樣的通知事件,需要使用ishell_registernotify()函式進行事件註冊。註冊後,當事件產生的條件滿足時,brew將傳送evt_notify事件給註冊的應用程式。不管這個應用程式是否處於啟用狀態,都能夠接收到這個事件。
除了brew系統的通知事件以外,我們還可以建立自己的通知類。基本步驟如下:12
、定義介面類所需的通知掩碼。
3、實現這個新的介面類。
一旦這個介面類被實現了,那麼任何乙個brew的應用程式都可以註冊這個介面的通知事件。
BREW學習筆記 IBitmap 介面 二
ibitmap bltin 說明 此函式可以將對應於畫素矩形的資料從指定的源位圖位塊傳輸到此位圖。源中每個畫素均與目標中的相應畫素關聯。此函式會為每對源和目標畫素執行邏輯操作,並將結果寫入目標畫素。原型 int ibitmap bltin ibitmap po,int xdst,int ydst,i...
學習操作Mac OS 之 使用brew安裝軟體
安裝brew軟體 安裝方法 在mac中開啟termal 輸入命令 usr bin ruby e curl fssl 回車 這裡有提示目錄不存在,要建立需要按return鍵,如果用的windows鍵盤,就是回車鍵 使用brew安裝軟體 brew install 安裝軟體 使用brew解除安裝軟體 br...
stl之順序容器學習筆記3
vector容器的自增長 概述vector物件為了支援快速隨機的訪問,將元素以連續的方式存放 與陣列相同 當我們向vector中新增乙個元素時,如果容器已經沒有空間容納新的元素,此時,由於元素必須連續存放以實現快速索引,所以不能在記憶體中隨便找個地方來儲存這個元素。於是,vector必須重新分配儲存...