天天看點

Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式,使用C啟動JAVA程式Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式

當你的android之旅一步步的深入的時候,你其實會發現,很多東西都必須去和framework或者底層打交道,還有就是混合程式設計之類的,以及新語言,新特性,各種牛人研究的黑科技,應接不暇,技術更新疊代太快了,我們要趕緊加快步伐了,今天就開始來入坑了——jni,這個坑是必須要進的,啥也不說了,老司機,帶我!
java native interface(java本地接口) 說白了,jni相當于一個協定,通過這個協定溝通java代碼和外部的本地代碼(c/c++),通過這個協定,這兩門語言就可以互相調用了
Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式,使用C啟動JAVA程式Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式
這個和我本身要學這個jni的目的是一樣的,我現在就在做車載方面的

1.物聯網,智能家居,車載電腦

2.效率上c/c++語言效率更高

3.代碼移植,複用已經存在的c代碼

4.java反編譯比c語言容易

1.java語言

2.c/c++語言

3.java jni流程

4.ndk(native development kits)

我們從c/c++語言開始學起,慢慢來完善jni
新知識,漲姿勢嘛,總是要學的,各位看官老爺傾聽我慢慢道來,要用jni調用c的話,其實還有一個痛點,就是你必須會這門語言才吃到怎麼去用他的方法,是以我們必須花上幾天的時間把c的基本概念和知識點給學會,其實程式設計思想有點類似,java和c有一些基本的東西還是類似的,主要是c的指針還是有點抽象,跟以前學面向對象一樣一樣的,哈哈,污污污污….工欲善其事必先利其器,我們先把學c所用到的開發環境給部署一下
這個工具也隻是讓我們更加的熟悉文法,随便搜尋一下就能下,屬于一個輕量級的開發工具,我們下載下傳下來安裝
Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式,使用C啟動JAVA程式Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式
安裝完成之後我們就可以運作了
Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式,使用C啟動JAVA程式Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式
當我們一切都準備好了的時候,我們就可以來編寫程式了,也就是注明的“hello world”,現在看到helloworld是不是有一種很懷念的感覺 我們點選左上角的檔案-建立-源代碼,寫上這麼一段代碼(先不要管什麼意思,照着敲就行)
然後我們把他儲存為c檔案
Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式,使用C啟動JAVA程式Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式
我們要運作就得編譯,用慣了eclipse,eclipse有自動編譯的選項,而dev-c++是沒有的,我們手動編譯一下
Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式,使用C啟動JAVA程式Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式
我們可以看到上面有條工具欄,第一個就是編譯了,第二個就是運作
Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式,使用C啟動JAVA程式Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式
出現done說明編譯完成,我們可以運作了,不過編譯會一閃而過,因為是指令窗,具體的停留的我忘記了,和提前java有點類似 這裡隻要注意一點的是main。在c中,main函數也是程式的入口嗎,c中的函數和java的方法是一個概念,隻是叫法不一樣
c是可以直接調用windows指令的,既然如此,我們可以仿照我們程式的快捷方式的例子去做一個軟啟動方式,說起來有點迷糊哈,我們舉個例子,我們來到eclipse的安裝目錄,你可以看到這樣的一個目錄
Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式,使用C啟動JAVA程式Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式
其中,我們的快捷方式隻有隻有314k,卻能啟動這個程式,這就是windows的特長了,而我們的c是可以直接使用windows的指令的,是以我們就可以間接的使用c去調用java了 回到正題,我們剛才舉的例子,其實從快捷方式的配置檔案eclipse.ini中就可以詳細的看到
Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式,使用C啟動JAVA程式Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式
我們把他打開
我們不難發現,當我們啟動的時候,他會執行plugins目錄下的org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar架包,你輕按兩下他你會驚奇的發現,你竟然啟動了eclipse,這就是windows啟動的原理了,好了,既然邏輯通了,那我們就來寫c代碼吧!不過事先我們得準備一個java檔案,我就把他放在c源碼目錄下好了
你可别忘了這個是要編譯的….
Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式,使用C啟動JAVA程式Android For JNI(一)——JNI的概念以及C語言開發工具dev-c++,編寫你的第一個C語言程式
好了,寫吧
這裡,隻要寫一句
因為是同一個目錄下,是以不需要寫路徑,我們運作就可以直接看到列印的helloworld了