在BlackBerry設備上使用Java及應用程序控制
在BlackBerry設備上使用Java
編譯源代碼,打包為.cod文件,并將.cod文件加載到BlackBerry設備上,通過虛擬機運行。
注:.cod文件名控制在128字節(jié)。
如CLDC中描述的那樣,BlackBerry IDE使用一個分割的VM架構(gòu)。為了降低內(nèi)存的數(shù)量以及BlackBerry設備需要的處理能力,部分類加載過程,稱為預驗證,它在Java代碼加載到BlackBerry之前發(fā)生。在將源代碼打包為.cod文件之前,自動驗證它。在類加載到BlackBerry設備時完成驗證的提示。
限制
在 CLDC1.1 中描述的那樣 BlackBerry 虛擬機有以下限制:
◆沒有對象的析構(gòu)(finalization)
◆沒有用戶類的加載
◆沒有反射,因此不支持 RMI 和 Jini 網(wǎng)絡技術。
◆沒有原生方法(Native method)
◆沒有 Runtime.exec()執(zhí)行外部的進程
多線程
BlackBerry Java 環(huán)境提供一個真正的多線程環(huán)境來運行應用程序。這個環(huán)境允許多個應用程序同時運行,允許事件廣播到多個應用程序,以及長操作和監(jiān)聽線程在背后運行。
持久數(shù)據(jù)
存儲在閃存中的數(shù)據(jù)在 BlackBerry 重新設置之間持久保存。在 BlackBerry 設備上存儲數(shù)據(jù)可以采用以下二種方式中的一種:
◆使用 MIDP 記錄存儲
◆使用 BlackBerry 持久模型
網(wǎng)絡通信
BlackBerry JDE 根據(jù) MIDP2.0,實現(xiàn)了網(wǎng)絡通信。它提供多種連接選項,包括通過使用 HTTP代理連接在公司防火墻背后安全連接的能力。
BlackBerry JDE 提供了以下幾種連接類型:
◆流連接(StreamConnection 接口,包括:
1.HTTP 連接(HttpConnection 接口)
2.HTTPS 連接(HttpsConnection 接口)
3.Socket 連接(SocketConnection 接口)
4. 安全 socket 連接(SecureConnection 接口)
5.序列連接到 BlackBerry 設備的一個通信接口(CoomConnection 接口)
◆數(shù)據(jù)報連接(DtagramConnection 接口),包含
1. UDP 數(shù)據(jù)報連接(UDPDatagramConnection 接口)
Javax.microedition.io.PushRegistry 類對 BlackBerry 設備保持了一些進入的連接。
流
BlackBerry JDE 為包含在 CLDC java.io 包里的流提供了標準的接口和類。
MIME 編碼
BlackBerry IDE 提供了 MIMEInputStream 和 MIMEOutputStream 類來讀寫一個 MIME 編碼的數(shù)據(jù)流。
壓縮
在 net.rim.device.api.compress 包里 ,BlackBerry JDE 提供類來讀取使用 Zlib 或者 GZip格式壓縮的數(shù)據(jù)流。這些類的行為如 Java 標準版本里的 java.util.zip 包里對應的類一樣。缺省的,壓縮是允許的,BlackBerry 設備可以寫有效的 GZip 和 Zlib 文件為這樣壓縮文件的內(nèi)容。解壓縮同樣也是支持的。#p#
集合
BlackBerry IDE 提供了一組接口和實用類來管理 BlackBerry 設備上的集合。
net.rim.device.api.collection 包包含了許多接口,這些接口為某些特定類型數(shù)據(jù)類型多定義了種類型的集合,例如列表,數(shù)組以及映射。這些接口定義了與 Java 標準版本集合框架的 list,set 和 map 接口類似的功能。
在你自己的類中實現(xiàn)這些接口,或者使用在 net.rim.device.api.collection.util 包里提供的使用類。
向量
標準的 java.util.Vector 實現(xiàn)了一個大小可以改變的對象數(shù)組。BlackBerry JDE 也提供了合適的類,例如 rim.device.api.util.IntVector 和 rim.device.api.util.ByteVector 來對主要類型進行工作。這些類看起來和普通的 Vector 一樣,除了它們優(yōu)化了在任何位置上插入的項。相反,如果你使用標準的大 Vector 作隨機的改變,大量的數(shù)據(jù)會在閃存和 RAM 移動。
列表
BlackBerry JDE 在 net.rim.device.api.collection.util包里提供了一些類來管理元素的列表
哈希表
除了 CLDC 提供的標準 java.util.Hashtable 之外,BlackBerry JDE 包含了特定的net.rim.device.api.collection.util.LongHashtableCollection 類,這個類提供了使用長整形作為關鍵字的哈希表集合。一個 LongHashtableCollection 對象,寫操作作為一個映射(使用一個關鍵字-元素對),讀操作作為一個映射或者作為一個集合(在集合里作為一個數(shù)組來得到數(shù)據(jù))。#p#
事件監(jiān)聽者
事件監(jiān)聽者接口根據(jù)事件類型劃分。每個應用程序注冊來接收特定類型的事件。應用程序事件隊列然后調(diào)度事件到一個合適的監(jiān)聽者。
應用程序可以實現(xiàn)合適的監(jiān)聽者接口或者在各種 Screen 對象里重寫監(jiān)聽者方法。大多數(shù)應用程序?qū)崿F(xiàn)了 KeyListener 和 TrackwheelListener 接 口 ,而且注冊了監(jiān)聽者來接收鍵盤和滑輪的事件。鍵盤和滑輪是用戶和應用程序交互的主要方式。
下列的事件監(jiān)聽者放在 net.rim.device.api.system 包中
#p#
系統(tǒng)功能
net.rim.device.api.system 包的類提供了訪問 Java VM 和 BlackBerry 設備上系統(tǒng)資源的能力。
號信息
RadioInfo 提供了訪問信號狀態(tài)信息的能力。
得到設備信息
DeviceInfo 類可以訪問下列 BlackBerry 設備的信息:
◆電池電源和狀態(tài)
◆Blackerry 設備號
◆空閑時間
平臺版本
系統(tǒng)事件通知用戶
當一個事件,例如一條新消息到來的時候,Alert 類允許應用程序通知用戶。
監(jiān)視內(nèi)存使用情況
使用一個 Memory 類提供的靜態(tài)方法來得到 VM 內(nèi)存使用統(tǒng)計信息。
Memory 類很多實用方法返回一個 MemoryStats 對象。使用 MemoryStats 類提供的實用方法得到 BlackBerry 設備上內(nèi)存和可用存儲空間的詳細信息。
日志事件
EventLogger 允許應用程序在持久存儲里存儲事件日志。BlackBerry 設備維護事件隊列,以至當日志滿時,會刪除最早的事件,并增加新的事件。用戶可以按住 Alt+lglg鍵來查看BlackBerry設備的系統(tǒng)事件日志。
使用工具
BlackBerry JDE 在 net.rim.device.api.util 包里提供了一組實用工具,這些類里的許多類提供了和 Java 標準版本里相似的功能。
◆Comparator 接口定義了對象集合上的順序的方法。
◆Arrays 提供方法來操作數(shù)組,例如排序,查找,以及作為列表來查看數(shù)組。
◆BitSet 類維護 bit 的集合。
net.rim.device.api.util 包包含了多個類來管理特定類型的數(shù)據(jù)集合,包括向量,哈希表,映射以及棧。#p#
應用程序控制
應用程序控制允許系統(tǒng)管理員操作以下動作:
◆控制內(nèi)部連接(公司防火墻背后的連接)
◆控制外部連接
◆控制本地連接(序列和 USB 連接)
◆控制訪問鍵存儲(key store)
◆控制訪問特殊的 API.
◆阻止第三方應用程序存在 BlackBerry 設備上。
為了得到更多信息,參看 BlackBerry Enterprise Server Handheld Management Guide 的應用程序管理。
受限制訪問的 API,類,和方法
使用了下列受限的 API,類,以及方法的應用程序可以加載到 BlackBerry 設備,但是如果他們訪問了一個沒有在應用程序控制下得到允許的 API 時,在運行時會拋出一個ControlledAccessException 或者 NoClassDefFoundError 的異常。
【編輯推薦】
- 簡介BlackBerry API
- Java語言編寫B(tài)lackBerry應用程序
- BlackBerry應用開發(fā)者指南基礎附錄 .alx文件
- BlackBerry應用開發(fā)者指南 使用受控API
- BlackBerry應用開發(fā)者指南 Mail API
- BlackBerry應用開發(fā)者指南 PIM API
- BlackBerry應用開發(fā)者指南 選項API