Solution:1

In this case:

android:layout_width="fill_parent"

the value for the attribute, android:layout_width, is specified directly inside the quotes, fill_parent. In the other case:

android:text="@string/hello"

the value for the attribute, android:text="@string/hello", is specified elsewhere. This is indicated by the @ at the beginning of the string. In this example it is @string/hello. The value is in a resource.

where the package name can be omitted if the resource is in the same package as the application, type is a type of resource â" such as "string" or "drawable" â" and name is the name that identifies the specific resource.

Solution:2

I tend to think of it as an abbreviation that has to do with where resources are located, so:

This seems like extra trouble, but it actually works pretty well. It also makes support for internationalization and different screen sizes pretty easy. You just declare additional resources files for different country codes and layouts and Android picks the best match for you.