最近公司框架剛移植完成,由於框架程式要呼叫子程式,每個子程式都是乙個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...