I'm a Java programmer, particularly an Android developer. I'm also a good chess player. My question is where do I start if I want to program a chess engine, may or may not be from scratch. Later I want to integrate it into my Android app. Thank you for your answers!
The Chess Programming Wiki is a good place to start . As you will quickly find out, it's a rather large and complex problem space, with many challenges (conceptual as well as actual programming).
There are plenty of open source engines out there which you could look at, to learn, or even to integrate into your engine. I think you'll generally find that these are released under the GPL, which means you are going to have trouble making using them commercially (you would have to release your own code under GPL, if you made use of a GPL engine).
If you're aiming to have a chess engine that plays at a decent level (say, 1500+), my advice would be to try to find an existing engine to use; unless you have large amounts of free time, and you are expert in programming (preferably with some background in AI). This question on StackOverflow lists several chess engines which are released under more permissive licenses.