不用是工程師,也應該要懂的Android破碎化

馬在飛科技
Oct 17, 2020

--

不用是工程師,也應該要懂的Android破碎化

大家好,我是馬在飛的馬。

如果你是Android的使用者,你是否有過這樣的經驗,同樣一個APP的某個功能或是畫面,在你的手機上無法順利操作或是出現破版,但在別人到Android手機那裡就沒有問題?恭喜你遇到了Android開發者最大的痛點-破碎化(Fragmentation)。

Android和iOS有什麼不同

智慧型手機的作業系統iOS與Android之外,其實還有其他的作業系統,如黑莓公司的BlackBerry系統、微軟公司的Windows Phone系統,雖說如此,但iOS加上Android就已經有近乎99%的市佔率。

那你認為iOS和Android誰又更受歡迎一些呢?雖然我們都知道果粉把Apple當偶像在崇拜,也很熱情的支持蘋果相關產品,但Android的使用量其實比蘋果高出非常多,依據2019年4月的調查,Android OS的市佔率高達74.8%。

是什麼讓他們有這樣的落差?iOS與Android最大的不同,在於蘋果是一個封閉的體系,但Google的Android卻是一個開源作業系統,簡單來說,只有蘋果可以使用iOS作業系統開發手機,但其他手機廠商,他們都可以使用Android來開發自己品牌的手機,這就是為什麼,有那麼多生產Android手機的廠牌,但iOS就僅有Apple一家。

在截然不同的商業理念下,造就iOS和Android不一樣的生態體系。iOS雖然市佔率低於Android,但因為可以有效的控管各種規格與規範,因此iOS的手機的品質與效能普遍優於Android手機,而蘋果手機也以更優雅、更簡明的設計風格,與Android手機的大眾化做出區別。相對於iOS手機聚焦於菁英市場,Android手機的分佈就廣泛的多,也更為大眾化,透過開源的資源,各家手機廠牌可以依據手機聚焦的市場,去做調整修改,以符合預期的成本與受眾。也因為如此,Android手機的價格可以比iOS親民許多,而不同品牌的Android手機的互相兼容性也高,而Android更為「大眾化」的UX風格,也比蘋果手機好上手。這就是為什麼蘋果手機雖然有著更好品質的優勢,但Android仍然是大多數人選擇使用的作業系統。

刻板映像中的果粉?文青?商務人士?有錢人??刻板映像通常是有原因的

什麼是Android破碎化?

但Android這種開放的特性,也造成了品質較參差與破碎化的問題。剛剛我們提到,各家手機廠牌可以依據自己的成本和市場,去做調整修改Android的開放資源,在2014年,支援Android的機型就高達18,7965種,雖然都屬於Android系統,但表示市場上有1萬8千多種Android版本!而Android的更新又快又多,對這些不同的Android版本,每次更新可能造成新的衝擊,破碎化的情況越加混亂。除了作業層面的,Android手機的各種螢幕尺寸也造成了破版的問題,不同於iOS僅有幾種手機螢幕尺寸,但Android各家品牌卻有超多種不同的螢幕尺寸與解析度,很難涵蓋齊全。

有這麼多的機型、解析度加上不同Android版本參和,一份沒有問題的Code,在不同手機上卻可能出現不同的結果,套件缺少、版面位移、系統不支援等等問題層出不窮。但Android的市佔率之高,在開發新的APP時,不太可能略過Android,但是Android破碎化的亂象,卻也總是讓開發者困擾,也造成專案的成本上升,耗費大量時間進行調整與修正,卻也難保在另外一台Android手機上,又發生不同的問題。

不過讓人欣慰的是,Google也一直希望解決這個問題,Google已經宣布將於Android11開始,要求OEM(Original Equipment Manufacturer)硬體廠商採取分區更新設計,同時讓Android內部元件可以拆分更新。透過這種新的方式,希望在手機版本汰換的過程中,慢慢降低更新造成的破碎化問題。

Android大約可以算是「二次創作」的極致了

從專案管理角度,關於破碎化可以做什麼?

除了工程師在開發上,有一些小技巧可以降低破碎化的發生外,從專案管理的層面來說,我們也可以透過事先了解APP目標受眾愛用的手機款型,去降低破碎化造成的衝擊,例如:在Android市場,Samsung的手機是佔大宗 ; 年紀較大的使用者,可能手機還留在較舊的Android版本 ; 年輕人則相反,若APP主要的推廣市場在中國大陸,則特別需要多加留意,因為中國的白牌手機種類繁多,在手機製作的過程中,可能為了Cost-down而有較大的改符,會讓破碎化的情形更加嚴重。預先收集相關資訊,有助於在專案初期,先了解後續可能會要面臨多大的破碎化風險,以及可能需要的測試成本。

另外也需要認知到,作業系統的版本一直在更新中,舊版本的手機只會越來越少,所以有時候還是要有適當的取捨,避免投入過多資源在修整可能快被淘汰的手機版本,才是對產品更好的選擇。所以當比較有經驗的外包軟體商,再進行訪談時,會訂下最低作業系統版本,以及Android測試機型上限時,這都是正當和正確的專案管理態度,不用覺得太驚訝喔!

使用Android手機
據說知名F社交軟體大力鼓吹員工使用Android手機,畢竟Android市占率極高,又能直接透過員工涵蓋到更多Android機型的測試

結尾

不知道你遇過最奇妙的Android破碎化情形是什麼?我有遇過「送出」在不同解析度螢幕上消失的情況,或是在特定款型手機上按鈕完全沒反應。下次遇到,不要太急著怪罪工程師,先確認一下是不是破碎化,要怪就怪Google太大方了吧!

如果你有相關經驗可以分享,歡迎留言並分享我們的文章,我們也很希望和更多人討論軟體專案開發和管理的經驗、想法!讓我們一起為了更好的未來努力!

若你有軟體開發或專案管理的需求,請點擊此並留下你的需求,我們會盡快與你聯繫

前往馬在飛科技官網

--

--

馬在飛科技

不要浪費錢買 Output(產出),你要的是 Outcom(結果)! 客製軟體要花不少錢,但你知道你買的是什麼嗎? 你以為就是 APP/網站?其實不然,你真正需要的是達成目標,目標可能是:增加收入/提高回客率/降低成本...等等,APP/網站只工具,目標才是你真正花錢買的東西。立即洽詢馬在飛科技,找到產品成功的秘訣。