Android 教學課程講義懶人包 ( 適用 Android 4.0 , Android 3.2 , Android 3.1 , Android 3.0 , Android 2.3 , Android 2.2, Android 2.1 ) 是孫傳雄研究室從2010年撰寫至今的 Android 手機應用程式開發教學網路講義集。我們的 Android 教學內容會跟隨 Android 手機應用程式開發技術發展而更新。我們盼從基礎的 Android SDK 下載安裝開始,透過詳盡易懂的圖文教學,帶領 Android 手機應用程式開發初學者由淺入深地領略 Android 手機應用程式開發樂趣。我們的電子聯繫信箱是 tomsun.service@gmail.com

喜歡閱讀我們的 Android 課程教學講義嗎?歡迎加入我們的網路讀者俱樂部會員,謝謝!

Google

[Android 教學課程] Android 的系統架構

Android 教學

我們的 Android 教學課程講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)

我們的《Android 手機與平板電腦程式開發教學課程免費講義》網路讀者俱樂部,歡迎您的加入!


以下為本篇 Android 教學講義的開始。


此篇為 Android 手機程式開發教學課程免費講義的第二講。這篇課程講義主要希望讓 Android 手機程式開發新手能夠暸解 Android 在手機應用程式開發上的一些系統概念與特色。

【孫傳雄研究室 編著】先前,Android Developers官方網頁早已用英文詳列了九項的系統特色。不過,本講義為了讓比較不熟悉 Android 的朋友可以更簡明地暸解這些 Android 的系統概念與特色,因此我們試圖重新用較淺顯易懂的文字描述,將Android的九項系統特色轉換成以下九項問題,做一詳盡之說明。
  • 什麼是 Android 的應用程式框架 (Application framework)?
  • 什麼是 Dalvik 虛擬機器 (Dalvik virtual machine)?
  • 什麼是 Webkit 網頁引擎 (Web browser engine) ?
  • 什麼是 OpenGL ES?
  • 什麼是 SQLite 資料庫?
  • Android 支援那些媒體格式檔案?
  • 什麼是 GSM 手機電話功能 (GSM Telephony)?
  • Android 支援那些感應器(Sensor)?
  • 什麼是 Android SDK?
此外,本講義為求讀者學習的完整性。倘若您尚未閱讀過Android 手機程式開發教學課程免費講義的第一講,煩請您先連結閱讀第一講後,再來閱讀第二講。


什麼是 Android 應用程式框架 (Application framework)?



Android 為了節省開發者撰寫應用程式的時間、加速應用程式開發的速度。所以在應用程式與內部系統環境之間設置了一個讓程式更簡易溝通的界面,它稱之為應用程式框架(Application framework)。

對於應用程式的開發者來說,他得以透過Java程式呼叫應用程式框架所提供的應用程式界面(Application Programming Interface, API),來實作更底層的函式庫(Libraries)功能。

在這個應用程式框架之中,包含了活動管理者(Activity Manager)、視窗管理者(Window Manager)、內容提供者(Content Providers)、外觀元件系統(View System)、程式管理者(Package Manager)、電話功能管理者(Telephony Manager)、資源管理者(Resource Manager)、地理位置管理者(Location Manager)以及訊息管理者(Notification Manager)等服務或者系統。

總體來說,開發者通常只需要理解應用程式與應用程式框架之間的運作關係、以及如何透過Java程式語言實作的方法即可,並不太需要探究更內部的系統環境。

然而,假若是要移植Android至嵌入式系統(例如洗衣機的控制界面)的產品開發者,仍有必要理解Android系統內部的函式庫、Android執行環境與Linux核心的細節。

image

Android的系統架構圖
(本講義修改重繪自
Android Developers官網)


什麼是 Dalvik 虛擬機器 (Dalvik virtual machine)?



早期應用程式的原始程式碼,多半被組譯器或編譯器轉換成執行檔之後,便可以立即在作業系統當中執行。

不過,這種方式常常會受限於作業系統環境的不同,而無法相容執行。

比如副檔名為.exe或.com的應用程式執行檔就只能在Microsoft Windows或者DOS作業系統當中執行。倘若,它要在Mac OS當中執行者,還需要將程式碼重新改寫並變成Mac OS可執行的檔案夾格式 .app,才得以在Mac OS作業系統當中執行。

隨後,Java的誕生為此帶來了觀念上的革新。當應用程式開發者在編寫Java原始程式碼後,會先透過Java程式語言的編譯器(Compiler)編譯成二進位碼形式(bytecode)的.class類別檔。這個類別檔並非是在作業系統當中”直接”執行,而是會在具有Java虛擬機器(Java virtual machine, JVM)的作業系統環境當中被”轉換””執行。

