小米應用商店資源質量是如何控制的?有沒有什麼系統的做法?人工檢測是一方面,其他呢?有什麼更好的建議?

隨便聊聊,謝謝


謝邀 :)

請勿以任何形式轉載

背景:

MIUI初期曾經有一個叫做「應用超市」的產品,當時主打的是發燒友分享的概念,隨著用戶對應用質量要求的提高,這種產品模式無法滿足大家的需求,於是誕生了新的小米應用商店。

我是2012年-2014年小米應用商店負責人。下面回答是當時的狀況。

作為系統級的應用商店,小米應用商店從開始就要解決題目中的問題,應用質量如何控制?在2012年,安卓App比現在更加混亂,市面上充斥著各種重打包的App,用戶無從分辨什麼哪個APK是可靠的,這樣的生態環境會直接影響用戶對MIUI的信賴。要解決這個問題,其實重要的一點就是讓生態環境更好,我們從如下幾個方面入手。很多現在看來理所應當的事情,當時也經歷了大量的討論。

首先,系統機制上限制不正當行為,遵守Google定義的App規範。

1. 同一個包名(Package Name)在商店裡只允許存在一個

Package Name是Android app在商店中的唯一標識,只存在一個是理所應當的。在當時的環境下,有大量盜版/漢化遊戲,是國內網友重新打包過的,如果採用唯一標識的策略就意味著無法同時收錄漢化版/破解版/無限金幣版,討論的時候也有人舉起了「用戶需要」的大旗,但是我們還是堅持住了。這樣的好處顯而易見,用戶不需要通過一個莫名其妙的「官方」/「原版「之類的標識去判斷是不是這個App是可靠的。

2. 開發者只能將App升級成更加新的版本,不允許版本倒退,也不提供舊版本下載

這個聽起來也有點神奇是吧?為了這個事兒,我還特意寫了科普文章,Android運營基礎知識:VersionName和VersionCode ? Bloody Sunshine 。當時又有人舉起了「用戶需要」的大旗,關於為什麼不能版本號倒退在文章里說清楚了。不能提供舊版本下載是因為,我們始終相信大家都在把自己的產品做得更好,如果新版本有問題也會被下一個新版本修復。守在某箇舊版本上,對生態圈變得更好沒有幫助。版本倒退通常還會帶來資料庫兼容的問題,導致FC和丟失數據。對於實在不想升級的用戶我們設計了一個長按可以忽略某個新版本的高級功能。

其次,建立有效的App上架流程

一個App在小米應用商店發布要經過如下過程。

  1. 系統自動拆包解析:使用Google官方的開發者工具,對APK文件的內容進行確認,包括manifest內容,包名/簽名校驗等。
  2. 安全掃描:我們搭建聯合主要的幾家安全廠商,搭建了一個內部使用的自動安全掃描平台,如果掃描結果是有惡意植入內容的話,將會被直接駁回。
  3. 兼容性測試:同時,我們還有一套自動化測試農場,裡面有小米/紅米系列的主流機型和系統組合,App要先通過不同機型版本的自動化測試(Monkey),保證可以安裝,不會FC或者ANR。
  4. 人工審核:通過上述三步的App,就進入人工審核隊列。每一個App的每一個版本都會經過人工審核,按照小米應用商店應用審核規範,檢驗一些機器無法判斷的問題。比如是否能正常註冊/登陸/完成主要功能;是否含有色情暴力元素等等。

這樣,完成了應用上架。

此時,我們擁有了一個這樣的小米應用商店:每一個應用,都是我們信任的同事挑選過的,有用的,可以放心使用的應用。

在此基礎上,結合編輯們的品味/數據/時下熱點等進行應用推薦。

重申:這是2012-2014年的情況 :)


國內應用商店都是婊子 給錢就能上!不信你下載個交友軟體 全是詐騙的!


推薦閱讀:

App Store 開始支持舊款 iOS 設備下載更舊版本應用,這有何影響?
為什麼蘋果不把 OS X 上的 App Store 做成像 iOS 上那樣的封閉商店?
今日頭條為什麼被蘋果APP Store下架了?
第一個上架 App Store 的應用是哪個?

TAG:AppStore | 應用商店 |