CES 2012 系列報導(二):來“視”洶洶,智慧型電視前景佳

今年CES展不僅參訪人數破以往紀錄,在展示產品上更是顛覆大家對科技的想像。除了先前介紹過近來火速竄紅的消費性電子產品Ultrabook外,在家電產品領域,則以近幾年來為人津津樂道的熱門話題—智慧型電視(Smart TV)最為吸睛,多功能的智慧型電視早在去年CES展就已成為主流趨勢,而且在今年持續延燒,很多人可能會好奇,智慧型電視市場在短短一年中能有什麼突破?

Read more

快速讀懂Android裝置測試要領-淺談常見產品問題風險與驗證架構–

隨著智慧型手機與平板裝置這幾年在消費性電子領域的迅速崛起,各家廠商無不竭盡所能的競相爭逐。若以作業系統來作市場區分,撇開歷史悠久的Nokia Symbian作業系統不談,目前可說是蘋果的iOS與Google的Android兩雄相爭,而RIM的Blackberry與微軟的Windows Phone 7(以及最近甫推出的Mango),則也前仆後繼試圖以不同的策略突破重圍。

根據下圖科技產業市調機構Gartner今年八月份公布的最新統計資料,可以明顯看出搭載Android作業系統的智慧型手機銷量可說是大幅躍進,再加上對iOS來說,正值Apple推出新一代iPhone前的產品空窗期,更是助長Android銷售的一大推力。

wpid-GartnerQ2SmartphoneSales Smartphone_share_current

*Gartner 2011 Q2 Worldwide Smartphone Sales

然而高科技產業的遞移可謂瞬息萬變,軟體面的群雄割據似已撥雲見日,但硬體方面卻是風起雲湧。這些日子以來最震驚業界的消息,無非是Google併購了手機大廠Motorola的行動部門(Motorola Mobility)、以及HP在宣布出脫PC業務的兩個月後再度改弦易轍,表示將保留個人電腦業務。Google併購Moto Mobility的這個消息被視為是用以取得大量手機專利、以持續深耕手機市場的利多;而HP對PC業務的政策反轉,初期的分拆之計被視為是不願持續投入鉅額成本的舉動、而最終選擇保留PC業務,則被臆測可能是在評估長期市場潛力與對整體品牌價值的影響下,所做的決定。不論市場上的一日數變未來會對硬體面的消長帶來怎樣的影響,可以確定的是,就目前而言,業界普遍看好iOS與Android將持續成為主流的行動裝置作業平台。

由於蘋果的iOS採取了封閉式的軟體設計,因此,作為開放原始碼(Open Source)的Android作業系統,便成為了想要攻克智慧型手機與平板裝置市場的廠商們不能不學的一門功課。而作為測試驗證的領導實驗單位,百佳泰(Allion Test Labs, Inc)自然也不能缺席,在先前我們已經專文解構Android的基本技術架構、並探討Android裝置軟硬體整合的五大技術環節(全文請見Technical Direct網站),這次我們則將從測試專家的角度,探討Android必須被重視與驗證的重點。

在此之前,我們先來看一下一些簡單的數據,以證明Android的銳不可檔,根據Google I/O大會在今年五月份正式公布的官方資料,截至當時的一些統計數據如下:

  • 全球共有超過一億支被消費者啟用的Android裝置
  • 36家OEM廠商
  • 215家電信運營商(carriers)
  • 45萬個Android開發者
  • 310個Android裝置
  • 在112個國家銷售
  • 超過20萬個APP存在於Android Market
  • 每日Android裝置被啟用的數量:10萬台(2010年5月)/ 20萬台(2010年8月)/ 30萬台(2010年12 月) / 40萬台(2011年5月)

         *以上數據統計截至2011年5月份為止

雖然上述資料僅僅是統計至今年五月I/O大會前的資料,但已足見Android的快速成長之勢。而正由於Android的高度開放性,讓不論是廠商或個人都能成為開發者,各自發展的結果,也就更可能在設計上或導入時產生不同的問題風險。那麼對廠商來說,主要的驗證重點為何呢?請見以下的剖析:

Android裝置常見問題風險

