If the target device only needs to run at one resolution, at build time you can create assets specific for the device, we do this when possible, create the assets at 5X (for us this means 2400x1600 screen size) then resize with nice filter.
At runtime, we pick the best resolution assets that are available, in terms of what is visible on screen, we have no relationship between the texture dimensions and the on screen sprite dimensions. A sprite has a target size (and a bunch of UV coordinates).
In terms of controlling how much is displayed on screen that is done by setting up an appropriate camera, ignoring aspect ratio, you can set up a camera to have an orthographic region of 800x480 and that will be the amount of stuff that fits to the screen regardless if you are running at 480x320, 800x480, 2048x1536 etc.
With regards to aspect ratio, that is solved based on game requirements, in some cases, a stretched image maybe okay, in which can your 800x480 camera on an 800x600 screen will be fine (everything will be vertically stretched), alternatively, you can either:
1. Do a proportional scale that fits the 800x480 to the screen, allowing extra to be seen, so a 800x480 game running on an 800x600 screen will show an extra 120 pixels above/below the screen.
2. Same as above, but constrain so some of the image is cut off, so the 800x480 game run on an 800x600 device would have an orthographic region on the X of 100 to 700 and a Y of 0 to 600. This means the 800x480 game will not display 200 pixels from the left/right of the screen.
3. Use borders, so basically like 1. but instead of showing more game, show border.
Sometimes you can use a combination, so allow a little non aspect correct stretch and allow a little extra to be visible.
Once you know what you want to do, it is easy (small amount of code) to set up appropriate viewpoint and projection matrices for the required camera.