Android Ndk

1、概述html

在Android中調用動態庫文件(*.so)都是經過jni的方式,並且每每在apk或jar包中調用so文件時,都要將對應so文件打包進apk或jar包,.h是頭文件,裏面通常都是一些函數定義類型定義,不會有運行的代碼,cpp是源文件,是用來運行的,在cpp中加上#inlcude<>導入.h文件。    
.h文件就像是一個接口,具體的實現能夠在.cpp中也能夠在.h中。android

工程目錄下圖:c++

以上方式的存在的問題:git

  一、缺乏靈活性比較相似靜態加載了(不是靜態加載),能加載的so文件綁定死了;github

  二、但so文件不少或很大時,會致使對應的apk和jar包很大;函數

  三、不能動態的對so文件更新;gradle

解決辦法:http://www.cnblogs.com/sevenyuan/p/4202834.html ui

2、JNI_Android項目中調用.so動態庫實現詳解.net

http://www.cnblogs.com/sevenyuan/p/4202759.htmlhtm

3、jni教程

http://blog.csdn.net/jiuyueguang/article/details/9447245

4、demo

https://github.com/dennishucd/FFmpeg4Android/tree/master/FFmpeg4Android (經典!)

5、 一個注意:android jni 引用第三方 so

http://blog.csdn.net/hanwest/article/details/30044855 

6、androidStudio jni

http://www.jianshu.com/p/b667baf10306 好!

當遇到your project contains c++ files but it is not using a supported native build system異常時,

Add android.useDeprecatedNdk=true in your gradle.properties

相關文章
相關標籤/搜索