Change Car.createCar to wait for car service if not found

- Add explicit binding and retry instead of giving up immediately.
- Try only up to 5 secs and return null after that.
- This can block main thread but car service not available for that long
  is a problem anyway.
- Added unit test to verify the functionality when car service is not started.

Bug: 139687557
Test: check boot up

Change-Id: I272db5f8be37d1650ac43b91ed9d8d7bd064f08b
Merged-In: I272db5f8be37d1650ac43b91ed9d8d7bd064f08b
(cherry picked from commit f9745398b4aa19e011c59b640e3b504c14f784ff)
3 files changed
tree: 3e3d334909b7f0407434789493fe8eb653a3ab9c
  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. EncryptionRunner/
  10. evs/
  11. FrameworkPackageStubs/
  12. obd2-lib/
  13. procfs-inspector/
  14. service/
  15. tests/
  16. tools/
  17. user/
  18. vehicle-hal-support-lib/
  19. .clang-format
  20. .gitignore
  21. Android.mk
  22. CleanSpec.mk
  23. OWNERS
  24. PREUPLOAD.cfg
  25. 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.