【企業顧問咨詢】為您的產品選擇作業系統解決方案

你將為自家的產品,選用什麼樣的作業系統?我想,這年頭,不外乎是 Android。但是,可能不是最佳選擇。

我想大多數人都會同意,由於智慧型行動裝置的掘起,Google Android 在業界大放異彩,使用 Linux 作業系統核心的 Android,實現了許多華麗的UI,也讓眾多廠商取得入門門票,有機會與 Apple iOS 一爭長短。許多人都相信,未來是 Android 的天下,除了手機要用 Android,電視要 Android,救人一命的醫療器材也要用 Android,所謂的 Android anywhere 是終極目標。

不過,經過這幾年下來,許多人發現這不過是我們資訊科技業一廂情願,有太多的領域是難以使用 Android,如工控市場等,無論是以穩定、價格、移植維護成本考量的因素,都可能是無法使用 Android 的重點。因此,如今要選擇作業系統解決方案,又變成一個需要思考的難題。

筆者擔任顧問時,每當面對客戶躊著於這個問題時,我總問他們幾個大問題:
  1. 你們的產品用途是否單一且單純?是否要有讓使用者自行上網安裝其他第三方軟體的擴充性?
  2. 你們的產品是否為消費行電子產品?是否需要高可用行和高穩定性?
  3. 你們的軟體需要有華麗特效的 UI 嗎?你們現在擁有的人員有哪些開發 UI 程式的經驗?
  4. 有網路的需求嗎?如果有,需要哪些需求?Ethernet、Wifi、3G?
  5. 計劃中的產品硬體規格?
  6. 有多少規模的人可以參與開發?

很明顯的,對於手機和行動裝置業者是這樣的答案:(他們都會選用 Android)
  1. 用途不單一,需要讓使用者任意自行上網安裝軟體。
  2. 是功能複雜的消費性電子產品,所以客戶多多少少能接受偶爾當機
  3. UI 需要有華麗的特效。開發人員都熟悉並使用 Java 的經驗。
  4. 有所有網路的需求。
  5. 擁有一定等級以上或是當前最頂級的 ARM 處理器。
  6. 最少數十個,多半是上百人甚至上千人的研發人員。


如果你是『非手機』和『非行動裝置』業者,你的產品可能不完全具備這些條件。建議您,一旦有任何一點不具備,請慎重考慮是否使用 Android 還是有機會選擇其他的解決方案。

而當前的解決方案主要常見有三種:
Android
Linux + Qt Framework
Linux + Own Application

限於篇幅,太細節的評估無法一一列舉,也要視實際狀況而定,但這邊有個簡易的初步評估方法可以提供參考:
檢視產品的用途是否單純

如果你的產品用途不單純,應用不單一且不易規範使用範疇,Android 會是你首要的選擇。

此外,假設你們的產品用途非常單純,又或者是功能並不複雜,建議您可以採用非 Android 的解決方案。理由如下:
  1. Android本身有許多公認的問題,運氣好沒事,運氣不好這些問題都需要自行解決,由於可能出問題的範圍相當廣,要確保有足夠資源處理這些問題。
  2. Android有太多版本且隨時可能會有更新和問題修正,再加上上述問題,開發過程中不可能不追加資源去跟進或監視 Android 當前的狀態。
  3. 如果從產品開發開始到開發結束,都需要人力資源去維護和跟隨,這無疑是一種人力上的消耗。
  4. 到此為止還沒提到正題,產品本身應用的開發,在處理好以上問題之後,才開始準備進入正軌。

很多人常說,使用 Android 開發產品的時程是 Debug 的時間比寫軟體的時間多,有時甚至多達 10:1 都不為過。對於行動裝置廠商來說,整個系統就是產品的整體,花大量資源去維護可以說是理所當然的,但是對非行動裝置廠商來說,這就是額外的開銷甚至是條不歸路,除非您也想找筆者救火(但是筆者當救火員的日子可能不多了,笑)。

後記

如果您也正在煩腦選擇作業系統的問題,希望這本文能幫上忙。

留言

這個網誌中的熱門文章

有趣的邏輯問題:是誰在說謊

Web 技術中的 Session 是什麼?

淺談 USB 通訊架構之定義(二)

淺談 USB 通訊架構之定義(一)

Reverse SSH Tunnel 反向打洞實錄