栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android 系统Battery电池流程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android 系统Battery电池流程

    modified:   device/rockchip/rk3399/BoardConfig.mk
    modified:   frameworks/base/core/res/res/values-zh-rCN/strings.xml
    modified:   frameworks/base/core/res/res/values/strings.xml
    modified:   frameworks/base/core/res/res/values/symbols.xml
    modified:   frameworks/base/packages/SettingsLib/res/values/arrays.xml
    modified:   frameworks/base/packages/SettingsLib/src/com/android/settingslib/graph/BatteryMeterDrawableBase.java
    modified:   frameworks/base/packages/SettingsProvider/res/values/defaults.xml
    modified:   frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
    modified:   frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
    modified:   frameworks/base/services/core/java/com/android/server/BatteryService.java
    modified:   kernel/arch/arm64/boot/dts/rockchip/rk3399-jawest-android.dtsi
    modified:   kernel/arch/arm64/boot/dts/rockchip/rk3399-jawest.dtsi
    modified:   kernel/drivers/power/Makefile

diff --git a/frameworks/base/core/res/res/values-zh-rCN/strings.xml b/frameworks/base/core/res/res/values-zh-rCN/strings.xml
index e90f586efe…45fdbe02d2 100755
— a/frameworks/base/core/res/res/values-zh-rCN/strings.xml
+++ b/frameworks/base/core/res/res/values-zh-rCN/strings.xml
@@ -1900,4 +1900,10 @@
现在重启
重启系统后设置才能生效
秒后重启系统.
+

  • 低电量提醒.
  • 电量低于
  • %请充电 :
  • 秒后自动关闭对话框
  • 秒后自动将自动关机

    diff --git a/frameworks/base/core/res/res/values/strings.xml b/frameworks/base/core/res/res/values/strings.xml
    index 569d5845f1…1651279d96 100755
    — a/frameworks/base/core/res/res/values/strings.xml
    +++ b/frameworks/base/core/res/res/values/strings.xml
    @@ -5008,4 +5008,10 @@
    reboot now
    must restart for validtion
    seconds system will restart.

+power battery low than.
+power battery low than
+battery low please charging
+dialog close auto after seconds
+will auto shutdown after seconds

diff --git a/frameworks/base/core/res/res/values/symbols.xml b/frameworks/base/core/res/res/values/symbols.xml
index de793fc607…5e293b8492 100755
— a/frameworks/base/core/res/res/values/symbols.xml
+++ b/frameworks/base/core/res/res/values/symbols.xml
@@ -3438,4 +3438,10 @@



+

diff --git a/frameworks/base/packages/SettingsLib/res/values/arrays.xml b/frameworks/base/packages/SettingsLib/res/values/arrays.xml old mode 100644 new mode 100755 index 09fa284b0a..0214ae0c20 --- a/frameworks/base/packages/SettingsLib/res/values/arrays.xml +++ b/frameworks/base/packages/SettingsLib/res/values/arrays.xml @@ -558,12 +558,16 @@
 
 
  •    15
    
  •    10
    
  •   15
    
  •   20
       100
    
  •    ?android:attr/colorError
    
  •    @android:color/white
    
  •   #ffff0000
    
  •   ?android:attr/colorError
    
  •   #ffffff00
    
  •   @android:color/white
    
    73 0

diff --git a/frameworks/base/packages/SettingsLib/src/com/android/settingslib/graph/BatteryMeterDrawableBase.java b/frameworks/base/packages/SettingsLib/src/com/android/settingslib/graph/BatteryMeterDrawableBase.java
old mode 100644
new mode 100755
index 2fc6db08c7…79c2b7f555
— a/frameworks/base/packages/SettingsLib/src/com/android/settingslib/graph/BatteryMeterDrawableBase.java
+++ b/frameworks/base/packages/SettingsLib/src/com/android/settingslib/graph/BatteryMeterDrawableBase.java
@@ -37,6 +37,9 @@ import android.util.TypedValue;

