I do something very similar. I create one variant 320X480 with a scale of 1. Then I do something which is probably comparable to Klaus' autoscale. I create a subroutine called from activity_create or activity_resume named InitDisplay. In this I dynamically reposition everything. Scaling (1.5, 2, ...) automatically resizes controls such as EditText, Labels, etc to an equivalent size on the new device. I usually want to dynamically resize ImageViews and Panels.
Using InitDisplay let's me iteratively reposition things on the display. I make an initial guess, sometimes things don't fit, I resize something (usually an image) and try again.
I have found some devices, like my Nexus 5, have really strange screen dimensions. My layouts look good even on these weird devices. I developed this method before the Designer Scripts and Anchors – so maybe those replace what I'm doing.
Barry.