The 28-year-old has also previously played for Livingston, Middlesbrough and Bradford City and now makes the switch to Tynecastle.
Manager Robbie Neilson told the club website: "I’m really pleased to be able to bring in someone of Andy’s experience and quality. He is really driven and determined and I want that on the park. I think he’ll do well for us and I’m looking forward to working with him."