Android Studio JNI源碼調試C++動態庫

1)首先我們寫個簡單C++動態庫代表我們需要斷點進去的動態庫

//Debug.h頭文件
int DebugTest();
//Debug.cpp源文件
#include "Debug.h"
int DebugTest(){
    int a =1;
    int b =2;
    return a+b;
}
// Android.mk文件, -g選項用於調試
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := libDebug
LOCAL_SRC_FILES := Debug.cpp
LOCAL_CFLAGS +=  -static -fPIC -g  
include $(BUILD_SHARED_LIBRARY)

ndk-build編譯輸出so

注:編譯時需要加NDK_DEBUG=1選項
ndk編譯可參考:https://blog.csdn.net/liny000/article/details/83020530

2)調試所需的項目設置(以Android Studio 新建native-lib的例子來講)
在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

build.gradle添加so路徑

sourceSets {
    main {
        jniLibs.srcDirs = ["libs"]
    }
}

注:
include_directories爲編譯Debug.so的源文件路徑
set_target_properties設置的是從項目app/libs路徑尋找編譯的so
在這裏插入圖片描述

在這裏插入圖片描述

3)此時項目設置完成,設置斷點開始進行調試;
在這裏插入圖片描述

在這裏插入圖片描述

4)啓動虛擬機,進入斷點
//root虛擬機 路徑爲sdk路徑
G:\Android\Sdk\platform-tools\adb.exe root

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章