import com.android.settingslib.R;
import com.android.settingslib.Utils;
+import android.util.Log;
+import android.os.SystemProperties;
+import java.util.Arrays;

public class BatteryMeterDrawableBase extends Drawable {

@@ -95,7 +98,7 @@ public class BatteryMeterDrawableBase extends Drawable {
private final Path mShapePath = new Path();
private final Path mOutlinePath = new Path();
private final Path mTextPath = new Path();
  • int mSaveframeColor =-1;
    public BatteryMeterDrawableBase(Context context, int frameColor) {
    mContext = context;
    final Resources res = context.getResources();
    @@ -124,7 +127,7 @@ public class BatteryMeterDrawableBase extends Drawable {
    R.fraction.battery_subpixel_smoothing_left, 1, 1);
    mSubpixelSmoothingRight = context.getResources().getFraction(
    R.fraction.battery_subpixel_smoothing_right, 1, 1);
  •   mSaveframeColor = frameColor;
       mFramePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
       mFramePaint.setColor(frameColor);
       mFramePaint.setDither(true);
    

@@ -270,14 +273,20 @@ public class BatteryMeterDrawableBase extends Drawable {
}

 private int getColorForLevel(int percent) {
  •    int thresh, color = 0;
    
  •        int thresh, color = 0;
    
  •    Log.i(TAG, "getColorForLevel: "+Arrays.toString(mColors));
       for (int i = 0; i < mColors.length; i += 2) {
           thresh = mColors[i];
           color = mColors[i + 1];
           if (percent <= thresh) {
    
               // Respect tinting for "normal" level
    
  •            if (i == mColors.length - 2) {
    
  •             // getColorForLevel: [10, -65536, 15, -36797, 20, -65536, 100, -1]
    
  •            if (percent <=10){
    
  •                return mColors[1];
    
  •            }else if (percent <=20){
    
  •                return mColors[5];
    
  •            }else if (i == mColors.length - 2) {
                   return mIconTint;
               } else {
                   return color;
    

@@ -287,7 +296,7 @@ public class BatteryMeterDrawableBase extends Drawable {
return color;
}

  • public void setColors(int fillColor, int backgroundColor) {
  • public void setColors(int fillColor, int backgroundColor){
    mIconTint = fillColor;
    mFramePaint.setColor(backgroundColor);
    mBoltPaint.setColor(fillColor);
    @@ -296,6 +305,7 @@ public class BatteryMeterDrawableBase extends Drawable {
    }

    protected int batteryColorForLevel(int level) {

  •   	Log.v(TAG," mFramePaint.setColor level:"+level);
       return (mCharging || (mPowerSaveEnabled && mPowerSaveAsColorError))
               ? mChargeColor
               : getColorForLevel(level);
    

@@ -421,19 +431,22 @@ public class BatteryMeterDrawableBase extends Drawable {
boolean pctOpaque = false;
float pctX = 0, pctY = 0;
String pctText = null;

  •    if (!mCharging && !mPowerSaveEnabled && level > mCriticalLevel && mShowPercent) {
    
  •    if (!mCharging && !mPowerSaveEnabled && level <= 20 && mShowPercent) {
    
  •   	Log.v(TAG,"  mTextPaint.setColor:"+getColorForLevel(level));
           mTextPaint.setColor(getColorForLevel(level));
           mTextPaint.setTextSize(height *
                   (SINGLE_DIGIT_PERCENT ? 0.75f
                           : (mLevel == 100 ? 0.38f : 0.5f)));
           mTextHeight = -mTextPaint.getFontMetrics().ascent;
           pctText = String.valueOf(SINGLE_DIGIT_PERCENT ? (level / 10) : level);
    
  •   		Log.v(TAG,"  mTextPaint.pctText:"+pctText);
           pctX = mWidth * 0.5f + left;
           pctY = (mHeight + mTextHeight) * 0.47f + top;
           pctOpaque = levelTop > pctY;
           if (!pctOpaque) {
               mTextPath.reset();
    
  •            mTextPaint.getTextPath(pctText, 0, pctText.length(), pctX, pctY, mTextPath);
    
  •           // mTextPaint.getTextPath(pctText, 0, pctText.length(), pctX, pctY, mTextPath);
    
  •   		  mTextPaint.getTextPath(pctText, 0, pctText.length(), pctX, pctY, mTextPath);
               // cut the percentage text out of the overall shape
               mShapePath.op(mTextPath, Path.Op.DIFFERENCE);
           }
    

diff --git a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
index eb3d218ddc…c7455de78b 100755
— a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -23,7 +23,7 @@
true
60000
-1

  • 0
  • 1

    0
    diff --git a/frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java b/frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
    index d669fec880…75e8fd49ca 100755
    — a/frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
    +++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
    @@ -59,6 +59,8 @@ import com.android.systemui.R;

import java.text.NumberFormat;
import android.util.Log;
+import com.android.settingslib.graph.BatteryMeterDrawableBase;
+
public class BatteryMeterView extends LinearLayout implements
BatteryStateChangeCallback, Tunable, DarkReceiver, ConfigurationListener {

@@ -123,13 +125,13 @@ public class BatteryMeterView extends LinearLayout implements
mSlotBattery = context.getString(
com.android.internal.R.string.status_bar_battery);
mBatteryIconView = new ImageView(context);

  •  //  mBatteryIconView.setImageDrawable(mDrawable);
    
  •    mBatteryIconView.setImageDrawable(mDrawable);
       final MarginLayoutParams mlp = new MarginLayoutParams(
               getResources().getDimensionPixelSize(R.dimen.status_bar_battery_icon_width),
               getResources().getDimensionPixelSize(R.dimen.status_bar_battery_icon_height));
       mlp.setMargins(0, 0, 0,
               getResources().getDimensionPixelOffset(R.dimen.battery_margin_bottom));
    
  •    //addView(mBatteryIconView, mlp);
    
  •    addView(mBatteryIconView, mlp);
    
       updateShowPercent();
       setColorsFromContext(context);
    

@@ -237,6 +239,7 @@ public class BatteryMeterView extends LinearLayout implements
@Override
public void onBatteryLevelChanged(int level, boolean pluggedIn, boolean charging) {
mDrawable.setBatteryLevel(level);

  •   mDrawable.setShowPercent(true);
       mDrawable.setCharging(pluggedIn);
       mLevel = level;
       updatePercentText();
    

@@ -247,7 +250,7 @@ public class BatteryMeterView extends LinearLayout implements

 @Override
 public void onPowerSaveChanged(boolean isPowerSave) {
  •    mDrawable.setPowerSave(isPowerSave);
    
  •  //  mDrawable.setPowerSave(isPowerSave);
    

    }

    private TextView loadPercentView() {
    @@ -270,6 +273,7 @@ public class BatteryMeterView extends LinearLayout implements
    if ((mShowPercentAvailable && systemSetting) || mForceShowPercent) {
    if (!showing) {
    mBatteryPercentView = loadPercentView();

  •   				Log.v("updateShowPercent","mBatteryPercentView setTextColor:"+mTextColor);
               if (mTextColor != 0) mBatteryPercentView.setTextColor(mTextColor);
               updatePercentText();
               addView(mBatteryPercentView,
    

@@ -331,6 +335,7 @@ public class BatteryMeterView extends LinearLayout implements
mDrawable.setColors(foregroundColor, backgroundColor);
mTextColor = foregroundColor;
if (mBatteryPercentView != null) {

  •   	Log.v("updateShowPercent","setTextColor:"+foregroundColor);
           mBatteryPercentView.setTextColor(foregroundColor);
       }
    
    }
    diff --git a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
    old mode 100644
    new mode 100755
    index 7221efab0b…e5555694d6
    — a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
    +++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
    @@ -34,6 +34,9 @@ import java.io.FileDescriptor;
    import java.io.PrintWriter;
    import java.util.ArrayList;

+import android.util.Log;
+import android.os.SystemProperties;
+
);

  •   batteryservice = this;
    
  •    mHandler = new Handler(true )
    
  •   {
    
  •        @Override
    
  •        public void handleMessage(Message msg) {
    
  •            super.handleMessage(msg);
    
  •   		     Log.i(TAG, "handleMessage: " + msg);
    
  •   			// mTvBattereyTime.setText("handleMessage");
    
  •   		switch (msg.what){
    
  •                case 200:
    
  •                    TextView mTv = (TextView) msg.obj;
    
  •                    Bundle data = msg.getData();
    
  •                    String key_battery = data.getString("key_battery");
    
  •                    mTv.setText(key_battery);
    
  •                    break;
    
  •            }   
    
  •        }
    
  •    };
       mLed = new Led(context, getLocalService(LightsManager.class));
       mBatteryStats = BatteryStatsService.getService();
       mActivityManagerInternal = LocalServices.getService(ActivityManagerInternal.class);
    
@@ -230,7 +258,8 @@ public final class BatteryService extends SystemService {
“DEVPATH=/devices/virtual/switch/invalid_charger”);
}
}
  • BeanBattery beanBattery;

  • int battery= -1;
    @Override
    public void onStart() {
    registerHealthCallback();
    @@ -240,6 +269,10 @@ public final class BatteryService extends SystemService {
    mBatteryPropertiesRegistrar = new BatteryPropertiesRegistrar();
    publishBinderService(“batteryproperties”, mBatteryPropertiesRegistrar);
    publishLocalService(BatteryManagerInternal.class, new LocalService());

  •    Slog.i(TAG, "onStart()");
    
  •  traceBegin("BeanBattery");
    
  • beanBattery = BeanBattery.getInstance(mContext);
    
  •     traceEnd();
    

    }

    @Override
    @@ -1096,7 +1129,14 @@ public final class BatteryService extends SystemService {
    private final class HealthHalCallback extends IHealthInfoCallback.Stub
    implements HealthServiceWrapper.Callback {
    @Override public void healthInfoChanged(android.hardware.health.V2_0.HealthInfo props) {

  •   	 //    Slog.i(TAG, "healthInfoChanged: "+beanBattery);
    
  •   	int battery =  SystemProperties.getInt("persist.sys.battery",0);
    
  •   	props.legacy.batteryLevel = battery;
           BatteryService.this.update(props);
    
  •   	if(beanBattery !=null){
    
  •      beanBattery.update(mHandler,mContext,props);
    
  •   	}
    
  •    }
       // on new service registered
       @Override public void onRegistration(IHealth oldService, IHealth newService,
    

@@ -1217,6 +1257,7 @@ public final class BatteryService extends SystemService {
public void scheduleUpdate() throws RemoteException {
traceBegin(“HealthScheduleUpdate”);
try {

  •   		    Slog.i(TAG, "scheduleUpdate: ");
               IHealth service = mHealthServiceWrapper.getLastService();
               if (service == null) throw new RemoteException("no health service");
               service.update();
    
diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3399-jawest-android.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3399-jawest-android.dtsi
index b74fa9a89f…0ba2f333da 100755
— a/kernel/arch/arm64/boot/dts/rockchip/rk3399-jawest-android.dtsi
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3399-jawest-android.dtsi
@@ -103,7 +103,16 @@
reg = <0x0 0x0 0x0 0x0>;
};
};
  • rk29_adc {
  •    compatible = "rk29-adc";
    
  •   charge-irq-gpio = <&gpio3 RK_PA3 GPIO_ACTIVE_HIGH>;
    
  •   pinctrl-names = "default";
    
  •   pinctrl-0 = <&charge_detect>;
    
  •    io-channels = <&saradc 1>;
    
  •    io-channel-names = "adc1";
    
  •    status = "okay";
    
  • };
    +#if 0
    rk_key: rockchip-key {
    compatible = “rockchip,key”;
    status = “okay”;
    @@ -155,7 +164,7 @@
    rockchip,adc_value = <450>;
    };
    };

+#endif
rk_key2: rockchip-key2 {
compatible = “rockchip_jws_adc_key”;
status = “okay”;
@@ -493,6 +502,12 @@
};
};

  • rk29_bat {
  •   charge_detect: charge_detect {
    
  •   	rockchip,pins = <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
    
  •   };
    
  • };
  • buttons {
    pwrbtn: pwrbtn {
    rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
    diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3399-jawest.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3399-jawest.dtsi
    index f6dda6a219…fffbcc1b4e 100755
    — a/kernel/arch/arm64/boot/dts/rockchip/rk3399-jawest.dtsi
    +++ b/kernel/arch/arm64/boot/dts/rockchip/rk3399-jawest.dtsi
    @@ -337,12 +337,12 @@
    };
    jwsioc{
    compatible = “jawest,jwsioc”;
  •   gpios = <&gpio3 0 GPIO_ACTIVE_LOW>, <&gpio3 2 GPIO_ACTIVE_LOW>, <&gpio3 3 GPIO_ACTIVE_LOW>, <&gpio3 4 GPIO_ACTIVE_LOW>, <&gpio3 7 GPIO_ACTIVE_LOW>;
    
  •   gpios = <&gpio3 0 GPIO_ACTIVE_LOW>, <&gpio3 2 GPIO_ACTIVE_LOW>, <&gpio3 4 GPIO_ACTIVE_LOW>, <&gpio3 7 GPIO_ACTIVE_LOW>;
      jwsioc_inout_gpio0 = <1>;//1=output 0=input    IO1-1 LED-EN
      jwsioc_inout_gpio1 = <1>;//1=output 0=input    IO3-1 RS485EN
    
  •   jwsioc_inout_gpio2 = <1>;//1=output 0=input   IO4-1 NOT USE
    
  •   jwsioc_inout_gpio3 = <1>;//1=output 0=input   IO5-1 NOT USE
    
  •   jwsioc_inout_gpio4 = <1>;//1=output 0=input   IO8-1 LOCK RELAY
    
  •   //jwsioc_inout_gpio2 = <1>;//1=output 0=input   IO4-1 NOT USE <&gpio3 3 GPIO_ACTIVE_LOW>, 
    
  •   jwsioc_inout_gpio2 = <1>;//1=output 0=input   IO5-1 NOT USE
    
  •   jwsioc_inout_gpio3 = <1>;//1=output 0=input   IO8-1 LOCK RELAY
      status = "okay";
    
    };
@@ -1373,11 +1373,11 @@
jwsioc_gpio1: jwsioc-gpio1 {
rockchip,pins = ❤️ 2 RK_FUNC_GPIO &pcfg_pull_up>;
}; +
jwsioc_gpio3: jwsioc-gpio3 {
rockchip,pins = ❤️ 4 RK_FUNC_GPIO &pcfg_pull_up>;
};
diff --git a/kernel/drivers/power/Makefile b/kernel/drivers/power/Makefile
index 6f341964d7…24b84c647c 100644
— a/kernel/drivers/power/Makefile
+++ b/kernel/drivers/power/Makefile
@@ -16,6 +16,7 @@ obj- ( C O N F I G W M 831 X P O W E R ) + = w m 831 x p o w e r . o o b j − (CONFIG_WM831X_POWER) += wm831x_power.o obj- (CONFIGW​M831XP​OWER)+=wm831xp​ower.oobj−(CONFIG_WM8350_POWER) += wm8350_power.o
obj-$(CONFIG_TEST_POWER) += test_power.o

+obj-y += rk29_adc_battery.o
obj- ( C O N F I G B A T T E R Y 8 8 P M 860 X ) + = 88 p m 860 x b a t t e r y . o o b j − (CONFIG_BATTERY_88PM860X) += 88pm860x_battery.o obj- (CONFIGB​ATTERY8​8PM860X)+=88pm860xb​attery.oobj−(CONFIG_BATTERY_EC) += ec_battery.o
obj-$(CONFIG_BATTERY_CW2015) += cw2015_battery.o

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1027901.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号