Unfortunately there isn't really a one-size-fits-all approach to the myriad android devices out there.
It's fairly typical to ship a copy of your resources for each of the supported display densities, and then UI layouts for each of the supported aspect ratios (you can skip a bunch of each if you only support tablets, or only support phones).
In Unity on mobile devices, by default it will use whatever the device's resolution is.
You can then check the screen size and DPI in script, and/or depending on what UI system you're using, use anchors and aspect ratio fitters to scale your UI elements appropriately.
Use high or low resolution textures when the scaling factor becomes too much for a single texture to handle.
Then in the Unity editor, in the Game window, set up a bunch of resolutions and test them all out. Use the scale slider to shrink/grow the rendered viewport to the approximate physical size of the various devices out there and write a debugging menu to simulate different DPI settings.
I'm already using the Canvas Scaler component and anchoring on my UI, I'll build the game on the most common aspect ratios for both platforms.
3:2, 71:40, 4:3 for iOS and
4:3, 5:3, 16:10, 16:9 for Android. Is this fine, I mean we can provide multiple builds ?.
Is it a problem if I scale my sprites using the transform component, I know it affects physics if the game is 3D but does it also take effect if its 2D, will it require afew more computation time like its does whilst in 3D?