【UseCase】Android 偵測App現在是否在模擬器上跑?
2024, Jul 10
前言
有時候會遇到PM提出一個需求
希望避免自家app上架後
被使用到模擬器上跑
這邊收集了一下各種檢驗的方法
分享出來
檢測方法
1. 使用 Android 內建屬性
這種方法利用 Android 系統的 Build 類來檢查各種硬件和軟件屬性:
2. 檢查特定文件
某些文件只存在於模擬器環境中,我們可以檢查這些文件是否存在:
3. 檢查電話號碼
模擬器通常有特定的電話網絡設置:
4. 結合多種方法
把上面所有方法結合
用來判斷是否是模擬器
但我覺得不一定每台模擬器都有可能完美檢查出來
要是模擬器開發者知道這些檢驗手法
理論上也能製作出一台繞過這些方法的模擬器
注意事項
上面只是用各種可能判斷為模擬器的方法去判斷
我實際使用還是有可能會遇到下列情況
- 這些方法並非 100% 可靠,因為模擬器也可能會針對這些去實作模擬真機
- 一些真實設備可能會被誤判為模擬器(若剛好該廠真機少了你檢測的屬性或特性時)
- 換一種思路來想
變成你可以針對你遇過的模擬器去擋掉
總結
-
結合多種檢測方法以提高準確性
-
定期更新檢測邏輯以適應新的模擬器
這種可能就是case by case
因為有QA會幫忙測
遇到的話
他反饋給你
就能再針對問題去解決 -
可能要考慮是否要用這個方法
避免因誤判而影響用戶體驗 -
雖然這些技術可以提供有用的信息
但它們並不是絕對可靠的
在實施任何基於這些檢測結果的邏輯之前
請考慮其潛在影響和必要性。