NDK開發->⑴生成so文件及其調用

1. 前言:

看C走了不少彎路, 單純的看看概念寫寫基礎代碼, 結果沒過多久就忘了, 索性重新快速過了一遍C, 先把基礎概念搞清楚, 知道是什么意思, 然后就打算正式開始入手NDK開發, 在學習NDK開發的過程中順便再加深對C的學習, 學習NDK開發并沒有找什么書籍, 就把B站的開源項目ijkplayer當作輔助資料.

2.先寫一個示例代碼 :

先用as完成一個demo, 后續系列文章圍繞這個demo展開.

  1. 創建類JniUtils, 里面先創建一個本地方法.
public class JniUtils {    
       public native String getStringFromC();
}
  1. rebulild工程, 得到.class文件
  2. 在Terminal中執行javah命令:


    javah命令.png
  3. 然后在debug路徑下生成了.h文件


    頭文件路徑.png
  4. 然后main路徑下新建jni目錄并將h文件剪切過來:


    新建jni目錄.png
  5. 在jni路徑下將.h文件復制生成.c文件, 并對方法進行修改, 先完成一個生成so文件并成功調用的小demo, 至于語法, 后邊詳細分析:


    編寫C文件.png
  6. 在build.gradle文件中編寫so文件名與制定架構下的so文件:
    https://zhuanlan.zhihu.com/p/21359984 這篇文章對so的分析還不錯;
    不同架構下的so文件.png
  7. build gradle以后會在build文件夾下生成so文件, 然后復制到main目錄下:


    生成的so文件.png
  8. 應用層這樣寫, 然后大功告成:


    java層調用c代碼.png
  9. 實現了java調用c代碼, 下一篇文章實現c調用java代碼;
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容