所以,無論是那種款式的作業系統,只要安裝含有Java虛擬機器(Java virtual machine, JVM)的Java平台(Java Platform),就可以執行以Java程式語言所開發的應用程式。

因為,Android也是採行Java程式語言進行應用程式的開發,所以,它在觀念與架構上皆與Java平台相去不遠。

然而,Android並非使用Java虛擬機器(Java virtual machine, JVM),而是自行發展的Dalvik虛擬機器(Dalvik virtual machine, Dalvik VM),所以它的檔案產生過程仍與Java應用程式檔案有所不同。為讓大家更暸解這方面的內容,本講義做以下之說明:

Andorid應用程式開發者在運用Java程式語言編寫完原始程式碼後,其儲存的檔案副檔名為 .java,.java檔案接著會被Java程式語言編譯器(Compiler)編譯成副檔名為 .class的檔案(其為二進位碼形式(bytecode))。

如果是一般的Java應用程式,大概到這一步就可以直接透過Java虛擬機器(Java virtual machine, JVM)在作業系統之中執行。只不過,因為在Android系統之中並不是使用JVM,而是Dalvik虛擬機器(Dalvik virtual machine, Dalvik VM)。所以,副檔名.class的檔案還要再被Android SDK(軟體開發工具包)當中的dx工具再轉換成為Dalvik VM可以執行的檔案(副檔名為 .dex, Dalvik Executable,同為二進位碼形式)。

最後,Android SDK會將所有檔案壓縮包裏成單一的Android封裝檔(副檔名為 .apk,Android application package),以供手機用戶直接下載執行。關於更詳盡Android應用程式檔案產生過說明,您可以延伸閱讀Understanding the Android Build Process一文。 

image 
Android應用程式檔案的產生過程簡圖 

另一方面,當Android手機的使用者下載一個應用程式時,安裝下載的是.apk封裝檔。該應用程式被執行時,Android系統最底層的Linux 核心則會為每一個應用程式產生一個Linux處理程序(Linux Process),並在單一的Dalvik VM當中執行。

特別的是,在Andorid當中的每一個應用程式都會對應”一個”專屬它的Dalvik VM。如此的設計,可以確保每一個應用程式之間都是相互獨立而彼此不影響。若對Dalvik VM的內部運作有興趣者,您可以延伸觀賞Android: Dalvik VM Internals影片。
 


什麼是 Webkit 網頁引擎 (Web browser engine)?



在Andorid當中,如同於個人電腦般也內建網頁瀏覽器(Web Browser)。此瀏覽器的名稱叫做Google Chrome Lite。它與iOS當中內建的Safari網頁瀏覽器一樣是採用Webkit網頁引擎(Web browser engine)。如果您有在個人電腦中使用過它的孿生兄弟Google 瀏覽器(Google Chrome)的話,就可體驗Webkit網頁引擎在載入網頁的良好效能。

看到這裡,您一定會有個疑問:『網頁瀏覽器跟網頁引擎究竟是什麼關係呢?』

簡單地說,如同汽車需要引擎來產生動力一般,網頁瀏覽器裡頭有一個肩負網頁載入、HTML相關程式碼解釋、畫面排版與呈現的重要軟體元件,那個軟體元件就是網頁引擎。

早期的瀏覽器並不太強調它是使用什麼樣的網頁引擎,不過,隨著使用者對於網頁載入效能與呈現美感要求日增,越來越多的瀏覽器業者便開始強調它們所使用的網頁引擎是那一款式。

其中,Webkit是目前最多知名智慧型手機作業系統採用的網頁引擎。這些作業系統包括了Symbian OS、iOS、Android與Palm webOS等…。

對於大多只有3吋左右螢幕的智慧型手機來說,Webkit網頁引擎有一個相當大的優勢,那就是它可以讓正常網頁(非手機版本)如同在個人電腦般,自動調整成頁寬(auto fit page)的方式完整縮小呈現在手機的小螢幕中,如此可以方便使用者立即在手機上看到正常網頁的全觀(如下圖所示),如果要近看某區塊之內容時,只要將該區塊放大即可。這是其它舊式網頁引擎不容易做到的事,但應用Webkit網頁引擎卻可輕易達成。

android模擬器_1

Webkit的網頁自動調整成全頁寬(auto fit page)功能

