Design once in Illustrator (export SVGs) -> Code once -> Run everywhere
It is definitely a partial subset and creating VectorDrawables from any sort of design program is a giant PITA. The best strategy is making an SVG and then going through the XML by hand and turning it into a drawable (ugly I know).
Clearly this is the future direction of Android, but as of today it is still only half implemented.
As for why we didn't have SVG from day 1 on Android, I'm going to guess that is all a performance optimization. It's hard to overstate just how slow & weak early smart phones (iPhone & Android) were relative to today. We've expanded the scope of the apps to fill the available resources (as software engineers always do), but now there is enough head room to handle it all.
https://www.youtube.com/watch?v=8e3I-PYJNHg
Even better, they get converted to PNG at build time for older SDK targets that can't display SVG.
Your move Apple.
A good example of a relatively small static SVG viewer/renderer is libRSVG which is used by GNOME project to render icons.
[1] https://svgwg.org/svg2-draft/conform.html#ConformingSVGViewe...
The library takes half a megabyte under archlinux: https://www.archlinux.org/packages/extra/x86_64/librsvg/
It also requires a 1.2 megabyte css parsing library: https://www.archlinux.org/packages/extra/x86_64/libcroco/
And of course also a 8.8 MB xml parsing library: https://www.archlinux.org/packages/extra/x86_64/libxml2/
Now compare this with libpng:
https://www.archlinux.org/packages/extra/x86_64/libpng/
half a megabyte and the only real dependency is zlib, which is also in the dependency tree of librsvg
Directly comparing SVG and PNG libraries purely based on library size is misleading. PNG's aren't layered, don't contain semantic information, etc. For me librsvg is lightweight since its way better than installing phantomjs as I have been doing to generate embedable PNGs for documents.