Android Studio中的CmakeList NDK配置

來源:互聯網
上載者:User

標籤:log   介面   span   play   檔案夾   方式   cto   aries   code   

Android Studio2.2之後直接可以在建立工程師添加NDK支援了,添加之後,main檔案夾下會多出一個native-lib.cpp這個檔案,如果只為了一個簡單的NDK介面,貌似這就結束了。直接在native-lib.cpp下編程即可。

  但是,如果使用第三方庫,就得重新設定了。到目前為止,網上大半文章都是.mk的配置方法,按照他們的步驟,在AS上一步一步做下去好像很難成功。

  Android Studio2.2使用Cmake作為跨平台編譯工具,建立完一個工程後,JNI的配置都由Cmake來管理,在priject檔案夾下的CmakeList檔案中。

CMake有一套自己的編寫規則,按照引入方式的不同,先寫兩個demo

1,native-lib檔案調用第三方庫

  第三方庫是被編譯成so庫直接調用的,配置so庫的時候,對應的標頭檔也要添加上

  

     #譬如載入一個FFMPEG模組

1 include_directories(${pathToFFMPEG}/include) #添加ffmpeg對應的標頭檔目錄,${pathToFFMPEG}為前面配置過的路徑,可以替換為include_directories(E:/ffmpeg/include)這種路徑格式
2 add_library( ffmpeg SHARED IMPORTED) #添加庫檔案,實際上就是引入so檔案,IMPORT代表從第三方引入的意思
3 set_target_properties( ffmpeg PROPERTIES IMPORTED_LOCATION ${pathToProject}/app/src/main/jniLibs/${ANDROID_ABI}/libffmpeg.so#這句話是ffmpeg對應的so檔案,so檔案是放到JNILibs這個檔案夾中
4 target_link_libraries( $\{log-lib} native-lib ffmpeg) #為native-lib載入ffmpeg庫.

  這樣配置好就可以在native-lib裡調用ffmpeg模組了

2,自己編寫的cpp檔案

#載入coreAlg核心代碼add_library(coreAlg SHARED src/main/cpp/coreAlg.cpp )#添加庫檔案,這種實際上是有AS給編譯成so檔案了target_link_libraries(native-lib ${log-lib} coreAlg)#native-lib裡調用coreAlg

 

Android Studio中的CmakeList NDK配置

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.