作者:Confach 發表于March 19,200614:59 pm
版權信息:可以任意轉載, 轉載時請務必以超鏈接形式標明文章原始出處和作者信息.
http://www.cnblogs.com/confach/articles/353363.html
1
第1章BlackBerry API
BlackBerry Java 開發環境(簡稱JDE)的設計提供了一套完整的API和工具,來開發在BlackBerry設備上運行的Java應用程序。
BlackBerry設備包含了一個基于CLDC1.1以及MIDP的Java ME(Java Platform Micro Edition)運行時環境。BlackBerry API擴展提供了額外的功能,并且和BlackBerry集成得更緊密。
你可以在你的應用程序中使用CLDC/MIDP和BlackBerry API。為了能讓你的應用程序在任何采用JTWI(Java Technology for Wireless Industry,無線領域的Java技術)的設備上運行,你僅需要使用CLDC和MIDP API來編寫標準的MIDP應用程序。
<!--[if !vml]--><!--[endif]-->
BlackBerry手持設備軟件組件
為了查看API 參考。點擊任務欄的開始>程序>Research In Motion>BlackBerry JDE 4.1.0>API Java Doc Reference
BlackBerry API為訪問BlackBerry特性提供了用戶界面,本地化,網絡,以及其他功能。
<!--[if !vml]--><!--[endif]-->注:訪問某些特性,如高級的加密,同步,以及消息的額外API,是受限制的。為了使用這些API,你必須收到專門來自Research In Motion的認證中心編寫的許可。為了得到更多信息,參看 BlackBerry 應用程序開發者指南第一卷:基礎 第二卷:高級。
BlackBerry API 包
|
描述
|
|
net.rim.blackberry.api.browser
|
應用程序可以調用BlackBerry瀏覽器,為了得到更多信息,參看 BlackBerry 應用程序開發者指南 第二卷:高級。
|
|
net.rim.blackberry.api.invoke
|
允許應用程序調用BlackBerry應用程序,如任務,消息,備忘錄以及電話。為了得到更多信息,參看 BlackBerry 應用程序開發者指南 第二卷:高級。
|
|
net.rim.blackberry.api.mail
|
定義了必要的功能來將內部的RIM消息系統對象組件轉化為和Mail API兼容并可移植的對象。同時也提供了發送,接收,以及訪問消息的功能。為了得到更多信息,參看 BlackBerry 應用程序開發者指南 第二卷:高級
|
|
net.rim.blackberry.api.mail.event
|
定義了消息事件以及監聽者(Listener)接口來管理郵件事件。為了得到更多信息,參看 BlackBerry 應用程序開發者指南 第二卷:高級
|
|
net.rim.blackberry.api.menuitem
|
允許應用程序在BlackBerry的應用程序例如地址本,日歷以及消息中增加客戶定制的菜單項,為了得到更多信息,參看 BlackBerry 應用程序開發者指南 第二卷:高級
|
|
net.rim.blackberry.api.options
|
允許應用程序在BlackBerry設備的選項中增加選項條目。為了得到更多信息,參看 BlackBerry 應用程序開發者指南 第二卷:高級
|
|
net.rim.blackberry.api.pdap
|
允許應用程序和BlackBerry個人信息管理(PIM)交互,PIM包括地址本,任務,日歷。MIDP包javax.microedition.pim提供了類似的功能。為了得到更多信息,參看 BlackBerry 應用程序開發者指南 第二卷:高級
|
|
net.rim.blackberry.api.phone
|
提供了訪問電話應用程序的高級特性。為了得到更多信息,參看 BlackBerry 應用程序開發者指南 第二卷:高級
|
|
net.rim.blackberry.api.phone.phonelogs
|
提供了訪問電話呼叫歷史記錄的功能。為了得到更多信息,參看 BlackBerry 應用程序開發者指南 第二卷:高級
|
|
net.rim.device.api.bluetooth
|
允許BlackBerry應用程序在一個藍牙序列端口連接的基礎上與打開藍牙無線技術的設備進行通信。為了得到更多信息,參看103頁的“使用藍牙序列端口連接”.
|
|
net.rim.device.api.browser.field
|
允許程序在界面上顯示瀏覽器的字段。為了得到更多信息,參看 BlackBerry 應用程序開發者指南 第二卷:高級
|
|
net.rim.device.api.browser.plugin
|
允許程序增加額外支持的MIME類型到BlackBerry瀏覽器上。為了得到更多信息,參看 BlackBerry 應用程序開發者指南 第二卷:高級
|
|
net.rim.device.api.collection
net.rim.device.api.collection.util
|
為管理數據集合定義了接口和實用類。為了得到更多信息,參看13頁的“集合”.
|
net.rim.device.api.compress
|
提供實用類來進行GZip和ZLib數據壓縮。<!--[if !supportFootnotes]-->[1]<!--[endif]-->
|
net.rim.device.api.i18n
|
提供類來支持BlackBerry設備上應用程序的本地化。為了得到更多信息,參看13頁的“本地化應用程序”.
|
net.rim.device.api.io
|
提供一個定制的BlackBerry類庫來管理數據的輸入和輸出。
|
net.rim.device.api.mime
|
提供與MIME編碼的數據流一起工作的類。
|
net.rim.device.api.notification
|
提供觸發事件的通知以及響應系統以及程序的事件的方法。為了得到更多信息,參看 BlackBerry 應用程序開發者指南 第二卷:高級
|
net.rim.device.api.servicebook
|
允許程序增加,刪除,以及訪問服務約定(Service Book)<!--[if !supportFootnotes]-->[2]<!--[endif]-->的接口。為了得到更多信息,參看 BlackBerry 應用程序開發者指南 第二卷:高級
|
net.rim.device.api.system
|
提供訪問系統級的功能,包括鍵盤和滑輪的事件監聽者,圖像創建和支持,和應用程序控制。
|
net.rim.device.api.ui
|
提供增強的功能來控制BlackBerry用戶界面,包括屏幕和控件布局管理,控件類型支持,焦點,滾動,以及改變監聽者。為了得到更多信息,參看39頁的“用戶界面API”.
|
net.rim.device.api.ui.component
|
提供了創建UI程序的界面組件庫。為了得到更多信息,參看39頁的“顯示用戶界面組件”。
|
net.rim.device.api.ui.container
|
提供創建UI程序的界面管理組件的庫。為了得到更多信息,參看49頁的“管理用戶界面組件”。
|
net.rim.device.api.ui.text
|
提供類對文本字符串進行過濾,包含多種類型的數據,例如電話號碼或URL。
|
net.rim.device.api.util
|
提供實用的方法和接口,包含數組,哈希表,字符匹配。
|
CLDC API 包
|
描述
|
java.io
|
提供數據流的系統輸入和輸出。
|
java.lang
|
提供Java編程語言基礎類。
|
java.lang.ref
|
提供引用對象類,它們支持一定程度上的垃圾回收。
|
java.util
|
包含集合類,時間,以及多樣的實用類。
|
javax.microedition.io
|
包含一般連接的類。
|
MIDP API 包
|
描述
|
javax.microedition.lcdui
|
包含MIDP 用戶界面API,它為MIDP應用程序的用戶界面實現提供了一組特性。
|
javax.microedition.lcdui.game
|
包含了可以為BlackBerry設備進行豐富游戲內容開發的類。
|
javax.microedition.midlet
|
定義了MIDP應用程序以及應用程序和應用程序運行的環境之間的交互。
注:BlackBerry IDE可以在啟動時,使參數傳遞到一個BlackBerry CLDC應用程序中。
|
javax.microedition.pki
|
定義了用來驗證安全連接信息的證書。
|
javax.microedition.rms
|
為MIDlet提供一種機制來存儲和取得持久性數據。
|
MIDP API 包
|
描述
|
javax.microedition.pim
|
.提供標準機制來訪問PIM信息。
|
編譯源代碼,打包為.cod文件,并將.cod文件加載到BlackBerry設備上,通過虛擬機運行。
<!--[if !supportLists]-->
<!--[endif]-->注:.cod文件名控制在128字節。
如CLDC中描述的那樣,BlackBerry IDE使用一個分割的VM架構。為了降低內存的數量以及BlackBerry設備需要的處理能力,部分類加載過程,稱為預驗證,它在Java代碼加載到BlackBerry之前發生。在將源代碼打包為.cod文件之前,自動驗證它。在類加載到BlackBerry設備時完成驗證的提示。
在CLDC1.1中描述的那樣BlackBerry虛擬機有以下限制:
- 沒有對象的析構(finalization)
- 沒有用戶類的加載
- 沒有反射,因此不支持RMI和Jini網絡技術。
- 沒有原生方法(Native method)
- 沒有Runtime.exec()執行外部的進程
BlackBerry Java環境提供一個真正的多線程環境來運行應用程序。這個環境允許多個應用程序同時運行,允許事件廣播到多個應用程序,以及長操作和監聽線程在背后運行。
存儲在閃存中的數據在BlackBerry重新設置之間持久保存。在BlackBerry設備上存儲數據可以采用以下二種方式中的一種:
為了得到關于使用BlackBerry API存儲持久數據的更多信息,參看BlackBerry應用程序開發者指南第一卷:基礎 第二卷:高級。
BlackBerry JDE根據MIDP2.0,實現了網絡通信。它提供多種連接選項,包括通過使用HTTP代理連接在公司防火墻背后安全連接的能力。
BlackBerry JDE提供了以下幾種連接類型:
- 流連接(StreamConnection接口,包括:
1. HTTP 連接(HttpConnection接口)
2. HTTPS連接(HttpsConnection接口)
3. Socket連接(SocketConnection接口)
4. 安全socket連接(SecureConnection接口)
5. 序列連接到BlackBerry設備的一個通信接口(CoomConnection接口)
- 數據報連接(DtagramConnection接口),包含
1. UDP數據報連接(UDPDatagramConnection接口)
Javax.microedition.io.PushRegistry 類對BlackBerry設備保持了一些進入的連接。
BlackBerry JDE為包含在CLDC java.io包里的流提供了標準的接口和類。
MIME編碼
BlackBerry IDE提供了MIMEInputStream和MIMEOutputStream類來讀寫一個MIME編碼的數據流。
類
|
描述
|
MIMEInputStream
|
實現一個流來讀取一個MIME消息,然后根據MIME標準格式化和分解這個消息為其部分
|
MIMEOutputStream
|
實現一個輸出流,這個流可以根據MIME標準格式化輸出為其部分。本類不會完成實際的數據編碼,因此你必須在寫入它到本數據流治安編碼它。
|
壓縮
在net.rim.device.api.compress包里,BlackBerry JDE提供類來讀取使用Zlib或者GZip格式壓縮的數據流。這些類的行為如Java標準版本里的java.util.zip包里對應的類一樣。
缺省的,壓縮是允許的,BlackBerry設備可以寫有效的GZip和Zlib文件為這樣壓縮文件的內容。解壓縮同樣也是支持的。
BlackBerry IDE 提供了一組接口和實用類來管理BlackBerry設備上的集合。
net.rim.device.api.collection包包含了許多接口,這些接口為某些特定類型數據類型多定義了種類型的集合,例如列表,數組以及映射。這些接口定義了與Java標準版本集合框架的list,set和map接口類似的功能。
在你自己的類中實現這些接口,或者使用在net.rim.device.api.collection.util包里提供的使用類。
向量
標準的java.util.Vector實現了一個大小可以改變的對象數組。BlackBerry JDE也提供了合適的類,例如rim.device.api.util.IntVector和rim.device.api.util.ByteVector來對主要類型進行工作。這些類看起來和普通的Vector一樣,除了它們優化了在任何位置上插入的項。相反,如果你使用標準的大Vector作隨機的改變,大量的數據會在閃存和RAM移動。
列表
BlackBerry JDE在net.rim.device.api.collection.util包里提供了一些類來管理元素的列表
類
|
描述
|
SortedReadableList 和
UnsortedReadableList
|
使用這些類來維護已排序的和未排序的元素列表。SortedReadableList類需要你使用一個比較對象來排序列表中的元素。增加到列表中的每一個元素必須被比較對象視為有效的。
|
IntSortedReadableList 和LongSortedReadableList
|
使用這些類自動排序整形列表或與長整形關鍵字相關的元素。
|
BigSortedReadableList 和 BigUnsortedReadableList
|
使用這些類來存儲大的數據集合(大于10或者15K).這些類不會存儲數據到一個數組中,因此你可以對大數據集合更有效的做出隨意改變。
|
ReadableListCombiner
|
使用這個類合并2個或者更多的ReadableList對象并且將他們作為一單個ReadableList來存儲。
|
ReadableListUtil
|
此類提供一些有用的方法如getAt()和getIndex()。我們可以使用此類得到只讀列表中的數
|
哈希表
除了CLDC提供的標準java.util.Hashtable 之外,BlackBerry JDE包含了特定的net.rim.device.api.collection.util.LongHashtableCollection類,這個類提供了使用長整形作為關鍵字的哈希表集合。一個LongHashtableCollection 對象,寫操作作為一個映射(使用一個關鍵字-元素對),讀操作作為一個映射或者作為一個集合(在集合里作為一個數組來得到數據)。
事件監聽者接口根據事件類型劃分。每個應用程序注冊來接收特定類型的事件。應用程序事件隊列然后調度事件到一個合適的監聽者。
應用程序可以實現合適的監聽者接口或者在各種Screen對象里重寫監聽者方法。大多數應用程序實現了KeyListener 和TrackwheelListener 接口,而且注冊了監聽者來接收鍵盤和滑輪的事件。鍵盤和滑輪是用戶和應用程序交互的主要方式。
下列的事件監聽者放在 net.rim.device.api.system包中
監聽者接口
|
事件類型
|
AlertListener
|
實現接口來監聽alert事件
|
BluetoothSerialPortListener
|
實現接口來監聽藍牙序列端口事件,例如打開一個藍牙序列端口連接作為服務器或者客戶端。
|
GlobalEventListener
|
實現接口來監聽可以廣播到所有應用程序的全局事件。
|
HolsterListener
|
實現接口來監聽套裝事件,例如BlackBerry設備從套裝中插入和移開。
|
IOPortListener
|
實現接口監聽I/O端口事件。
|
KeyListener
|
實現接口監聽鍵盤事件,例如用戶按住或釋放一個鍵。
|
RealTimeClockListener
|
實現本接口來監聽實時時鐘事件,例如時鐘更新。
|
SerialPortListener
|
實現此接口監聽序列化端口事件,例如對于一個已經和計算機序列端口連接的BlackBerry設備,一個在數據正在被發送到序列化端口連接狀態中的改變。
|
SystemListener
|
實現此接口來監聽系統事件,例如電池狀態和電源的改變。
|
TrackwheelListener
|
實現本接口監聽滑輪事件,例如按住滑輪。
|
USBPortListener
|
實現本接口監聽USB端口事件,例如對于一個已經和計算機USB端口連接的BlackBerry設備,數據正被發送到USB端口連接的狀態。
|
net.rim.device.api.system包的類提供了訪問Java VM和BlackBerry設備上系統資源的能力。
得到信號信息
RadioInfo提供了訪問信號狀態信息的能力。
得到設備信息
DeviceInfo類可以訪問下列BlackBerry設備的信息:
- <!--[if !supportLists]--><!--[endif]-->電池電源和狀態
- <!--[if !supportLists]--> <!--[endif]-->Blackerry設備號
- <!--[if !supportLists]--> <!--[endif]-->空閑時間
- <!--[if !supportLists]--> <!--[endif]-->平臺版本
系統事件通知用戶
當一個事件,例如一條新消息到來的時候,Alert類允許應用程序通知用戶。
監視內存使用情況
使用一個Memory類提供的靜態方法來得到VM內存使用統計信息。
Memory類很多實用方法返回一個MemoryStats對象。使用MemoryStats類提供的實用方法得到BlackBerry設備上內存和可用存儲空間的詳細信息。
日志事件
EventLogger允許應用程序在持久存儲里存儲事件日志。BlackBerry設備維護事件隊列,以至當日志滿時,會刪除最早的事件,并增加新的事件。用戶可以按住Alt+lglg鍵來查看BlackBerry設備的系統事件日志。
BlackBerry JDE在net.rim.device.api.util包里提供了一組實用工具,這些類里的許多類提供了和Java標準版本里相似的功能
- <!--[if !supportLists]-->Comparator接口定義了對象集合上的順序的方法。
- <!--[if !supportLists]-->Arrays提供方法來操作數組,例如排序,查找,以及作為列表來查看數組。
- <!--[if !supportLists]-->BitSet 類維護bit的集合。
net.rim.device.api.util包包含了多個類來管理特定類型的數據集合,包括向量,哈希表,映射以及棧。
應用程序控制允許系統管理員操作以下動作:
- <!--[if !supportLists]-->控制內部連接(公司防火墻背后的連接)
- <!--[if !supportLists]-->控制外部連接
- <!--[if !supportLists]-->控制本地連接(序列和USB連接)
- <!--[if !supportLists]-->控制訪問鍵存儲(key store)
- <!--[if !supportLists]-->控制訪問特殊的API.
- <!--[if !supportLists]--> <!--[endif]-->阻止第三方應用程序存在BlackBerry設備上。
為了得到更多信息,參看BlackBerry Enterprise Server Handheld Management Guide的應用程序管理。
受限制訪問的API, 類, 和方法
使用了下列受限的API,類,以及方法的應用程序可以加載到BlackBerry設備,但是如果他們訪問了一個沒有在應用程序控制下得到允許的API時,在運行時會拋出一個ControlledAccessException或者NoClassDefFoundError的異常。
類,方法或API
|
缺省值
|
應用程序菜單項API(net.rim.blackberry.api.menuitem)
|
允許
|
藍牙API (net.rim.device.api.bluetooth)
|
允許
|
Connector.open() (javax.microedition.io)
|
提示
注:內部和外部的連接由不同的應用程序控制策略來管理
|
DeviceKeyStore 類 (net.rim.device.api.crypto.keystore)
|
允許
|
EventInjector 類 (net.rim.device.api.system)
|
不允許
|
HTTP Filter API (net.rim.device.api.io.http)
|
不允許
|
Notification API (net.rim.device.api.notification)
|
允許
|
電API 和 呼叫API (用來調用電話應用程序) (net.rim.blackberry.api.phone 和net.rim.blackberry.api.invoke)
|
允許(缺省,用戶提示)
|
電話日志API (net.rim.blackberry.api.phone.phonelogs)
|
允許(缺省,用戶提示)
|
PIM API (net.rim.blackberry.api.pdap)
|
允許
|
RuntimeStore 類 (net.rim.device.api.system)
|
允許
|
SerialPort 類 (net.rim.device.api.system)
|
允許
|
Session 類 (net.rim.blackberry.api.mail)
|
允許
|
StringPatternRepository 類 (net.rim.device.api.util)
|
允許
|
USBPort 類 (net.rim.device.api.system)
|
允許
|
<!--[if !supportFootnotes]-->
<!--[endif]-->