.a文件肯定是靜態(tài)庫(kù),.dylib肯定是動(dòng)態(tài)庫(kù),.framework可能是靜態(tài)庫(kù)也可能是動(dòng)態(tài)庫(kù);
靜態(tài)庫(kù)在鏈接時(shí),會(huì)被完整的復(fù)制到可執(zhí)行文件中,如果多個(gè)App都使用了同一個(gè)靜態(tài)庫(kù),那么每個(gè)App都會(huì)拷貝一份,缺點(diǎn)是浪費(fèi)內(nèi)存。類(lèi)似于定義一個(gè)基本變量,使用該基本變量是是新復(fù)制了一份數(shù)據(jù),而不是原來(lái)定義的;
動(dòng)態(tài)庫(kù)不會(huì)復(fù)制,只有一份,程序運(yùn)行時(shí)動(dòng)態(tài)加載到內(nèi)存中,系統(tǒng)只會(huì)加載一次,多個(gè)程序共用一份,節(jié)約了內(nèi)存。類(lèi)似于使用變量的內(nèi)存地址一樣,使用的是同一個(gè)變量;
但是項(xiàng)目中如果使用了自己定義的動(dòng)態(tài)庫(kù),蘋(píng)果是不允許上架的,在iOS8.0以后蘋(píng)果開(kāi)放了動(dòng)態(tài)加載.dylib的接口,用于掛載.dylib動(dòng)態(tài)庫(kù)