為何首先要先討論Android的問題風險呢?一個驚人的數據顯示,截至目前為止由硬體廠商(IHVs)、開發商及使用戶所回報的Android OS bug數量,達到了十二萬個,這其中包含了各種大大小小的問題瑕疵,有些僅是影響作業流暢度、有些則是可能造成資料外洩、或是系統當機的critical bug。由此觀之,Android作為一個開放式系統,必須與硬體商、應用程式端相互整合,因此有許多設計面向都必須顧慮周全,目前已為人所知或備受探討的Android常見問題包括有:

一、安全性

近來有幾則消息讓大眾開始質疑智慧型手機的安全性,像是包括iOS和Android系統都有會紀錄使用者地理位置、而能被有心人用來追蹤行蹤的功能(涉及個人隱私);又像是在Android 2.3.4版之前的安全性漏洞:在使用未加密的Wi-Fi網路(Open Wi-Fi)時,可能洩漏包括聯絡人、行事曆、個人相簿和其他Google services等個人資訊並遭駭客竊取的問題等。更有甚者,由於Android Market對於應用程式上架的審查沒有明確嚴謹的內容規範,導致令用戶困擾的網路釣魚以及病毒問題也從PC端移植到Android裝置上,這些包含病毒的惡意程式(malware)除了可能影響裝置的運作效能外,更同樣可能讓有心人士透過遠端遙控,竊取使用者資料、並進行不法盜用。

值得關注的是,這些種種的安全性問題,都相當可能成為侵害個人隱私安全的潛在威脅。在現在這個機不離身的時代,使用者開始將各種隱私訊息、個人相片、重要會議資料等存放在手機或平板電腦等行動裝置中,更遑論會透過這些裝置來進行股票證券交易或各種網站平台的登入,然而最大的疑慮就在於,一旦這些用戶的帳號密碼遭到複製盜用,後果可說是不堪設想。而廣大的消費者自然也不希望這樣的疑慮持續存在,讓他們只能消極的透過最近如雨後春筍般冒出的手機防毒軟體進行掃毒,消費者所期待的,是相關廠商的積極作為,來消弭這些安全性疑慮。因此,如何找出問題以強化原本Android未能察覺的缺失、如何避免惡意程式的侵擾,可說是Android裝置目前的首要任務,也是廠商不得不面對的一大挑戰。

二、廠商客製化UI的整合度

綜觀市面上主要Android手機廠商的產品,不難發現幾個手機大廠在設計產品時,都會在原生的Android軟體架構下,包裝出專屬於自家產品的使用介面(User Interface,UI),包括像是HTC的Sense UI、SAMSUNG的TouchWiz UI以及Motorola的MotoBlur UI等,都是根源於Android進一步發展出特色鮮明的客製化UI。而廠商開發這些自主UI的目的,無非是提供消費者更便利且多元的使用方式,並透過產品分殊化來鞏固自身的利基,舉例來說,HTC的Sense UI可讓用戶自行設定桌面捷徑分頁、社群網站內容彙整、方便的時間與天氣widget呈現等;而SAMSUNG的TouchWiz UI也同樣提供用戶桌面 widget的快捷設定和拖拉式的觸控反饋等。

這些廠商自主設計的使用介面,為什麼可能出現問題呢?正因為這些裝置的作業系統一切根源於Android,任何一個細部環節的改動都必須要能配合Android的原始框架,因此,如何巧妙的將廠商追求的功能與Android原生架構相互結合,維持使用上的流暢度,便是一大學問,如何避免顧此失彼、以防堵錯誤的改動造成使用上的可能差池,都是必須詳加驗證的重點。

三、版本升級的配套措施

不同於iPhone可以從用戶端自由更新作業系統的版本,Android裝置的作業系統則是在手機出廠時就已預先搭載單一的Android版本,至於是否提供後續的升級,則端看手機廠商對每一種機款是否釋出更新,有些廠商會儘速提供更新升級、有些廠商的開發時程則需時數個月、甚至有些廠商直接決定不提供升級。在這樣的情況下,便很有可能出現Android已經釋出2.3版本,而使用者卻只能使用Android 2.2版本作業系統的狀況,這不僅等同於用戶無法享受到更新版本的漏洞修補或是功能擴充,也會大大影響用戶的觀感,這對於Android裝置市場的持續拓展絕對會造成負面的影響。

