Android blueprint files

androidmk is a tool to convert Makefile-style files to Android.bp “blueprint” files, which look like json and are faster to parse.
YMMV, but they also seem more readable and largely prevent you from doing crazy if-else and convoluted stuff as you’d be drawn to if using makefiles.
As a downside, they’re an “Android-ism” and make it harder for people to port your software to a project that is not Android.

Use make blueprint_tools inside the AOSP tree to build the androidmk go binary.

You can then copy the binary from out/soong/host/linux-x86/bin/androidmk to your ~/.local/bin/ to use it outside the AOSP tree. Beware that the tool is constantly being updated, so you might need to re-build it from time to time.

For the internal workings, and to get a mapping of make and soong variables, see the source code inside cmd/androidmk/android.go.

See this question about androidmk on StackOverflow.

Published by

Edit source on Github