移動端兼容性討論

問題

技術(shù),包括開發(fā)和測試,與產(chǎn)品之間,關(guān)于兼容性問題經(jīng)常出現(xiàn)爭論。兩者的訴求往往是相反的。
產(chǎn)品:最好是全覆蓋,兼容的版本越低越好;
技術(shù):有時候一個功能,需要針對不同版本寫幾套代碼;測試要準(zhǔn)備一堆手機;少兼容一個版本,可以少做很多工作。
在兼容性和成本之間,如何達到平衡?
這個就需要技術(shù)和產(chǎn)品之間好好商量,相信能達到一個好的妥協(xié)。

如果運氣不好,遇到不講理的產(chǎn)品,(概率比較低),那么技術(shù)就要苦逼了。兼容性,基本上都是重復(fù)勞動,枯燥而乏味,純粹的成本,是精神和金錢的雙重損失。比如,開發(fā)就可能要做給XCode打補丁這種無聊的事情。Xcode8 支持 iOS7及以下版本

標(biāo)準(zhǔn)

主要是操作系統(tǒng)版本,手機型號兩個;對于安卓來說,再增加一個廠商;

舉個例子:

iOS:
操作系統(tǒng): iOS9及以上
手機型號: iPhone6及以上

Android:
操作系統(tǒng): Android4.0及以上;(API Level15以上)
手機型號和廠商: 華為、小米、魅族、VIVO、OPPO等品牌三年內(nèi)主流型號
中興、聯(lián)想、一加、錘子等品牌兩年內(nèi)主流型號

像這樣說,雖然不夠精確,但是好處是大家都能夠看懂。

開發(fā)

  • 將開發(fā)工具,iOS是XCode,Android是Android Studio,升級到最新版本
  • 設(shè)置最低支持的版本號
  • 根據(jù)要求的機型,適配屏幕尺寸
  • 根據(jù)相應(yīng)的分辨率,從UI那邊要不同的圖片資源,放到工程合適的地方
  • 檢查業(yè)務(wù)代碼,在需要的地方,根據(jù)不同的手機系統(tǒng)版本,采用不同的API實現(xiàn)相同的功能
  • 檢查使用的第三方庫,看兼容性是不是符合要求。這個一般問題不大,不過不符合的話,都是比較頭疼的問題

注意: 對于Android來說,具體支持那些廠商,哪些機型,開發(fā)并不能夠指定。之所以會出現(xiàn)兼容性問題,是一些廠商的機型的屏幕尺寸比較特殊,對于給定的圖片顯示不好,或者提供的系統(tǒng)API功能實現(xiàn)上有缺陷。

測試

以上面的iOS為例子,看上去好像不多,但是要做到全覆蓋還是不現(xiàn)實的。比如iOS9也分為好幾個小版本,再跟不同機型組合一下,情況也很多。另外,蘋果對于碎片化控制比較嚴(yán)格,支持往上升,但是不支持版本往下降。
所以,一個推薦的做法是將兼容性分為A、B、C三個等級;A類屬于重點支持,功能和UI兩方面關(guān)注;B類屬于有限支持,重點在功能,UI方面放寬要求;C類屬于關(guān)注類型,不做兼容性要求。
以iOS為例:
A類: iPhone X + iOS11.; iPhone8 + iOS11.; iPhone 7 Plus + iOS10.; iPhone 6s + iOS10.; 自己團隊的測試進行人工驗證;
B類: 以兼容性要求,“操作系統(tǒng): iOS9及以上手機型號: iPhone6及以上”,找一家云測試服務(wù)商進行自動化測試
C類: 上線后收集用戶反饋,根據(jù)實際情況,調(diào)整A類和B類的列表

覆蓋率

  • 要求100%的覆蓋率是不現(xiàn)實的;

  • 一般情況下,有90% ~ 95%的覆蓋率就差不多了;

習(xí)慣上,年輕人2年就會換新手機,換下來的老款,給父母用了;那缺失的5% ~ 10%一般都是非活躍用戶,價值很小。

image.png

根據(jù)這張圖,當(dāng)前,只要重點支持iOS11和iOS10兩個版本就可以了。

  • 國內(nèi),統(tǒng)計中國用戶量的分布,這個有一定的參考價值。只是,目前還沒有比較有公信力的網(wǎng)站,所以不能作為主要依據(jù)。比如:2018年2月,中國iOS各版本占有率(份額)排行榜:iOS 11.3第22
    騰訊移動分析

  • 自己的統(tǒng)計結(jié)果。這個可以作為主要依據(jù)。一般的移動應(yīng)用,都會有專門的用戶統(tǒng)計模塊,一般是集成第三方庫,比如免費的友盟統(tǒng)計就很好用。根據(jù)后臺數(shù)據(jù),需要支持的系統(tǒng)版本和機型就比較清楚了。這是應(yīng)用自己的數(shù)據(jù),應(yīng)該重點關(guān)注。

經(jīng)驗規(guī)律

