来源:http://android.tgbus.com/Android/tutorial/201103/347176.shtml




在新建模拟器的时候设置hw.lcd.density=180,是没有任何作用的,系统会有个判断,去规为标准:
代码位置:
git://android.git.kernel.org/platform/external/qemu.git?android?hw-lcd.c

(顺便说一个很好的android原码查找方法:http://www.google.com/codesearch)


void hwLcd_setBootProperty(int density)
{
char temp[8];

/* map density to one of our three values for now */
if (density < (LCD_DENSITY_MIN + LCD_DENSITY_DEFAULT)/2)
density = LCD_DENSITY_MIN;
else if (density < (LCD_DENSITY_DEFAULT + LCD_DENSITY_MAX)/2)
density = LCD_DENSITY_DEFAULT;
else
density = LCD_DENSITY_MAX;

snprintf(temp, sizeof temp, "%d", density);
boot_property_add("qemu.sf.lcd_density", temp);
}
所以我们只要输入的不是120,160,240,她都会归到在这三个数值里。

经过几经尝试终于有了结果

一.每个硬件厂商都会有自己的硬件配置文件,会把硬件的信息记载到里边,有个大虾叫我这样改:
1、修改 default.prop 文件,添加 ro.sf.lcd_density=180 一行,转到 <android_src>/out/target/product/generic/root 目录下
$ cd <android_src>/out/target/product/generic/root
$ cat >> default.prop << EOF
ro.sf.lcd_density=180
EOF
2、重新制作 ramdisk.img:
$ cpio -o -H newc -O ramdisk.img.1 < list
$ gzip -c ramdisk.img.1 > ramdisk.img
3、测试:
用模拟器加载新的 ramdisk.img :
$ emulator -avd <avd_name> -ramdisk ramdisk.img &


二.修改源码默认值160,这种方法会有效果的:
具体修改源码中test_froyo/external/qemu/android/hw-lcd.h文件的160为所要的density值
例如:改为180
#defineLCD_DENSITY_DEFAULT160==》#defineLCD_DENSITY_DEFAULT180
然后保存,编译源码,网上方法介绍的很多,这里就不赘诉了。
编好后,在test_froyo/out/host/linux-x86/bin下的emulator文件,
拷到sdk/tools/emulator,覆盖即可
注意:新的emulator默认的density是你自己设置的值(本文为180),最好保存一下原有的emulator,以便日后恢复。

更多相关文章

  1. android读写文件
  2. Android内核的根文件系统
  3. android获取文件目录
  4. Android代码实现APK文件的安装与卸载
  5. Android 文件实现断点上传
  6. Android 存储方式之文件存储

随机推荐

  1. android EditText不自动弹出软键盘
  2. Android(安卓)事件分发机制
  3. Android(安卓)应用安全风险与防范
  4. Android与H5交互,以及WebView加载进度条
  5. Android(安卓)AIDL(Android(安卓)Interfa
  6. Android(安卓)应用没有桌面图标
  7. android Activity生命周期总结
  8. Google I/O Android(安卓)相关演讲视频汇
  9. Android(安卓)中关于Cursor类的介绍
  10. Android(安卓)Service生命周期及用法