Perhaps the developer was a little versed in the future.
The developer could have a link to the Java code android.R.drawable.ic_menu_camera and there are layouts or links to other @android:drawable/ic_menu_camera things @android:drawable/ic_menu_camera . However, if at some point in time the developer needed to switch from using the platform to the user one, then all these links would need to be changed.
Selectable aliases created in this file allow the Java code to reference R.drawable.ic_menu_camera and layouts and other links to other things @drawable/ic_menu_camera . Alias ββcurrently indicate that these drawings "redirect" to platforms. However, at some point in the future, a developer could add a custom ic_menu_camera drawable, remove an alias ... and nothing needs to be changed in Java code, layouts, etc.
Several applications relate to platform resources, and therefore you will not see such a trick that was used most of the time. But in cases where applications are platform resources, this alias-based approach can reduce long-term service.
FWIW, I will talk more about this in this blog post .
source share