• Home
Name Date Size #Lines LOC

..--

car-ui-lib/03-May-2024-36,57622,209

documentation/images/03-May-2024-

paintbooth/03-May-2024-4,8143,133

referencedesign/03-May-2024-2,0601,377

sharedlibrary/03-May-2024-13061

tests/03-May-2024-1,4431,055

.gitignoreD03-May-2024265 2216

Android.bpD03-May-20244.2 KiB155146

Android.mkD03-May-20241.2 KiB405

OWNERSD03-May-2024144 106

README.mdD03-May-20243.7 KiB6740

TEST_MAPPINGD03-May-202472 87

build.gradleD03-May-20241.2 KiB4336

findviewbyid-preupload-hook.shD03-May-2024399 84

generate_rros.mkD03-May-20241.9 KiB6231

gradle.propertiesD03-May-20241.6 KiB3433

gradlewD03-May-20245.2 KiB173128

gradlew.batD03-May-20242.2 KiB8561

settings.gradleD03-May-2024909 2522

trailing-blank-line-hook.shD03-May-2024351 85

README.md

1# Android Automotive 'Chassis' library
2Components and resources designed to increase Automotive UI consistency between
3GAS (Google Automotive Services) apps, system-apps and OEM developed apps.
4
5See: go/aae-chassis-site
6
7## Content
8
9Components and resources designed to be configured by means of RRO (Runtime
10Resource Overlays) by OEMs.
11
12## Developing
13
14Project layout:
15* __car-ui-lib__: The main library that is statically linked into applications
16* __paintbooth__: A test application that contains demos of all the car-ui components
17* __referencedesign__: An RRO applied to internal google targets that does some minor car-ui customizations. It's used to make changes to car-ui that would cause backwards compatability issues if we were to create them directly in the library. It can also serve as an example RRO for OEMs, and should be kept reasonably functional and up-to-date because we use it actively.
18
19### Building and running PaintBooth
20
21While car-ui-lib can be developed by using aidegen, it's probably easier to use Android Studio with the gradle build files. To do this, select "Open an existing Android Studio project", then navigating to the (outer) car-ui-lib folder:
22
23![Open an existing Android Studio project](documentation/images/open_existing_android_studio_project.png)
24![Navigating to car-ui-lib](documentation/images/navigating_to_car_ui_lib.png)
25
26If this is your first time using Android Studio, it may ask you to install an SDK. Go ahead and do that.
27
28It may ask if you want to generate the gradle wrapper files, select "Yes". Wait for it to finish indexing, and then you should see car-ui-lib and PaintBooth projects in the project pane on the left. Make sure your project view is set to "Android" mode, as opposed to the regular "Project" mode:
29
30![Android project view](documentation/images/android_project_view.png)
31
32To launch paintbooth, start a car emulator or connect a device, make sure the PaintBooth module and "Virtual Device" is selected in your Android Studio toolbar, then click the green arrow:
33
34![Launching Paintbooth](documentation/images/launch_paintbooth.png)
35
36If it launches a LeakCanary activity instead of PaintBooth, either exit LeakCanary and launch PaintBooth as normal through the car's launcher, or click on the PaintBooth module > Edit configurations > Change "Launch: Default Activity" to "Specified Activity", and enter `com.android.car.ui.paintbooth.MainActivity`.
37
38### Running tests
39
40Once you've set up paintbooth as described above, just open one of the test classes in car-ui-lib > java > com.android.car.ui (androidTest) and click the green arrow next to one of the tests to run it:
41
42![Running tests](documentation/images/running_tests.png)
43
44The tests can also be run from the command line via `atest CarUILibUnitTests`, but that's much slower than running them through Android Studio.
45
46## Updating Google3
47
48This library is developed in Gerrit and copied as source to Google3 using
49Copybara (go/copybara).
50
51Source: /packages/apps/Car/libs/car-ui-lib
52Target: //google3/third_party/java/android_libs/android_car_chassis_lib
53
54Here is the process for updating this library:
55
561. Develop, test and upload changes to Gerrit
572. On Google3, run `./update.sh review <cl>` (with <cl> being your Gerrit CL #) and test your changes
583. Repeat #1 and #2 until your changes look okay on both places.
594. Back on Gerrit, submit your CL.
605. Back on Google3, run `./update.sh manual` submit
61
62TODO: Automate this process using CaaS (in progress)
63
64If you're just updating the current state of car-ui-lib, and not testing a review that has yet to be submitted, the process can be simplified to:
65
66`/google/data/ro/teams/copybara/copybara /google/src/head/depot/google3/third_party/java_src/android_libs/car_chassis_lib/copy.bara.sky default`
67