AndroidNDKJNI開發之旅02so類庫簡單使用篇

NO IMAGE

作者簡介

微信公眾號(高質量文章推送):走向全棧工程師

作者:陳博易

聲明:本文是個人原創,未經允許請勿轉載

商業合作請在微信公眾號回覆:聯繫方式


AndroidNDKJNI開發之旅02so類庫簡單使用篇

AndroidNDKJNI開發之旅02so類庫簡單使用篇

前言


  1. 為什麼要學習JNI呢,我的回答是:因為我好學!哈哈哈
  2. 因為c/c++比Java效率高,所以應用運行起來速度比較快,特別是一些遊戲中的算法。
  3. 為了保密,都知道apk都可以被反編譯,就算有代碼混淆,也只是難看懂,並不是完全看不懂,但用jni編譯成.so就不同了,可以使破解的難度更加大。
  4. 一個平臺(C++代碼)遷移到Android平臺,底層邏輯是相同的,這樣就可以通過移植,利用JNI調用底層C++代碼,避免相同邏輯的代碼重複去寫,不過這個過程一定要注意底層對象的釋放問題。

環境以及工具


  1. Android項目:AndroidStudio3.0
  2. NDK
  3. CMake3.6.4
  4. LLDB3.0

整體步驟


  1. 創建so類庫項目介紹
  2. 使用so類庫項目介紹

核心步驟解讀


1. 創建so類庫項目介紹

創建一個新的包com.ndk.use
這裡大家肯定有問題要問,為什麼要用新的包呢?
因為聲明native本地方法和jni層的實現方法的全名(包名+類名)要一致,所以我就單獨創建了一個包,方便等下直接複製到新項目直接使用

AndroidNDKJNI開發之旅02so類庫簡單使用篇

AndroidNDKJNI開發之旅02so類庫簡單使用篇

測試當前類庫能不能正常使用

AndroidNDKJNI開發之旅02so類庫簡單使用篇

2. 使用so類庫項目介紹

創建一個新項目,為了使用自己剛寫好的類庫。
將類庫的項目中com.ndk.use和jniLibs中的代碼和類庫複製到如下圖的項目中。此時就可以直接使用了,並不需要創建jniLibs的目錄,那種方式也是可以的

AndroidNDKJNI開發之旅02so類庫簡單使用篇

調用JniUtils.stringFromJNI()

AndroidNDKJNI開發之旅02so類庫簡單使用篇

app/build.gradle配置文件

AndroidNDKJNI開發之旅02so類庫簡單使用篇

總結


  1. 請大家多關注關注我。
  2. 這樣的使用還不是很優雅的,下一篇將使用優雅的方式來使用so

Android NDK JNI 開發 環境搭建入門篇

個人相關教程

各種大佬推薦的編程視頻資源分享
Android 微信 支付寶支付,2行代碼實現支付
Android前端 Java後端 集成支付寶支付
postman使用 Android java後端 接口調試工具
Android抓包 Charles http接口調試
消息推送 Android java後端集成小米推送
如何導入簡單的java項目-IntelliJ IDEA

請關注我(高質量文章推送)

源碼地址———關注微信公眾號,回覆:ndk類庫使用01

Android NDK JNI 開發之旅 開源項目

AndroidNDKJNI開發之旅02so類庫簡單使用篇

相關文章

Kotlin重構初體驗之告別FindViewById

Kotlin重構如何兼容原先的ButterKnife、EventBus3.1

Kotlin環境搭建

Android9.0加密適配