I agree with NJDude.
You need to have at least two layout variants (one portrait, one landscape) for each screen size with the standard density of 160 dpi.
If you have several devices with a screen size about 3.5 '' but with different densities, two layout variants could be enough, the dip (density independant pixels) dimensions will adjust the layout, but there are different width/height ratios to take into account. These could need either new layout variants or adjustments in the code.
But if you have a screen with a size of 3.5 '' density 160 and another screen with a size of 7 '' density 160. The second screen has a surface 4 times bigger than the first one. Then you need to define what you want to display on the big surface, the same layout but streched or more information on the same screen. For me, streching the layout of the small size proportionally to big size is not a solution, so you will need two more layout variants. This is valid for the different screen sizes. Do you want to diasplay the same information on a 10 '' screen as on a 7 '' screen ? Depending on your answer, you would need two more variants and so on.
Yes, it's becoming a mess, but that's it.
Some users are defining the layouts by code, some others make a mix between layout variants adapted in the code. There are no strict rules, it depends on what you really want to do.
Best regards.