由於,Android API 已內含Webkit相關的函式庫。因此,開發者得以透過呼叫API的方式將Webkit相關功能整合至應用程式之中。你可能會問:『什麼狀況之下,應用程式需要用到Webkit的相關功能呢?』比如,應用程式需要內嵌顯示網頁內容或者需要執行Java Script客戶端網頁程式碼等狀況時,皆可運用Webkit函式庫來進行整合的動作。


什麼是 OpenGL ES?



Android的圖形處理分成兩個部份,一為2D圖形處理,這部份是採Android自行規範定義的2D圖形處理函式庫(2D graphics library)。二為3D圖形處理,此部份則採行OpenGL ES 3D圖形處理函式庫。

關於2D圖形處理方面,Android應用程式開發者得以透過呼叫API的方式進行2D圖形處理函式庫相關的圖形繪製以及動畫處理。

更簡單地說,比如你想在手機上開發一個類似大頭貼機器的應用程式,亦即當使用者透過手機上的相機拍下照片後,得以在照片上加上一些相框圖案。此時該應用程式就可以使用2D圖形繪製的功能。又比如這個大頭貼機器的應用程式想為照片加點淡出淡入的動畫效果時,則會使用到動畫處理的功能。

至於3D圖形處理方面,Android並非使用自行發展的函式庫,而是採用OpenGL ES 3D圖形處理函式庫。因為,這個函式庫在3D圖形處理上有相當優異的表現,因此,像是SONY PlayStation 3(PS3)電視遊戲主機也是採用OpenGL ES做為它們在3D遊戲的圖形處理函式庫。

另外,由於OpenGL ES是由OpenGL輕量化而來,所以,特別適合硬體規格不如個人電腦高的智慧型手機應用。目前,除了Android之外,還有Symbian OS、BlackBerry OS、Palm webOS、iOS亦採用OpenGL ES做為3D圖形處理的函式庫。

對於Android應用程式開發者來說,能夠運用OpenGL ES 3D圖形處理函式庫來處理相關3D立體圖形相關的應用程式或遊戲開發工作。若有興趣暸解OpenGL ES在Android上的3D表現實況,您可以進一步觀賞Android 3D Live Wallpaper: Particle Storm短片。 

android模擬器_5  

在Android手機上畫面逼真的3D 撞球遊戲
(畫面擷取自
Android Market)


什麼是 SQLite 資料庫?



開發者在開發應用程式的過程之中,難免會有資料儲存的需求,比如需要儲存應用程式的設定資料或者上一次遊戲關卡的資料等…。因此,Android內建了一個名為SQLite的關聯式資料庫引擎(Relational database engine)。

因為,應用程式當中使用了SQLite,所以,手機用戶得以將相關資料儲存在手機的儲存設備當中,而無需再以網路連線的方式存取遠端的資料庫。

如果你有過大型關聯式資料庫的開發經驗(如Microsoft SQL Server或者Oracel Database等…),應該可以很快地適應SQLite的程式編寫。因為它仍延襲SQL-92標準,亦即你可以使用SQL(Structured Query Language,結構化查詢語言)來存取SQLite資料庫當中的資料。

另外,過去大型關聯式資料庫多數採取主從架構(Client–server model)的模式,所以,應用程式與資料庫之間具有主從的結構關係。當應用程式用戶端需要存取資料庫時,必需連線至此資料庫的伺服器當中進行資料的新增、刪除或修改之動作。

然而不同的是,Android應用程式的開發者則採呼叫API的方式來與SQLite作溝通。同時,SQLite當中的資料庫是以單一檔案的方式儲存在手機硬體當中。

由於,SQLite具有檔案小、速度快的優點,所以目前也廣泛用於其它智慧型手機的作業系統,比如iOS、Symbian OS或者BlackBerry OS等…。
 

Android 支援那些媒體格式檔案?



Android支援相當多元的媒體檔案格式,本講義整理節錄自Android Developers官網詳細列表如下:

聲音檔:3GPP (.3gp) 、MPEG-4 (.mp4, .m4a)、MP3 (.mp3)、Type 0 and 1 (.mid, .xmf, .mxmf)、RTTTL/RTX (.rtttl, .rtx)、OTA (.ota)、iMelody (.imy)、Ogg (.ogg)、WAVE (.wav)。

圖像檔:JPEG (.jpg)、GIF (.gif)、PNG (.png)、BMP (.bmp)。

影音檔:3GPP (.3gp)、MPEG-4 (.mp4)。

對於應用程式開發者而言,他可以在應用程式之中整合聲音、圖像或影音的播放與錄製功能,提高應用程式的聲光效果,並且強化其在多媒體視聽娛樂之上的趣味性。

