When creating an Android application, the user experience plays a big role in the way a user experiences the app. These resources are to describe the various elements available for creating an Android apps user interface.
Here is a list of various Android controls that can be used along with descriptions of each and some code samples.
When developing a screen on an application, the UI elements are placed inside layouts. Layouts are essentially containers for your controls.
Each layout has it’s own characteristics when it comes to placing controls on the screen.
You can find information on the various Android layouts here.
One of the more newly developed and powerful layouts is a the ConstraintLayout.
Material design refers to the best practices that should be kept in mind when creating the various screens in your application.
For more extensive information on the topic, you can find various articles and documentation here.
Udacity has a great free course on material design named: Material design for Android Developers, created by employees from Google.
Note: For optimal performance, it is advised to refrain from nesting layouts as much as possible.