关于android系统的分辨率:使用其他设备模拟该分辨率



开发的时候需要适配很多种奇葩的LCD尺寸,这些设备分辨率往往很多适配起来很麻烦,加上手头往往没有对应设备。

比如说:我碰到一个分辨率是1440x900 并且屏幕的方向是竖屏,还有 1280x1024这种模拟器都不支持的分辨率。

这些设备往往不在身边,测试起来就比较麻烦。

        这里我总结一下如何方便的进行对这些屏幕的开发。

1.首先我们得确定屏幕的分辨率 和 像素密度

分辨率有很多已经现成的软件可以看,有些机器直接也在设置中可以看到,实在不行就自己写这个小程序看看吧。

      DisplayMetrics displayMetrics = new DisplayMetrics();

    displayMetrics  getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
        final int height = displayMetrics.heightPixels;
        final int width = displayMetrics.widthPixels;

int densityDpi = metric.densityDpi; //像素密度,值越大图标越大,默认160

当然如果你是andorid 4.3 以上的系统,高通平台的设备一般都是会支持一个命令叫做 wm 

wm size  会告诉你当前的分辨率和物理分辨率 ,

像素密度: 这个值保存在/system/build.prop中, 如:ro.sf.lcd_dentisy=240

或者试试:       adb getprop ro.sf.lcd_dentisy


2. 分辨率和密度都明白了,所以为了开发方便我们相处了几种办法

2.1尝试使用自己设备修改成相同的分辨率测试(有风险,需要root权限)

修改分辨率 可以尝试命令 

 adb wm size 1080x1920

或者 

    adb  am  display-size  1080x1920
                         修改屏幕密度   /system/build.prop 中的ro.sf.lcd_dentisy
 build.prop 的权限 记得不要搞错   644  其他权限会卡在第二屏,当然其中的配置搞坏了也会卡,注意备份
卡主了也不要慌张只要adb可以连上修改回来就好 chmod 644 /system/build.prop
 缺点修改的结果往往出现 桌面或者某些程序崩溃,无法正常玩了,只能放弃。

2.2    虚拟机 
x86的andorid虚拟机。 x86体系的andorid 引导用的是grub 需要修改一下grub的配置,即可修改分辨率。这里简单的说明一下:
最简单的方法是在启动时候按e 编辑grub配置 ,在引导中加入 vga =ask, 然后选择一下分辨率 似乎分辨率可选的不是特别多,
而且x86android虚拟机有些缺点,比如:上网需要自己再配置,需要童鞋对linux比较熟悉,so 不太推荐。

另外一个虚拟机是:Genymotion 这个软件。
缺点是需要注册。
 完成安装后,下载一个版本虚拟机镜像(推荐下载最高分辨率的机器)安装完毕后,启动的设置里可以自定义分辨率。
 其实这个虚拟机内部功能很多,比较适合用来开发使用。(比如上面虚拟机的网络的问题都已经弄好了)
当然童鞋担心虚拟机和调试的工具连接的问题,这个网上有一堆教程,无非都是利用adb 网络的功能,大家可以查一下,比较简单。
虚拟机最大的缺点就是,如果我开发的机器机器分辨率是1366x768 的我非得用1920x1080的分辨率,那样看起来就很吃力,不停的上下拉。

 2.3 废物利用
这里大部分手机或者是开发板有带VGA或者HDMI的功能。
这里的办法是通过开发板、手机HDMI 和显示器连接输出,这里如果开发板有VGA接口,显示器没有HDMI的话,这个分辨率调整需要调驱动相当复杂。
我们可以 HDMI转VGA的芯片,x宝一大堆。
so: 我们利用  wm  am 或者其他平台可能还有相关的分辨率命令和固件集成HDMI设置工具来进行分辨率调整
这里我用的比较多的是am命令,比较好用 am  display-size  

另外如果屏幕横屏竖屏显示的问题无法接受,建议考虑从修改HDMI的驱动下手。



讲了一堆废话,还是说收我碰到的一种情况。  竖屏的情况,分辨率实际为900x1440
试了 Genymotion 虚拟机非常理想效果。
MX4PRO修改成这个分辨率可以,屏幕密度一改,无限FC了。
找了一块4412开发板和 1600x900分辨率的VGA显示器,HDMI 转VGA的方式,发现1440x900的分辨率显示的比较正常,
当屏幕一旋转900x1440这个分辨率显示区域非常小,非常模糊,不能指示。
经过搜索发现4412自身新版固件有HDMI方向的设置,就解决了。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值