Limit relaunch retry if it keeps failing

- Limit it to 5 times with 500ms delay (about 2 secs for total duration)
- Being alive for more than 2 mins reset the crash counter.
- Retry for user switching, power ON (including wakeup from sleep),
  and package update.
- Added always crashing Activity and other Activities in kietchensink for testing.
- Add shell command to test fixed mode start and stopping in easier way:
$ adb shell dumpsys car_service start-fixed-activity-mode 1 com.google.android.car.kitchensink com.google.android.car.kitchensink.AlwaysCrashingActivity
$ adb shell dumpsys car_service stop-fixed-activity-mode 1
- Added test script to test all recovery cases: fixed_activity_mode_test.sh
  * give up after retry
  * retry after package update
  * retry after suspend - resume
  * successfully launch for NoCrashActivity
  * Re-launch the Activity if other Activity launched
  * Re-launch after package update

Bug: 141721242
Test: $ ./packages/services/Car/tests/fixed_activity_mode_test/fixed_activity_mode_test.sh

Change-Id: I86cdc80705d936c47323be985d6daa1d4ac4d9f4
(cherry picked from commit dd163af6f4034d93dccc279a7f611813c81d922e)
10 files changed
tree: 52aadc2b626752ccec686dae468c582f70d907ed
  1. car-bugreportd/
  2. car-default-input-service/
  3. car-lib/
  4. car-maps-placeholder/
  5. car-systemtest-lib/
  6. car-test-lib/
  7. car-usb-handler/
  8. car_product/
  9. computepipe/
  10. EncryptionRunner/
  11. evs/
  12. FrameworkPackageStubs/
  13. obd2-lib/
  14. procfs-inspector/
  15. service/
  16. tests/
  17. tools/
  18. user/
  19. vehicle-hal-support-lib/
  20. .clang-format
  21. .gitignore
  22. Android.mk
  23. CleanSpec.mk
  24. OWNERS
  25. PREUPLOAD.cfg
  26. README.md
README.md

Native (C++) code format is required to be compatible with .clang-format file. Run

git clang-format --style=file --extension='h,cpp,cc' HEAD~

Note that clang-format is not desirable for Android java files. Therefore the command line above is limited to specific extensions.