1*b32fbb63SXin Li# [Android Automotive](https://source.android.com/devices/automotive) Developer Tools 2*b32fbb63SXin Li 3*b32fbb63SXin LiAADevT contains tools for AA device developers to improve their productivity. 4*b32fbb63SXin Li 5*b32fbb63SXin Li* Fully unbundle from Android versions, and use the AOSP trunk based 6*b32fbb63SXin Lidevelopment model. 7*b32fbb63SXin Li 8*b32fbb63SXin Li* Bridge the app ecosystem for [Android Automotive OS](https://developer.android.com/training/cars) 9*b32fbb63SXin Libecause device developers are the key producers for the core apps. 10*b32fbb63SXin Li 11*b32fbb63SXin Li* Leverage [Android app developer tools](https://developer.android.com/studio/intro) 12*b32fbb63SXin Lithat a few million developers use. 13*b32fbb63SXin Li 14*b32fbb63SXin Li[TOC] 15*b32fbb63SXin Li 16*b32fbb63SXin Li## Dev Tools 17*b32fbb63SXin LiThis contains tools designed specifically to simplify the AA device development 18*b32fbb63SXin Liworkflows. 19*b32fbb63SXin Li 20*b32fbb63SXin Li* clone_proj.sh to clone a git project for the unbundled development workflows 21*b32fbb63SXin Liin instead of the whole Android repo. 22*b32fbb63SXin Li 23*b32fbb63SXin Li## Change Reports 24*b32fbb63SXin Li 25*b32fbb63SXin Li### change_report.py 26*b32fbb63SXin Lichange_report.py creates a diff statistic CSV file from 2 versions of a codebase. 27*b32fbb63SXin LiThis is useful when the git commit history is somehow not obtainable. What you 28*b32fbb63SXin Lineed is to get 2 versions of a codebase downloaded on your disk first. 29*b32fbb63SXin Li 30*b32fbb63SXin Li* You can compare specific folders of concern for a quick result, or when 31*b32fbb63SXin Lithere is a code patch change. 32*b32fbb63SXin Li* This skips all symlinks & ignores common repository metadata folders, e.g. 33*b32fbb63SXin Li.git, etc. 34*b32fbb63SXin Li* It can take a long time & generates a large CSV file for the whole Android 35*b32fbb63SXin Licodebase & especially if they are many changes. For example: 36*b32fbb63SXin Li * Android 11 QPR1 vs QPR2 takes more than 8 min. & generates a 5MB CSV file. 37*b32fbb63SXin Li * Android 10 QPR3 vs Android 11 QPR2 takes more than 11 min. & generates a 38*b32fbb63SXin Li 95MB CSV file. 39*b32fbb63SXin Li* To reduce time, you should always remove **out**, the build output folder first. 40*b32fbb63SXin Li* For example, to compare Android 11 QPR1 vs QPR2 AOSP codebases on your disk. 41*b32fbb63SXin Li 42*b32fbb63SXin Li``` 43*b32fbb63SXin Lipython3 change_report.py --old_dir ~/android/android11-qpr1-release \ 44*b32fbb63SXin Li --new_dir ~/android/android11-qpr2-release \ 45*b32fbb63SXin Li --csv_file ~/change_reports/change_report_android11-qpr1-release_android11-qpr2-release.csv 46*b32fbb63SXin Li``` 47*b32fbb63SXin Li 48*b32fbb63SXin Li* An output example: [change_report-new_vs_old_codebase.csv](dev/resource/change_report-new_vs_old_codebase.csv) 49*b32fbb63SXin Liis the change report between **dev/resource/old_codebase** and 50*b32fbb63SXin Li**new_codebase**. 51*b32fbb63SXin Li* The **states** are: 52*b32fbb63SXin Li * SAME = 0 53*b32fbb63SXin Li * NEW = 1 54*b32fbb63SXin Li * REMOVED = 2 55*b32fbb63SXin Li * MODIFIED = 3 56*b32fbb63SXin Li * INCOMPARABLE = 4 57*b32fbb63SXin Li 58*b32fbb63SXin Li### sysui_oem_diff.sh 59*b32fbb63SXin Lisysui_oem_diff.sh generates a summary of code changes between 2 revisions. 60*b32fbb63SXin LiWhich gives you a rough idea of changes on files and Lines of Code. 61*b32fbb63SXin Li 62*b32fbb63SXin Li* The report is especailly useful to discuss the pain points on sysui/notif 63*b32fbb63SXin Licustomization with AAOS team. 64*b32fbb63SXin Li* 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) 65*b32fbb63SXin Li 66*b32fbb63SXin Li``` 67*b32fbb63SXin Li./sysui_oem_diff.sh ~/Android/android11-release remotes/aosp/android10-qpr3-release remotes/aosp/android11-release > sysui_gcar_android10-qpr3-release_android11-release.txt 68*b32fbb63SXin Li``` 69*b32fbb63SXin Li 70*b32fbb63SXin Li## System Performance Tuning 71*b32fbb63SXin LiAAOS system performance turning is hard. Here are the tools to make it a bit 72*b32fbb63SXin Lieasier for the device developers. 73*b32fbb63SXin Li 74*b32fbb63SXin Li* 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) 75*b32fbb63SXin Li 76*b32fbb63SXin Li## [Android Virtual Device as a Development Platform](avd/README.md) 77