1*105f6285SAndroid Build Coastguard Worker# Treble build tools 2*105f6285SAndroid Build Coastguard Worker 3*105f6285SAndroid Build Coastguard WorkerTools for building the Android Platform. 4*105f6285SAndroid Build Coastguard Worker 5*105f6285SAndroid Build Coastguard Worker[TOC] 6*105f6285SAndroid Build Coastguard Worker 7*105f6285SAndroid Build Coastguard Worker## Testing 8*105f6285SAndroid Build Coastguard Worker 9*105f6285SAndroid Build Coastguard WorkerTo run all project tests: 10*105f6285SAndroid Build Coastguard Worker 11*105f6285SAndroid Build Coastguard Worker``` 12*105f6285SAndroid Build Coastguard Worker./test.sh 13*105f6285SAndroid Build Coastguard Worker``` 14*105f6285SAndroid Build Coastguard Worker 15*105f6285SAndroid Build Coastguard Worker## Filesystem overlays 16*105f6285SAndroid Build Coastguard Worker 17*105f6285SAndroid Build Coastguard WorkerDownstream consumers of the Android platform often create independent Android 18*105f6285SAndroid Build Coastguard Workerbranches for each device. 19*105f6285SAndroid Build Coastguard Worker 20*105f6285SAndroid Build Coastguard WorkerWe can unify the development of all devices on the same Android Platform dessert 21*105f6285SAndroid Build Coastguard Workerwith the help of filesystem overlays. 22*105f6285SAndroid Build Coastguard Worker 23*105f6285SAndroid Build Coastguard WorkerFor example, let's say we had two devices: Device A and Device B. 24*105f6285SAndroid Build Coastguard WorkerThe filesystem overlays would create the following build time views. 25*105f6285SAndroid Build Coastguard Worker 26*105f6285SAndroid Build Coastguard Worker``` 27*105f6285SAndroid Build Coastguard Worker+-------------------------------+ +--------------------------------------------+ 28*105f6285SAndroid Build Coastguard Worker| Android repo | | Android repo | 29*105f6285SAndroid Build Coastguard Worker| workspace | | workspace | 30*105f6285SAndroid Build Coastguard Worker| | | | 31*105f6285SAndroid Build Coastguard Worker| +--------------+ | | +----------------------------------------+ | 32*105f6285SAndroid Build Coastguard Worker| | +----------+ | +----------+ | | | +----------+ +----------+ | | 33*105f6285SAndroid Build Coastguard Worker| | | Platform | | | Device B | | | | | Platform | | Device B | Device B | | 34*105f6285SAndroid Build Coastguard Worker| | | projects | | | projects | | | | | projects | | projects | build view | | 35*105f6285SAndroid Build Coastguard Worker| | +----------+ | +----------+ | | | +----------+ +----------+ | | 36*105f6285SAndroid Build Coastguard Worker| | | | | +----------------------------------------+ | 37*105f6285SAndroid Build Coastguard Worker| | +----------+ | | | +----------+ | 38*105f6285SAndroid Build Coastguard Worker| | | Device A | | | | | Device A | | 39*105f6285SAndroid Build Coastguard Worker| | | projects | | | | | projects | | 40*105f6285SAndroid Build Coastguard Worker| | +----------+ | | | +----------+ | 41*105f6285SAndroid Build Coastguard Worker| | | | +--------------------------------------------+ 42*105f6285SAndroid Build Coastguard Worker| | Device A | | 43*105f6285SAndroid Build Coastguard Worker| | build view | | 44*105f6285SAndroid Build Coastguard Worker| | | | 45*105f6285SAndroid Build Coastguard Worker| +--------------+ | 46*105f6285SAndroid Build Coastguard Worker+-------------------------------+ 47*105f6285SAndroid Build Coastguard Worker``` 48*105f6285SAndroid Build Coastguard Worker 49*105f6285SAndroid Build Coastguard WorkerTo support filesystem overlays the Android repo workspace is required to the 50*105f6285SAndroid Build Coastguard Workerfollowing structure. 51*105f6285SAndroid Build Coastguard Worker 52*105f6285SAndroid Build Coastguard Worker### Root directory 53*105f6285SAndroid Build Coastguard Worker 54*105f6285SAndroid Build Coastguard WorkerLocation: `${ANDROID_BUILD_TOP}` 55*105f6285SAndroid Build Coastguard Worker 56*105f6285SAndroid Build Coastguard WorkerAll projects in the root directory that are not in the overlays 57*105f6285SAndroid Build Coastguard Workerdirectory are shared among all Android targets. 58*105f6285SAndroid Build Coastguard Worker 59*105f6285SAndroid Build Coastguard Worker### Overlays directory 60*105f6285SAndroid Build Coastguard Worker 61*105f6285SAndroid Build Coastguard WorkerLocation: `${ANDROID_BUILD_TOP}/overlays` 62*105f6285SAndroid Build Coastguard Worker 63*105f6285SAndroid Build Coastguard WorkerContains target specific projects. Each subdirectory under the overlays 64*105f6285SAndroid Build Coastguard Workerdirectory can be mounted at the root directory to support different targets. 65*105f6285SAndroid Build Coastguard Worker 66*105f6285SAndroid Build Coastguard Worker### Build out directory 67*105f6285SAndroid Build Coastguard Worker 68*105f6285SAndroid Build Coastguard WorkerLocation: `${ANDROID_BUILD_TOP}/out` 69*105f6285SAndroid Build Coastguard Worker 70*105f6285SAndroid Build Coastguard WorkerContains all files generated during a build. This includes target files 71*105f6285SAndroid Build Coastguard Workerlike system.img and host tools like adb. 72