android模擬器_6

用Android手機也能播放與錄製Ustream串流影音
( (畫面擷取自
Android Market) 


什麼是 GSM 手機電話功能 (GSM Telephony)?



2G的行動通訊系統之中,多半區分為GSMCDMA

過去,美國的行動通訊系統大多是採CDMA規格,但像在歐洲或者台灣則以GSM規格為主。

因為,GSM在功能上有些異於CDMA之處(例如傳送手機簡訊的PDU格式),所以,Android為了能廣為各種行動通訊系統所使用,特別在系統上也同時支援GSM手機電話的特殊規格。(註:Android手機不只能支援目前常使用的3G行動通訊系統,也能被2G2.5G3.5G或者4G行動通訊系統所使用。這些規格取決於手機製造業者與電信門號業者)

就總體的手機電話功能(Telephony)來說,Android的應用程式開發者可以發揮創意與巧思,發展與通話、來電顯示、來電鈴聲、來電圖示以及手機簡訊等相關的應用程式。 

android模擬器_3 

Android手機電話功能畫面


Android 支援那些感應器(Sensor)?



Andorid應用程式開發者所能發揮的空間,除了取決於作業系統的版本之外,也指涉了手機硬體上的週邊設備。亦即,開發者能夠應用智慧型手機上的數位相機鏡頭(手機照相機)、衛星定位裝置、電子羅盤(方向感應器)與重力感應器等週邊設備,去創造更多深具創新價值的應用程式。

比如永慶房屋手機宅速配 For Android應用程式,它即應用了Android手機當中的衛星定位裝置與電子羅盤(方向感應器)進行房屋仲介方面的相關功能開發。

關於手機感應器的部份,除了重力感應器、電子羅盤(方向感應器)之外,Android還支援磁場感應器、溫度感應器、光線感應器、壓力感應器、陀螺儀與距離感應器等…。雖然,Andorid支援那麼多種感應器,但並非每台手機都具有這些設備。因此開發者在開發應用程式時,仍應考量感應器的普及程度。就目前來說,市面上的Andorid手機具備重力感應器、電子羅盤(方向感應器)為大宗。 

android模擬器_7 

把Android手機當水平尺來用
(重力感應器的應用,畫面擷取自
Android Market)  


什麼是 Android SDK?



Google為了讓更多開發者參與Android應用程式的開發行列,因此,它開放給大眾免費下載安裝Android 軟體開發工具包(software development kit, SDK)。而且,這個工具包可以安裝在Windows、Linux以及Mac等不同的作業系統環境當中。

Android SDK除了提供了完整的Android API之外,更包括了Android應用程式除錯工具(Android Debug Bridge, ADB)以及Android 手機模擬器(Android Emulator,此為在個人電腦上模擬Android手機的環境)。如此免費與開放是Android之所以在近來深受手機應用程式開發者喜愛的主因之一。

除了Android SDK之外,其它配合它的軟體也是免費性質。這些軟體包括了Eclipse整合開發環境(Integrated Development Environment, IDE)以及Eclipse專用之Android開發工具外掛(ADT Plugin for Eclipse)。再加上原本就免費開放下載的Java開發工具包(Java Development Kit, JDK)

開發者幾乎不用花費到一毛錢,便可以自己建構一個很完整且便利的Android應用程式開發環境,並專心構思與發展屬於自己的應用程式。不過,如果開發者要上傳應用程式到Android Market網站供大家免費下載或收費販售時,則需要再付25美元的帳號註冊費。

android模擬器_2 

Android應用程式的開發環境

至於,Google在近日所推出的 App Inventor 線上開發工具,則為Android應用程式開發者創造出了更方便、更直覺與無程式碼的圖形化開發環境。

我們在試用過App Inventor 後,發現它相當適合Android應用程式的雛型發想階段,開發者可以先運用它來構思一些應用程式的功能。但是,由於它在操作上力求簡單化,由此也可能產生缺乏開發彈性的問題,加上目前它並不支援中文字元,所以開發者若要發展Android應用程式,本講義仍建議大家以上述的開發環境為主,App Inventor 則可做為Android應用程式開發之前的雛型(prototyping)系統設計工具。

最後,Android官方建構了一個專門提供給Android應用程式開發者閱讀的網站-Android Developers,它提供了相當詳盡且時常更新的Android應用程式開發之英文資料。想要自修Android應用程式開發的朋友,本講義非常建議大家常去閱讀這個網站。

第二講完畢!歡迎繼續閱讀第三講”Android 手機程式開發教學課程《免費講義 3》 : Android的商業魅力”。

如果您對於Andorid手機應用程式開發有興趣,歡迎閱讀我們在網路上發表的Android手機應用程式開發教學系列講義。

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)

