多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Android NDk 開發簡易教程

Android NDk 開發簡易教程

來源:程序員人生   發布時間:2015-09-01 08:37:45 閱讀次數:10660次

要解決的問題:

Android代碼調用 優秀的C++代碼,高效的實現需要的功能。


整體的思路:


1. 完成 自己的Android代碼;

2. 將c++代碼生成 .so;

3. 將.so 庫放在Android 的libs文件夾當中;

4. Android代碼當中定義待調用接口函數,并導入庫。


具體的操作:

1. 完成 自己的Android代碼;

   這1部份就是Android開發的事情了,不是我的重點和善于,相信是你的善于;

2. 將c++代碼生成 .so;

  我假定你是有你需要的功能的c++代碼的。(沒有你還移植個屁啊O(∩_∩)O哈哈~)

  2.1  c++代碼修改

    這1部份的工作,3個重要的點:

  1,頭文件加入: #include

  2,加入 extern“c”,處理C++代碼;

  3,輸出的接口函數命名1定要規范;Java_包_類_方法 (JNIEnv *, jclass,);

  例子:

#include

#ifdef __cplusplus
extern "C" {
#endif

JNIEXPORT jlong JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeCreateObject
  (JNIEnv *, jclass, jstring, jint);


#ifdef __cplusplus
}
#endif

這里只是頭文件,具體的實現你可以在CPP文件里面實現;

  2.2 Android.mk 文件的修改

  將剛才的源文件加進去,依賴的庫加進去。(1般來講還需要Application.mk的,但是幾近都是1樣的,復制過去就好)

 例子:

 Android.mk 文件很像Makefile文件

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)



#OPENCV_LIB_TYPE:=SHARED
include ../../../opencvsdk/native/jni/OpenCV.mk


LOCAL_SRC_FILES  := DetectionBasedTracker_jni.cpp
LOCAL_C_INCLUDES += $(LOCAL_PATH)
LOCAL_LDLIBS     += -llog -ldl


LOCAL_MODULE     := detection_based_tracker

include $(BUILD_SHARED_LIBRARY)


Application.mk 文件

APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := armeabi-v7a
APP_PLATFORM := android⑻


  2.3 ndk-build編譯

     將以上4個文件放在jni文件夾里面,然后準備開始編譯.so文件。

     只要你安裝的版本在r7 以上就能夠不需要其他的插件了。非常的方便,配置好環境變量,從CMD進入到jni 文件或是它的上1級文件夾,履行ndk-build命令,開始編譯。

     更加詳細的參考:http://blog.csdn.net/ikerpeng/article/details/42643223

3. 將.so 庫放在Android 的libs文件夾當中;

   將剛才編譯生成 的lib文件下下面的.so文件拷貝出來,連帶所在的文件夾(這個是必須的),放到你的Android工程里面的libs文件夾;

4. Android代碼當中定義待調用接口函數,并導入庫。

  定義好接口函數,這個函數名1定和C++中的最后那個名字1樣,然后 System.loadLibrary();導入;

  就能夠在Android的代碼當中代用這個函數了。

例子:

public class PedDetectionNative {
static {
System.loadLibrary("ped_detection");
}
public static native boolean ped(byte[] yuv);
}

接下來你就能夠在Android的代碼里面使用 ped()這個函數了。

轉載標明出處:http://blog.csdn.net/ikerpeng/article/details/45393223


以上完成

iker Cross

2015年 4月 30日


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 中文字幕7 | www.操操操 | 国产成人a一区二区 | 国产成人免费永久播放视频平台 | 欧美18videosex动漫3d| 欧美成人一区二区三区不卡视频 | 边摸边吃奶边做3p视频 | 图片综合区 | 日日夜夜天天久久 | 亚洲精品视频在线观看免费 | 日本三级日本三级日本三级极 | 国产aⅴ精品一区二区三区久久 | 欧美a∨| 国产精品欧美在线不卡 | 欧美日韩国产精品综合 | 亚洲欧美色综合一区二区在线 | 成人免费看黄页网址大全 | 午夜国产理论 | 久久亚洲欧美综合激情一区 | 中文一区在线观看 | 69热视频| 亚洲一区二区三区91 | 亚洲日韩精品欧美一区二区 | 成人影院wwwwwwwwwww | 欧美双渗透 | 亚洲视频播放 | 人善交xxx | 亚洲视色 | 亚洲熟乱| www激情| 美日韩精品| 性丰满妇女free性性性 | 欧美日本一 | 乱在线伦视频免费 | 日本xxwwwxxxx网站 | 最新在线观看精品国产福利片 | 国产日韩一区二区三区在线观看 | 精品999视频 | 曰本一区二区三区 | 最近视频中文在线播放 | 久久精品六 |