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