喜歡閱讀我們的講義嗎?歡迎加入我們所成立的《Android 手機程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結)謝謝!

著作權聲明



Android 手機程式開發教學課程《免費講義 2》 :Android的開發魅力 第一版本完成日:2010年8月31日

本講義之內文、排版等著作權或其他智慧財產權歸屬 孫傳雄 與 孫傳雄研究室 所有,非經書面同意禁止任何形式之翻印、全文轉貼或者授課使用行為。但例外允許在網際網路上引用此講義之網址連結。

本講義之內文所提及或者引用的公司名稱、產品名稱以及所引用的文字、商標、Youtube短片、產品相片或者網站頁面,均為其所屬公司所擁有,特以聲明。

版權所有 翻印必究


[Android 教學課程] 什麼是 Android 智慧型手機作業系統

Android 教學

我們的 Android 教學課程講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)

我們的《Android 手機與平板電腦程式開發教學課程免費講義》網路讀者俱樂部,歡迎您的加入!


以下為本篇 Android 教學講義的開始。


此篇為Android 手機程式開發教學課程免費講義的第一講。本課程講義主要是讓Android手機程式開發新手初步地暸解:什麼是智慧型手機?以及什麼是Android?


什麼是智慧型手機 ?


【孫傳雄研究室 編著】長久以來,智慧型手機(Smartphone)的發展歷程一直有兩派的講法。

android模擬器_4第一派講法認為,智慧型手機是從傳統手機不斷地演進而來。因為,傳統手機的功能需求越來越增加,因此它逐漸地從撥打電話的功能,擴增成具有類似電腦作業系統般的智慧型手機功能。

這種論點並不意味著傳統手機就沒有作業系統,只是過去傳統手機裡頭的作業系統是封閉性的,除了有些機種可以透過Java Applet程式下載的方式來擴增一些小型遊戲或小型應用程式外,應用程式的擴增與系統的表現皆不若智慧型手機來的強大。

第二派講法認為,智慧型手機是源於個人數位助理器(Personal Digital Assistant, PDA)。因為,早期的筆記型電腦價格昂貴、且在體積與重量上都不便於隨身攜帶,因此許多的商務人士改採掌上型的個人數位助理器來進行出門在外的業務處理需求。

這類具有3吋以上觸控式液晶螢幕、可充電、具軟硬體擴充性與開放性作業系統的掌上型電腦,在過去的歲月中曾經讓很多人們愛不釋手。

然而,隨著筆記型電腦的價格越來越低、體積與重量也不若過往那麼地厚重之下,個人數位助理器的市場隨之萎縮。後來,有些業者為了擴大市場的規模,因此逐漸將個人數位助理器結合手機通訊的功能,而形成目前智慧型手機的市場。

上述兩派講法其實都其產業的源頭,第一派講法來自通訊業、而第二派講法則來自於資訊業。智慧型手機正好是這兩股產業的匯流,它即是一台不折不扣的個人數位助理器、也是一台可以與人聯繫溝通的手機電話。

在此之中的要角,即智慧型手機作業系統莫屬。

因為有它,讓應用程式開發者可以完全不需要暸解手機硬體的內部構造與軔體語言,而透過不同作業系統業者所提供的軟體開發工具包(Software Development Kit, SDK,)以及高階的程式語言(如Java或Objective-C),便能自行發揮創意巧思去設計開發可安裝於智慧型手機之中的應用程式。

目前智慧型手機作業系統包括有Symbian OS、BlackBerry OS、Windows Mobile、Linux、Palm webOS、iOS與Android。其中Symbian OS與BlackBerry OS分別來自於通訊產業當中的巨擘NOKIA與RIM。而Windows Mobile(已改名為Windows Phone)、iOS、Linux與Palm webOS則分別源於資訊產業當中的重量級公司微軟、蘋果、Linux(非營利組織)與Palm。


什麼是 Android ?


Web其中,在此講義要介紹的是網路界巨人Google於2007年11月5日所推出的Android

Android是一套建構在Linux核心(Linux Kernel)之上的智慧型手機作業系統。使用者可以透過 Android 撥打電話、傳送簡訊、收發電子郵件、查看行事曆、上網、玩遊戲、享受影音娛樂、甚至透過應用程式的下載,達成許多意想不到的創新功能。

