# Car test apps This repository is only for car test applications. They can be unbundled from Android devices. ## Prerequisites * You need to build or have a [car-ui-lib](https://cs.android.com/android/platform/superproject/+/android-10.0.0_r30:packages/apps/Car/libs/car-ui-lib/) aar ready first if to build test apps on Android Studio. * android-10.0.0_r30 is a release tag placeholder in this doc, you should replace the one you need. ## Building 1. There are 3 ways to get the source. Pick one works better for you. * A: Download [tgz](https://android.googlesource.com/platform/packages/apps/Car/tests/+archive/refs/tags/android-10.0.0_r30.tar.gz) from the source if no plan to contribue. * B: Repo workflow, see [workstation setup](#workstation-setup). * C: Git workflow, e.g. ``` git clone -b $BRANCH https://android.googlesource.com/platform/packages/apps/Car/tests cd tests f=`git rev-parse --git-dir`/hooks/commit-msg ; mkdir -p $(dirname $f) ; curl -Lo $f https://gerrit-review.googlesource.com/tools/hooks/commit-msg ; chmod +x $f ``` * To learn more, checkout [Basic Gerrit Walkthrough](https://gerrit-review.googlesource.com/Documentation/intro-gerrit-walkthrough-github.html). * See tools/git_clone_projects.sh as an example to get both Car/libs and tests projects. 2. Install [Android Studio](https://developer.android.com/studio), open the `tests` project by Android Studio and do your magic. * You will need to build car-ui-lib by Android Studio first. ### TestMediaApp TestMediaApp should be one of the run configurations. The green Run button should build and install the app on your phone. To see TestMediaApp in Android Auto Projected: 1. Open Android Auto on phone 2. Click hamburger icon at top left -> Settings 3. Scroll to Version at bottom and tap ~10 times to unlock Developer Mode 4. Click kebab icon at top right -> Developer settings 5. Scroll to bottom and enable "Unknown sources" 6. Exit and re-open Android Auto 7. TestMediaApp should now be visible (click headphones icon in phone app to see app picker) ### RotaryPlayground RotaryPlayground is a test and reference application for the AAOS Rotary framework to use with an external rotary input device. Beside building in Android Studio, you can also build and install RotaryPlayground into an AAOS device: ``` $ make RotaryPlayground $ adb install -r -g out/target/[path]/system/app/RotaryPlayground/RotaryPlayground.apk ``` * See tools/go_rotary.sh for an example build, install and run the test app in an Android tree. ### RotaryIME RotaryIME is a sample input method for rotary controllers. To build and install RotaryIME onto an AAOS device: ``` $ make RotaryIME $ adb install -r -g out/target/[path]/system/app/RotaryIME/RotaryIME.apk ``` ## Contributing ### Workstation setup Install [repo](https://source.android.com/setup/build/downloading#installing-repo) command line tool. Then run: ``` sudo apt-get install gitk sudo apt-get install git-gui mkdir WORKING_DIRECTORY_FOR_GIT_REPO cd WORKING_DIRECTORY_FOR_GIT_REPO repo init -u https://android.googlesource.com/platform/manifest -b $BRANCH -g name:platform/tools/repohooks,name:platform/packages/apps/Car/tests --depth=1 repo sync ``` ### Making a change #### Repo workflow ``` repo start BRANCH_NAME . # Make some changes git gui & # Use GUI to create a CL. Check amend box to update a work-in-progress CL repo upload . ``` #### Git workflow ``` # Make some changes git add . git commit git push origin HEAD:refs/for/$BRANCH ```