Dividing the screen in two halves using LinearLayout
Your layout looks very good. android:layout_weight is the correct way to solve this.
A couple of other notes regarding your XML layout:

As your outermost LinearLayout has match_parent for both width and height, there is no need for android:gravity=&quot;center&quot;.

I would write 0dp instead of 0dip (even though it is the exact same thing). Using dp just seems more common to me. This is a very minor nitpick though :)

Don't hardcode strings in your XML. Use the strings.xml resource file and use android:text=&quot;@string/button3text&quot;

You might know about this but either way you (and any future readers of this post) should also be aware that there exists android:layout_gravity. Although they sound similar, they are not the same thing. Read more about the differences between them in Android - gravity and layout_gravity

If, in the future you want to play around a bit more with layout_weights, you should take a look at What is android:weightSum in android, and how does it work?, especially this answer

If you would like to support landscape mode as well, I suggest learning how to use Android Fragments. If you would like to support older devices, there's a support package that can help with that. A Fragment has one onCreate method and one onCreateView method, which makes it easy to persist data between screen orientation changes (or other changes) while creating a new view for the data.


Summary:
Your layout looks excellent. At least in my eyes.