由於,Android在軟體版本授權上是採用Apache Software License 2.0的開放原始碼方案,因此,在這個版權協議之下,智慧型手機製造商可免費地安裝Android作業系統至其生產製造的硬體之中,有效地降低了軟體的採購成本。截至2010年8月2日為止,Android在市面上免費流通的軟體版本共有1.5、1.6、2.1與2.2。其中目前以2.1版本的使用量為最多。(資料來源:Android Developers官方網頁)

對於智慧型手機製造商來說,透過免費取得作業系統而降低軟體採購成本是一項很大的誘因,所以,截至目前為止共有Acer(宏碁)、Alcatel、ASUS(華碩)、CCI、Dell、Foxconn(富士康)、Garmin、Haier、HTC(宏達電)、Huawei(華為)、Kyocera、Lenovo、LG、Motorola、NEC、Samsung、Sharp、Sony Ericsson、Toshiba與ZTE等二十家智慧型手機製造商以及其它數十家行動通訊公司、半導體公司、軟體公司以及商業公司陸續加入了開放手機聯盟(Open Handset Alliance)並投入生產、銷售或者研發Android作業系統的相關軟硬體產品與服務。

Android 也因為有如此地百花齊放,因此即使Google的智慧型手機Nexus One有點出師不利,但Android卻能在2010年第二季以市佔率17.2%,擊敗Apple iOS(iPhone的作業系統,市佔率14.2%)奪下全球智慧型手機作業系統的老三地位, 排行僅次於市場龍頭老大Nokia Symbian OS(市佔率41.2%)與RIM BlackBerry OS(市佔率18.2%)。(資料來源:Gartner)

更據Digitimes Research分析師兼專案經理林俊吉的預估,2010年Android全年市佔率將達兩成,成為智慧型手機作業系統的第二大平台。(資料來源:經濟日報)

Android 以新秀之姿在短短不到三年的時間就有此成績,不只對於旗下合作的智慧型手機製造商具鼓舞作用,也會促使Android應用程式的開發者,投入更多時間與精力去開發兼具功能性與創新性的應用程式。

再更進一步地說,由於Android在應用程式開發上,採取免費、開放的策略。開發者不僅可以免費地下載安裝Android SDK(Android的軟體開發工具包)進行應用程式的開發。更重要地是,人們可以使用多數程式設計師所熟悉的Java程式語言進行應用程式的編寫。因為這兩個特點,促使為數眾多的Java程式設計師蜂擁至Android應用程式的開發行列。

第一講完畢!歡迎繼續閱讀第二講”Android 手機程式開發教學課程《免費講義 2》 : Android的開發魅力”。

如果您對於Andorid手機應用程式開發有興趣,歡迎閱讀我們在網路上發表的Android手機應用程式開發教學系列講義。

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)

喜歡閱讀我們的講義嗎?歡迎加入我們所成立的《Android 手機程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結)謝謝!

著作權聲明


Android 手機程式開發教學課程《免費講義 1》 :什麼是 Android ? 第一版本完成日:2010年8月30日

本講義之內文、排版等著作權或其他智慧財產權歸屬 孫傳雄 與 孫傳雄研究室 所有,非經書面同意禁止任何形式之翻印、全文轉貼或者授課使用行為。但例外允許在網際網路上引用此講義之網址連結。

本講義之內文所提及或者引用的公司名稱、產品名稱以及所引用的文字、商標、Youtube短片、產品相片或者網站頁面,均為其所屬公司所擁有,特以聲明。
 

版權所有 翻印必究


【評論】Google Buzz - 即時搜尋(Real-Time Search)引擎的前哨戰

【孫傳雄 撰文】就在去年(2009年)的5月底,Google在Google I/O 2009研討會中發表了他們最新的線上即時協同合作編輯服務Google Wave

Google Wave推出之時,包括我在內的國內外科技類網路作家們,多數對於Google Wave有著很深的期許與贊賞,甚至希望它成為Google在社群服務上的重要里程碑。

很可惜的是,Google Wave似乎雷聲大雨點小。時經將近八個月的日子,Google Wave仍舊以邀請制的Preview預覽版本形式提供給少部份的網友使用(目前仍為英文版),並未見到同為邀請制開始的Google Gmail那種病毒性行銷擴散的蹤跡。

由於,我個人亦是Google Wave最早期的邀約測試者之一,若要我來分析Google Wave無法大量推展到市場的主因,除了功能過於複雜化與技術化之外,最大的問題仍是Twitter與Facebook已經早先卡位,Google雖然在搜尋引擎市場中佔有龍頭之領導地位,但在社群服務的經營之上,一直處於跟隨者的角色。要靠著單一產品線來打開Google Wave的社群服務市場,可謂難上加難。

