I have been wrestling for at least one year with trying to understand how to master/get insight into Themes and Styles, but haven't come further than grasping parent relationships (and I think I read somewhere that such relations behave more like macro's rather than like true inheritance.)
To give a simple example: this nice looking SO answer frustrates me: what is the relationship between themes, styles, platforms, support library, API levels, etc... (and not speaking of the fact that custom styles don't need to use "parent", a dot notation suffices - why is this so different?)
The link talks about beasts such as ThemeOverlay, "?attr/colorPrimary", "app:popupTheme", device themes, native themes; where are all those beasts? How can I use them? What do they mean?
Android dev doc admits that this is all poorly documented, and suggest to dive into the source code. but I don't feel much to explore the link they give. I mean - I'm sure I will find out if I dive into the source code, but I have better things to do than debug AOSP... And if I look at eg this, all I get is a totally useless literal.
I'm aware this sounds daunting, but I can't get to reach my arms around this "big mama"... It feels like if one was not part of the AOSP movement from the beginning, it's very difficult to catch up.