1.NDK安裝,目前使用的是NDK16版本,裝22版本的時(shí)候出現(xiàn)沒(méi)有platform的情況,重新安裝16后無(wú)這個(gè)問(wèn)題,文件管理器中查看platform會(huì)出現(xiàn)很多android版本的文件夾;
2.安裝CMake tools;
3.使用AS創(chuàng)建C++項(xiàng)目,會(huì)自動(dòng)配置NDK環(huán)境和需要的文件,在這個(gè)基礎(chǔ)上進(jìn)行修改.這種創(chuàng)建的項(xiàng)目會(huì)包含cpp文件夾(CMakeLists.text, native-lib.app),CMakeLists.text里面寫(xiě)明了NDK的各種配置;
4.獲取java類(lèi)中方法簽名
? ? 項(xiàng)目build后,在build\intermediates\javac\debug目錄中找到對(duì)應(yīng)類(lèi)的class文件,按住shift后右擊鼠標(biāo),打開(kāi)powershell或者命令行,輸入 javap -s 類(lèi)名.class,回車(chē)執(zhí)行獲取類(lèi)中每個(gè)方法的簽名.
? ? AndroidStudio新版,可以自動(dòng)獲取方法簽名.
5.Activity從C中獲取數(shù)據(jù)一般為耗時(shí)操作,需要在Activity中開(kāi)啟子線程去獲取,同時(shí)C代碼中調(diào)用Activity方法更新UI的時(shí)候也要切換到主線程,執(zhí)行Ui更新的邏輯,否則會(huì)報(bào)錯(cuò).
6.C文件中打印android日志,在CMakeLists.text添加了log庫(kù)的前提下,添加"#include<android/log.h>"將log庫(kù)引入進(jìn)cpp文件,之后可通過(guò)__android_log_print(ANDROID_LOG_ERROR,LOG_TAG,"message");
進(jìn)行調(diào)用:ANDROID_LOG_ERROR, 代表android中的日志級(jí)別
? ? ? ? ? ? ? ? LOG_TAG, C文件中定義的日志標(biāo)簽 const char * LOG_TAG = "LOG_NATIVE";
? ? ? ? ? ? ? ? message, 需要輸出的日志內(nèi)容
參考博客:? ?https://blog.csdn.net/qq_21793463/article/details/81701763?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.control