
展讯
法迪
Android系统与续航工程师、应用开发工程师
https://github.com/sufadi
332157261@qq.com
展开
-
1 展讯Sprd设置-电池-setPowerSaveMode 接口
1. 接口传递逻辑2. 界面入口-SprdBatterySaverSettingspackage com.android.settings.fuelgauge;public class SprdBatterySaverSettings extends SettingsPreferenceFragment { @Override public void onCreate(...原创 2018-10-19 15:49:39 · 2860 阅读 · 1 评论 -
19 展讯Sprd设置-电池-识别打印服务-PrintManager
1. 应用场景关联唤醒拦截中,识别重要服务,不进行拦截,比如打印服务2. 识别打印服务-PrintManagerimport android.print.PrintManager;import android.printservice.PrintServiceInfo; private List<ComponentName> mPrintServiceList = ...原创 2018-11-22 09:14:34 · 888 阅读 · 0 评论 -
20 展讯Sprd设置-电池-识别没有启动入口的程序
1. 目的关联唤醒管理中,不对无启动入口界面程序进行拦截,但是目前的实际情况是进行拦截2. 获取无启动入口的应用程序源码中改函数可能获取的数据为空,因为其中的getInstalledAppList获取的安装列表一直为空函数的主要原理是mContext.getPackageManager().getLaunchIntentForPackage(key) == null,null则表示是该包没...原创 2018-11-22 10:25:21 · 471 阅读 · 0 评论 -
20 展讯Sprd设置-电池-识别账户服务action
1. 目的不进行拦截账户服务2. 识别账户服务主要在bing-service中判断action是否匹配ACTION_AUTHENTICATOR_INTENTimport static android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT; if ("android".equals(callerApp) ...原创 2018-11-22 10:32:03 · 445 阅读 · 0 评论 -
27 展讯Sprd设置-电池-省电白名单
1. 源码配置白名单vendor/sprd/platform/frameworks/native/data/etc/appPowerSaveConfig.xml省电白名单文档,可以通过系统源码默认配置也可以通过软件接口进行配置更新2. 源码2.1 读取白名单package com.android.server.power;public class PowerController ...原创 2018-11-23 19:57:34 · 2420 阅读 · 0 评论 -
[关联唤醒拦截]AMS的启动流程
0. 流程图1. SystemServer.javaframeworks/base/services/java/com/android/server/SystemServer.java很多framewrok层的服务都是从这里定义启动的1.1 SystemServer.startBootstrapServices()package com.android.server;publi...原创 2019-01-12 14:55:12 · 399 阅读 · 0 评论 -
21 展讯Sprd设置-电池-识别应用类别
1. 目的拦截应用启动时,判断下应用的类别,根据条件选择是否拦截 public static final int UNKNOWN = -1; public static final int SYSTEM = 0; public static final int GAME = 1; public static final int MUSIC = 2; pub...原创 2018-11-22 14:37:52 · 2165 阅读 · 1 评论 -
10 展讯Sprd设置-电池-AppStateInfoCollector 接口介绍
1. AppStateInfoCollector 接口介绍由于应用场景调用地方多样,所以该接口主要更新应用状态信息。这里重点 public接口的被调用状况2. 实例化package com.android.server.power;public class PowerController { // App state info private AppStateInfoC...原创 2019-01-12 14:54:47 · 690 阅读 · 0 评论 -
22 展讯Sprd设置-电池-识别输入法应用
1. 目的输入法应用属于可识别类型且核心应用,不能进行拦截和kill2. 展讯输入法判断2.1 判断逻辑块 //handle inputmethod if (isLaunchingIMEApp(intent, targetApp, targetUid, callerApp, reason)) { return true; }2.2 判断是否为输入法...原创 2018-11-22 15:38:35 · 1178 阅读 · 0 评论 -
11 展讯Sprd设置-电池-AppStateInfoCollector.reportAppStateEventInfo 代码走读
1. AppStateInfoCollector.reportAppStateEventInfopackage com.android.server.power;public class AppStateInfoCollector { // return true: for new app state // false: for others public...原创 2019-01-12 14:55:29 · 642 阅读 · 0 评论 -
12 展讯Sprd设置-电池-AppStateInfoCollector.handleProcStateChanged 代码走读
1. AppStateInfoCollector.handleProcStateChanged重点监听UID状态变化,来改变uid的状态 // return true: for new app state // false: for others public boolean reportAppProcStateInfo(String packageName, i...原创 2019-01-12 14:56:53 · 856 阅读 · 0 评论 -
23 展讯Sprd设置-电池-识别桌面小部件
1. 目的appwidget 主要根据广播进行传递,如果拦截了会影响小部件的数据更新,一般通过下面的action传递事件,即不能进行拦截android.appwidget.action.APPWIDGET_ENABLEDandroid.appwidget.action.APPWIDGET_UPDATEandroid.appwidget.action.APPWIDGET_DELETED2...原创 2018-11-22 16:00:35 · 1524 阅读 · 0 评论 -
24 展讯Sprd设置-电池-识别默认电话进程和外拨事件
1. 目的广播拦截中,注意识别默认电话进程和外拨事件不可拦截2. 源码2.1 拦截判断 // check out call for phone app if ("android".equals(callerApp) && intent != null && Intent.ACTION_NEW_OUTGOING_CALL.equa...原创 2018-11-22 16:31:34 · 779 阅读 · 0 评论 -
25 展讯Sprd设置-电池-识别CTS应用
0. 目的CTS应用,不能进行省电操作,否则会无法通过1. cts 判断接口 public static boolean isCts(String pkgName) { if (pkgName == null) return false; /*check if in internal white app list, like CTS app*/ ...原创 2018-11-23 12:13:02 · 707 阅读 · 0 评论 -
18 展讯Sprd设置-电池-识别TTS服务
1. 目的关联唤醒管理中在bing-service类型服务拦截中,不拦截TTS服务2. TTS服务识别接口import android.speech.tts.TextToSpeech; private final String[] mInternalTTSActionList = new String[] { "com.iflytek.vflynote.synth...原创 2018-11-21 20:03:16 · 436 阅读 · 0 评论 -
17 展讯Sprd设置-电池-监听手指抬起事件判断是否有触摸事件
1. 功能通过监听手指抬起的事件,记录对应时间戳,通过最近2次手指抬起时间判断是否有触摸事件2. 监听手指触摸事件package com.android.server.power;import android.content.Context;import android.os.Build;import android.os.Handler;import android.os.Loo...原创 2018-11-21 19:50:04 · 512 阅读 · 0 评论 -
2. 展讯Sprd设置-电池-省电白名单设置-appPowerSaveConfig.xml
1. 源码设置路径vendor\sprd\platform\frameworks\native\data\etc\appPowerSaveConfig.xml<?xml version='1.0' encoding='utf-8' standalone='yes' ?><app_powersave_config><package name="com.pp....原创 2018-10-19 16:28:58 · 2311 阅读 · 0 评论 -
展讯Sprd设置-电池-UI
0. UI界面1. UI入口配置AndroidManifest.xml <activity android:name="Settings$PowerUsageSummaryActivity" android:label="@string/power_usage_summary_title" android...原创 2018-10-17 16:05:33 · 6092 阅读 · 0 评论 -
3 展讯Sprd设置-电池-onPowerSaveModeChanging接口
0. 前言上接展讯Sprd设置-电池-setPowerSaveModehttps://blog.youkuaiyun.com/su749520/article/details/83183634源码走读的开始位置vendor/sprd/platform/frameworks/base/services/core/java/com/android/server/power/PowerControll...原创 2018-10-22 15:22:00 · 3879 阅读 · 0 评论 -
4 展讯Sprd设置-电池-PowerController.exitPowerSaveMode函数接口
0. 前言上接展讯Sprd设置-电池-setPowerSaveModehttps://blog.youkuaiyun.com/su749520/article/details/831836343 展讯Sprd设置-电池-onPowerSaveModeChanging接口https://blog.youkuaiyun.com/su749520/article/details/83273432源码走...原创 2018-10-22 16:34:41 · 618 阅读 · 0 评论 -
5 展讯Sprd设置-电池-PowerController.enterPowerSaveMode 函数接口
0. 前言上接展讯Sprd设置-电池-setPowerSaveModehttps://blog.youkuaiyun.com/su749520/article/details/831836343 展讯Sprd设置-电池-onPowerSaveModeChanging接口https://blog.youkuaiyun.com/su749520/article/details/832734324 ...原创 2018-10-29 15:28:53 · 3203 阅读 · 0 评论 -
6 展讯Sprd设置-电池-PowerController.onPowerSaveModeChanged 函数接口
0. 前言展讯Sprd设置-电池-setPowerSaveModehttps://blog.youkuaiyun.com/su749520/article/details/83183634展讯Sprd设置-电池-省电白名单设置-appPowerSaveConfig.xmlhttps://blog.youkuaiyun.com/su749520/article/details/83184394展...原创 2018-10-30 10:14:31 · 2358 阅读 · 0 评论 -
打开展讯日志采集界面-YlogActivity
打开展讯日志采集界面adb shell am start -n com.sprd.engineermode/com.sprd.engineermode.debuglog.ylogui.YlogActivity原创 2018-11-07 14:30:40 · 2330 阅读 · 0 评论 -
8 展讯Sprd设置-电池-关联自启动-judgeAppLaunchAllowedInternal 函数
1. 关联唤醒机制关联唤醒中的原理在于在应用启动的各种通道中进行拦截在ActivityStarter 进行 start-activity 监听,judgeAppLaunchAllowedInternal 判断是否拦截在ActivityManagerService 进行 contentprovider 监听,judgeAppLaunchAllowedInternal 判断是否拦截在Broa...原创 2019-01-12 14:53:26 · 1160 阅读 · 0 评论 -
7 展讯Sprd设置-电池-关联自启动-跟踪代码
1. UI-关联自启动2. 源码走读-上层接口调用2.1 字符串strings_ex.xml&lt;string name="app_as_lunch"&gt;关联启动&lt;/string&gt;&lt;string name="app_as_lunch_optimization"&gt;关联自启动&原创 2019-01-12 14:53:56 · 9848 阅读 · 0 评论 -
9 展讯Sprd设置-电池-关联唤醒拦截位置
1. 关联唤醒机制关联唤醒中的原理在于在应用启动的各种通道中进行拦截在ActivityStarter 进行 start-activity 监听,judgeStartAllowLocked 判断是否拦截在ActivityManagerService 进行 contentprovider 监听,judgeStartAllowLocked 判断是否拦截在BroadcastQueue 进行 se...原创 2019-01-12 14:54:12 · 4819 阅读 · 0 评论 -
13 展讯Sprd设置-电池-应用事件变化数据收集(8.0 Android O)
1. UsageStatsService 的功能介绍frameworks/base/services/usage/java/com/android/server/usage/UsageStatsService.java2. SystemServer 启动 UsageStatsServiceframeworks/base/services/java/com/android/server/...原创 2018-11-20 15:30:48 · 2346 阅读 · 0 评论 -
15 展讯Sprd设置-电池-电池温度调试
1. 展讯平台电池温度1.1 打开温度调试adb shell "cat /sys/class/power_supply/battery/debug_jeita_enable"adb shell "echo 1 > /sys/class/power_supply/battery/debug_jeita_enable"1.2 温度值模拟设置adb shell "cat /sys/cl...原创 2018-11-21 16:00:54 · 5362 阅读 · 0 评论 -
16 展讯Sprd设置-电池-获取模拟辅助服务列表接口
1. 前言后台管理中,尤其是bing-service类型启动中,有些服务是不建议拦截的,比如模拟辅助功能2. 获取可用模拟辅助组件列表 private List<ComponentName> mEnabledAccessibilityServiceList = new ArrayList<>(); public boolean isEnabledAcc...原创 2018-11-21 18:06:55 · 1160 阅读 · 0 评论 -
26 展讯Sprd设置-电池-识别桌面应用
1. 目的识别桌面应用,并进行拦截处理2. 源码相关主要使用 Intent.CATEGORY_HOME 进行过滤判断 // using disable component instead of disable the whole app // when enter/exit ultra-saving mode. See bug#819868 // to save th...原创 2018-11-23 14:59:57 · 697 阅读 · 0 评论