2013-04-25 105 views
5

希望你知道安装在android设备上的应用程序可以备份和存储为一个可安装的文件(作为APK文件)与应用程序,如Astro文件管理器的帮助。同样的apk也可以安装在android模拟器中。所以有一个机会,其他人可以轻松地挖掘已安装的应用程序的文件,如数据库,共享首选项等。如何限制APK未安装在Android模拟器/模拟器中,但在真实设备中?

有没有什么办法可以只安装在真实的设备上,而不是在模拟器中?

我知道如果它是ROOTED设备,我们可以像在模拟器中一样访问应用程序的数据。即使我想知道我们是否可以限制在模拟器中安装apk。

在此先感谢

回答

1

目前无法阻止APK安装在模拟器上。 (以前可以通过为应用程序添加传感器要求,但这些天仿真器也可以模拟)

但是,在运行时,您应该能够验证您的应用程序是否正在仿真器上运行,使用以下检查:

if (android.os.Build.MODEL.equals(“google_sdk”)) { 
    // emulator 
} else { 
    //not emulator 
} 

您创建DB和SharedPreference文件等

+0

感谢莱昂... 这一个工程'如果(android.os.Build.MODEL.equals(“SDK之前,你可以做这种检查“))' – Madhu 2013-04-25 11:50:01

3

有没有这样做的一般方法。毕竟,模拟器的工作是尽可能表现得像一个真实的设备,包括模拟来自相机,GPS传感器等的输入。

如果你设置你的清单有一个依赖关系在仿真器中通常不支持的某些硬件上。例如:

<uses-feature android:name="android.hardware.sensor.accelerometer" 
       android:required="true" /> 

不过说真的,如果你不想让别人在你的应用程序的存储数据闲逛,最好的解决方法是加密和混淆。

相关问题