Android NDK載入SD卡中的so

2021-06-28 14:45:30 字數 704 閱讀 9390

最近公司框架剛移植完成,由於框架程式要呼叫子程式,每個子程式都是乙個so檔案,有好幾百個,把所有的so和apk打包不現實,及時可以公升級維護也很麻煩。所以需要放sd卡中。考慮兩種方式

這種方式裝置需要root,效率比較低,如果應用被解除安裝了所有的so都沒了。

直接放到sd卡中 通過dlopen 開啟sd卡中的so 然後dlsym 查詢函式位址

#include "dlfcn.h"//dlopen 標頭檔案

void (*pf_threadcannback)();//宣告函式指標型別

void (*pf_program)();

void *handle;

bool getmethod() else

pf_program = dlsym(handle, "myfunc"); //指向so中你想要呼叫的函式名稱

pf_threadcannback = dlsym(handle, "threadcallback");

if (dlerror())

return true;

// 釋放資源 建議程式退出時呼叫

// dlclose(handle);

}

找到了函式位址接下來直接執行  

比如想呼叫so中的 myfunc()函式 執行 pf_program()就ok了

demo位址

ARM Linux判斷SD卡是否載入成功

1.寫在前面 arm linux在訪問sd卡資料時,嚴格的步驟,第一步應該是檢查sd卡是否被系統成功載入。當然,缺少這一步也不影響,從後面應用層訪問操作的返回值也可知道操作狀態,但如果在第一部就有檢查時,出現問題可以立刻發現。2.判斷sd卡載入狀態 1 通過 sdcard 資料夾 linux下如果載...

製作載入虛擬sd卡的驗證

環境 16.04.1 ubuntu 步驟 1.製作本地檔案,檔案大小10m。dd if dev zero of tmp disk image count 20480 20480 0 records in 20480 0 records out 2.基於製作好檔案疊加ext2檔案系統,形成虛擬sd卡映...

mdev自動載入u盤和sd卡

1 用busybox製作根檔案系統的時候,要選擇支援mdev機制 linux system utilities mdev support etc mdev.conf support command execution at device addition removal 2 核心配置時要支援hotp...