因此,就在今年的2月9日開放了Google Buzz功能。Google Buzz有別於過往Gooble眾多單一產品線的模式,它被建構在Google Gmail網路電子郵件系統底下,據維基百科的介紹如下:

【教學】Gmail工作表(Tasks)功能正式版本今天推出!

其實,Gmail工作表(Tasks)功能並不是新功能了,它是Google Gmail研究室(Labs)團隊在先前所精心開發出來的試驗性功能。不過,就在今天(台灣時間2009/07/15),它總算從Google Gmail研究室(Labs)之中畢業了,變成了Google Gmail的一項正式性的重要功能。

個人認為,此功能無論對於上班族、商務人士或者學生,都有很大的助益。因為,它如同我們辦公桌上的便利貼一樣,可以方便地記下郵件的工作事項,甚至可以加入日曆功能,而成為一個簡易版的行事曆。

我試用之後,感覺Gmail工作表(Tasks)功能相當的簡單但又強大,因此透過此篇文章介紹給大家認識。

當然,聽我這樣介紹一定還不過癮。因此,以下我撰寫了將近十張的圖文說明,以及提供Google官方的Youtube教學影片,讓大家更暸解Gmail工作表(Tasks)功能該如何使用。

【返回測試版】GMAIL告別BETA版了,嘿~讓我教你把BETA變回來吧!

最近,大家在使用Google Gmail的時候,一定會發現左上角Google Gmail標誌中的Beta字樣消失了。沒錯,Google Gmail開發團隊,近來一舉將Google Gmail、Calendar(日曆)、Docs(文章)與Talk(即時通訊)等產品標誌的Beta字樣全部移除了(如下圖所示)。此舉,除了象徵這些Google的網路應用軟體(Webware)已日漸成熟之外,個人認為也有可能是Google為了消除商業市場之中,對Beta版本產品所產生的疑慮,而採取的必要方式。

gmail-返回測試版-1

當然,移除了Beta字樣,並不代表Gmail就不再持續更新與開發,個人認為它仍會是Google持續投入龐大資源的一項主力產品。

不過,有些朋友一定跟我一樣,很懷念Google舊日的Beta文化與時光,甚至想保持Gmail Beta標誌在自己的Gmail郵件系統之上。嘿!Google大神聽見我們的聲音囉~它現在以Gmail研究室(Labs)名義推出一項很有趣的功能-『返回測試版』,據該功能之描述:

重新為 Gmail 標誌加上測試版標籤,緩解您的思念之情。

簡單地說,就是把新的Gmail標誌換成具有Beta字樣的舊標誌。這個功能很簡單吧!但也多多少少看出Google對使用者用心之處。

當然,你聽我這樣講一定還不過癮,因此,下列我透過幾張圖文操作說明,來讓大家更暸解怎麼設定『返回測試版』的功能。

【噗友民調】Google Chrome OS 非官方購買意願調查報告

Google於昨日由全球產品副總裁 Sundar Picha 正式向媒體與網友公告:『Google總公司在明年(2010年)下半年將推出名為Google Chrome OS 的作業系統。』Google Chrome OS 將是Google第一套正式對外發行的作業系統,同時,其將鎖定於Netbook輕省電腦為主的市場,此舉有可能對微軟今年下半年為輕省電腦所推出的Winodows 7 Starter版本造成不小的影響。因此,我以非量化且暱名之方式,隨機詢問了噗浪上我所擁有的四千八百位的朋友加粉絲(抽樣樣本),看大家對Google Chrome OS 結合輕省電腦的購買意願為何?藉以,進一步地暸解Google Chrome OS 在台灣國內的市場接受度。此調查最後約有以下一百位左右噗友(有效樣本)回答此問題。當然,也歡迎你繼續參與此購買意願之調查

倘若你尚未暸解何為Google Chrome OS ?你可以先參考電腦玩物以及我撰寫的介紹。

【評論】Google Chrome OS - 走向一個”夠用就好”的輕省作業系統新時代

【啪啦站長 孫傳雄撰文】不知道大家是否記得,我曾在今年(2009年)的五月發表過一篇名為”Windows 7的隱憂-從GOOGLE CHROME 2談起”的文章。針對此文,個人表示Google Chrome瀏覽器結合Google旗下眾多網路應用軟體(Webware,如搜尋、Gmail、地圖、文件或試算表等…),將會開創一個”夠用就好”的輕省作業系統新時代,而且個人認為此舉將會威脅到微軟 Windows 7的後續發展(尤其是輕省電腦netbook的市場)。

