Android 碎片化的爭論由來已久,從 Android 2.x 時代就已經開始出現,直到如今 Android L 現身,有人認為這是和 Android 繁榮休戚相關,也有人認為,開發者是在含淚在調整讓它適合各種設備。
▲圖片來源
說起來,人們口中的 Android 碎片化主要表現在 Android 品牌和機型眾多,Android 版本眾多和 Android 設備的尺寸和解析度眾多。奇怪的是,討論 Android 碎片化的往往不是默默寫程式碼做調整的開發者們,這一次,一個開發者坐不住了,親自來談這個在網路流傳多年的迷思,Android 設備的螢幕尺寸也並不是什麼大的障礙。
出品過 Pocket Casts 等遊戲的開發商 Shifty Jelly 的聯合創始人 Russel Ivanovic 在他的部落客裡分享了自己的看法,事情的由來要從一張流傳甚廣的圖片說起:
上圖每一個方框代表一種 Android 設備的螢幕,顏色越深,這種尺寸的螢幕也就越多。也就是說,Android 開發者理論上需要調整產品去符合上圖中的各種螢幕。對於我們大多數非開發者而言,看到上圖不免要深深地同情起 Android 開發者,默默地拿出錢包請他們吃飯。但是 Russel Ivanovic 表示,別矯情了,他們過得挺好:
「說實話,那不是很難,(為 Android 設備開發app)並沒有大多數人想像的那樣讓人頭疼。Google 早已經給了我們介面視圖佈局工具,你可以自訂一種或多種介面視圖,以適應不同尺寸的設備。如果你還想更精益求精,那麼你還可以只保留一種程式庫而盡可能多的調試更多的視圖。這些都是可延伸標記語言(XML),並不存在於你的程式碼之中。如果你是一個 iOS 開發者,它就如同 iOS 中的XIB 文件。也有一部分人還沒意識到,Android 已經標準化設備解析度很長一段時間了。」
去年的 Google I/O 大會上,Google 也發佈了開發者工具 Android Studio,使工具的開發模式更加的豐富便捷,提供多尺寸預覽,側欄查看顏色、即時效果預覽等功能。
雖然也有資深開發者認為只有沒寫過程式碼的人才會相信 Android Studio 真的能好用,但是有總比沒有好吧。
Russel Ivanovic 挑選了最為常見的 10 款 Android 設備,運行 Pocket Casts 來展現遊戲在不同 Android 設備的介面差異,這幾款手機的顯示幕解析度分別為:
- 720 x 1280
- 768 x 1280
- 800 x 1280
- 1080 x 1920
- 1440 x 2560
據此,Russel Ivanovic 發現,開發者為不同的 Android 設備和不同螢幕進行匹配比想像中簡單很多。不過這也僅限於 Android 手機,Android 平板並未計算在內。
對於 Russel Ivanovic 和他的 Shifty Jelly 來說,適當捨棄也是對抗 Android 碎片化的秘密武器。
以最新的 Android 版本占有率統計來看,Android 4.0 以下的占有率已經不及 15% 了,因此,Russel Ivanovic 認為,Android 4.0 以上版本的前景明顯更好,因為 Android 非常巨大的市場占有率,他們完全可以忽略掉還在使用 Android 2.3 的用戶,轉而聚焦 Android 4.0 以上的用戶。這種情況也發生在 iOS 上,Russel Ivanovic 支援 iOS 7 及以上系統,老版本遭到了無情的捨棄。即使放棄這部分較低 Android 版本的使用者,Android 的用戶基數還是大於 iOS。
對於 Russel Ivanovic 所說的 Android 在標準化解析度的說法,從這一兩年的新機發佈來看也是所言非虛的,中低階 720p,高階的 1080p 以及 2K 螢幕相對統一許多。至於老舊的 Android 2.x 版本,為了效率的開發者也就只能放棄了。
所以,這次開發者現身說法,螢幕尺寸、螢幕分辨率的碎片化的問題在 Russel Ivanovic 看來並不是什麼大不了的事。
1.4.0推出的兩年間完全不動大版號
2.算版本分佈率的時候把4.x都算在一起
重點是手機規格也都碎片化
光是自走銅鑼針對不同解析度做符石校正就快讓作者忙翻了
還要針對平板做螢幕方向偵測
扣除掉螢幕大小
更不用說某些手機記憶體不足
複雜度跟步數要改低
某些手機CPU不夠力無法暫停遊戲
主角技就得跳回桌面運算
這些只是開發
後續的小BUG還得不斷地搜集每一個機型的錯誤回報做修正
Google以為只要不動大版本號
這一切就會自然煙消雲散似的
鴕鳥心態實在不可取。╮(╯_╰)╭
啊......我忘了,現在Google都是兼職工讀生在管事╯-__-)╯ ╩╩
常常很多開發商以為自己做了一個Android App可以擁抱很大的市場,但是若扣掉跑不動的型號,或是跑出一對怪問題的型號,真正抱到的市場並沒有iOS的大。
講回螢幕,就算有9-Patch的圖,也只是解決了UI的一層問題而已。你要每個圖像都以完美的滿屏來呈現,面對那麼多不同的aspect rato,也只有慢慢"兔"的份~
╮(╯_╰)╭
Shifty Jelly也不是遊戲開發商
android 的各種 layout 的彈性其實非常的大。
有好好的 plan 的話,自已也是認為如吃飯一樣簡單。
改底層,做自以為 smart 的事情的某幾間公司。
(某銀河系列問題多,每代都不同。某日出國的各廠商的也很多問題)
之前做遊戲碰 NDK + openGL。build min/max 改了之後就無法執行。
比如說某 wxlkman 大廠的裝置會音效延遲。
這個真的需要讓那幾間(消音)比較快。
有人想看影片、有人想單手操作;有人閱讀文件在意螢幕清晰、有人只是拿來傳訊息,就可以把解析度這一大成本省下。
果粉只能強迫自己迎合iPhone的規格而已,還得說服自己手上這支是最好用的。