【新闻背后】美团外卖商家Android版强杀竞争对手App
下午,一位程序員小伙伴在知乎上發了一則帖子技術揭幕貼,題目也是廣為人知的知乎體「如何評價美團外賣強殺競爭對手的 App 進程?」
簡而言之,該程序員在反編譯完美團外賣商家Android版后,發現其中有一個殺死后臺運行進程的權限,通過Android開發者官方文檔,他隨之找到了killBackgroundProcesses(String packageName)的調用處,發現美團的Android程序員直接用Hardcode寫死了四款App的包名——餓了么商家版、點評商家版、淘點點商家版、百度外賣商家版。
這位舉報者指出,美團調用killBackgroundProcesses(String packageName)方法的類名是FriendUtil(這個類名倒是很厚道,呵呵),最后他表示美團大膽地用Hardcode封殺的行為,實在有點過了。
小編也建議做「有節操」的Android 開發者,共同維護平臺公平性,希望這次不要又拿實習生出來頂包。
【更新】
美團還是反應很快的。公司的副總王慧文在晚7點多時回應,9點多給出了詳細的調查結果,“全量發版更新掉了這段代碼”,并道歉。
另外代碼的編寫者(已離開美團,前員工也能很快找到并回應,看人家這執行力)也給出了自己的說明,并道歉。兩者的核心內容是一致的,商家App需要通過藍牙打印,但Android手機藍牙模塊只能允許一個App與藍牙設備連接,為了解決爭用導致無法打印的問題,就直接寫了關閉其他應用的代碼。由于Android軟件”基本上都會加上后臺自啟”,所以其他應用其實并不會真正失效。
知乎上很多討論來自“殺與被殺”當事雙方,都有些意氣用事,多數都沒什么價值。但其中董涵的回答中,建議這種情況下,可以“使用斷開后重連的方式來強制再次連接……畢竟你們使用的藍牙打印機應該是不同的,可以判斷出是否是自己應用連接上。實在不行,可以先disable后再enable?!?/p>
十三郎還給出了代碼:
BluetoothAdapter.getDefaultAdapter().enable(); BluetoothAdapter.getDefaultAdapter().disable();
對此,代碼編寫者回復:
餓了么的產品經理sacho則從產品角度提出了一種解決方案:
針對你說的藍牙端口被其他 app 占用無法連接的問題,餓了么的產品經理會給出如下解決方案:彈窗提醒用戶問題所在,請用戶選擇是否強行關閉其他 app。
感覺比較合理。
【頭條點評】
美團在代碼中殺對手進程的做法當然是不對的,這個毋庸置疑,不管你初衷如何,影響多大,競爭情況下類似會引起沖突的任何舉措都要特別謹慎。否則就是授人以柄,一旦被人抓住,你就等著唾面自干吧。
但這次事件的性質與當年3Q大戰還是有很大區別的:殺死會自動重啟的進程與直接卸載對方的軟件當然不可同日而語。
從格調上也有區別,那時候是你死我活,兩邊都有很重的草莽氣。現在雖然也有很多嘴仗(大部分沒什么必要),但雙方的應對都理性、紳士多了,很欣喜業界新興公司的這種進步。
現在問題來了,遇到這種情況,最合理的解決方案是什么呢?吵架沒什么意思,歡迎大家繼續討論正事兒。
總結
以上是生活随笔為你收集整理的【新闻背后】美团外卖商家Android版强杀竞争对手App的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux内防火墙永久开启或者关闭操作命
- 下一篇: 互联网知识更新快,该如何学习