為減少使用者在購買時就產生”未來是否提供升級?”、”等待升級版本出現是否需時冗長”等問題,廠商如何能在一項產品的開發初期,就設計出完整的軟體架構,以利後續Android版本升級時能迅速因應、及時推出更新版本韌體升級,便是必須審慎考量的要素。而這一切都需要結合軟體面與硬體面的全面性驗證技巧,畢竟,當作業系統(軟體)版本升級時,裝置上的記憶體、處理器、相機模組等(硬體)並不會跟著升級,因此從產品開發之初、一直到新作業系統問世後的配套因應,以確保軟體面的更新能確實與硬體相互配合,將是廠商必須加強的環節。

此外,Google因應常有使用者無法升級的問題而提出18個月保證升級計畫,加入該計畫的開發商必須提供消費者在此期間發布的任何作業系統更新,此項計畫對於消費者來說是一大福音,但是對於多樣化的Android行動裝置開發商來說,在新產品的開發同時仍須兼顧舊有產品的升級,在此緊湊的開發時程與開發資源的壓力下,更須注意升級驗證的品質。

四、應用程式向上與向下相容性

對於應用程式(也就是一般我們俗稱的App)開發者來說,每當Android作業系統出現改版升級時,就必須重新檢視自己的應用程式是否能運作於新的作業系統版本中。然而目前實際的情況是,當消費者的Android裝置版本升級時,裝置上原有的App可能並不相容於新版本,必須耗時等待開發商推出更新版本的App;又或者新推出的App只支援新版Android作業系統,而使用較舊版本作業系統裝置的使用者便無法在自己的裝置上使用新的App。

除了作業系統版本之外,App在不同裝置上的相容性,更與硬體上的規格差異如OpenGL支援與否、螢幕尺寸、解析度等有密切的關聯,Android 的官方網站也為此特別闡述開發者如何設計出可以相容於不同螢幕大小的App,即便如此,各家廠商對於Android所進行的差異化設計仍會導致相容性問題,實際在各種Android裝置上的使用者驗證,才能確保App的相容性品質無虞。

當開發商進行App更新所耗費的時間越長,用戶的等待時間也就越久、越有可能轉向使用其他開發者推出的同性質App;而一個App所支援的作業系統版本越少,所存在潛在的客戶群也就越小。因此,除了App本身是否吸引用戶、使用上是否正常流暢外,在設計App時顧及對既有/先前版本的支援、並考量未來作業系統版本升級如何即時因應,自然也是應用程式開發商所必須納入考量的重點項目。

除了前述這些針對Android裝置所常見的問題外,由於這些裝置具有網路瀏覽、影音多媒體、遊戲娛樂等多重功能的特色,自然也有許多功能性、相容性、可靠性的問題會相應產生,像是3G與Wi-Fi模組的訊號接收能力、電力耗損程度、和外接式配件相容性等等。也正由於Android裝置的複雜特性,因此需要透過詳細的測試驗證,來確保裝置的品質水準。在此百佳泰也根據多年的專業經驗,針對Android裝置的產品特性,歸納出以下的驗證架構供業界參考,在此提出幾個針對Android裝置產品進行測試驗證時,必須注意的歸納彙整出了一套針對Android裝置產品特性的測試驗證方法,主要的驗證架構和測試項目如下所述。

Android裝置驗證架構與重點測試項目

若從驗證架構來看,主要可以區分為三大塊:硬體(Hardware)、作業系統(OS)和應用程式(App)。硬體面的驗證包括了裝置中各種零組件的功能性、新元件採用的合適度與不同模組間的相容性等等;作業系統的驗證包括了廠商客製UI與原生Android系統的整合度、版本升級時的正常運作能力、以及最深受重視的安全威脅排除等等;至於應用程式的驗證則包含了App本身的功能性和易用度、以及App和作業系統間向上/向下以及各種裝置硬體與螢幕規格的相容性等等。唯有這三個面向都能兼顧,才能視為是對Android裝置的通盤性驗證。

