Good question.
You'll want to use a combination of CSS media queries to set the breakpoints for the div you want your map in (lots of screen sizes found here http://screensiz.es/phone) and the google maps API to listen for and respond to a resize event.
If you set a center for the map, that will always be the center for the window when it loads. However, if you want to listen for a window resize and then re-center the map, you can use some basic google maps APIv3 methods to calculate the center and then reset it.
Here's a gist with a working example of what it seems to be you're after. I tossed in some media queries from Sai Ram Sudheer's answer above, just so for the sake of example (the map takes up the whole screen in this case, so they're not important with that large a map).
The actual code needed to calculate and re-set the center is only a few lines (look at the map.js file)
https://gist.github.com/markthethomas/5da15a050f560cc58d4f
Here's just the code relevant to the resizing. If you want to do more with markers and bounds, you'll have to write functions to determine what center
means for your program and/or parameters (ie how many markers to fit in the frame, which ones should be displayed, etc. )
// create a variable to hold center
var center;
// calculate the center with getCenter
function calculateCenter() {
center = map.getCenter();
}
// Add an event listener that calculates center on idle
google.maps.event.addDomListener(map, 'idle', function() {
calculateCenter();
});
// Add an event listener that calculates center on resize
google.maps.event.addDomListener(window, 'resize', function() {
map.setCenter(center);
});
Hope this helps a little bit!