Cómo mantener diferentes distribuciones de una aplicación

Actualmente estoy construyendo una aplicación de Android donde tendré que mantener dos distribuciones diferentes de la misma aplicación:

1.) uno gratis, con anuncios

2.) uno cargado, con más funciones y sin publicidad

Deseo agregar nuevas características después del lanzamiento (para ambas distribuciones), sin tener que implementarlas en cada una de las distribuciones.

Estaba pensando en las twigs de git, pero supongo que las twigs podrían divergir hasta un punto donde las características de fusión cruzada ya no son posibles, ¿o estoy equivocado?

¿Cómo harías esto?

Cree un proyecto de biblioteca Android de las características que las distribuciones tienen en común y use ese proyecto de biblioteca como una dependencia en ambas distribuciones. De esa forma puedes evitar el código duplicado.