diff --git a/imitate/src/main/java/com/engineer/imitate/util/PatchPlayground.kt b/imitate/src/main/java/com/engineer/imitate/util/PatchPlayground.kt index c51dc07d..675d0c2d 100644 --- a/imitate/src/main/java/com/engineer/imitate/util/PatchPlayground.kt +++ b/imitate/src/main/java/com/engineer/imitate/util/PatchPlayground.kt @@ -22,7 +22,7 @@ private const val PATCH = "patch" class PatchViewModel(val app: Application) : AndroidViewModel(app) { fun copyFile() { - val exceptionHandler = CoroutineExceptionHandler { coroutineContext, throwable -> + val exceptionHandler = CoroutineExceptionHandler { _, throwable -> Log.e(TAG, "exceptionHandler: " + throwable.stackTraceToString()) } viewModelScope.launch(exceptionHandler) { diff --git a/imitate/src/main/assets/patch/diff.patch b/subs/cpp_native/src/main/assets/patch/diff.patch similarity index 100% rename from imitate/src/main/assets/patch/diff.patch rename to subs/cpp_native/src/main/assets/patch/diff.patch diff --git a/imitate/src/main/assets/patch/lastest.txt b/subs/cpp_native/src/main/assets/patch/lastest.txt similarity index 100% rename from imitate/src/main/assets/patch/lastest.txt rename to subs/cpp_native/src/main/assets/patch/lastest.txt diff --git a/imitate/src/main/assets/patch/old.txt b/subs/cpp_native/src/main/assets/patch/old.txt similarity index 100% rename from imitate/src/main/assets/patch/old.txt rename to subs/cpp_native/src/main/assets/patch/old.txt diff --git a/imitate/src/main/assets/patch/readme.md b/subs/cpp_native/src/main/assets/patch/readme.md similarity index 100% rename from imitate/src/main/assets/patch/readme.md rename to subs/cpp_native/src/main/assets/patch/readme.md diff --git a/subs/cpp_native/src/main/cpp/CMakeLists.txt b/subs/cpp_native/src/main/cpp/CMakeLists.txt index db814a6c..ccb6a6e0 100644 --- a/subs/cpp_native/src/main/cpp/CMakeLists.txt +++ b/subs/cpp_native/src/main/cpp/CMakeLists.txt @@ -12,9 +12,10 @@ project("cpp_native") #定义一个全局变量包含了所有要编译的C文件 file(GLOB BZIP bzip/*.c) -message("11111") +message("----------start------") message("${BZIP}") -message("22222") +message("${CMAKE_CURRENT_SOURCE_DIR}") +message("----------end------") #导入头文件 include_directories(bzip) include_directories(logcat) @@ -30,10 +31,16 @@ add_library( # Sets the name of the library. SHARED #将bzip下的.c文件添加到library # ${BZIP} - bspatch.c +# bspatch.c # Provides a relative path to your source file(s). cpp_native.cpp) +# 将 bspatch 的源码编译为共享库 +add_library( + bspatch_tool + SHARED + bspatch.c) + # Searches for a specified prebuilt library and stores the path as a # variable. Because CMake includes system libraries in the search path by # default, you only need to specify the name of the public NDK library @@ -47,13 +54,20 @@ find_library( # Sets the name of the path variable. # you want CMake to locate. log) +## 定义 distributionDir 变量,声明所依赖的 so 库存放的位置,这个不是必须的,只是为了灵活方便 +set(distributionDir ${CMAKE_CURRENT_SOURCE_DIR}/third-lib) +## 所依赖的三方库定义名称,STATIC IMPORTED 表示是导入的 +add_library(lib_bspatch STATIC IMPORTED) +## 定义导入的 so 库的路径 +set_target_properties(lib_bspatch PROPERTIES IMPORTED_LOCATION ${distributionDir}/${ANDROID_ABI}/libbspatch_tool.so) + # Specifies libraries CMake should link to your target library. You # can link multiple libraries, such as libraries you define in this # build script, prebuilt third-party libraries, or system libraries. target_link_libraries( # Specifies the target library. cpp_native - + lib_bspatch # Links the target library to the log library # included in the NDK. ${log-lib}) diff --git a/subs/cpp_native/src/main/cpp/third-lib/arm64-v8a/libbspatch_tool.so b/subs/cpp_native/src/main/cpp/third-lib/arm64-v8a/libbspatch_tool.so new file mode 100644 index 00000000..972d9484 Binary files /dev/null and b/subs/cpp_native/src/main/cpp/third-lib/arm64-v8a/libbspatch_tool.so differ