在
iphone
上使用動態庫的多為
dylib
檔案,這些檔案使用標準的
dlopen
方式來使用是可以的。那相同的在使用
framework
檔案也可以當做動態庫的方式來動態載入,這樣就可以比較自由的使用
私有的framework了。
dlopen
是開啟庫檔案
dlsym
是獲取函式位址
dlclose
是關閉。
當然,要使用這種方式也是有明顯缺陷的,那就是你要知道函式名和引數,否則無法繼續。
私有庫的標頭檔案可以使用
class dump
的方式匯出來,這個詳細的就需要
了。下面是兩個使用的例子
1: 這是使用
coretelephony.framework
獲取imsi
#define private_path "/system/library/privateframeworks/coretelephony.framework/coretelephony"
// implement viewdidload to do additional setup after loading the view, typically from a nib.
- (void)viewdidload
2:這是使用
springboardservices.framework
來設定飛行模式開關
mach_port_t *theport;
void *uikit = dlopen(uikitpath, rtld_lazy);
int (*sbsspringboardserverport)() = dlsym(uikit, "sbsspringboardserverport");
theport = (mach_port_t *)sbsspringboardserverport();
dlclose(uikit);
// link to sbsetairplanemodeenabled
void *sbserv = dlopen(sbservpath, rtld_lazy);
int (*setapmode)(mach_port_t* port, bool status) = dlsym(sbserv, "sbsetairplanemodeenabled");
setapmode(theport, status);
dlclose(sbserv);
}#endif
python中使用動態庫
首先,建立乙個簡單的動態庫 程式設計生成dll.so gcc fpic o2 shared dll.c o dll.so c檔案 dll.c 如下 include struct param void print0 struct param arg void print2 struct param a...
Iphone中使用FMDB框架
1 首先得例項化乙個fmdatabase物件,這跟sqlitepersistentobjects 派生乙個子類進行操作是不同。接著開啟乙個資料庫 如果沒有會建立乙個資料庫 view plain paths ios下document路徑,document為ios中可讀寫的資料夾 nsarray pat...
使用cocos2d開發iphone遊戲入門概念
簡介 cocos2d iphone是乙個開源框架,利用它可以非常容易的在iphone上開發2d遊戲。它提供了物理,精靈 sprites 時差卷軸 parallax scrolling 支援iphone touch和accelerator等很多功能。一點說明 這一系列文章,翻譯自cocos2d的wik...