Android Structure

至於在實際的測試重點上,主要可以從以下幾個角度切入:

l 功能性Functionality

為確保Android裝置能被用戶正常的使用,功能性的驗證自然是不可或缺的,從通訊模組(Wi-Fi、3G、GPS、FM、Bluetooth等)、觸控螢幕(包含各種感測元件)、相機模組、傳輸介面(USB、HDMI等)、影音播放功能、收錄音功能、擴充插槽、系統運作能力(多工運算、DRM功能、安全防護)以及其他特殊功能諸如陀螺儀、磁力儀等等,都是必須涵蓋的範圍。

l 應用程式Application

不論是智慧型手機或平板電腦,舉凡是Android裝置的一大賣點就是,除了內建的基本App外,還能夠讓用戶自由下載更多不同功能類型的App。通常本機預設的App不外乎有網路瀏覽器、影音播放器、記事本、訊息收發、電話撥打、聯絡簿、和地圖等,這些App與本機的相容性都必須在出廠前確保能被良好操作,避免造成系統當機、資料遺失等問題;而用戶可自行的第三方App則是五花八門,從各種遊戲、電子書、生產力軟體、通訊工具、即時同步軟體等無所不包,要一一測試保證這些數十萬的App都能與用戶的裝置完全相容,將是相當曠日廢時的作法,因此,過濾這些App並挑選其中最具代表性、及最需要被驗證的App,便是在驗證前必須做好的功課。

l clip_image009互操作性Interoperability

第三個驗證重點則在於不同裝置間的互操作性。由於Android裝置提供的功能就像一台微型電腦,因此在許多使用情境下,都可能需要與許多不同電子產品連接使用,像是透過無線AP上網、和其他裝置相互進行資料傳輸、外接鍵盤滑鼠、無線列印等等,也正因為如此,與大量的市面上主流外接裝置和消費性電子產品進行互操作性驗證、確保功能正常,避免大眾產生「某一品牌的Android產品經常無法被偵測使用」的負面印象,自然是為維繫使用者良好觀感、並維護產品良好口碑的必要措施。

l Android兼容性Android Compatibility

為確保市面上五花八門的Android裝置與作業系統的高度兼容性,Google也設計出了一套Android兼容性計劃(Android Compatibility Program),唯有通過這個計劃,才能確保該受測裝置是屬於兼容於Android作業系統的裝置,也才能使用Android的商標圖像、並使用Android Market。所謂的Android兼容性計劃包含了CDD文件(Compatibility Definition Document,兼容性測試綱要)與CTS套件(Compatibility Test Suite,兼容性測試套件),裝置廠商必須要先遵照CDD文件裡的規範,規範中定義了各個不同Android系統版本必須包含的功能項目以及需支援的軟硬體能力、效能層級、安全性規定等,然後再進行CTS套件的測試。所有在CTS套件測試中產品的問題錯誤,都必須修正通過後,才算兼容於Android作業系統。

然而,目前的CDD文件與CTS套件僅屬於基礎等級的規範,提供的是能夠一體適用的測試方針,無法囊括各種必須驗證的面向,更多進階的功能性審查仍然有賴各家廠商的內部自行驗證。有鑑於此,百佳泰現階段也開始與多家大廠合作,除了持續鑽研進階自動化測試工具與程式的研發外,也針對不同大廠的Android裝置特性提供專屬的測試計劃與產品設計建議,以滿足不同廠商在各種功能項目上可能會有的兼容性驗證需求。

l 儲存媒介Storage

Android裝置通常以內嵌式eMMC作為儲存媒介,然而基於NAND Flash的技術基礎,雖然適合行動裝置使用,但也較傳統儲存方式容易出現資料漏失、效能退化以及耐受性等問題。試想,若是使用者隨手拍下的照片、臨時記下的重要事項、或是任何時間利用平板電腦製作的會議資料就這樣憑空消失,對用戶來說會是多大的損失、對產品本身的可靠度更是一大傷害。因此,確保儲存媒介的資料維護完整度,也是驗證Android裝置不可或缺的先決條件之一。

