当第一次移植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的进程。
所以,大家看到的是开机启动动画结束以后,才看到了第一个画面。
分享到:
相关推荐
这里我们关注的是`wireless_tools.29`版本,一个专为Android系统移植优化的无线网络管理工具集。此版本已经经过验证,可以在Android 8.0(API级别26)上稳定运行,极大地便利了开发者进行网络相关的调试和分析工作。...
展锐LCD移植介绍V1.2-nowatermark是紫光展锐科技提供的一份LCD移植文档,主要介绍了在SC9863A平台上的LCD移植过程。本文档详细介绍了uboot和kernel的移植过程,包括编译和烧录的详细步骤。 知识点1: uboot移植说明 ...
总的来说,NTFS-3g在Android上的移植是一个技术性强且具有挑战性的过程,它扩展了Android设备对不同文件系统的支持,提高了用户在移动设备上的数据交互能力。对于开发者而言,这不仅是一个学习Linux驱动开发和...
### Android移植iperf详解 #### 一、iperf简介与移植意义 iperf是一款广泛使用的网络性能测试工具,主要用于测量TCP和UDP带宽质量。它支持多线程测试及多种平台,包括Linux、Windows等。在Android平台上移植iperf...
在《Android 移植技术》这一主题中,作者Jollen Chen深入探讨了Android操作系统在不同硬件平台上的移植方法和技术细节。这篇文章主要关注于Android系统如何适应不同的硬件环境,特别是在非传统移动设备上的应用,如...
"Android5.1移植支持ntfs"这个主题涉及的是将NTFS文件系统引入到Android 5.1版本中的过程,这对于需要与Windows设备进行大容量数据交换的Android用户来说是非常有价值的。以下是对这一知识点的详细阐述: 1. **NTFS...
在Android系统中,LCD驱动移植是一项关键任务,特别是在高通MSM8953这样的平台上。这个过程涉及到多个步骤,确保设备能够正确识别并驱动LCD模组,以便为用户提供清晰的显示效果。以下是对LCD移植高通参考文件的详细...
这里我们根据提供的标题“android系统移植资料集锦”和描述,以及标签“android 移植 系统 文档”,可以提炼出一系列关键知识点。 1. **Android系统架构**:Android是一个基于Linux内核的开源操作系统,由应用程序...
Android系统移植与平台开发是一项复杂的工作,需要开发人员具备一定的硬件知识、系统编程能力以及对操作系统的深入理解。在进行移植开发之前,需要做好充分的准备,并按照官方文档提供的步骤进行。同时,由于Android...
Android系统移植技术是一个复杂而精细的过程,涉及到多个...这些知识点构成了Android系统移植的基础,涵盖了从环境准备到具体功能实现的整个流程,对于开发者来说,理解和掌握这些内容是成功移植Android系统的关键。
AVG游戏Android移植框架源码主要涉及了将传统的AVG(冒险游戏)从桌面平台迁移到Android设备的技术,其中核心是吉里吉里(KRIKRI)引擎和NS(Nscripter)引擎的实现。这两款引擎在游戏开发者中非常流行,主要用于...
SSH移植到Android系统步骤 SSH(Secure Shell)是一种安全的远程登录协议,常用于Linux系统中。但是,Android系统并不具备SSH功能,这篇文章将讲述如何将OpenSSH移植到Android系统中。 Step 1: 获取OpenSSH源码 ...
总的来说,Android RIL的移植是一项技术性强且复杂的工作,它要求开发者具备深厚的嵌入式系统知识、Android框架理解以及良好的调试技能。通过不断的实践和学习,才能确保RIL的成功移植,从而让Android系统在新的硬件...
【描述】中提到的“J2ME游戏移植Android文档”很可能包含了一系列步骤和最佳实践,指导开发者如何有效地进行移植工作。这个过程通常包括理解J2ME和Android之间的差异,识别和解决兼容性问题,以及利用特定工具和库来...
在Android系统中,蓝牙(Bluetooth)模块的移植是一项重要的工作,尤其对于开发和定制设备固件的工程师来说。本文将详细讲解如何移植REALTAK RTL8723BU蓝牙模块到Android系统,以及在此过程中涉及的关键知识点。 ...
Android系统移植是一个复杂而精细的过程,它涉及到操作系统层面的深度理解和硬件平台的适配工作。在本文中,我们将深入探讨Android系统移植的关键知识点,包括前期准备、内核移植、驱动程序开发、用户空间应用程序...
总之,Android移植到Freescale平台是一项复杂的工作,涉及到内核定制、驱动适配、文件系统构建等多个环节。通过持续的学习和实践,可以逐步掌握这一过程,为Freescale硬件平台带来Android的丰富功能和用户体验。
总的来说,移植Android到mini2440是一项涉及硬件驱动编程、内核定制和Android系统理解的复杂任务。这个过程需要对Linux内核有深入理解,同时熟悉目标硬件的特性。通过逐步分析和调试,才能成功地让Android在mini2440...