zoukankan      html  css  js  c++  java
  • ICS gsensor,light sensor移植记录

    最近有在移植ICS的sensor,接近传感器主要涉及文件及重要函数移植

    1.device/samsung/crespo/libsensors

    2.PowerManagerService.java,userActivity()

    3.PhoneApp.java,updateProximitySensorMode()

    4.Cm3605.c

    5.init.rc


    G-Sensor主要涉及到的过程

    1.首先要了解orientation Sensor设置的入口。
     DisplaySettings.java中。
     ->onPreferenceTreeClick()会启动一个服务。调用PhoneWindowManager.java
     在PhoneWindowManager.java中有
     SettingsObserver类,会监听settings。当发现状态改变时,会
     ->updateSettings()->updateOrientationListenerLp()->needSensorRunningLp()(当应用程序禁止旋转时,就不会旋转)
    2.当允许开启orientation sensor时。此时,会注册一个MyOrientationListener来监听旋转方向。
    在WindowOrientationListener.java中监听java的值。对旋转方向判断。
     ->onSensorChanged()->onProposedRotationChanged()
    3.PhoneWindowManager.java中有MyOrientationListener.onProposedRotationChanged()来监听上面的变化。
     ->updateRotation(false)
    4.WindowManagerService.java中。
     ->updateRotation()->updateRotationUnchecked()->sendNewConfiguration()
    5.ActivityManagerService.java中。
     ->updateConfiguration()->updateConfigurationLocked()
     
     当操作系统启动后,WindowManagerService.java中ENABLE_SCREEN
     ->performEnableScreen()->mPolicy.enableScreenAfterBoot()


    Light sensor主要涉及文件

    framework/base/core/res/res/values/config.xml

    <bool name="config_automatic_brightness_available">true</bool>
    ……
    <integer-array name="config_autoBrightnessLevels">
    <item>40</item>
    <item>300</item>
    <item>400</item>
    <item>700</item>
    </integer-array>
    ……

    <integer-array name="config_autoBrightnessLevels">
    <item>50</item>
    <item>100</item>
    <item>160</item>
    <item>200</item>
    <item>250</item>
    </integer-array>

    在framework/base/services/java/com/android/server/PowerManagerService.java

    lightSensorChangedLocked()函数中修改

    int lcdValue = getAutoBrightnessValue(
                            (true/*mIsDocked*/ ? value : mHighestLightSensorValue),
                            mLcdBacklightValues);

  • 相关阅读:
    每位设计师都应该拥有的50个CSS代码片段
    JAVASCRIPT和JQUERY判断浏览器信息总汇
    jQuery Flux Slider 2D/3D 图片切换效果展示
    JavaScript判断是否IE和是否是IE6的方法
    分享一个不错的软件Clover让资源管理器变身浏览器)
    jQuery bgStretcher 背景图片切换效果插件
    Python安装wxPython和ubuntu使用apt提示不能更新
    IBOutlet & retain
    vue同时监听多个参数变化
    ubuntu 命令行chmod修改文件夹权限
  • 原文地址:https://www.cnblogs.com/chengliu/p/3636424.html
Copyright © 2011-2022 走看看