l 無線連網能力Wireless Connectivity

智慧型手機和平板電腦讓行動上網成為可能,也讓相關裝置有更多需要關注的面向,像是網路晶片的相容性會不會造成收不到訊號或是訊號微弱的問題、在機構設計上模組擺放的位置是否會造成不同訊號源之間的相互干擾而影響接收品質、接收器的靈敏度、以及作為Wi-Fi熱點時能否正常分享訊號等等,對於隨時隨地可能需要使用網路的用戶來說,可攜裝置是否具備順暢的連網能力,絕對是影響購買與否的關鍵。

l 音質Audio Quality

除了行動上網,隨時能聆聽音樂、瀏覽影片也是Android裝置的一大訴求,因此是否能提供良好的閱聽享受,便會大大影響使用者的觀感。在過去,大眾普遍對於透過手機或其他隨身裝置的影音播放能力沒有太高的要求,那是因為我們將手機的角色定位為撥打與接聽電話;但當智慧型手機出現、平板電腦崛起後,高昂的價位與琳瑯滿目的宣傳口號,讓消費者對這些產品有更高的期待,市面上也開始出現了專門設計給手機或平板裝置產品的外接式喇叭,在這樣的時勢所趨,確保音質水準優良也已成為吸引消費者的一大誘因。

我們先前的文章也曾提到過,Android作業系統的原始碼中有對音源的重新取樣(Re-sampling)設計,若是廠商並未注意並加以修改,就會導致設計出來的裝置在讀取48K Hz音源時重新取樣成44K Hz,而造成諧波失真的現象影響裝置的播放音質。根據我們實際的測試實驗結果,發現到這對於多數Android裝置的廠商來說,都是常見的通病。雖然音質驗證對於過去並非以音質為導向的裝置廠商來說,並非技術專長、也需要較高的跨入門檻,但若能及時發現問題並予以導正,絕對會是能有別於其他競爭對手的優勢。

l 效能Performance

除了以上提到的功能必須要能正常運作外,另一個值得強調的驗證項目,就是效能。同樣是Android裝置、配載相同的硬體規格,若是其中一台裝置開啟應用程式的時間耗時20秒、而另一台僅需10秒,想當然而多數消費者會選擇後者;又或者在路上突然看到想捕捉的畫面,A手機需要6秒鐘才能開啟拍攝模式、而B手機僅需2秒鐘,那麼自然是選擇B手機比較不會錯過精彩鏡頭。同樣的道理也可以應用在瀏覽網頁的速度、開機所需的時間等等,都需要被加以驗證。同時,為瞭解產品的真實效能,也可以透過標竿測試(benchmark test)的方式,與市面上他牌產品進行比較與分析,找出自家產品的強項、並強化弱項,才能知己知彼。

l 可靠度Reliability

一個產品的可靠度高低,關乎產品產生錯誤的機率高低、以及系統從錯誤中修復的能力。例如像是連線異常時是否會跳出警告視窗、多工處理時是否能夠同時開啟十數個應用程式在背景執行、程式發生錯誤時能否避免無回應或當機,甚至當機後是否能透過重開機的方式重新啟動等等。當錯誤出現的次數越多,用戶對該產品的好感度便會降低,甚至可能影響對該品牌的品質信賴度。因此,模擬各種可能的用戶使用情境、以找出可能發生的產品問題,並進行通盤性的錯誤測試,將是確保產品可靠度的必要方式。

l 功耗與電池蓄電力Power Consumption & Battery Life

clip_image011當我們提到行動裝置時,就不能不提到耗電程度的問題。不同於桌用電腦或其他固定式電子產品,行動裝置是基於沒有持續性電源供應的情況下所設計,因此,待機時間的長短就變的至關重要。若是參加一整天的會議行程,誰都不希望自己用來聯繫客戶、收發郵件或記錄工作事項的隨身裝置突然電力耗盡,因此,合理良好的待機能力便成為行動裝置的一大賣點。行動裝置的待機與各項操作可使用時間,除與電池容量有關外,硬體元件本身功耗與軟體設計都是可能的問題來源,如最近的iPhone 4S待機時間過短的問題。除此之外,持續充電後的續航力、可重複充電的次數、以及從安規角度來看電池本身電源供應的穩定性等,都是在進行電池測試時的重要項目。

