Android识别模拟器,判断是模拟器还是真机,面试字节跳动被问Android屏幕适配方案
最后这里放上我这段时间复习的资料,这个资料也是偶然一位朋友分享给我的,里面包含了腾讯、字节跳动、阿里、百度2020-2021面试真题解析,并且把每个技术点整理成了视频和PDF(知识脉络 + 诸多细节)。还有高级架构技术进阶脑图、高级进阶架构资料帮助大家学习提升进阶,这里我也免费分享给大家也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。有需要的朋友可以点击:**Android面试
不管是活动风控
还是内容保护
等等其他的出发点,应要求可能会要识别Android模拟器
,甚至禁止模拟器登录或后续操作。
今天做个简单的探讨。
原理
识别模拟器的原理,其实就是找出模拟器
和真机
的差别,但是这些差别体现在哪呢,比如运营商、手机卡、蓝牙、各种传感器等等。
但是现在的模拟器也是越来越厉害了,可以模拟不同品牌
的不同型号
的不同版本
的手机,而且有蓝牙、可以打电话。
是不是很头疼,一不小心就会误判了,所以现在市面上有一种方案也是根据模拟器和真机差别的次数来做一个容错机制
,比如模拟器和真机超过3个差别,就判为模拟器。
但是实际上,有的老版本手机甚至还不如模拟器先进…所以容错机制中还可以加上对用户的区别对待,个别用户不检测等等。
禁止模拟器安装apk
模拟器一般的cpu架构都是x86
的,我们可以在build.gradle
中去掉对x86
的支持。
ndk {
// 设置支持的SO库架构
abiFilters ‘armeabi-v7a’, ‘arm64-v8a’
}
当然也有一些手机可能也是x86的,这就误判了,因为目前来说还没有比较完善的解决方案,所以前面所说的容错机制
就比较重要了。
仅仅是去掉x86的支持还是不够的,因为有的模拟器也不是x86架构,所以还是要进一步找出模拟器和真机的区别。
当然也可以不禁止,识别出来就行。
代码识别
这里还是原理中提到的,判断有没有蓝牙、序列号、传感器、cpu架构等等多重判断。
这里推荐一个库:CacheEmulatorChecker
调用也比较简单,一行代码即可:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
最后
最后这里放上我这段时间复习的资料,这个资料也是偶然一位朋友分享给我的,里面包含了腾讯、字节跳动、阿里、百度2020-2021面试真题解析,并且把每个技术点整理成了视频和PDF(知识脉络 + 诸多细节)。
还有 高级架构技术进阶脑图、高级进阶架构资料 帮助大家学习提升进阶,这里我也免费分享给大家也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
有需要的朋友可以点击:**Android面试资料**免费领取~
一起互勉~
免费领取~
[外链图片转存中…(img-7q0gcftb-1711171838403)]
[外链图片转存中…(img-1JVFLB1s-1711171838403)]
一起互勉~
更多推荐
所有评论(0)