安卓游戏如何检测设备内核
A. 怎么看安卓手机分辨率和手机的CPU的内核版本(处理器)
使用360优化大师,安卓优化大师,安兔兔就可以看到手机硬件信息
具体操作如下
在网上(手机上)下载一个360优化大师;
打开软件;
底部最右边(第4个选项),点击硬件检测,就可以看到手机硬件信息了。
部分手机系统信息查看也能看到手机硬件信息(比如:小米系统);
B. 如何测试安卓(Android)系统的流畅度
测试方法一:系统自带-开发者模式
实际上,为了方便开发者测试,安卓本身就内置了流畅度检测的功能。不过,这需要我们开启隐藏的开发者选项。如果你在用原生系统,那么开启开发者选项的方法很简单,进入到设置菜单“关于手机”页面,点击数次“版本号”,即可开启开发者选项。如果用的是其他ROM,方法也许有所不同,比如说魅族的Flyme开启开发者选项的方法是在拨号界面输入“*#*#6961#*#*”,其他机器方法也各有不同,大家可以参照厂商的说明。
进入到开发者选项,可以看到有“GPU呈现模式分析”的选项,开启后即可以条形图和线形图的方法显示系统的界面响应速度,可以用以观察系统流畅度。那么要如何根据曲线判断系统是否流畅呢?实际上这个曲线表达的是GPU绘制每一帧界面的时间,只要不超过顶部绿线,都可以视为足够流畅。
开启GPU呈现模式分析
FPS Meter可以显示最大最小帧数以及平均帧数
FPS Meter可以测试界面帧数,不过某些手机如果界面静止,帧数会为0。FPS Meter除了测量系统界面帧数外,还可以用来测量游戏的帧数,所以用FPS Meter来测试某部安卓机游戏性能多强也是个很好的选择。
当然,FPS Meter也并非十全十美。由于属于第三方App,所以可能会有一些兼容性问题。某些安卓机或者ROM使用FPS Meter可能会不兼容,即使成功开启了帧数显示也没法测量到准确数值,而某些设备使用FPS Meter甚至会死机。不过在大多数情况下,这款App还是相当值得信任的。
安卓在多个版本中都通过新技术提升了流畅度,比如说安卓2.3引入Dalvik、安卓4.0引入GPU界面绘制、安卓4.1引入黄油计划、安卓4.3引入Trim以及安卓4.4引入ART等等。
H5页面加载速度:window.performance.timing
Android以上测试方法不适用h5页面
如何分析页面整体加载速度:
主要是查看指标值PAGET_页面加载时间,此指标指的是页面整体加载时间但不含(onload事件和redirect), 此指标值可直接反应用户体验, 从此项指标可以知道指定某时间段的页面加载速度值,以及和天,周,月的对比状况.也可以查询指标ALLT_页面完全加载时间, 可以查询到从浏览器开始导航(用户点击链接或在地址栏输入url或点刷新,后退按钮)到页面onload 事件js完全跑完的所有时间.如果发现页面加载速度有增加或减少,则可以分项查询前面表格中的每个指标值,总的来说他们的关系如下:
dom开始加载前所有花费时间=重定向时间+域名解析时间+建立连接花费时间+请求花费时间+接收数据花费时间
pageLoadTime页面加载时间=域名解析时间+建立连接花费时间+请求花费时间+接收数据花费时间+解析dom花费时间+加载dom花费时间
allLoadTime页面完全加载时间=重定向时间+域名解析时间+建立连接花费时间+请求花费时间+接收数据花费时间+解析dom花费时间+加载dom花费时间+执行onload事件花费时间
resourcesLoadedTime资源加载时间=解析dom花费时间+加载dom花费时间
流畅度暂时没有发现好用的测试衡量工具,开发层面了解,主要是根据log分析
C. app如何识别是安卓设备,还是安卓模拟器的
识别的方法如下。
1.获取蓝牙名称。模拟器的蓝牙名称大多数为null。
2.测试光传感器。一般的按住设备都有光线传感器,模拟器是没有的。
3.测试CPU类型。手机是arm架构,模拟器基本是intel和amd两种。
拓展资料
安卓模拟器是能在电脑上模拟安卓操作系统,并能安装、使用、卸载安卓应用的软件,它能让你在电脑上也能体验操作安卓系统的全过程。
参考资料安卓模拟器_网络
D. 手机游戏怎么做性能测试
如何做手游性能测试,首先要了解手游性能测试指标,大概分为以下几个:包体大小、CPU占用率、内存占用率、电量流量耗用量、FPS(每秒传输帧数)
这里推荐你一个自动化测试平台WeTest性能测试平台网页链接(腾讯游戏官方推出的)
E. 玩游戏后手机显示修改内核什么意思
一、 提取 zImage 内核文件
在提取zImage 前,必须确保自己拥有 root 权限。
输入命令:
ls -l /dev/block/platform/msm_sdcc.1(具体设备具体定)/by-name,
找到 boot 这一项,记下路径
将boot导出为boot.img
dd if=/dev/block/mmcblk0p19 of=/data/local/boot.img
adb pull /data/local/boot.img boot.img
使用abootimg工具,该工具见附件解开boot.img
将 zImage 文件复制为文件名为 z.gz 的文件,并使用 010editor 查找十六进制1f 8b 08 00,找到后把前面的数据全删掉,使 kernel.gz 文件变成标准的 gzip 压缩文件,这样子就可以使用 gunzip 解压了。
命令:gunzip z.gz
生成文件z就是祼二进制文件zImage。
二、 提位、修改关键代码
zImage文件可以直接使用 IDA 去打开,但需要设置参数。
在上图,设置处理器类型为ARM Little-endian,点【ok】后,弹下图
在 ROM start address 和 Loading address 填0xc0008000,点【ok】,IDA显示效果如下图所示,没有函数名,不方便定位代码。
先回到root下的adb shell,输入命令:
echo 0 > /proc/sys/kernel/kptr_restrict
关闭符号屏蔽
再输入以下命令查看这两函数的地址
回到 IDA,按 g 跳转到c01b083c(__task_pid_nr_ns)地址处,在光标放在在该函数处:
然后按x,弹出引用搜索框
在搜索框里,找到sub_c02b9ff8(proc_pid_status)地址对应的函数,双击它,如果 IDA 没有分析出该函数,就进行以下操作:
按shift+f12,搜索TracerPid,找到以下项
双击它,看到
再双击【DATA XREF: sub_c02b9ff8+190】,IDA就能分析出sub_c02b9ff8函数了,然后重新搜索sub_c01b083c的引用。找到后,双击它,得以下图:
经本人分析得到的修改方法是把MOVEQ R10, R0替换为MOV R10, #0,机器码为00 A0 A0 E3,指令的文件偏移为(C02BA568-C0008000=2B2568),及把BL sub_C01B083C替换为MOV R0, #0,机器码为00 00 A0 E3,指令的文件偏移为(C01B083C-C0008000=1A883C)。
至少,内核文件修改成功。
三、刷回手机
刷回前需要先打包 boot.img 文件
使用命令压缩成z.gz:gzip -n -f -9 z
使用010editor 将 z.gz 的二进制数据覆盖到原zImage 文件的1F 8B 08 00处的位置(新的z.gz文件必须比原 z.gz 文件小,并且回写回去时不能改变原zImage文件的大小及修改原 zImage 文件后面的内容,否则会很麻烦),这时得到了zImage文件。
执行命令abootimg --create boot.img -f bootimg.cfg -k zImage -r initrd.img得到boot.img文件。
手机重启进入刷机模式,然后,执行命令fastboot flash boot boot.img。
完成刷机后,重新开机,就大功告成了。
四、 还原砖头
刷内核,不免会有刷成砖头的情况。
使用步骤1中提取到的原版boot.img,在刷机模式下,执行 fastboot flash boot boot.img 就还原系统了。
F. 如何提取安卓内核
操作方法:
1、 下载bootimg.exe 放到D盘。
2、 把要提取的ROM包里的boot.img提取出来 放到bootimg文件夹目录。
3、 运行cmd系统命令,进入D: bootimg目录(D盘的话 先d: 然后再cd bootimg),接着输入bootimg --unpack-bootimg。 解开bootimg文件,得到kernel和ramdisk.gz两个文件,ramdisk.gz文件可以删除。
4、把kernel文件改名为zImage。
5、找一个老版本的内核文件包,然后用zImage、bcm4329.ko分别替换老版本内核文件包中的同名文件, 路径是: kernel/zImage 和system/lib/moles。
6、老内核随便改什么名字。刷机包里面的META-INF里面是签名和刷机用的脚本什么的。com/google/android/ updater-script文件是刷机时显示的文字,用notepad打开,ui_print(" ")括号里面可以改成随意文字,然后关闭保存,再就是可以刷进去了。
G. Android 检测设备是否为模拟器
打开 Google 搜索 “模拟器”,各种模拟器映入眼帘。“逍遥安卓-超强安卓模拟器”、“天天模拟器”、“网易MuMu”、“BlueStacks蓝叠安卓模拟器”、“夜神安卓模拟器”、“海马玩模拟器”、“51模拟器”当然还有功能强大的“Genymotion”…… 经过上网查找,发现类似的帖子并不是太多,其中经过筛选,发现下面几个通用的解决方案。 于是把上面两种方案结合起来,就是: 经过在各个模拟器上测试,发现大多数都是可以检测出来的,只有各别模拟器不可以检测出来,其中包括“夜神安卓模拟器”。经过观察与对比发现,夜神安卓模拟器有一个和其他模拟器以及手机(手头的)不同的地方,就是“Build.SERIAL”是一个16位的字符串,而其他模拟器都是“unknow"或者"android",真机是 8 位的字符串,哈哈小样被我抓住了吧,于是修改了检测方法。 再次检测,成功识别!! 由于手头的手机有限,担心将手机识别错误,于是在 weTest 平台抽样对各品牌手机进行测试,果然不出所料,问题出现了。当测试到华为畅享5s的时候,竟然也被识别为模拟器。这下悲剧了,毕竟手机用户还是主要的,可不能错杀好人啊!!!经过观察,发现问题出现在上面自作聪明加的一个判断中 Build.SERIAL.length() > 8 ,这个手机的 Build.SERIAL 也是 16 位,这可如何是好??? App 中有一个跳转到拨号盘的功能,当然在模拟器中无意点到这个按钮的时候,App 居然 Crash 了,这引起了我的注意,加为之前在真机上从来没有出现过问题,于是再次尝试点击这个按钮,它再次如我所料的 Crash 掉了。我实然灵机一动,对啊这是模拟器,不能拨打电话,所以 Crash 了,这不正是解决方案吗?(一不小心一个 Crash 竟然救了我)于是我在其他几个模拟器中也尝试点击这个按钮,结果是大部分都不支持这个操作,而且都是简单粗暴的直接 Crash 。虽然不能 100% 的识别,但大多数还是可以以此来做识别凭证的。 接下来再修改方法,慢着!大多数平板也是不支持拨打电话的,由于手头也是只有一台华为的平板,测试了一下,发现是跳转到保存联系页面,这个至少也不是 Crash,所以算通过了。 最终将几种方案整合修改后如下: 其实,我相信还有更好的方法去检测,比如通过一些硬件特性,或者模拟器不能模拟的其他特性,但目前还没有找到,如果你有好的办法,欢迎分享!!!