77 lines
3.2 KiB
Markdown
77 lines
3.2 KiB
Markdown
|
|
# [Android Automotive](https://source.android.com/devices/automotive) Developer Tools
|
||
|
|
|
||
|
|
AADevT contains tools for AA device developers to improve their productivity.
|
||
|
|
|
||
|
|
* Fully unbundle from Android versions, and use the AOSP trunk based
|
||
|
|
development model.
|
||
|
|
|
||
|
|
* Bridge the app ecosystem for [Android Automotive OS](https://developer.android.com/training/cars)
|
||
|
|
because device developers are the key producers for the core apps.
|
||
|
|
|
||
|
|
* Leverage [Android app developer tools](https://developer.android.com/studio/intro)
|
||
|
|
that a few million developers use.
|
||
|
|
|
||
|
|
[TOC]
|
||
|
|
|
||
|
|
## Dev Tools
|
||
|
|
This contains tools designed specifically to simplify the AA device development
|
||
|
|
workflows.
|
||
|
|
|
||
|
|
* clone_proj.sh to clone a git project for the unbundled development workflows
|
||
|
|
in instead of the whole Android repo.
|
||
|
|
|
||
|
|
## Change Reports
|
||
|
|
|
||
|
|
### change_report.py
|
||
|
|
change_report.py creates a diff statistic CSV file from 2 versions of a codebase.
|
||
|
|
This is useful when the git commit history is somehow not obtainable. What you
|
||
|
|
need is to get 2 versions of a codebase downloaded on your disk first.
|
||
|
|
|
||
|
|
* You can compare specific folders of concern for a quick result, or when
|
||
|
|
there is a code patch change.
|
||
|
|
* This skips all symlinks & ignores common repository metadata folders, e.g.
|
||
|
|
.git, etc.
|
||
|
|
* It can take a long time & generates a large CSV file for the whole Android
|
||
|
|
codebase & especially if they are many changes. For example:
|
||
|
|
* Android 11 QPR1 vs QPR2 takes more than 8 min. & generates a 5MB CSV file.
|
||
|
|
* Android 10 QPR3 vs Android 11 QPR2 takes more than 11 min. & generates a
|
||
|
|
95MB CSV file.
|
||
|
|
* To reduce time, you should always remove **out**, the build output folder first.
|
||
|
|
* For example, to compare Android 11 QPR1 vs QPR2 AOSP codebases on your disk.
|
||
|
|
|
||
|
|
```
|
||
|
|
python3 change_report.py --old_dir ~/android/android11-qpr1-release \
|
||
|
|
--new_dir ~/android/android11-qpr2-release \
|
||
|
|
--csv_file ~/change_reports/change_report_android11-qpr1-release_android11-qpr2-release.csv
|
||
|
|
```
|
||
|
|
|
||
|
|
* An output example: [change_report-new_vs_old_codebase.csv](dev/resource/change_report-new_vs_old_codebase.csv)
|
||
|
|
is the change report between **dev/resource/old_codebase** and
|
||
|
|
**new_codebase**.
|
||
|
|
* The **states** are:
|
||
|
|
* SAME = 0
|
||
|
|
* NEW = 1
|
||
|
|
* REMOVED = 2
|
||
|
|
* MODIFIED = 3
|
||
|
|
* INCOMPARABLE = 4
|
||
|
|
|
||
|
|
### sysui_oem_diff.sh
|
||
|
|
sysui_oem_diff.sh generates a summary of code changes between 2 revisions.
|
||
|
|
Which gives you a rough idea of changes on files and Lines of Code.
|
||
|
|
|
||
|
|
* The report is especailly useful to discuss the pain points on sysui/notif
|
||
|
|
customization with AAOS team.
|
||
|
|
* For example, to generate the change report for Android 11 to 10 QPR3: [sysui_gcar_android10-qpr3-release_android11-release.txt](dev/resource/sysui_gcar_android10-qpr3-release_android11-release.txt)
|
||
|
|
|
||
|
|
```
|
||
|
|
./sysui_oem_diff.sh ~/Android/android11-release remotes/aosp/android10-qpr3-release remotes/aosp/android11-release > sysui_gcar_android10-qpr3-release_android11-release.txt
|
||
|
|
```
|
||
|
|
|
||
|
|
## System Performance Tuning
|
||
|
|
AAOS system performance turning is hard. Here are the tools to make it a bit
|
||
|
|
easier for the device developers.
|
||
|
|
|
||
|
|
* time_to_init_disp.sh to measure an app's [Time the Initial Display](https://developer.android.com/topic/performance/vitals/launch-time#time-initial)
|
||
|
|
|
||
|
|
## [Android Virtual Device as a Development Platform](avd/README.md)
|