Android贏家密碼(一):什么是贏家密碼
移動(dòng)開發(fā)已經(jīng)毫無(wú)爭(zhēng)議地成為軟件領(lǐng)域的發(fā)展趨勢(shì),嶄新的領(lǐng)域和模式不僅僅為各個(gè)廠商,也會(huì)普通的開發(fā)者打開了一扇阿里巴巴之門。本文摘取自臺(tái)灣知名技術(shù)專家,臺(tái)灣公認(rèn)的“OO教父”和“Android教父”高煥堂尚未出版的第五本Android書籍《Android贏家密碼》,希望大家喜歡。
強(qiáng)龍不壓地頭蛇
自古有言:“強(qiáng)龍不壓地頭蛇”。這是來(lái)自<<西游記>>第 45 回里所寫的:
“你也忒自重了,更不讓我遠(yuǎn)鄉(xiāng)之僧; 也罷,這正是強(qiáng)龍不壓地頭蛇。” |
強(qiáng)龍不會(huì)檔住地頭蛇的財(cái)路,
反而會(huì)協(xié)助地頭蛇不斷成長(zhǎng)。
相對(duì)上,木瓜樹就是“強(qiáng)龍”角色;而小鳥則是“地頭蛇”角色。木瓜免費(fèi)提供又紅又甜的木瓜肉給小鳥吃,讓小鳥長(zhǎng)得強(qiáng)壯,能飛得更遠(yuǎn)。此外,還把木瓜種子做很精致的方式包裝,讓種子既不會(huì)傷害小鳥,而且種子也不會(huì)被小鳥所傷害(例如被消化掉)。如此,木瓜幫助小鳥長(zhǎng)大,愈強(qiáng)壯小鳥就能夠?qū)⒛竟戏N子攜帶到愈遙遠(yuǎn)的新土地上,大圖拓展了木瓜的地盤。強(qiáng)龍與地頭蛇形成一個(gè)極佳的雙贏合作模式:
強(qiáng)龍幫助地頭蛇成長(zhǎng)壯大。
地頭蛇幫助強(qiáng)龍拓展版圖。
以 Android 手機(jī)平臺(tái)為例,谷歌 扮演“強(qiáng)龍”角色;而 AP 開發(fā)者則扮演“地頭蛇”角色。谷歌 也盡到強(qiáng)龍的任務(wù):
提供 Android 框架 API 和 Android SDK(含 Android NDK)兩道奶水,協(xié)助 AP 開發(fā)者(即地頭蛇)。
AP 開發(fā)者也盡到責(zé)任:
到了2011年初,全球的Android AP開發(fā)者已經(jīng)替谷歌強(qiáng)龍開發(fā)出超過(guò) 10 萬(wàn)支的 AP(即以奶水去養(yǎng)了 10 萬(wàn)個(gè)活潑可愛(ài)的小孩),讓Android手機(jī)版圖持續(xù)擴(kuò)大,躍升為全世界最暢銷的智能型手機(jī)了。這也等于幫助 谷歌 拓展了版圖。
以 Android業(yè)模式為例
谷歌強(qiáng)龍希望 Android 平臺(tái)能支撐它在手機(jī)、家電產(chǎn)業(yè)上的強(qiáng)龍的地位。除了上述的 AP 開發(fā)者之外,谷歌 還有另一種地頭蛇:硬件廠。因此,谷歌身旁有兩種主要的地頭蛇:AP開發(fā)者和硬件廠;其中 AP開發(fā)者撰寫手機(jī)應(yīng)用軟體,而硬件廠則開發(fā)手機(jī)硬件組件。如下圖所示:
圖 1-25 谷歌 的愿望:擁有強(qiáng)龍商業(yè)地位
谷歌為了站穩(wěn)商業(yè)強(qiáng)龍地位,它必須協(xié)助兩種地頭蛇去完成他們各自的任務(wù)。于是 谷歌 開發(fā)手機(jī)平臺(tái)軟件(即 Android 平臺(tái)),內(nèi)含兩種框架(含 API):
Java 層應(yīng)用框架(Apppcation Framework),它用來(lái)銜接應(yīng)用子類。
HAL(Hardware Abstraction Layer)驅(qū)動(dòng)框架,它用來(lái)銜接硬件組件的驅(qū)動(dòng)程序(Driver)。
然后將上述框架當(dāng)做禮物,分別贈(zèng)送給 AP 開發(fā)者和硬件廠。如下圖所示:
Android 框架就是一個(gè)完美的范例,主要元素包括:
框架內(nèi)含基類及主動(dòng)型 API。
基類里的程序碼是魚餌。
主動(dòng)型 API 則是魚鉤。
框架是一種極為特殊的禮物。
這種“強(qiáng)龍/地頭蛇”商業(yè)模式,很類似于大家熟悉的“加盟”體系。谷歌 開發(fā)Android 框架來(lái)送人,強(qiáng)力支撐其全球分工和營(yíng)銷的加盟體系,如下圖:
圖 1-27 Android 框架支撐 谷歌 的全球加盟體系
強(qiáng)龍必須培養(yǎng)、組織和照顧眾多的地頭蛇(即加盟者),才能讓自己成為盟主(即強(qiáng)龍)。由于大強(qiáng)龍個(gè)數(shù)不多,條件也高,不是人人都有機(jī)會(huì)。因此,從“強(qiáng)龍/地頭蛇”商業(yè)模式再衍生出新型的“強(qiáng)龍/小強(qiáng)龍/地頭蛇”商業(yè)模式。于各領(lǐng)域中,具有特定領(lǐng)域(例如智能電視、車載地圖、網(wǎng)絡(luò)游戲等)的公司,皆能開發(fā)出特殊的領(lǐng)域框架(Domain-Specific Framework,簡(jiǎn)稱為 DSF),就能扮演“領(lǐng)域強(qiáng)龍”角色,而擁有自己的地頭蛇了。相對(duì)于 Android 大框架,這種 DSF 則稱為小框架。做大框架者是大強(qiáng)龍;做小框架者是小強(qiáng)龍(即領(lǐng)域強(qiáng)龍)。小框架可以融合到大框架里,它充實(shí)大框架的內(nèi)涵,讓大強(qiáng)龍、小強(qiáng)龍、和地頭蛇共三方皆獲利,形成“三合”的美好商業(yè)模式。于是,三合(即大強(qiáng)龍、小強(qiáng)龍和地頭蛇的合作)的巨大效益為:
以手機(jī)硬件為例,小框架能有效創(chuàng)造硬件的差異化、多樣化,大幅提升附加價(jià)值。
就小框架而言,硬件的大量生產(chǎn),創(chuàng)造小框架的大量復(fù)制機(jī)會(huì)。
Why,框架 API?
前面已經(jīng)敘述了,熱情地關(guān)注 API,即能發(fā)現(xiàn)藏在隙縫里的成功密碼,成為幸運(yùn)的贏家。前面也已經(jīng)說(shuō)明了,框架就像萬(wàn)里長(zhǎng)城,其 API 就像長(zhǎng)城的關(guān)口(如居庸關(guān)等),而且也拿一棵樹來(lái)做比喻,說(shuō)明 API 的角色:
HAL 框架的 API 就位于樹干與樹根(即驅(qū)動(dòng)程序)的銜接處。
應(yīng)用(AP)框架的 API 就位于樹干與枝葉(即 AP)的銜接處。
然而,很多人提出疑問(wèn):提供API的途徑何其多? 為何特別強(qiáng)調(diào)“框架”的API呢? 例如,一般程序庫(kù)(pbrary)也提供API給開發(fā)者使用、網(wǎng)絡(luò)服務(wù)(Web Service)也是一種API,為何只談框架API呢? 為了回答這問(wèn)題,必須回顧過(guò)去20年來(lái)的軟件發(fā)展經(jīng)驗(yàn)了。其中有兩項(xiàng)重要的事跡:
1980年代后期,CORBA是一項(xiàng)物件導(dǎo)向的服務(wù)標(biāo)準(zhǔn)API,實(shí)現(xiàn)此項(xiàng)標(biāo)準(zhǔn)的系統(tǒng)中,最著名的商業(yè)中間鍵軟件就是Orbix系統(tǒng)。然而,在系統(tǒng)架構(gòu)上,API是一種制約力量,不是一種禮物,不能用來(lái)嘉惠予AP開發(fā)者。導(dǎo)致CORBA和Orbix系統(tǒng)架構(gòu)無(wú)法支撐理想的商業(yè)模式,而終告消失匿跡。
1990年代中后期,繼CORBA之后的是Microsoft公司推出COM/DCOM系統(tǒng)架構(gòu),雖然提供了當(dāng)時(shí)先進(jìn)的物件導(dǎo)向(Object-Oriented)的API,但還是API,仍然是一種制約力量,不是一種禮物,不能用來(lái)嘉惠予AP開發(fā)者。與CORBA和Orbix一樣的系統(tǒng)架構(gòu),一樣無(wú)法支撐理想的商業(yè)模式,也終告消失匿跡。
后來(lái),IT業(yè)界逐漸發(fā)現(xiàn):API可用來(lái)框住應(yīng)用程序(AP),如同一把利劍;若要獲得開發(fā)者的青睞,利劍必須搭配面包,就像釣魚鉤必須搭配魚餌,才能吸引魚群。于是,Microsoft改變觀點(diǎn),把焦點(diǎn)放在面包上,發(fā)現(xiàn)物件導(dǎo)向技術(shù)里的抽象類別(Abstract Class)及其提供的預(yù)設(shè)函數(shù)(Default Function)以及其他具體類別,所整合而成的框架(Framework)正式一項(xiàng)極具誘惑力的魚餌。此外,由框架所提供的主動(dòng)型 API,也能發(fā)揮巨大的控制力。因之,Microsoft于2001推出.NET框架來(lái)取代COM/DCOM,由于.NET框架融合了面包與利劍,既能嘉惠廣大的開發(fā)者,又能有效框住眾多的應(yīng)用程序。.NET框架是Microsoft贈(zèng)送給廣大的開發(fā)者的最佳禮物,表達(dá)了Microsoft對(duì)全球廣大第三方開發(fā)者關(guān)懷和愛(ài)心,讓他們因.NET而受惠。
到了2007年,谷歌也依樣畫葫蘆,買來(lái)Android框架,當(dāng)成禮物贈(zèng)送給全球的手機(jī)硬件廠商,也贈(zèng)送給全球廣大的 AP 開發(fā)者。由于 Android 框架“禮物”嘉惠予硬件廠商,所以全球的硬件廠商也是受惠者,因而大力支持 Android,也讓Android聲勢(shì)扶搖直上。Android框架是面包與利劍的融合體,不僅嘉惠予硬件廠商,也嘉惠予全球數(shù)以萬(wàn)計(jì)的廣大 AP 開發(fā)者,同時(shí)也主導(dǎo)了這些開發(fā)者。
由于谷歌熱情投入開發(fā)框架 API,并當(dāng)成禮物來(lái)送人,除了嘉惠眾多硬體廠商,也嘉惠了全球的 AP 開發(fā)者,讓人人能擁有“沒(méi)錢就改版,改版就有錢”的利益。古賢者老子說(shuō):“圣人無(wú)積,既以為人己愈有,既以予人己愈多。”從歷史可知,秦始皇、漢武帝熱情投入萬(wàn)里長(zhǎng)城的興建,而成為最大獲利者。如今,谷歌 和微軟都熱情投入軟件框架的開發(fā),而成為幸運(yùn)的最大贏家。
關(guān)于作者
高煥堂,臺(tái)灣軟件架構(gòu)設(shè)計(jì)大師,從事IT行業(yè)近30年,被稱為“臺(tái)灣OO技術(shù)教父級(jí)代表人物”?,F(xiàn)任MISOO軟件開發(fā)與管理顧問(wèn)公司首席架構(gòu)師,編著過(guò)十余本軟件技術(shù)相關(guān)書籍。
【編輯推薦】