在當時,有不少朋友否定我的論見,甚至認為我在天馬行空、胡說八道。不過,就在今天(台灣時間2009/07/09)Google總公司正式宣告他們在明年(2010年)下半年將推出名為Google Chrome OS 的作業系統,據Google全球產品副總裁 Sundar Pichai指出:

【電郵信箱】好消息,Gmail的每封郵件之附件大小上限從20MB提升至25MB

隨時,影音、圖像或是其他各項檔案的容量大小日益增加,除了讓使用者的硬碟需求越來越高之外,寄發電子郵件時的附件容量需求亦是隨之增加。

我還記得,早期在寄發電子郵件時,信箱系統常將附件大小限制在1MB左右。致使,當我需要寄超過1MB以上的個人檔案給朋友時,只好先將檔案上傳到其他網路空間,再以網址連結的方式附於郵件頁面之中。此舉,不僅麻煩,而且由於檔案是放置於開放空間之故,因此,也衍生了隱私性與安全性上的問題。

不過,自從有了Google Gmail之後,此燃眉之急便稍加解除。因為,它從早期的10MB郵件附件大小限制,便已大大地領先了其他業者。後來,它更將此上限提昇到20MB,讓我在每回寄發電子郵件時,幾乎不用擔心附件檔案過大之問題。

可是,人總是貪心的,上限能越大越好嘛~

【評論】 Google 大神為何要免費提供網路服務? - 談搜尋引擎與網路資料量的關係

【啪啦站長 孫傳雄 撰文】「天下沒有白吃的午餐」是自古先人就留傳下來的一句名言。簡單的說,就是我們所享有的每一項東西,都不是天上掉下來的禮物。這些東西要不是親朋好友送的,不然就是用金錢或者勞力所換取回來的。

你可能會回問我:「那網路上一堆免費服務又怎麼說呢?」的確,這些免費服務讓大家連一毛錢都不用付,就能持續使用它們。只不過,大部份的免費服務背後,其實仍遵循了禮物經濟的法則:

禮物經濟指的是提供商品或服務者並沒有明確的預期回饋對象,也沒有預期回饋的內容,有許多分享行為出自於非制式的習慣。同時,禮物的施與受之間已轉換成一種未明確規定的義務,形成送禮者與收禮者之間的隱晦關係。禮物經濟也被認為是一種債務經濟,在這種經濟中,交易者的目標是儘可能獲得最多的禮物債務人,而不像在商品經濟中以獲取最大利潤為目的。(資料來源:維基百科)

簡單的說,網站業者今天免費提供網路服務給大家,就是希望大家能夠常常來使用它們所提供的服務,而且越多人使用對他們而言是再好不過的事情。同時,就禮物經濟的角度來看,網站業者其實並不期待從這些網友身上賺到什麼錢,因為賺錢的標的物,已經不在於使用這些服務的網友身上。他們真正賺錢的標的物有可能是廣告、也有可能是非網路服務本身的其他附加價值。

這個觀念其實不是很新了。公元兩千年網路泡沫化之前,許多網路公司就是給創投公司或者投資人這種夢幻式的想法,才會最後造成集體性的大崩盤。

聽我這樣子說,你可能會問:「目前提供最多樣化免費網路服務的 Google 大神,該不會也是這樣子搞吧?」

那你就錯了, Google 的思維跟這些隨著網路泡沫化而倒閉的網路公司完全不同。而思維差異的主因在於它的最主力產品-搜尋引擎。

有 Zoom 才夠看- Google Maps 地圖街景( Street View )功能再進化!

身為宅宅的我,就是沒錢,但什麼都有。別人可能要花個數十萬、甚至上百萬才能環遊世界,而我呢?只需要透過 Google Maps 地圖的街景( Street View )功能,就能飽覽世界萬物,看盡天地的風光美景。全世界就在我的滑鼠掌握之中。

不過,街景( Street View )功能除了還沒包括台灣街景的缺點之外,另外,就是少了類似攝影機上Zoom In與Zoom Out的功能。簡單的說,就是沒辦法再靠近一點看。 Google 大神當然知道有這個缺點存在,因此,就在昨日(台灣時間2009/06/05), Google Maps 地圖新增了街景( Street View )的Zoom In與Zoom Out功能。讓你透過滑鼠點擊兩下(double click)的方式,就能更靠近地看到你想看的風光美景。

想暸解怎麼使用嗎? Google Maps 地圖開發團隊特別錄製了一小段教學影片,讓你更清楚地暸解如何操作,我將其分享如下: