First of all there are two things, 1. Face detection and 2. Face recognition.
Face detection - is to find a face(s) in any given image based on the eye, nose and mouth pattern. This is relatively easier or less complex than Face recognition. If you are trying to achieve this, there are two ways to go, 1. use android's FaceDetector (offical link here), 2. or you could use OpenCV linked here. However I would recommend using android's native feature since it is easier.
Face recognition - is to recognize a detected face, an additional algorithm with face detection. With this you could identify the person by matching/comparing with existing records. Mostly used for authentication. For this I would recommend using OpenCV. However there are some (very few) good libraries out there for free of cost.
Hope this helps!