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