電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創(chuàng)作
電子發(fā)燒友網>電子資料下載>嵌入式開發(fā)>JNI技術在嵌入式軟件開發(fā)中的應用解析

JNI技術在嵌入式軟件開發(fā)中的應用解析

2017-11-01 | rar | 0.4 MB | 次下載 | 1積分

資料介紹

分享到:嵌入式系統(tǒng)是以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。嵌入式軟件的基本體系結構包括嵌入式實時操作系統(tǒng)RTOS(RealTime operating Systerrl)、嵌入式設備驅動程序、嵌入式應用程序編程接口(中間件)和嵌入式應用程序。
  現(xiàn)階段,計算機應用的普及、互聯(lián)網技術的實用以及納米微電子技術的突破,正有力推動著21世紀的工業(yè)生產、商業(yè)活動、科學實驗和家庭生活等領域自動化和信息化進程。全過程自動化產品制造、大范圍電子商務活動、高度協(xié)同科學實驗以及現(xiàn)代化家居生活,為嵌入式產品造就了嶄新而巨大的商機。除了溝通信息高速公路的交換機、路由器和調制解調器,構建計算機集成制造系統(tǒng)(CIMS)所需的數(shù)據(jù)傳輸系統(tǒng)DCS(Data Communication System)和機器人以及規(guī)模較大的家用汽車電子系統(tǒng),最有產量效益和時代特征的嵌入式產品應數(shù)因特網上的信息家電(information appliances),如網絡可視電話、網絡游戲機、電子商務、商務通(PDA)、移動電話以及多媒體產品(如電視機頂盒、DVD播放機、電子閱讀機)。
  眾所周知,“一次編程,到處使用”的Java軟件概念原本就是針對網上嵌入式小設備提出的,幾經周折,目前SUN公司已推出了J2ME(Java 2 P1atform Micro Edition)針對信息家電的Java版本,其技術日趨成熟,開始投入使用。SUN公司Java虛擬機(JVM)技術的有序開放,使得Java軟件真正實現(xiàn)跨平臺運行,即Java應用小程序能夠在帶有JVM的任何硬軟件系統(tǒng)上執(zhí)行。加上Java語言本身所具有的安全性、可靠性和可移植性等特點,對實現(xiàn)瘦身上網的信息家電等網絡設備十分有利,同時對嵌入式設備特別是上網設備軟件編程技術產生了很大的影響。
  1 Java的性能問題及幾種解決方案
  Java程序也有其本身的缺陷,那就是其效率問題。由于Java是一種介于解釋型和編譯型之間的語言,其對內存的管理是通過JVM虛擬機來實現(xiàn)的,同樣的程序,如果用編譯型語言C來實現(xiàn),其運行速度一般要比Java快得多。因此,提高Java的性能就顯得十分重要。
  迄今為止,人們?yōu)樘岣逬ava的運行速度而做出的許多努力,主要集中在程序設計的方法和模式選擇方面。但是由于算法和設計模式的優(yōu)化是通用的,對Java有效的優(yōu)化算法和設計模式,對其他編譯語言也基本適用,因此不能從根本上改變Java程序與編譯型語言在執(zhí)行效率方面的差異。
  另外,JIT(Just In Time,及時編譯)技術也是一個比較好的思想。它的基本原理是,首先,通過Java編譯器把Java源代碼編譯成與平臺無關的二進制字節(jié)碼。然后,在Java程序真正執(zhí)行之前,系統(tǒng)通過JIT編譯器把Java的字節(jié)碼編譯為本地化機器碼。最后,系統(tǒng)執(zhí)行本地化機器碼,不用對字節(jié)碼進行解釋。這樣做的優(yōu)點是,大大提高了Java程序的性能,縮短了加載程序的時間;同時,由于編譯的結果并不在程序運行期間保存,因此也節(jié)約了存儲空間。缺點是,由于JIT編譯器對所有的代碼都想優(yōu)化,因此同樣也占用了很多時間。
  動態(tài)優(yōu)化技術即提前編譯為機器碼的技術(dynamicopttmization,ahead of time technology)是提高Java性能的另一個嘗試。動態(tài)優(yōu)化技術充分利用了Java源碼編譯、字節(jié)碼編譯、動態(tài)編譯和靜態(tài)編譯的技術。其輸入是Java的源碼或字節(jié)碼。而輸出是經過高度優(yōu)化的可執(zhí)行代碼和動態(tài)庫(WindoW中是.dil文件,UNIX中是共享庫.a.so文件)。其優(yōu)點是能大大提高程序的性能,缺點是破壞了Java的可移植性,也對Java的安全帶來了一定的隱患。
  2 JNI技術
  實際上,有一種通常被忽視的技術可以在很大程度上解決這個難題,那就是JNI(Java Native Interface,Java本地化方法)。圖1是JNI技術實現(xiàn)的一般步驟。
  JNI技術在嵌入式軟件開發(fā)中的應用解析
  (1)編寫Java類代碼
  其中,需要JNI實現(xiàn)的方法應當用native關鍵字聲明。在該類中,用System.1oadLibrary()方法加載需要的動態(tài)鏈接庫。關鍵代碼如下:
 ?。疌ompute.java
  public class Compute{
  public native double comp (double params);
  static{
 ?。{用動態(tài)鏈接庫
  System.loadLibrary(“mathlib”);
  }
 ?。?)編譯成字節(jié)代碼
  在這個過程中,由于采用了native關鍵字聲明,Java編譯器會忽視沒有代碼體的JNI方法部分。
  (3)生成相關JNI方法的頭文件
  這個過程的實現(xiàn)一般是通過利用jlavah-jni * class生成的,也可以手工生成該文件;但是由于Java虛擬機是根據(jù)一定的命名規(guī)范完成對JNI方法的調用,所以手工編寫頭文件需要特別小心。
  上述文件產生的頭文件部分代碼如下:
 ?。疌ompute.h
  ;
  extern“C”{
  JNIEXPORT jdoubleJNICALL Java_Compute_comp(JNI-Env *, jobject, jdoubleArray);
  ;
  JNI函數(shù)名稱分為三部分:首先是Java關鍵字,供Java虛擬機識別;然后是調用者類名稱(全限定的類名,其中用下劃線代替名稱分隔符);最后是對應的方法名稱,各段名稱之間用下劃線分割。
  JNI函數(shù)的參數(shù)也由三部分組成:首先是JNIEnv *,是一個指向JNI運行環(huán)境的指針;第二個參數(shù)隨本地方法是靜態(tài)還是非靜態(tài)而有所不同一一非靜態(tài)本地方法的第二個參數(shù)是對對象的引用,而靜態(tài)本地方法的第二個參數(shù)是對其Java類的引用;其余的參數(shù)對應通常Java方法的參數(shù),參數(shù)類型需要根據(jù)一定規(guī)則進行映射。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統(tǒng)的設計與實現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發(fā)板設計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費