.a阿弃、.framework庫(kù)制作之一(概覽)

日常開發(fā)中诊霹,別人的三方庫(kù)你肯定接觸不少羞延,用的也不少渣淳。

來(lái),說(shuō)幾個(gè)聽聽:AFNetworking伴箩,Masonry入愧,MJRefresh、FMDB嗤谚。棺蛛。。?

此處省略一萬(wàn)字巩步。旁赊。。

如果這些你都沒(méi)用過(guò)椅野,那么你一定走的不是尋常路终畅。我只想說(shuō):大神,帶帶我竟闪!


gaga

好了离福,不瞎BB了,要不然要被大家扔鞋子炼蛤!

首先妖爷,我們還是來(lái)補(bǔ)充一下關(guān)于庫(kù)的知識(shí)?

庫(kù)是神馬理朋?庫(kù)是一種代碼共享的方式絮识。主要用于代碼重用和源碼隱藏,一般分為靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)

靜態(tài)庫(kù):鏈接時(shí)完整的拷貝到可執(zhí)行文件中嗽上,多次使用就有多次冗余拷貝次舌。

動(dòng)態(tài)庫(kù):鏈接時(shí)不復(fù)制,程序運(yùn)行時(shí)由系統(tǒng)動(dòng)態(tài)加載到內(nèi)存炸裆,供系統(tǒng)調(diào)用垃它。系統(tǒng)只加載一次,多次使用,節(jié)省內(nèi)存国拇。

說(shuō)了一坨洛史,庫(kù)究竟長(zhǎng)啥樣的呢?往下看酱吝!

.a也殖、.framework、.dylib务热、.tbd忆嗜,.bundle,它們就是庫(kù)崎岂,就長(zhǎng)這個(gè)樣子的捆毫!


庫(kù)的全家福

不過(guò),現(xiàn)在是xcode8的時(shí)代冲甘,我們已經(jīng)見不到.dylib了绩卤,取而代之的是.tbd

.tbd是個(gè)什么東東呢?稍后它們一一自我介紹你就知道了江醇!現(xiàn)在濒憋,站隊(duì)!

站隊(duì)啦陶夜!站隊(duì)啦凛驮!

1 靜態(tài)庫(kù)隊(duì):.a、.framework

2 動(dòng)態(tài)庫(kù)隊(duì):.framework条辟、.dylib黔夭、.tbd

.bundle,發(fā)什么呆捂贿,你咋不站隊(duì)呢纠修?

.bundle:好殤心,我既不是靜態(tài)庫(kù)厂僧,也不是動(dòng)態(tài)庫(kù)扣草,只是一個(gè)資源文件!

好颜屠,別殤心了,你先自由活動(dòng)辰妙。。甫窟。 .bundle默默離了隊(duì)密浑。。粗井。

.framework,是不是找事尔破?怎么站到兩個(gè)隊(duì)里去啦街图?

.framework:報(bào)告隊(duì)長(zhǎng),不是我的錯(cuò)袄凉埂餐济!我有時(shí)是靜態(tài)庫(kù),有時(shí)是動(dòng)態(tài)庫(kù)胆剧,這得看我后臺(tái)是誰(shuí)了絮姆。大boss(蘋果iOS系統(tǒng))名下的就是動(dòng)態(tài)庫(kù),而那些小屌絲程序員制作的.framework就是靜態(tài)庫(kù)啦秩霍。篙悯。。

好铃绒,你歸隊(duì)吧鸽照!.dylib、.tbd你倆也出來(lái)自我介紹介紹吧匿垄。

.dylib搶先一步移宅。。椿疗。。

.dylib:報(bào)告糠悼,我是動(dòng)態(tài)庫(kù)届榄。不過(guò)我活躍在xcode7之前,現(xiàn)在我轉(zhuǎn)入幕后工作了倔喂。不過(guò)可以通過(guò)以下步驟找到我喲:

1)點(diǎn)擊Link Binary With Libraries下方的“+”號(hào)铝条,然后選擇”Add Other…”

2)按下command+shift+g"

3)輸入”/usr/lib”

然后你就能找到啦,想我的話可以經(jīng)常去看看我噢席噩!我就一直在那兒繼續(xù)為您服務(wù)班缰。報(bào)告完畢!

.tbd:報(bào)告悼枢,我也是動(dòng)態(tài)庫(kù)埠忘,我是跟xcode7一塊誕生的。這里apple forfum有提到我的:

For those who are curious, the .tbd files are new "text-based stub libraries", that provide a much more compact version of the stub libraries for use in the SDK, and help to significantly reduce its download size.

也就是說(shuō)我.tbd是新的“基于文本的存根庫(kù)”馒索,size更小莹妒。我可是一個(gè)新星,我都成了stackOverflow上面人們討論的話題啦绰上!地址在下面:

http://stackoverflow.com/questions/31450690/why-xcode-7-shows-tbd-instead-of-dylib

