Android-JNI的簡單使用

來源:互聯網
上載者:User

標籤:java   native   jni   android   c語言   

什麼是JNI那?
JNI是Java Native Interface的縮寫,它提供了若干的API實現了Java和其他語言的通訊(主要是C&C++)。從Java1.1開始,JNI標準成為java平台的一部分,它允許Java代碼和其他語言寫的代碼進行互動。JNI一開始是為了本地已編譯語言,尤其是C和C++而設計的,但是它並不妨礙你使用其他程式設計語言,只要呼叫慣例受支援就可以了。使用java與本地已編譯的代碼互動,通常會喪失平台可移植性。但是,有些情況下這樣做是可以接受的,甚至是必須的。例如,使用一些舊的庫,與硬體、作業系統進行互動,或者為了提高程式的效能。JNI標準至少要保證本地代碼能工作在任何JAVA 虛擬機器環境下。
這是百度百科上面的原話,專家的介紹,大家都懂的。下面有一張關於JNI的知識總結圖,更利於大家對JNI的理解

使用JNI需要先配置NDK 就像配置SDK一樣,至於NDK是怎麼去配置的,因為時間有限,就請大家自行去百度,我這裡就不多說了。

理論上面的知識就到這裡,前人已經替我們總結的非常好了,如何在前人的理論基礎上面去實現它,寫出第一個自己的JNI項目才是本文想去說的。
OK Come On;

建立一個項目 HelloJni ,為layout建立一個點擊事件 onButtonClick

然後在Activity中建立本地方法

然後就該建立我們的C語言方法了。右擊我們的項目app->New->Folder->JNI Folder

這樣就產生了一個專門用來存放JNI檔案的檔案夾

在jni檔案夾中建立一個C語言檔案Hello.c

Hello.c內部代碼

然後在jni檔案夾中建立一個Android.mk檔案,用於進行NDK的編譯

LOCAL_MODULE為編譯之後產生的檔案名稱
LOCAL_SRC_FILES為被編譯的檔案名稱
這裡要注意,預設的情況下JNI是不支援 X86和Mips的CUP架構的,所以我們需要手動的去添加支援。
建立一個Application.mk的檔案,

表示支援所有的CPU架構,其實主要就是X86與Mips架構
然後就需要使用NDK去編譯項目
開啟控制台 cd到該項目的jni檔案夾中,使用ndk-build指令(注意我這裡是mac os,如果是windows 或者 linux 使用的指令為 ndk-build.cmd

這一步完成之後,會發現項目裡面多了一些東西

最後我們需要在Java代碼之中去引用這個libs

運行代碼點擊按鈕就能簡單的實現了一個 Hello JNI 的Toast

源碼地址:http://download.csdn.net/detail/u011068996/9061135

站在巨人的肩膀上,我們才能看得更遠

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Android-JNI的簡單使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.