日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android jni调用so库

發布時間:2024/4/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android jni调用so库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天,講講android studio 使用jni調用其他so庫的使用。


首先說一下在網上查找資料時,對于調用第三方so庫,有人說有兩種方法:

1.??? 對于so庫的API符合JNI格式(即使用javah指令生成的頭文件中那種格式),可以在Java代碼中聲明它對應的native方法,直接調? 用。

??? 比如,jni方法名為:?jstringJNICALL Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv *,jobject);??? (即前綴 Java+包名+類名+方法名)

??? 那么這個方法名就是在java中聲明的native方法名:publicnative String? stringFromJNI();


2.??? 對于so庫的API不符合JNI格式,需要自己編寫c/c++源文件,在該源文件實現自己的JNI格式native函數,在JNI函數中調用第三方so庫的函數,再在java中調用自己實現的JNI格式的native方法。這種方法更加靈活。



一.首先需要配置NDK環境。

這個可以直接參考這篇博客http://blog.csdn.net/xiaoyu_93/article/details/52870395;


二.編寫簡單的jni程序,然后編寫

Android.mk文件,Application.mk文件。


編寫jni程序很簡單,在網上自己找資料就可以。主要是在Android.mk里調用so庫

Android.mk的代碼:

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS) LOCAL_MODULE := HW_H265dec_Andr //HW_H265dec_Andr是庫的名稱 LOCAL_SRC_FILES := libHW_H265dec_Andr.so LOCAL_EXPORT_C_INCLUDES := src/main/jni include $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS) LOCAL_SHARED_LIBRARIES := HW_H265dec_Andr LOCAL_MODULE := HWH265_API LOCAL_SRC_FILES =: HWH265_APIs.cpp //HWH265_APIs.cpp是C++文件的名稱 include $(BUILD_SHARED_LIBRARY)TARGET_CPU_API := armeabi //表示編譯平臺只是移動平臺 APP_ABI := armeabi


這個就是告訴HWH265_APIs.cpp引用了libHW_H265dec_Andr.so庫。


接著在HWH265_APIs.cpp就可以調用庫的代碼。


Application.mk的代碼很簡單:

APP_STL:=gnustl_static APP_CPPFLAGS:=-frtti -fexceptions APP_ABI := armeabi #表示 編譯目標 ABI(應用二進制接口)


這樣就完成了jni導入so庫。


android jni調用so庫就講完了、


就這么簡單。




總結

以上是生活随笔為你收集整理的android jni调用so库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。