Bar code and QR code are widely used now. There is a lot of App can do the scan. I'm planing to make an app to scan Bar code and render it on cell phone display, so I can store bar code of my card and no longer need to carry the cards.
ZXing on github is a great choice as an open source solution. As the project home page mentioned: ZXing ("zebra crossing") is an open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages.
To get started, please visit: https://github.com/zxing/zxing/wiki/Getting-Started-Developing
Refer to this StackOverflow page for some example code. Get ZXing-2.1.zip from google code.
To use the lib with Android Studio, add this to app/build.gradle dependencies:
implementation 'com.google.zxing:core:3.3.3'.