以iOS為例:

  • 重點兼容兩個版本,比如當(dāng)前,重點兼容iOS11和iOS10

  • 有限支持第三個版本,比如當(dāng)前,有限支持iOS9

  • 需要支持的機型,從蘋果官網(wǎng)可以看出來。還在賣的機型,一般要支持。

image.png

從這里可以看出,iPhone X, iPhone 8, iPhone 7, iPhone 6s, iPhone SE這幾個機型應(yīng)該支持兼容性

  • 蘋果公司提供的開發(fā)工具XCode,升級到最新版本,里面有支持的iOS版本和具體機型,這個代表了蘋果公司對兼容性的態(tài)度,很有參考價值。

  • 根據(jù)產(chǎn)品所處階段和用戶數(shù)靈活調(diào)整兼容性需求
    初創(chuàng)階段:
    上線時間少于1年,或者用戶數(shù)10w以下;
    偏重節(jié)約成本,集中資源打磨產(chǎn)品,覆蓋率80%左右;
    以iOS為例,只要適配iOS11就可以了;
    發(fā)展階段:
    上線時間少于2年,或者用戶數(shù)100w以下;
    成本和覆蓋率平衡,覆蓋率達到90%以上;
    以iOS為例,需要適配iOS11,iOS10;
    成熟階段:
    上線時間大于3年,或者用戶數(shù)100w以上,還沒有突破1000w;
    偏重覆蓋率,覆蓋率達到95%以上;
    以iOS為例,需要適配iOS11,iOS10,iOS9;
    獨角獸階段:
    用戶數(shù)突破1000w;
    覆蓋率作為一件重要事情來抓,增加資源投入,覆蓋率向100%方向努力;
    以iOS為例,需要適配iOS11,iOS10,iOS9;iOS8看活躍用戶數(shù)占比評估是否支持;

H5兼容性

大多數(shù)情況,移動APP是混合結(jié)構(gòu),APP通過UIWebView(也就是常說的內(nèi)嵌瀏覽器,iOS是Safari,Android是chrome)來調(diào)用H5頁面,所以不需要單獨考慮。
當(dāng)然,如果是H5插件,寫出的頁面不是通過App訪問,而是通過瀏覽器形式訪問,那么還需要額外考慮瀏覽器的兼容性。比如UC瀏覽器,QQ瀏覽器,百度瀏覽器等等。

大公司的態(tài)度

  • 蘋果:不重視兼容性,留出一定的時間,等待客戶升級最新的操作系統(tǒng)版本,更換硬件設(shè)備。對于碎片化的控制很好。在移動端,是無可爭議的老大。在PC領(lǐng)域增長很快,全MAC開發(fā),成了很多公司吸引人才加盟的一個有效手段。
  • 谷歌:不想考慮兼容性,然而由于對于Android系統(tǒng)控制力弱,導(dǎo)致碎片化嚴(yán)重,很無奈的感覺。Android里面做的比較好的廠商,比如華為,基本上也是在向蘋果學(xué)習(xí)。比如主流機型P20,P10,跟iPhone真的很像。
  • 微軟:很重視兼容性。特別是PC時代,一個API,由于兼容性,可能有10多個版本,讓開發(fā)者很是討厭。在移動端,幾乎退出了競爭。在PC領(lǐng)域,面對Mac的進攻,也基本沒什么好的方法。IE,在前端領(lǐng)域,幾乎成了頭疼的代名詞。Windows版本,已經(jīng)不是碎片化的問題,是有些機子,是根本不會考慮升級系統(tǒng)的問題了。

折中方案: 在覆蓋率和成本之間找到一個平衡點

參考文章

ios用戶系統(tǒng)占比研究-老鐵,是時候干掉 iOS8 了!
iOS系統(tǒng)-官網(wǎng)統(tǒng)計
對于不同iOS系統(tǒng)的兼容性探討
Android兼容性測試
Android版本兼容性問題

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,203評論 3 119
  • 創(chuàng)業(yè)會變成多普通呢? 就像去麥當(dāng)勞肯德基吃個漢堡那樣普通。 當(dāng)一個人安排自己的職業(yè)規(guī)劃時,創(chuàng)業(yè)就像考公務(wù)員、校招、...
    Larissa閱讀 489評論 0 0
  • 人這種生物就是在磨難與困苦之中,跌跌撞撞飽受挫折之后才會逼著自己成長。也許是因為父母的原因,從小就特別在意別人的眼...
    長眠于星海之中閱讀 605評論 0 0
  • 1、面試越麻煩的公司越好,越容易通過的公司,往往越?jīng)]有實力。 如果你去面試,面試官只有一個問題,說:“看到那邊的麻...
    萬能的老J閱讀 438評論 7 6
  • 我默默地彳亍著 卻舉步維艱 沉重的枷鎖 將我束縛地氣息奄奄 滿身的傷痕 還沒有消退 便已忘記了 疼痛的滋味 我用匕...
    f不忘初心閱讀 198評論 0 1

友情鏈接更多精彩內(nèi)容