智能驗機迭代一年超越競品,什么方案如此神奇?
最近一直在迭代二手手機智能質檢工具的相關業務,從開始研發到現在已經經歷了一年有余的時間,我們自研的「驗機俠」在最近的幾次對比測試過程中,通過人工實物復核結果,準確率已經超越競品「某思」。那到底是怎樣可以快速趕超競品呢,今天就和大家一起聊聊!
介紹?
買了手機用1年打算再換新,會不會有這樣的疑問:“我的手機現在是什么成色?這個成色還值多少錢?”。
二手手機交易市場,“妖魔鬼怪”橫行,如果不踩坑,想賣個好價錢,首先要經過的就是手機質檢。但是大家可否了解,一臺小小的手機,通過人工檢測,大大小小60余項,從開始到結束大概20分鐘。這里還要拉齊質檢標準,考驗質檢師的個人行業經驗,才能產出質檢最終的報告結果。
為了提升驗機效率,且保證驗機的準確性和質檢標準,最好的方法就是用工具解放人力。來看個直觀的例子,整個驗機過程中基礎項和拆修項相關信息就「60余項」,如果全部人工檢測需要接近「20分鐘」。
可是我們如上圖通過一根數據線,一端連接手機,另一端連接電腦,「幾秒鐘」就可以直接得到每臺手機的專屬質檢報告,并將報告應用在業務售賣的場景中。部分質檢結果一目了然,其余的外觀項等只需質檢師看看仔細觀察即可。驗機報告如下圖:
既然是智能質檢,那就少不了我們自研的智能檢測工具「驗機俠」,目前支持Windows版、Mac版和Android版。我們也已經和富士康深度合作,質檢報告也獲得了「富士康官方的權威認證」。試用階段還可以解鎖專業驗機報告,官修機、妖機、丟失機、擴容機等十幾種設備狀態以及主板、基帶、硬盤底層信息被修改過的設備統統原形畢露!
技術全景?
1. 解題思路?
基于上面的訴求,我們如何解題呢?我認為核心要解決以下幾個問題:
- 質檢師經驗帶來的判斷失誤,沒有標準化的工具輔助;
- 檢測項多易犯錯,人為系統錄入失誤率較高;
- 每個人對質檢標準理解的不一致問題(例如,屏幕老化算不算發黃)。
為了解決這些問題,當時也是實際下業務去體驗、去感受。我先后去了長沙站、濟南站、西安站等,也和當地站點的質檢師去溝通,給了我很多的輸入,期間也沉淀了很多文檔。基于這些做出的技術設計、抽象出的技術方案,我認為才是真正貼近業務、更好的賦能業務的技術方案。接下來,讓我們一起看看到底有哪些技術干貨。
2. 解決方案?
整個驗機過程可以拆解成幾個步驟:
1.先要通過客戶端攻克讀取蘋果底層信息的協議;
2.通過攻克的協議,把訪問的信息拼裝成自定義的數據格式,并通過一定加密策略去混淆;
3.通過數據接口傳給服務器,用約定好的解密算法去解析數據;
4.根據服務端配置的驗機策略,將解析后的數據進行映射和分析,得到本機的質檢報告;
5.服務端將最終的報告數據響應給客戶端,客戶端進行序列號處理,并展示給用戶展示驗機報告。
這樣做的好處,顯而易見。可以這么理解,用三把無形的安全鎖,保證了驗機過程的安全性,具體如下:
第一關,攻克的底層協議的代碼會編譯到動態庫內,不會放在客戶端的應用層,很難通過反編譯去了解我們讀取蘋果底層協議的方式;
第二關,即使原始數據傳給服務時被黑客截獲了,因為加密策略的緣故,也無法分析出數據的具體含義;
第三關,即使黑客突破前兩道關得到了可讀數據,由于驗機的策略和映射在服務端處理,不了解判斷邏輯,一樣得不到我們的驗機報告。
這樣,我們可以保證報告的準確性和數據的安全性。總結一下,客戶端和服務器有自己的分工,客戶端主要負責「原始數據的采集、數據加密、被檢測手機的通信機制等」,服務器主要負責「數據的解密、校驗邏輯的處理、爬蟲、數據存儲等」。
綜上所述,我們得到了「云+端」的整體設計理念,也是我們的核心。由于是前端公眾號,會涉及部分云端的設計,但本篇著重介紹端的體系化建設方案。
2.1 完備的設計理念
目前支持Android平臺、Windows平臺和macOS平臺,整體使用方式,上面介紹過,讓我們來直入正題。服務器和客戶端有各自的職責,簡略的基礎能力如下圖:
原力引擎作為驗機的底層動態庫,負責不同機型的數據讀取和操作被檢測手機的能力支持(后面章節會詳細介紹)。為了做到「一套代碼開發,多個平臺運行」的理念,原力引擎采用GoLang進行開發,針對不同平臺做了交叉編譯,提供了支持Windows平臺的dll庫、支持Mac平臺的dylib庫和Android平臺的so庫。通過不同平臺的對原力動態庫的封裝,我們也提供了不同平臺接入的SDK。這樣不管是轉轉內的什么業務方、什么使用場景,我們只需提供不同的SDK即可。由于SDK方案Windows版、Mac版和Android版大同小異,只存在平臺兼容的差異,所以下面只以Android版SDK進行展示。
如上圖,我們主要分為三個層級,應用層、邏輯層和通訊層。
「應用層」。主要負責給接入的端提供能力,主要分兩種:API能力和Event上報能力。用戶可以根據需求,利用API自主調用驗機能力、讀取機況信息,也可通過事件的監聽機制,在一些節點進行事件捕獲,處理各種App交互(例如,手機信任成功等)。
「邏輯層」。是整個SDK的處理層,主要負責各種驗機能力的實現。包括對于原始數據的處理邏輯、格式化等等。特意提一點,目前Android版支持無線驗機,所以比Windows版和Mac版多了WiFi模塊,用戶可以通過手機熱點的連接即可完成驗機動作。
「通訊層」。這個偏向底層一些,主要是建立通道,這層做的很薄,再次不做贅述。
Android版是原生開發方式實現SDK,Windows版和Mac版目前基于Electron實現。兩者封裝后,連接動態庫的方式也稍有不同,Android利用JNI和底層庫通信,而Windows和Mac是通過node-ffi來處理連接問題,感興趣的小伙伴可以評論區留言大家一起討論。
2.2 工作機制
2.2.1 原力引擎
說到工作機制,那第一個要說的就是原力引擎(后續簡稱「原力」),它是整個方案的核心。做過相關開發的朋友應該會了解,正常與蘋果手機通信是要有MFi認證的。蘋果 MFi 認證,是蘋果公司(Apple Inc.)對其授權配件廠商生產的外置配件的一種標識使用許可,是 Apple 公司 “Made for iOS” 的英文縮寫。不過如果接入這種認證成本太高,但是事上無難事,我們也發現了一些黑科技「USBMuxd」,利用這種連接方式不需要做 MFi 認證,支持 iPhone 上的 App 跟外設通過進行通信,非常方便。原力就是利用USBMuxd服務,該服務能夠實現USB-TCP協議的轉換,能夠把USB的端口映射到本機的TCP端。只需要在工作機端也實現一個USBMuxd服務,并制定端口映射關系,那蘋果手機和工作的應用就可以使用Socket進行TCP進行通信了。大致如下圖,
之前我們也提到了,我們原力是一份代碼,跑多個平臺。所以我們利用交叉編譯,將原力編譯成Android使用的so庫、Windows使用的dll庫和Mac使用的dylib庫。然后不同的平臺我們做了平臺特有的適配,比如Android端我們內置libusbmuxd、libusb等等,啟動這些底層庫,作為和蘋果手機連接的通道。由此,我們就可以通過特定的key去獲取蘋果手機機況的原始數據了。
2.2.2 外接設備
既然是搞驗機工具,有過質檢業務經驗的朋友應該知道,屏幕是拆修里售后賠付最高的一項。為了讓屏幕檢測的更準確,我們也引入了外接的檢測設備,去采集屏幕的點陣排列,根據采集到的點陣和服務器的樣張對比,來判斷屏幕是否被更換過(不同廠商屏幕點陣排列不同,換過屏的手機屏幕點陣會和原廠屏幕點陣存在差別)。基于此,再結合原力的屏幕信息讀取,用兩者采集的數據做交叉校驗,來做到屏幕檢測最準確。
如上圖,左邊是我們外接的設備--電子屏幕檢測儀,看圖就知道比小熊手辦大一點,很小巧并可以隨身攜帶,這樣也能解決上門回收等移動驗機的需求。右圖是利用我們自研的方案去進行屏幕點陣的采集,右圖右邊的手機是工作機,下方展示這正在檢測的蘋果手機點陣。
這里我們攻克了硬件設備,用到了一個Camera的驅動,通過OTG的方式,連接工作機的App,使他進行正常運轉。
2.2.3 持續升級
上面介紹的主要都是驗機俠核心的幾個技術點和方案設計。除此之外,我們也做了相關的基礎建設。有了好的適用性和擴展性作為基礎,再附加上核心能力,這樣的方案才算完善。
(1)熱更新能力 既然提供給各個業務方使用,首先我們想到的就是日常SDK版本更新給業務帶來的痛苦。目前各種驗機數據的讀取都是由原力來完成的,更新最多的也是這塊能力,那么我們考慮到不管是哪個平臺的動態鏈接庫(so或dll),相對于操作系統來說都是一個文件,且不需要二次編譯。所以我們會把動態鏈接庫直接以文件的形式做成熱更新,這樣在每次原力邏輯修改的時候,SDK是不用通知業務方更新的,這樣也減少了發版的風險。
(2)機型庫配置 & 驗機策略 由于每年蘋果公司都會出新機器并更新系統,例如今年的iPhone14系列和iOS16的操作系統。為了避免發版,我們已經將機型庫和驗機策略的邏輯放到了服務端。這樣不管新機器怎么迭代,又或者系統如何更新,都可以做到真正的持續升級,不給業務方帶來更新成本。
未來規劃?
時至今日,驗機俠已經迭代一年了,本文開頭也提到我們在準確率上超過了某思,我認為算是今年整個團隊的一個成果吧。但是這并不是終止,2023年智能驗機會更加貫徹「云+端」的思路,作為驗機俠的負責人,我認為要建立好智能驗機云和端的技術體系。簡單可以這么理解:
「端是入口」,類似觸手觸及各個業務方。主要進行端的讀取數據、收集上報數據等。
「云是核心」,類似大腦。主要進行驗機策略運轉,沉淀數據成為數據資產、數據分析等。
基于這個理念,我們今年要把驗機能力SaaS化。通過配置即可進行集團內各業務渠道接入,未來也許會對外開放,真正做到技術為以質檢為核心的供應鏈賦能。要落地的事:
- 最小成本做好驗機俠的核心基礎建設,包括渠道接入、用戶管理、風控策略、數據統計、熱更新等。這樣我們可以擁有各渠道的核心數據,隨時可以做到端到端的封禁,及端到端的更新,這就是「把控全局」。
- 接入集團內更多驗機場景,我們僅提供最基礎的能力和接入配置;未來再有業務接入僅通過渠道配置的方式即可,我們基本零開。后續也會對外驗機能力,讓想體驗的小伙伴一起加入進來。未來,「日驗機量破十萬」指日可待;
- 會每個周期進行一次與競品的比較測試,根據測試結果和case的分析,繼續打磨驗機能力,來保證長期且「永久的超越」。
為行業賦能,為產業升級?
1. 行業大背景?
作為二手手機的的交易平臺,主要就是要解決行業和產業的問題。行業的問題主要是整體的電商解決方案,用技術為業務的控貨能力賦能。而產業的問題,重在用技術為以質檢為核心的供應鏈去賦能。那智能質檢也主要去幫助解決產業的相關問題。可以這么說,智能質檢正在幫助平臺進行數字化、標準化的轉型,從“淺水區”走向“深水區”。
緊迫性。
每個企業都在做降本增效的優化,人力成本無疑是公司發展最痛苦的問題之一。通過工具去解決人效的問題,也是降低人力成本最直接、最有效的方法。試想一下,通過工具將手機檢測的時間從20分鐘左右一臺,降低到2分鐘左右一臺,相當于一個質檢師每天的人效提升到原來的10倍,即在質檢站點人員不變的情況下,站點對手機檢測的吞吐量提升10倍。這樣才算真正加大了行業的產能。
必要性。
在降本增效的前提下,不緊要驗的快,更要驗的準。質檢師對手機在系統上的手動勾選錯誤和本身的檢測失誤問題一直存在,通過工具的使用和簡單的SOP操作可以自動生成準確的質檢報告。與此同時,也解決了質檢標準拉齊難、培訓難的問題,開新站檢測手機的品控問題等。
戰略性。
采貨俠作為轉轉集團旗下二手手機B2B的公司,將“成為全國最大的二手手機「智能集散中心」”作為我們自己的愿景。那么想要體現智能二字、想要成為一家新興的科技公司,總要有自己的一套體系流程和數字化建設。那么智能質檢也會是我們為二手手機產業升級邁出的第一步。這是采貨俠的一小步,卻是產業升級的一大步。舉個例子,比如某滴是打車行業的產業升級,某殼是租房售房行業的產業升級等等。
可行性。
當智能質檢工具大量被應用到各個業務場景,一份份的質檢報告將會沉淀為我們寶貴的數據資產,這無疑為我們二手手機行業的深耕打好堅實的基礎。未來,通過大數據的積累和算法的沉淀,解決消費者對于機價、機況不透明的痛點,極大的降低了交易成本。不僅提升了品牌信任度,還能夠完善品牌的業務架構,進一步提升品牌力。
2. 應用場景?
重點還是為業務賦能,主要分成三類:商戶端、市場端、站點端。
「商戶端」,主要是各個區域的合伙人,他們為了有更好的品牌效應,會選擇來加盟轉轉。那拉齊標準就尤為的重要,就像全國的KFC味道都能保持高度一致,解決的就是品控的問題。
「市場端」,類似于以前比較火的迪信通,通過一些大屏的檢測工具,就可以快速出報告和報價,未來還有可能成為業界的公平秤。那么解決的就是拉齊行業標準、擴大品牌影響力的問題。
「站點端」,這個就比較好理解了,就是公司自己的質檢站點。面對每天大量的質檢任務和質檢師的人力成本,最好的辦法就是用工具解決效率和準確率的問題。
結語?
很感謝大家能讀到這里,本篇文章也接近尾聲了,回顧整體方案還有好多的地方需要優化。未來期望,還是希望轉轉大前端可以打造出更完美的智能驗機方案,并提供給第三方使用。