Commit Graph

8 Commits

Author SHA1 Message Date
jackqdyulei
8dba5a03a1 Add anomaly detection method to AnomalyUtils
So we could reuse it in different loaders.

Bug: 63900914
Test: robotests still pass
Change-Id: I038085f53b9d0a05b8c4849c7544567434885821
2017-07-25 10:20:10 -07:00
jackqdyulei
edfebbaa4f Add log for anomaly.
This cl adds all the info that need to be logged to Anomaly and add a
dump method for log.

Bug: 63776178
Test: RunSettingsRoboTests
Change-Id: If762bfca725fee07944ffa23998332c81335a37f
2017-07-21 12:39:50 -07:00
jackqdyulei
ec8e127ed3 Add anomaly detector for unoptimized bt scanning
This cl detects bt anomaly by using
BluetoothUnoptimizedScanBackgroundTimer. It will report anomaly
if total duration is longer than threshold.

Future cl will hook up the threshold to server side.

Bug: 36921532
Test: RunSettingsRoboTests
Change-Id: I5d6a42b2d2c4fec94387ca59ba8e6a2f3346d047
2017-06-19 11:12:36 -07:00
jackqdyulei
c3694e425e Add debug data in AnomalyLoader
Bug: 62299540
Test: RunSettingsRoboTests
Change-Id: Id20db9fc0da8e090385caa982f2fb5a6fa0b2f38
(cherry picked from commit 5753e6d97e)
2017-06-08 00:12:43 +00:00
jackqdyulei
e3e8bd6317 Refactor anomaly detection
This cl refactor it so:
1. AnomayLoader could create its own BatteryStatsHelper if needed.
2. AnomalyDetector could detect the anomaly with a target package name
3. Remove FeatureProvider in AnomalyLoader and use
AnomalyDetectionPolicy instead

With this cl, we could add anomaly detection to battery usage page
more easily.

Bug: 36924669
Test: RunSettingsRoboTests
Change-Id: I1ee09701de8b5c8855f44e447813760285794c89
2017-06-05 19:35:22 -07:00
jackqdyulei
0dce3c0764 Add framework for anomaly detection flags
This cl adds isAnomalyDetectorEnabled(type), which decides whether
to turn on specific check with that type.

Added method is used in AnomalyLoader.

Bug: 36924669
Test: RunSettingsRoboTests
Change-Id: I71c6acb1c58c24453a1936c5c36f59fe4e86cfd4
2017-05-08 14:19:09 -07:00
jackqdyulei
4aa3358c4c Add wakelock anomaly detector
This cl detects whether apps hold wakelock for long time.
For now we use the following attribute:
1. Longest total duration time among all the wakelocks
for one app.

Following cl will:
1. Get threshold from server side.
2. Add more attributes to make the detection more robust.

Bug: 36925184
Test: RunSettingsRoboTests

Change-Id: I1946faf69c363f6aa823d0005d6e03bc9082c085
2017-05-02 14:55:33 -07:00
jackqdyulei
df6dd14799 Framework for the anomaly detection.
This cl adds the following components for anomaly dection:
1. AnomalyLoader: run all the anomaly checks in the background
2. Anomaly: Data class to represent what anomaly it is
3. Detector: Different kinds of anomaly detector with common interface
4. Action:  Suggestions when facing anomaly(Force stop, uninstall)
5. AnomalyDialogFragment: show the confirm dialog for action
6. AnomalyPreferenceController: handle update and click for
anomalyPreference, since it will be used in multiple fragments.
7. AnomalyUtils: utility class for anomaly

This cl also adds skeleton for the wakelock check and action. Following
cls will add real implementation about it.

Bug: 36924669
Test: RunSettingsRoboTests
Change-Id: I89fc4b6963757869b93791b4275ca53c04ab9604
2017-05-01 16:03:09 -07:00