l 作業系統升級OS Upgrade

最後一項不可忽略的驗證重點便是作業系統升級時的整合性驗證,當Android版本升級,廠商必須耗費心力修改韌體版本時,如何確保原有的客製化UI與所有功能正常、優化裝置效能並達到最佳狀態,且同時完成新版本的升級,便是這個驗證項目的重心。新的作業系統版本通常象徵著新功能的加入與錯誤的修正,因此要在既有的硬體規格與客製化功能下盡量維持這兩個前提便是技巧所在。作業系統的升級事實上就代表著在裝置的全功能都需要被完整驗證外,同時還需驗證升級動作是否會造成曾經實際發生過的案例:原有資料的遺失、裝置當機的狀況,事實上可以說是比產品單純導入一個新的作業系統還要來得困難、也更需要透過第三方的協助以避免驗證上的盲點。

通盤驗證 追求高品質Android裝置

綜觀市面上的Android裝置,不論是智慧型手機或是平板電腦,都算是相當晚近開發的新式產品,就目前的實際狀況看來,也仍有許多問題尚待一一克服。為協助廠商在開發上更加順利、以提供消費者更高品質的產品,百佳泰也運用多年來在網路通訊、手持裝置、儲存產品、行動運算及軟硬體整合的測試經驗與驗證能力,量身打造出最適合Android裝置的測試解決方案。

有別於單純的功能驗證,並加上了前述所有Android裝置必要的驗證重點,以避免常見的問題風險,百佳泰並透過問題資料庫的蒐集、整理,提供完整的錯誤分析,並進一步做到問題偵錯與品質提升的協助。本文僅以開放式的角度,探討目前Android裝置的常見問題風險,並分享我們的測試概念,以作為相關廠商的參考指標,希冀透過持續推動Android裝置的技術成熟與品質精進,讓消費者都能享受到更好用、更高水準的產品。

Android裝置的開發挑戰:軟硬體如何巧妙整合

Web 隨著科技的快速演進,現代人對行動通訊、無線上網與多媒體娛樂的需求更甚以往,所謂的智慧型手機(Smart Phone)便成了炙手可熱的個人消費電子產品之一,從Apple不斷推出iPhone企圖顛覆消費者對手機的想像、RIM推出主打商務功能的黑莓機、Google的Android系統讓眾家手機廠商爭食大餅,到微軟屢敗屢戰的從WinMo一路開發到WP7,智慧型手機的這塊戰場可說是打的如火如荼。然而在這些眾家競爭者中,Android可說是目前行情看俏的一套作業系統,以國際市調研究機構Gartner最新出爐2010年第三季的調查為例,採用Android作業系統的智慧型手機在過去一年以來成長幅度最高,光是市佔率便是前一年同期的七倍之多,銷售量更是達到14倍的成長,同時也一舉從市佔率排名的第六名竄升到第二名。而在今年一月份甫落幕的國際消費性電子展(CES),也處處可見各式各樣採用Android作業系統的產品。

*Gartner 2010 Q3 Worldwide Smartphone Sales
image001 image003

Android在過去一直扮演後起之秀的角色,切入智慧型手機的速度似乎慢了蘋果的iOS一步,但與Apple相同的是,它也成功的將其應用從手機移植到了平板電腦(Tablet PC)上。Android開放原始碼(Open Source)的特性,能輕易地提高廠商對自家產品的接受度,更不用提背後Google的強力撐腰能帶來多大的經濟效益。目前可見包括手機廠商HTC、Motorola、SAMSUNG,以及電腦大廠HP與Dell等皆投向Android的懷抱,Android被廣泛應用可說是勢在必行。