.a旨怠,出列,你來(lái)介紹介紹自己吧蜈块。

.a:大家好鉴腻!我是一個(gè)純二進(jìn)制文件迷扇,.h是我的忠實(shí)搭檔,沒(méi)有.h爽哎,我是滿肚子的學(xué)問(wèn)谋梭,倒不出來(lái) 。有時(shí)候倦青,我還會(huì)找來(lái)我的好哥們.bundle瓮床,讓它幫我存點(diǎn)圖片、xib文件啥的产镐,用的時(shí)候就直接管它要了隘庄,我哥們.bundle可好了!說(shuō)完癣亚,.a默默轉(zhuǎn)身歸隊(duì)去了丑掺。

看看,.a多謙和述雾,你們都要像它學(xué)習(xí)街州!

好吧,你們都自由活動(dòng)吧玻孟!

.bundle呢唆缴?小樣,看到你了黍翎。剛才還殤心的不得了面徽,這會(huì)都撩妹了!過(guò)來(lái)匣掸,該你表演了趟紊!

.bundle興沖沖的跑了過(guò)來(lái)。碰酝。霎匈。 (估計(jì)撩妹撩high了)

大家好,我是.bundle送爸,我是一個(gè)資源文件铛嘱,或者是目錄文件,什么.plist碱璃、.image弄痹、.xib、.txt嵌器、.db等肛真,都能往我這里放,只要主人(應(yīng)用程序)需要爽航,隨時(shí)從我這里把它們?nèi)∽唑救茫硰膩?lái)都是任勞任怨乾忱,車前馬后,聽主人調(diào)遣历极!over 窄瘟! 隊(duì)長(zhǎng),還有事沒(méi)趟卸,沒(méi)事我就忙去了蹄葱。。锄列。

嗯图云,沒(méi)事了,去吧邻邮,小樣竣况。。筒严。丹泉。

.bundle:謝隊(duì)長(zhǎng) !

這小樣又興沖沖的一溜煙跑了鸭蛙。摹恨。。 又奔妹子去了规惰。睬塌。。

最后歇万,我來(lái)總結(jié)幾句:

庫(kù)是一種代碼共享的方式,有靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)之分勋陪!靜態(tài)庫(kù)是哪里用到贪磺,就拷貝一份到哪里去,每次都得拷诅愚,麻煩不說(shuō)寒锚,還占地方。動(dòng)態(tài)庫(kù)就比較好了违孝,加載一次刹前,誰(shuí)用誰(shuí)來(lái)取,方便雌桑,占地少喇喉。在開發(fā)過(guò)程中,我們經(jīng)常碰到的靜態(tài)庫(kù)就是.a校坑、.framework拣技,動(dòng)態(tài)庫(kù)有系統(tǒng)的.framework千诬、.dylib(xcode7之前)、.tbd(xcode7及以后)膏斤。.bundle呢徐绑,就是一個(gè)資源包,用來(lái)放圖片等資源文件的莫辨。

別人的庫(kù)用著很爽吧傲茄?在寫代碼的時(shí)候省不少事吧?那你有沒(méi)有想過(guò)自己也搞個(gè)庫(kù)啥的沮榜,為程序員的哥哥姐姐弟弟妹妹們謀點(diǎn)福利呢盘榨?


在隨后的文章里,我們就來(lái)逐一探討這些庫(kù)是怎么制作的敞映。较曼。。振愿。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末捷犹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子冕末,更是在濱河造成了極大的恐慌萍歉,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件档桃,死亡現(xiàn)場(chǎng)離奇詭異枪孩,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)藻肄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門蔑舞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人嘹屯,你說(shuō)我怎么就攤上這事攻询。” “怎么了州弟?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵钧栖,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我婆翔,道長(zhǎng)拯杠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任啃奴,我火速辦了婚禮潭陪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘纺腊。我一直安慰自己畔咧,他們只是感情好茎芭,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著誓沸,像睡著了一般梅桩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拜隧,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天宿百,我揣著相機(jī)與錄音,去河邊找鬼洪添。 笑死垦页,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的干奢。 我是一名探鬼主播痊焊,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼忿峻!你這毒婦竟也來(lái)了薄啥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤逛尚,失蹤者是張志新(化名)和其女友劉穎垄惧,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绰寞,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡到逊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了滤钱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片觉壶。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖件缸,靈堂內(nèi)的尸體忽然破棺而出掰曾,到底是詐尸還是另有隱情,我是刑警寧澤停团,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站掏熬,受9級(jí)特大地震影響佑稠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旗芬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一舌胶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疮丛,春花似錦幔嫂、人聲如沸辆它。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)锰茉。三九已至,卻和暖如春切心,著一層夾襖步出監(jiān)牢的瞬間飒筑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工绽昏, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留协屡,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓全谤,卻偏偏與公主長(zhǎng)得像肤晓,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子认然,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容