Biggest advantage is in Localization and Providing alternate resources for different screen sizes.
e.g you can have a String resource R.string.myname
this could be a defined in english in /values-en/strings.xml
and in spanish in /values-es/strings.xml
System will take care or picking up the right file depending on the locale you just need to use @string/myname
in your layout file or R.string.myname
in your code.
Similarly you could have two layout files for portrait and landscape defined in
res/layout/mylayout.xml
res/layout-land/mylayout.xml
In your code you will just specify R.layout.mylayout to inflate the layout. Resource manager
picks up the file in layout-land if the device is in landscape mode.
Doing this manually would be a nightmare -- hence the need for R file
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…