上面講到,IFIFO實際上就是一個檔案,而且共用檔案,即共用駐留資料也是BREW應用間通訊最簡單的一種方式。BREW中有三種駐留資料的方式:系統儲存,檔案和資料庫。
系統儲存是指通過ISHELL_SetPrefs()和ISHELL_GetPrefs()來實現駐留資料的方法。ISHELL_SetPrefs()和ISHELL_GetPrefs()提供了一種方法來儲存包含或讀取應用或類層級首地址的資料結構,相當於VC裡面的序列化,使用起來非常簡便,資料由整個AEE層共用。
通常在手機上還存在shared這樣一個共用目錄,在shared目錄下的所有檔案可以被任何應用所訪問(應用至少擁有FILE許可權)。所以,約定好一個檔案名稱,兩個或多個應用就可以通過共同訪問該檔案進行通訊了。Const檔案可以允許OEM 減少RAM 的負荷,一般不能對Const檔案做刪改,IFILE_Map() 可以用來將Const檔案對應到記憶體,因此Const檔案很少用來做通訊的載體。IFILEMGR_GetInfo()和 IFILEMGR_GetInfoEx() 支援的檔案大小不能超過4GB(BREW3.x之前的版本),檔案名稱的長度也是有限制的,通過ISHELL_GetDeviceInfo(pIShell, pi), pi->wMaxPath 可以得到檔案名稱包括路徑的最大長度.
IDATABASE是一個資料庫介面,多個應用可以共用同一個資料庫。Idatabase可以建立和訪問由 IDBMgr建立並開啟的資料庫中的記錄,調用 IDBMGR_OpenDatabase() 開啟所需的資料庫可以擷取 Idatabase 介面的。另外,還可以使用 IDBRecord中的函數來訪問各個資料庫記錄的欄位。應用程式的權限等級必須是“檔案”或“全部”,才能調用此介面中可修改資料庫內容的函數。
IDATABASE_CreateRecord() 函數建立新的記錄並將其添加到資料庫中(IDBRECORD_Remove()用於刪除資料庫中的記錄)。每個記錄可包含一個或多個欄位,每個欄位由 AEEDBField 結構定義,建立建記錄時,先要填寫 AEEDBField 結構數組,來指定記錄中每個欄位的名稱、類型、內容和長度。然後,調用 IDATABASE_CreateRecord()並提供此數組的指標和要包含的 AEEDBField 結構數作為輸入參數。 IDATABASE_CreateRecord() 將返回指向 IDBRecord 介面執行個體的指標,可用於訪問和更新記錄的欄位。建立或更新記錄時,會為每個記錄指定欄位數和欄位類型;並不要求給定資料庫中的全部記錄都具有相同的結構。建立資料庫並添加記錄後,即可使用其他 Idatabase 函數從資料庫中檢索記錄。