日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > Android NDk 開發(fā)簡(jiǎn)易教程

Android NDk 開發(fā)簡(jiǎn)易教程

來源:程序員人生   發(fā)布時(shí)間:2015-09-01 08:37:45 閱讀次數(shù):10651次

要解決的問題:

Android代碼調(diào)用 優(yōu)秀的C++代碼,高效的實(shí)現(xiàn)需要的功能。


整體的思路:


1. 完成 自己的Android代碼;

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

3. 將.so 庫(kù)放在Android 的libs文件夾當(dāng)中;

4. Android代碼當(dāng)中定義待調(diào)用接口函數(shù),并導(dǎo)入庫(kù)。


具體的操作:

1. 完成 自己的Android代碼;

   這1部份就是Android開發(fā)的事情了,不是我的重點(diǎn)和善于,相信是你的善于;

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

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

  2.1  c++代碼修改

    這1部份的工作,3個(gè)重要的點(diǎn):

  1,頭文件加入: #include

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

  3,輸出的接口函數(shù)命名1定要規(guī)范;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

這里只是頭文件,具體的實(shí)現(xiàn)你可以在CPP文件里面實(shí)現(xiàn);

  2.2 Android.mk 文件的修改

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

 例子:

 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個(gè)文件放在jni文件夾里面,然后準(zhǔn)備開始編譯.so文件。

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

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

3. 將.so 庫(kù)放在Android 的libs文件夾當(dāng)中;

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

4. Android代碼當(dāng)中定義待調(diào)用接口函數(shù),并導(dǎo)入庫(kù)。

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

  就能夠在Android的代碼當(dāng)中代用這個(gè)函數(shù)了。

例子:

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

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

轉(zhuǎn)載標(biāo)明出處:http://blog.csdn.net/ikerpeng/article/details/45393223


以上完成

iker Cross

2015年 4月 30日


生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 久久久久一区 | 美女又黄又免费 | 婷婷涩五月 | 欧美理论在线观看 | 久久久一区二区三区 | 国产精品免费一区二区三区 | 久久久免费精品 | 日韩高清一区 | 欧美日韩视频一区二区三区 | 日韩国产专区 | 粉嫩av亚洲一区二区图片 | 男女激情啪啪网站 | 午夜久久网站 | 久久九九久精品国产 | 国产精品久久久久久久久久久新郎 | 91在线一区二区三区 | 一级性视频 | 毛片免费观看视频 | jizz中国女人高潮 | √8天堂资源地址中文在线 一区免费 | 91免费版在线 | 最近中文免费字幕 | 精品国产乱码久久久久久丨区2区 | 国语成人 | 久久91精品 | 欧美www视频 | 亚洲欧美一区二 | 日韩精品1区2区3区 亚洲精品四区 | 日本一区二区三区免费观看 | 国产亚洲二区 | 青草青草久热精品 | 五月婷婷综合网 | www.久久99 | 午夜二区 | 中文视频在线 | 黄免费 | 国产成人一区二区 | 99视频在线免费观看 | 国精产品一区二区三区 | 欧美三级韩国三级日本三斤 | 午夜精品一区二区三区视频免费看 |