儘管Android系統的普及看似指日可待,但在實際的產品應用上,也有其可能產生的問題風險。Android作為一個開放式的作業系統,是Google提供廠商的作業系統參考架構(reference design),廠商能有充足的發揮空間,以Android為基礎向上開發設計自家產品,但也因為這樣的開放性與自由性,讓廠商在軟硬體結合的這個環節必須下更大的功夫,像是如何挑選合適的硬體包括基頻處理器、通訊晶片、觸控感應晶片、天線與記憶體模組等,以及如何調整出最適當的軟體設定等,更重要的是如何將軟硬體整合,開發出差異化的產品。這中間所有的細節都會對產品最終樣貌產生莫大的影響,像是其功能的完整度、使用介面的設計、效能表現(例如觸控滑動畫面、開啟程式所需時間)、品質可靠度、甚至是後續的韌體升級動作等等。在此百佳泰(Allion Test Labs, Inc)便試圖以專業中立的測試實驗室角度,來點出廠商應用Android於手機、平板電腦或其他裝置時應注意的開發重點,以希冀作為一個有效的參考資訊。


解構
Android基本技術架構

首先我們先來看到Android的基本技術架構,Android是以Linux為核心,並採用軟體堆疊(software stack)的架構延伸發展的一套軟體平台與作業系統。根據下圖可以看出,其基本架構分為五層:

  • Linux核心(Linux Kernel):以Linux開發提供最底層的核心系統服務,包括安全性 (Security)、、記憶體管理(Memory Management)、進程管理(Process Management)、網路堆疊(Network Stack)與驅動程式模型(Driver Model)。
  • Android執行環境(Android Runtime):透過Core Libraries(核心函式庫)以及暫存器型態的Dalvik Virtual Machine(Dalvik虛擬機器)來執行程式。
  • 系統函式庫(Library):使用C/C++函式庫的系統元件以供呼叫使用,開發者可透過上層的應用程式框架來運用這些功能,這也是主要Android裝置的效能關鍵。
  • 應用程式框架(Application Framework):被設計來簡化元件的再運用,開發者能完整存取使用與核心應用程式(Core Application)相同的API,應用程式可以發佈功能並為其它應用程式所使用(需受限於其安全性限制),開發者也可運用同樣的機制來新增與置換元件。
  • 應用程式(Application):所有Android應用程式皆是以Java程式語言編寫,原始就會包含像是Email、簡訊、日曆、地圖、瀏覽器、聯絡人等其它應用程式,讓使用者一開始就擁有這些基本功能,開發者也可在此客製其使用介面。
*Android Structure by Google
image005拷貝

廠商越想要設計出與原始設定不同且增強效能的產品,便越需要對這五層架構進行修改。譬如像是多工處理能力(multi-tasking),便可能需要修改包括Linux核心與應用程式框架的設計;而應用程式的開發者更可能需要針對應用程式與框架進行調整。由此可見,對Android裝置而言,任何一個功能的置入或是對硬體設定的細微更動,都需要對Android系統進行從下到上的調整以達到最優化的效能,而這正是最為困難與需要驗證的一環。


Android
裝置軟硬體整合的五大技術環節

如前所述,對眾家開發廠商而言最大的挑戰其實在於,如何將自己理想的產品訴求,與Android系統巧妙結合成一個功能完整並使用流暢順手的產品,這其中牽涉了不同技術間的整合與運用。在此我們便根據其多年的測試與研究經驗,歸納出五大Android相關裝置在技術整合上的重要環節:

image007拷貝

一、Linux驅動程式的導入

由於Android是根源於Linux所延伸出來的作業系統,因此各種關鍵功能的驅動程式也必須要能順利的寫入其中,舉凡像是字元裝置、記憶體的空間配置、中斷處理、網路通訊、螢幕顯示或是連接介面像是USB與PCI的驅動程式,這些可能是自行撰寫、或是來自不同元件廠商的驅動程式,都必須要能被導入到Android系統,並維持良好穩定的效能表現。

二、系統單晶片的優化處理

對廠商而言,開發一款Android裝置,不僅僅只是將所有零組件組合成為一個產品那麼容易,最大的學問便在於將系統單晶片(System-on-a-chip,SoC)、各種新技術和Android系統進行整合,SoC涉及像是Dalvik Virtual Machine、OpenGL、V8、Webkit Engine等上層的演算,與Android間的結合便必須透過不斷的嘗試與驗證,才能研發出既符合成本效益、又有良好效能的優化產品。目前市面上有些SoC廠商已針對Android系統的特性,提供整合過的SoC平台,將藍牙、相機或上網等常用功能模組預先寫入,減少終端成品廠商費力整合開發的時間,但對廠商而言,這樣的預先整合是否適合自身產品,以及是否需要再作更細緻的修改,則又是更困難的課題。

