


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
淺談JNI技術在嵌入式軟件開發中的應用
引言嵌入式系統是以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。嵌入式軟件的基本體系結構包括嵌入式實時操作系統RTOS(RealTimeoperatingSysterrl)、嵌入式設備驅動程序、嵌入式應用程序編程接口(中間件)和嵌入式應用程序?,F階段,計算機應用的普及、互聯網技術的實用以及納米微電子技術的突破,正有力推動著21世紀的工業生產、商業活動、科學實驗和家庭生活等領域自動化和信息化進程。全過程自動化產品制造、大范圍電子商務活動、高度協同科學實驗以及現代化家居生活,為嵌入式產品造就了嶄新而巨大的商機。除了溝通信息高速公路的交換機、路由器和調制解調器,構建計算機集成制造系統(CIMS)所需的數據傳輸系統DCS(DataCommunicationSystem)和機器人以及規模較大的家用汽車電子系統,最有產量效益和時代特征的嵌入式產品應數因特網上的信息家電(informationappliances),如網絡可視電話、網絡游戲機、電子商務、商務通(PDA)、移動電話以及多媒體產品(如電視機頂盒、DVD播放機、電子閱讀機)。眾所周知,“一次編程,到處使用”的Java軟件概念原本就是針對網上嵌入式小設備提出的,幾經周折,目前SUN公司已推出了J2ME(Java2P1atformMicroEdition)針對信息家電的Java版本,其技術日趨成熟,開始投入使用。SUN公司Java虛擬機(JVM)技術的有序開放,使得Java軟件真正實現跨平臺運行,即Java應用小程序能夠在帶有JVM的任何硬軟件系統上執行。加上Java語言本身所具有的安全性、可靠性和可移植性等特點,對實現瘦身上網的信息家電等網絡設備十分有利,同時對嵌入式設備特別是上網設備軟件編程技術產生了很大的影響。1Java的性能問題及幾種解決方案Java程序也有其本身的缺陷,那就是其效率問題。由于Java是一種介于解釋型和編譯型之間的語言,其對內存的管理是通過JVM虛擬機來實現的,同樣的程序,如果用編譯型語言C來實現,其運行速度一般要比Java快得多。因此,提高Java的性能就顯得十分重要。迄今為止,人們為提高Java的運行速度而做出的許多努力,主要集中在程序設計的方法和模式選擇方面。但是由于算法和設計模式的優化是通用的,對Java有效的優化算法和設計模式,對其他編譯語言也基本適用,因此不能從根本上改變Java程序與編譯型語言在執行效率方面的差異。另外,JIT(JustInTime,及時編譯)技術也是一個比較好的思想。它的基本原理是,首先,通過Java編譯器把Java源代碼編譯成與平臺無關的二進制字節碼。然后,在Java程序真正執行之前,系統通過JIT編譯器把Java的字節碼編譯為本地化機器碼。最后,系統執行本地化機器碼,不用對字節碼進行解釋。這樣做的優點是,大大提高了Java程序的性能,縮短了加載程序的時間;同時,由于編譯的結果并不在程序運行期間保存,因此也節約了存儲空間。缺點是,由于JIT編譯器對所有的代碼都想優化,因此同樣也占用了很多時間。動態優化技術即提前編譯為機器碼的技術(dynamicopttmization,aheadoftimetechnology)是提高Java性能的另一個嘗試。動態優化技術充分利用了Java源碼編譯、字節碼編譯、動態編譯和靜態編譯的技術。其輸入是Java的源碼或字節碼。而輸出是經過高度優化的可執行代碼和動態庫(WindoW中是.dil文件,UNIX中是共享庫.a.so文件)。其優點是能大大提高程序的性能,缺點是破壞了Java的可移植性,也對Java的安全帶來了一定的隱患。2JNI技術實際上,有一種通常被忽視的技術可以在很大程度上解決這個難題,那就是JNI(JavaNativeInterface,Java本地化方法)。圖l是JNI技術實現的一般步驟。(1)編寫Java類代碼其中,需要JNI實現的方法應當用native關鍵字聲明。在該類中,用System.1oadLibrary()方法加載需要的動態鏈接庫。關鍵代碼如下://Compute.javapublicclassCompute{publicnativedoublecomp(doubleparams);static{//調用動態鏈接庫System.loadLibrary(“mathlib”);}(2)編譯成字節代碼在這個過程中,由于采用了native關鍵字聲明,Java編譯器會忽視沒有代碼體的JNI方法部分。(3)生成相關JNI方法的頭文件這個過程的實現一般是通過利用jlavah-jni*class生成的,也可以手工生成該文件;但是由于Java虛擬機是根據一定的命名規范完成對JNI方法的調用,所以手工編寫頭文件需要特別小心。3基于JNI的嵌入式手機軟件開發實例下面通過一個實例來描述運用JNI技術在手機上操縱攝像頭,捕捉視頻并存儲圖片的過程。(1)活動/狀態圖圖2為捕捉視頻并存儲圖片的活動/狀態圖根據圖2的活動/狀態,具體的對應步驟如下:①發起該流程。②發起流程后,建立文件用于存儲圖片。③用指針獲得分配的緩沖器,用于存儲獲得的幀。④將指針壓棧(序列化緩沖器)。由于手機的內存較小,為了防止內存泄漏,Symbian操作系統有一個Cleanupstack的要求,即在使用指針時,用PushL把指針壓入棧中,使用完后再用Pop彈出棧.如果在中間調用導致崩潰的函數時果真出現了問題,那么Cleanupstack可以通過調用該指針的析構函數回收占用的空間。⑤操縱攝像頭,捕捉視頻,并將圖像流從攝像頭端傳到緩沖器。⑥將攝像頭內的圖像流存入緩沖器內,并將緩沖器內的流轉化為文件流,存為jpg格式的文件,將指向緩沖器的指針彈棧。⑦在過程⑥中,如果使用完了序列化的緩沖器,則要重新序列化緩沖器,以備后面使用。⑧當接收到停止視頻捕捉的信號后,關閉文件。⑨流程結束。(2)運用JNI技術的視頻捕捉子功能捕捉視頻的實現是由操縱攝像頭、視頻播放(解碼器準備)以及建立攝像頭和手機之間的連接會話三個活動組成的。其中操縱攝像頭是通過調用底層設備的驅動來實現的,需要利用JNI來實現,完成的方法包括準備、建立、刪除、銷毀攝像頭等。視頻播放的一系列過程也是通過c++代碼來實現的,除了準備、建立、刪除、銷毀解碼器外,還有開始、暫停、停止解碼等。建立攝像頭和手機之間的連接類似建立客戶端和服務器連接,視頻流從攝像頭傳到手機界面是通過多媒體會話來完成的。多媒體會話的建立、關閉、摧毀以及會話建立后的發送、取消、讀取數據等也是JNI的應用范疇。結語主張采用純Java的人們通常反對本地化代碼的使用,認為JNI技術會影響程序的可移植性和安全性。還有一些人認為,在Java程序執行的過程中調用c/c++程序只是對過去混合編程技術的簡單擴展,其實際目的是為了充分利用大量原有的c程序庫。其實,不必拘泥于嚴格的平臺獨立性限制,因為采用JNI技術只是針對一些嚴重影響Java性能的代碼段。該部分可能只占源程序的極少部分,所
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣東工貿職業技術學院高職單招(數學)歷年真題考點含答案解析
- 2025年03月上海同濟大學電氣工程系廣招海內外英才公開招聘筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年山西經貿職業學院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 2025年山東工業職業學院高職單招職業技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年宿遷澤達職業技術學院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 2025汽車行業營銷策略與展望
- 胃管插管管道護理
- 新發展英語(第二版)綜合教程2 課件 Unit 5 Encouragement
- 人教版數學第二單元百分數(二)提升檢測訓練(單元測試)六年級下冊
- 廣東省汕頭市潮陽區達標名校2025屆初三下學期精英聯賽英語試題含答案
- 2025年江蘇省安全員B證考試題庫附答案
- 科級試用期滿工作總結(4篇)
- 歷史-安徽省蚌埠市2025屆高三年級第二次教學質量檢查考試(蚌埠二模)試題和答案
- 2025年從大模型、智能體到復雜AI應用系統的構建報告-以產業大腦為例-浙江大學(肖?。?/a>
- 2025年浙江省金華市中考一模數學模擬試題(含答案)
- 外研版(2025新版)七年級下冊英語期中復習:Unit 1~3+期中共4套學情調研測試卷(含答案)
- C語言程序設計第5章--循環結構程序設計
- 人教版八年級上冊:《蘆花蕩》課文原文
- 超星爾雅學習通《婚戀職場人格(武漢理工大學)》章節測試附答案
- ISO9001質量管理體系培訓(共60頁).ppt
- (完整版)PHQ-9抑郁癥篩查量表
評論
0/150
提交評論