应用程序可以识别它们在 Android 模拟器中运行吗?

not*_*tan 1 android android-emulator apk

我想知道 Android 应用程序如何发现它正在 Android 模拟器中运行。除此之外,如果设备是全新启动的,则不会安装用户文件和其他应用程序。有关于该主题的资源吗?

提前致谢

god*_*_69 5

可以了解您的应用程序运行的设备的详细信息。从这些详细信息中,您可以确定该设备是模拟器还是物理设备。请通过下面的链接查看指纹、制造商、设备、型号、产品。

https://developer.android.com/reference/android/os/Build.html

例如:在您的启动屏幕中,如果您输入以下代码,那么在您的 Logcat 中您应该会看到如下所示的日志

`Log.e(TAG, "------------");
 Log.e(TAG, "Device Values");
 Log.e(TAG, "Fingerprint: " + Build.FINGERPRINT);
 Log.e(TAG, "Brand: " + Build.BRAND);
 Log.e(TAG, "Device: " + Build.DEVICE);
 Log.e(TAG, "Manufacturer: " + Build.MANUFACTURER);
 Log.e(TAG, "Model: " + Build.MODEL);
 Log.e(TAG, "Product: " + Build.PRODUCT);

 Real Device

 2020-03-15 20:46:07.136 32602-32602/com.utkarshnew.android E/NewSplashScreen:    ------------
 2020-03-15 20:46:07.136 32602-32602/com.utkarshnew.android E/NewSplashScreen:     Device Values
 2020-03-15 20:46:07.137 32602-32602/com.utkarshnew.android E/NewSplashScreen: Fingerprint: iBall/iBall_Slide_Cleo_S9/iBall_Slide_Cleo_S9:8.1.0/OPM2.1710/47218:user/release-keys
 2020-03-15 20:46:07.137 32602-32602/com.utkarshnew.android E/NewSplashScreen: Brand: iBall
 2020-03-15 20:46:07.137 32602-32602/com.utkarshnew.android E/NewSplashScreen: Device: iBall_Slide_Cleo_S9
 2020-03-15 20:46:07.137 32602-32602/com.utkarshnew.android E/NewSplashScreen: Manufacturer: iBall Slide
 2020-03-15 20:46:07.137 32602-32602/com.utkarshnew.android E/NewSplashScreen: Model: iBall Slide Cleo S9
 2020-03-15 20:46:07.137 32602-32602/com.utkarshnew.android E/NewSplashScreen: Product: iBall_Slide_Cleo_S9

 Emulator

 2020-03-15 20:53:44.725 6736-6736/com.utkarshnew.android E/NewSplashScreen: ------------
 2020-03-15 20:53:44.726 6736-6736/com.utkarshnew.android E/NewSplashScreen: Device Values
 2020-03-15 20:53:44.726 6736-6736/com.utkarshnew.android E/NewSplashScreen: Fingerprint: google/sdk_gphone_x86/generic_x86:10/QSR1.190920.001/5891938:user/release-keys
 2020-03-15 20:53:44.726 6736-6736/com.utkarshnew.android E/NewSplashScreen: Brand: google
 2020-03-15 20:53:44.726 6736-6736/com.utkarshnew.android E/NewSplashScreen: Device: generic_x86
 2020-03-15 20:53:44.726 6736-6736/com.utkarshnew.android E/NewSplashScreen: Manufacturer: Google
 2020-03-15 20:53:44.726 6736-6736/com.utkarshnew.android E/NewSplashScreen: Model: Android SDK built for x86
 2020-03-15 20:53:44.726 6736-6736/com.utkarshnew.android E/NewSplashScreen: Product: sdk_gphone_x86`
Run Code Online (Sandbox Code Playgroud)

如果您看到上述日志,您会发现对于模拟器,设备值将作为通用,而对于物理设备,它将显示设备型号的名称。

另外,请查看这些链接

如何检测 Android 应用程序何时在模拟器中运行?

如何检查Android应用程序是在真实设备还是虚拟设备上运行?