自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 java层的surface创建过程

java层的surface如何创建

2017-03-01 14:28:38 1752

原创 Uboot中支持lcd和hdmi显示不同的logo图片

在lcd为竖屏,hdmi显示横屏的情况下,如果按照默认的uboot显示框架来看,只能保证lcd或者hdmi上面显示出来的图片一个是正的,另外一个是旋转了90度的样子。 为了能是lcd和hdmi同时支持显示图片都是正的,需要对uboot的框架做修改。如果硬件支持旋转功能的话,就可直接使用硬件旋转,不需要软件来调整。 由于项目原因,折腾了一把这个流程,具体实现记录下: 1:由于硬件不支持rotat

2017-02-09 19:19:26 2990 1

原创 setting中打开自动旋转功能和接收sensor数据分析

在设置中,有个自动旋转屏幕的开关功能。随系统选装的话,我们先要在手机设置中选择显示项,设备旋转时自动旋转。最终会调用RotationPolicy.setRotationLockForAccessibility函数,我们先来看下这个函数:/*** Enables or disables rotation lock from the system UI toggle.*/publi

2017-01-23 13:42:49 1416

原创 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 2322

原创 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 575

原创 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 5391 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 1445 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 438

原创 应用程序创建layer的流程

1:layer的创建过程:在WMS中的relayoutWindow()函数中在winAnimator.createSurfaceLocked()中,会创建一个surfaceControl:mSurfaceControl = new SurfaceControl( //这里new出一个SurfaceControl的对象mSession.mSurfaceSession,attr

2017-01-12 20:44:44 640

原创 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 2476 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 6473

stc12c5a60s2的PWM占空比可调

stc12c5a60s2的PWM占空比可调的程序

2013-07-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除