<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 淺談JNI技術在嵌入式軟件開發中的應用

    時間:2024-09-13 10:44:34 計算機網絡畢業論文 我要投稿
    • 相關推薦

    淺談JNI技術在嵌入式軟件開發中的應用

    淺談JNI技術在嵌入式軟件開發中的應用

    引 言
    嵌入式系統是以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。嵌入式軟件的基本體系結構包括嵌入式實時操作系統RTOS(RealTime operating Systerrl)、嵌入式設備驅動程序、嵌入式應用程序編程接口(中間件)和嵌入式應用程序。
    現階段,計算機應用的普及、互聯網技術的實用以及納米微電子技術的突破,正有力推動著21世紀的工業生產、商業活動、科學實驗和家庭生活等領域自動化和信息化進程。全過程自動化產品制造、大范圍電子商務活動、高度協同科學實驗以及現代化家居生活,為嵌入式產品造就了嶄新而巨大的商機。除了溝通信息高速公路的交換機、路由器和調制解調器,構建計算機集成制造系統(CIMS)所需的數據傳輸系統DCS(Data Communication System)和機器人以及規模較大的家用汽車電子系統,最有產量效益和時代特征的嵌入式產品應數因特網上的信息家電(information appliances),如網絡可視電話、網絡游戲機、電子商務、商務通(PDA)、移動電話以及多媒體產品(如電視機頂盒、DVD播放機、電子閱讀機)。
    眾所周知,“一次編程,到處使用”的Java軟件概念原本就是針對網上嵌入式小設備提出的,幾經周折,目前SUN公司已推出了J2ME(Java 2 P1atform Micro Edition)針對信息家電的Java版本,其技術日趨成熟,開始投入使用。SUN公司Java虛擬機(JVM)技術的有序開放,使得Java軟件真正實現跨平臺運行,即Java應用小程序能夠在帶有JVM的任何硬軟件系統上執行。加上Java語言本身所具有的安全性、可靠性和可移植性等特點,對實現瘦身上網的信息家電等網絡設備十分有利,同時對嵌入式設備特別是上網設備軟件編程技術產生了很大的影響。


    1 Java的性能問題及幾種解決方案
    Java程序也有其本身的缺陷,那就是其效率問題。由于Java是一種介于解釋型和編譯型之間的語言,其對內存的管理是通過JVM虛擬機來實現的,同樣的程序,如果用編譯型語言C來實現,其運行速度一般要比Java快得多。因此,提高Java的性能就顯得十分重要。
    迄今為止,人們為提高Java的運行速度而做出的許多努力,主要集中在程序設計的方法和模式選擇方面。但是由于算法和設計模式的優化是通用的,對Java 有效的優化算法和設計模式,對其他編譯語言也基本適用,因此不能從根本上改變Java程序與編譯型語言在執行效率方面的差異。
    另外,JIT(Just In Time,及時編譯)技術也是一個比較好的思想。它的基本原理是,首先,通過Java編譯器把Java源代碼編譯成與平臺無關的二進制字節碼。然后,在 Java程序真正執行之前,系統通過JIT編譯器把Java的字節碼編譯為本地化機器碼。最后,系統執行本地化機器碼,不用對字節碼進行解釋。這樣做的優點是,大大提高了Java程序的性能,縮短了加載程序的時間;同時,由于編譯的結果并不在程序運行期間保存,因此也節約了存儲空間。缺點是,由于JIT編譯器對所有的代碼都想優化,因此同樣也占用了很多時間。
    動態優化技術即提前編譯為機器碼的技術(dynamicopttmization,ahead of time technology)是提高Java性能的另一個嘗試。動態優化技術充分利用了Java源碼編譯、字節碼編譯、動態編譯和靜態編譯的技術。其輸入是 Java的源碼或字節碼。而輸出是經過高度優化的可執行代碼和動態庫(WindoW中是.dil文件,UNIX中是共享庫.a.so文件)。其優點是能大大提高程序的性能,缺點是破壞了Java的可移植性,也對Java的安全帶來了一定的隱患。


    2 JNI技術
    實際上,有一種通常被忽視的技術可以在很大程度上解決這個難題,那就是JNI(Java Native Interface,Java本地化方法)。圖l是JNI技術實現的一般步驟。

    (1)編寫Java類代碼
    其中,需要JNI實現的方法應當用native關鍵字聲明。在該類中,用System.1oadLibrary()方法加載需要的動態鏈接庫。關鍵代碼如下:
    //Compute.java
    public class Compute{
    public native double comp (double params);
    static{
    //調用動態鏈接庫
    System.loadLibrary(“mathlib”);

    }


    (2)編譯成字節代碼
    在這個過程中,由于采用了native關鍵字聲明,Java編譯器會忽視沒有代碼體的JNI方法部分。
    (3)生成相關JNI方法的頭文件
    這個過程的實現一般是通過利用jlavah-jni * class生成的,也可以手工生成該文件;但是由于Java虛擬機是根據一定的命名規范完成對JNI方法的調用,所以手工編寫頭文件需要特別小心。

    下一頁

    【淺談JNI技術在嵌入式軟件開發中的應用】相關文章:

    CODARTS建模方法在嵌入式軟件開發中的應用03-18

    淺談RTK技術在公路測量中應用問題03-19

    淺談CAD技術在工程設計中的應用03-18

    淺談安全技術在電子商務中的應用03-27

    基于HMM的語音識別技術在嵌入式系統中的應用03-18

    淺談嵌入式Modem的通信技術03-18

    淺談多媒體技術在創新能力培養中的應用12-01

    淺談多媒體技術在數學教學中的應用03-18

    淺談信息技術在英語教學中的應用05-09

    主站蜘蛛池模板: 久久青青草原精品国产不卡| 国产精品夜色视频一级区| 精品精品国产高清a毛片牛牛| 国产精品电影在线| 精品无码国产污污污免费网站| 国产精品成人99久久久久91gav| 亚洲精品自在在线观看| 国产精品成人h片在线| 久久亚洲私人国产精品| 黑巨人与欧美精品一区| 999在线视频精品免费播放观看| 久久精品亚洲乱码伦伦中文| 久久精品国产久精国产思思| 久久国产成人亚洲精品影院| 九九精品成人免费国产片| 欧美亚洲色综久久精品国产| 久久久久久久亚洲精品| 91精品国产高清久久久久久91| 久久夜色精品国产网站| 久久久久人妻精品一区三寸蜜桃| 华人亚洲欧美精品国产| 日韩精品无码一区二区中文字幕| 久久99精品九九九久久婷婷| 久久九九亚洲精品| 精品亚洲成AV人在线观看| 欧美成人精品一区二区综合| 911亚洲精品不卡| 国产一区二区三区久久精品| 久久久久久亚洲精品成人| 亚洲国产成人精品女人久久久| 精品久久久久久无码人妻蜜桃| 91精品视频在线| 欧美精品在线一区| 99久久精品国产高清一区二区 | 国产福利精品视频自拍| 国产第一福利精品导航| 精品人妻无码一区二区色欲产成人 | 伊人久久大香线蕉精品不卡| 国产高清日韩精品欧美激情| 午夜精品射精入后重之免费观看 | 久久精品国产精品亚洲下载|