A 2D scanner works in exactly the same way as your phone camera. Its a CCD imager. It has a few refinements, such as IR illumination and an aiming reticle (it projects an aiming cross onto the barcode), but it basically takes a picture and processed what is seen, exactly as your Android does. For obvious reasons it is better to turn off the illuminator when scanning from backlit LCD screens.
As its just processing an image, it will work as well on 1D codes as 2D.
If you are only ever going to scan printed or etched 1D codes, a laser scanner has some big advantages. It provides its own illumination, and the scan-line acts as an aiming reticle in itself. It is also focus-free and will work more quickly and over a wider range of distances than a 2D head.
If you are going to be exclusively scanning 1D codes, and you are going to be scanning a lot of them, then a 1D laser head is your best bet.
If you are going to be scanning 2D, or a combination of 1D and 2D codes, and you are going to be scanning a lot of them, then a 2D head is your best bet.
If you are going to be scanning relatively few barcodes (not time critical), then a mobile camera works adequately, but will often fail on damaged or indistinct barcodes that the dedicated heads (particularly the 1D laser head) can read OK.