当第一次移植android的时候,最最欣慰的现象就是lcd上有所显示。
但事与愿违,我的第一次做android1.6移植的时候,就遇到了麻烦。
电路板的cpu是freescale的 imx35。网上有好多此核心的 bsp,可不幸的,我的bsp在 framebeffer上,跟android不太兼容。
我的使用的内核,跑qt的rootfs是没有问题的,显示一切正常,可用android的rootfs时,就显示错误。感觉好像是双缓冲出现了问题。
lcd上只显示出一个buffer的东西,另一个buffer没有数据,所以lcd上就是android的图像和黑屏交替出现。
搞了很长时间也没有从代码上解决这个问题,毕竟要重新搭建一个framebuffer的驱动不是简单的事。 一天,索性把framebuffer的驱动换成其他bsp包中的代码,重新编译后,奇迹出现了。困扰4天的问题终于解决了。
接踵而来的是,颜色空间的问题。lcd的屏幕不再闪烁了,但是颜色出了问题。从现象上看,是驱动的颜色空间出了问题。查验了android的关于显示部分的代码,发现,android使用的是565的配色方式。可是我的电路板使用的888的lcd。这就不可避免的,出现了串色的问题。
修改驱动,把888的驱动,硬生生的改成了565的方式,最终搞定了这个问题。
还有一个额外的话题。开发一个独立于android系统的使用framebuffer的程序,那么就必须注意android的双缓冲。否则,就会看到android每次刷新屏幕,你的程序就跟着闪烁。
android使用屏幕的大小,是从framebuffer中获取的,如果要改变android的显示区域,可以修改那个部分的ndk代码。这样,所有的android程序显示都会跟着改变。
android的 surface的使用是排他的,比如在开机启动动画的时候使用了surface,那么同时就不能再运行同样使用surface的进程。
所以,大家看到的是开机启动动画结束以后,才看到了第一个画面。
分享到:
相关推荐
Android系统开发编译环境配置 1 Ubuntu下使用Simba服务实现局域网内文件共享 3 Ubuntu下tftp服务器的创建 3 ...android系统开发(十)-audio移植 68 android系统开发小知识-启动脚本文件内部的执行顺序 74
将Android移植到FS2410开发板上(转)
android移植及底层开发,介绍android平台构架与移植的关系,底层开发技术解析
Android移植之WIFI ,基于Android的开发
迅为国产RK3568开发板Android移植 LCD 屏幕
android系统成功移植openssh的步骤
Android 移植技术 by Jollen Chen
Android系统移植;Android系统移植Android系统移植
Android系统移植讲解
ntfs-3g 20140215版本 移植到android的源码 放到external目录编译即可使用
基于s3c6410平台的开发板移植Android系统的文档
Android系统移植与平台开发,将网络上面零散的连载文章整理合并成一个完整的文档,供Android系统开发人员学习与参考。
android移植论文,将android系统移植到S3C2440开发板上
Android系统移植(一)-让android系统在目标平台上运行起来 Android系统由于用的是linux内核,因此内核移植和嵌入式linux内核移植差异不大,过程如下: (1)移植boot-loader和linux2.6内核到目标平台上,让linux内核...
Android移植之自定义ProgressBar
Android系统Bootloader移植的答辩ppt,里面简要介绍了课题的内容,开发过程以及开发结果
自己搜集整理一份J2ME游戏移植Android文档以及一个实现J2ME接口的一个游戏引擎
这是我在移植android系统时收集的资料,和大家分享下。
展锐LCD移植介绍V1.2-nowatermark
关于驱动的移植和开发