주요 소스가 같다면 manifestmerger를 이용해보세요.
모든 소스는 common에 몰아놓고, 하위 소스들은 패키지이름이랑 약간의 리소스 정도만 바뀌는거죠.
물론 실제 실행하면 패키지 경로도 바뀌기 때문에, 특정 패키지에서만 다르게 동작하게 코드를 짜도 되고요.
http://susemi99.kr/2368
이건 안드로이드 스튜디오용 설명인데 감만 잡으시는데 쓰시고, 나머지는 구글링으로 해결하세요.