三、新技術的移植

隨著技術的快速發展,更多新興的技術規格也逐漸應用在手機等手持裝置上,以手機為例,已經從過去以撥打電話為主要功能,轉變為擁有各種多樣化用途的產品。像是觸控技術讓消費者可以透過手指的滑動傳送指令甚至是具備多點觸控的支援、Wi-Fi模組提供隨時無線上網的可能、通用圖形處理器(General-purpose computing on graphics processing units,GPGPU)則能以並行方式透過圖形處理器來執行通用計算任務、Android 2.3版所支持的NFC近場通訊技術,以及更高階的相機模組等等,背後都有各自的驅動程式與軟體技術,也必須要與Android系統相結合使用。

四、效能表現的穩定

儘管上述這些技術不斷推陳出新,但也都不能因此而犧牲裝置原本的效能表現,讓處理速度因此變慢或造成使用上不順暢的狀況。除了採用更好的硬體設備外(例如現今處理器的時脈已邁向1GHz),更需要作業系統的支持,像是如何在多工運作的狀況下維持程式執行速度以及系統滿載的處理等等,都必須要透過軟體面的奧援。也就是說,一台Android裝置除了要能將各種功能與技術收納起來、將軟硬體整合外,更必須同時注重它在效能上能否維持應有的水準,以提供使用者在操作上流暢易上手的感受。

五、低電耗設計

Android的設計概念主要是應用於可攜式裝置上,目前市面上可見的像是平板電腦與智慧型手機等。對這類產品而言,電池續航力的好壞可說是影響消費者使用感受的關鍵之一,試想,若是一台智慧型手機的待機時間過短,而使用者在外時又無法隨時充電使用,不能即時的連網查詢資料或執行其他手機功能,這樣的產品便失去了它作為可攜式行動裝置應有的便利性。追根究底,良好的待機時間除了需仰賴高容量的電池以提供充足電力之外,另一個重點就是裝置本身在被使用執行時能否作到低電耗設計。Android裝置讓使用者能透過各種多樣化的應用程式,來達到各種不同的使用目的,舉凡像是單純上網、觀看新聞、郵件推播或是遊戲等等,各種不同功能的程式都能透過自由下載使用,也由於其多工處理與讓程式背景執行的能力,更讓降低耗電量成為開發者不可輕忽的一項課題。


持續驗證修正
找出最佳Android整合方案

正如前面我們不斷提到的,對Android裝置而言,最困難的開發挑戰便在於如何完美地”整合”軟體與硬體,以開發出一項功能完整又同時注重使用者感受的產品。從對Android本身程式碼的修改、相關硬體的選擇,到驅動程式的結合運用以及能否維持穩定的效能表現等,在在都必須要透過仔細的研究與不斷的嘗試,才能找出問題的根源並解決、更進而找出最合適的整合方案。

image009拷貝

附圖我們歸納出一些在Android裝置上經常出現的問題與其可能肇因,而這些也都是開發廠商必須重視卻可能忽略的一環。像是Android原始碼中對音源的重新取樣(Re-sampling)設計,就會導致裝置在讀取48K音源時重新取樣成44K,而造成諧波失真的現象影響音質,這便是廠商不會注意到而未去修改的問題;另外像是天線位置的設計,也可能直接的影響到收訊能力的好壞;而不良的電源管理設計,也極有可能影響到裝置在持續使用狀態中的耗電情形。百佳泰在此僅以專業測試驗證實驗室的角度,希冀以宏觀的方式,針對Android裝置的開發設計提供可用的參考,近期內我們也將會提供實際的相關測試數據報告,並進一步指陳這些可能的問題風險,以期讓更多廠商與消費者都能注意到品質驗證的重要性,是從產品設計的根源就要開始層層把關。