- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 Uboot中支持lcd和hdmi显示不同的logo图片
在lcd为竖屏,hdmi显示横屏的情况下,如果按照默认的uboot显示框架来看,只能保证lcd或者hdmi上面显示出来的图片一个是正的,另外一个是旋转了90度的样子。 为了能是lcd和hdmi同时支持显示图片都是正的,需要对uboot的框架做修改。如果硬件支持旋转功能的话,就可直接使用硬件旋转,不需要软件来调整。 由于项目原因,折腾了一把这个流程,具体实现记录下: 1:由于硬件不支持rotat
2017-02-09 19:19:26 3000 1
原创 setting中打开自动旋转功能和接收sensor数据分析
在设置中,有个自动旋转屏幕的开关功能。随系统选装的话,我们先要在手机设置中选择显示项,设备旋转时自动旋转。最终会调用RotationPolicy.setRotationLockForAccessibility函数,我们先来看下这个函数:/*** Enables or disables rotation lock from the system UI toggle.*/publi
2017-01-23 13:42:49 1420
原创 SensorService流程分析
SensorService是用来管理底层sensor的服务; 首先来看下它的启动,在SystemServer中的run()中有: // Initialize native services. System.loadLibrary("android_servers"); nativeInit();static void android_server_SystemServer_na
2017-01-23 11:58:10 2327
原创 SurfaceFlinger的init函数分析
直接上代码看得更直观//opengl 相关的初始化mEGLDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY); eglInitialize(mEGLDisplay, NULL, NULL); // Initialize the H/W composer object. There may or may not be an // actu
2017-01-19 20:39:53 582
原创 DisplayManagerService 上层到surfaceflinger流程分析
DisplayManagerService 的启动是在systemserver中;// Display manager is needed to provide display metrics before package manager // starts up. mDisplayManagerService = mSystemServiceManager.star
2017-01-19 15:35:12 5402 2
原创 应用程序刷新surface时到sf的送显流程
Android的上层程序刷新的时候,对应的native层的surface中的buffer数据会被改变。 这里的surface对应的是BufferQueueProducer,当上层绘制完成之后,会调用到surface.cpp中的unlockAndPost()函数:status_t Surface::unlockAndPost(){ if (mLockedBuffer == 0) {
2017-01-15 22:32:56 1448 1
原创 uboot阶段显示流程分析
在uboot起来之后会执行board_init_r函数。在uboot/common/board_r.c 文件中 在这个函数中查找所有初始化的函数。在这里会做很多的初始化,比如nand,mmc等。ifdef CONFIG_VIDEO_BMP_LOGOsplash_image_init,endifstdio_add_devices,ifdef CONFIG_VIDEO_BMP_LOGOowl_dss_
2017-01-13 10:04:53 440
原创 应用程序创建layer的流程
1:layer的创建过程:在WMS中的relayoutWindow()函数中在winAnimator.createSurfaceLocked()中,会创建一个surfaceControl:mSurfaceControl = new SurfaceControl( //这里new出一个SurfaceControl的对象mSession.mSurfaceSession,attr
2017-01-12 20:44:44 643
原创 surfaceflinger增加hdmi显示设备
1:当hdmi插入的时候,hdmi驱动会上报一个中断上来,在驱动中会发送一个Uevent给上层。 “/sys/class/switch/hdmi/state” 这个节点会由0变成12:在HWC中,启动的时候就开启一个hdmi状态监听的线程,当这个节点有变化的时候,会去设置hdmi分辨率,打开hdmi设备,而且还更新自己的节点状态。根据上面的hdmi使能之后,调用到: HWC_OWL_Conte
2017-01-12 20:17:57 2499 2
原创 surfaceflinger中surface与layer的关系
以BootAnimation为例说明下surface与layer的关系: 在BootAnimation中 1:在BootAnimation的构造函数中 BootAnimation::BootAnimation(int animType) : Thread(false), mZip(NULL) { mAnimationType = animType; mSession =
2017-01-12 20:11:01 6476
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人