Calibrating an Android Compass is often done through a physical approach.
This is a popular method for calibrating a compass by waving it in a figure eight pattern.
Please also check the settings related to compass in Settings:
If 'Magnetic Bearing' is not checked, it will adjust for declination, but it will need a recent GPS position to do that.
On the bearing compass, the entire dial will spin to show the direction you are headed.
For the orienteering compass, you set the direction and line up the red needle to target a direction.