JNI入門 NDK開發流程

JNI(Java Native Interface) 

使用場景

1:操作硬件(編寫驅動,用java代碼調用底層的c代碼)

車載電腦 obd模塊,on board debug

2:效率要求非常高

圖形的計算,極品飛車

3:複用

7zip 開源的壓縮算法;  webkit  瀏覽器解析框架;  opengl  圖形處理的框架;  opencore 多媒體播放框架;  ffmpeg  視頻播放的開源項目 c/c++;  opencv  計算機圖形識別的庫,人臉識別,圖形圖像的處理。 c/c++

4:java代碼反編譯容易,不安全;c代碼,反編譯後讀起來很困難,安全;手機網銀支付模塊


交叉編譯原由

1:操作系統(windows, linux,mac os)

2:處理器結構(x86  [amb/Intel],arm,mips[開源])

  執行
Windows .exe .dll .bat
Linux .elf .so .sh


NDK  Android native develop (官網上下載)

ndk-build.cmd 編譯c代碼



NDK流程

1.關聯ndk


2.導入c


D:\adt-bundle\android-ndk-r9b\platforms\android-19\arch-arm\usr\include



3.創建jni


4.更改成c(默認c++,兩者都可以)



5.java定義本地方法,C中實現

public native String helloFromC();


6.生成c頭文件

java、c簽名必須相同

方法一 javah工具

cd到 bin/classes 下  javah com.example.jnitest.MainActivity

JDK1.7或以上 error

錯誤: 無法訪問android.app.Activity
      找不到android.app.Activity的類文件

解決:cd到  src上執行指令

講.h文件拷貝到jni文件夾下



7.實現c方法(重點



8.調用


9.多處理器支持 ABI  Application binary interface


APP_ABI  := armeabi armeabi-v7a x86

或者

APP_ABI  := all


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章