BlackBerry API 簡介

1

1BlackBerry API

使用 BlackBerry API                                                    

BlackBerry設備上使用Java                                           

應用程序控制

使用BlackBerry API

  BlackBerry Java 開發環境(簡稱JDE)的設計提供了一套完整的API和工具,來開發在BlackBerry設備上運行的Java應用程序。

  BlackBerry設備包含了一個基於CLDC1.1以及MIDPJava MEJava Platform Micro Edition)運行時環境。BlackBerry API擴展提供了額外的功能,並且和BlackBerry集成得更緊密。

   你可以在你的應用程序中使用CLDC/MIDPBlackBerry API。爲了能讓你的應用程序在任何採用JTWIJava Technology for Wireless Industry無線領域的Java技術)的設備上運行,你僅需要使用CLDCMIDP API來編寫標準的MIDP應用程序。

      [if gte vml 1]>

BlackBerry手持設備軟件組件

爲了查看API 參考。點擊任務欄的開始>程序>Research In Motion>BlackBerry JDE 4.1.0>API Java Doc Reference

BlackBerry API

BlackBerry API爲訪問BlackBerry特性提供了用戶界面,本地化,網絡,以及其他功能。

 注:訪問某些特性,如高級的加密,同步,以及消息的額外API,是受限制的。爲了使用這些API,你必須收到專門來自Research In Motion的認證中心編寫的許可。爲了得到更多信息,參看 BlackBerry 應用程序開發者指南第一卷:基礎 第二卷:高級

 

CLDC API

CLDC API

描述

java.io

提供數據流的系統輸入和輸出。

java.lang

提供Java編程語言基礎類。

java.lang.ref

提供引用對象類,它們支持一定程度上的垃圾回收。

java.util

包含集合類,時間,以及多樣的實用類。

javax.microedition.io

包含一般連接的類。

MIDP API

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提供一種機制來存儲和取得持久性數據。

PDAP API

MIDP API

描述

javax.microedition.pim

.提供標準機制來訪問PIM信息。

BlackBerry設備上使用Java

編譯源代碼,打包爲.cod文件,並將.cod文件加載到BlackBerry設備上,通過虛擬機運行。

        注:.cod文件名控制在128字節。

CLDC中描述的那樣,BlackBerry IDE使用一個分割的VM架構。爲了降低內存的數量以及BlackBerry設備需要的處理能力,部分類加載過程,稱爲預驗證,它在Java代碼加載到BlackBerry之前發生。在將源代碼打包爲.cod文件之前,自動驗證它。在類加載到BlackBerry設備時完成驗證的提示。

限制

CLDC1.1中描述的那樣BlackBerry虛擬機有以下限制:

  • 沒有對象的析構(finalization

  • 沒有用戶類的加載

  • 沒有反射,因此不支持RMIJini網絡技術。

  • 沒有原生方法(Native method

  • 沒有Runtime.exec()執行外部的進程

多線程

BlackBerry Java環境提供一個真正的多線程環境來運行應用程序。這個環境允許多個應用程序同時運行,允許事件廣播到多個應用程序,以及長操作和監聽線程在背後運行。

持久數據

存儲在閃存中的數據在BlackBerry重新設置之間持久保存。在BlackBerry設備上存儲數據可以採用以下二種方式中的一種:

  • 使用MIDP記錄存儲

  • 使用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提供了MIMEInputStreamMIMEOutputStream類來讀寫一個MIME編碼的數據流。

 

描述

MIMEInputStream

實現一個流來讀取一個MIME消息,然後根據MIME標準格式化和分解這個消息爲其部分

MIMEOutputStream

 

實現一個輸出流,這個流可以根據MIME標準格式化輸出爲其部分。本類不會完成實際的數據編碼,因此你必須在寫入它到本數據流治安編碼它。

壓縮

net.rim.device.api.compress包裏,BlackBerry JDE提供類來讀取使用Zlib或者GZip格式壓縮的數據流。這些類的行爲如Java標準版本里的java.util.zip包裏對應的類一樣。

 缺省的,壓縮是允許的,BlackBerry設備可以寫有效的GZipZlib文件爲這樣壓縮文件的內容。解壓縮同樣也是支持的。

集合

BlackBerry IDE 提供了一組接口和實用類來管理BlackBerry設備上的集合。

net.rim.device.api.collection包包含了許多接口,這些接口爲某些特定類型數據類型多定義了種類型的集合,例如列表,數組以及映射。這些接口定義了與Java標準版本集合框架的list,setmap接口類似的功能。

在你自己的類中實現這些接口,或者使用在net.rim.device.api.collection.util包裏提供的使用類。

向量

 標準的java.util.Vector實現了一個大小可以改變的對象數組。BlackBerry JDE也提供了合適的類,例如rim.device.api.util.IntVectorrim.device.api.util.ByteVector來對主要類型進行工作。這些類看起來和普通的Vector一樣,除了它們優化了在任何位置上插入的項。相反,如果你使用標準的大Vector作隨機的改變,大量的數據會在閃存和RAM移動。

列表

BlackBerry JDEnet.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 VMBlackBerry設備上系統資源的能力。 得到信號信息

RadioInfo提供了訪問信號狀態信息的能力。 得到設備信息

DeviceInfo類可以訪問下列BlackBerry設備的信息:

  • 電池電源和狀態

  • Blackerry設備號

  • 空閒時間

  • 平臺版本

系統事件通知用戶

當一個事件,例如一條新消息到來的時候,Alert類允許應用程序通知用戶。 監視內存使用情況

使用一個Memory類提供的靜態方法來得到VM內存使用統計信息。

Memory類很多實用方法返回一個MemoryStats對象。使用MemoryStats類提供的實用方法得到BlackBerry設備上內存和可用存儲空間的詳細信息。 日誌事件

EventLogger允許應用程序在持久存儲裏存儲事件日誌。BlackBerry設備維護事件隊列,以至當日誌滿時,會刪除最早的事件,並增加新的事件。用戶可以按住Alt+lglg來查看BlackBerry設備的系統事件日誌。

使用工具

BlackBerry JDEnet.rim.device.api.util包裏提供了一組實用工具,這些類裏的許多類提供了和Java標準版本里相似的功能

  • Comparator接口定義了對象集合上的順序的方法。

  • Arrays提供方法來操作數組,例如排序,查找,以及作爲列表來查看數組。

  • BitSet 類維護bit的集合。

net.rim.device.api.util包包含了多個類來管理特定類型的數據集合,包括向量,哈希表,映射以及棧。

應用程序控制

應用程序控制允許系統管理員操作以下動作:

  • 控制內部連接(公司防火牆背後的連接)

  • 控制外部連接

  • 控制本地連接(序列和USB連接)

  • 控制訪問鍵存儲(key store)

  • 控制訪問特殊的API.

  • 阻止第三方應用程序存在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)

允許

 

Tags: BlackBerry, API, J2ME

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章