あなたが探しているのはライブラリ プロジェクトhttp://developer.android.com/guide/developing/projects/index.html#LibraryProjectsだと思います
その Web ページから:
If you are creating an application that exists in both free and paid versions. You move the part of the application that is common to both versions into a library project. The two dependent projects, with their different package names, will reference the library project and provide only the difference between the two application versions.
これと非常によく似た別の質問には、適切な議論と回答があるようです: Multiple Apps with shared code base
編集:これは、ライブラリ プロジェクトの実装方法に関するリンクです。http://developer.android.com/guide/developing/projects/projects-eclipse.html
異なるバージョンがわずかに異なることに関しては、ライブラリ プロジェクトが対応できます。ライブラリ プロジェクトが最初にビルドされ、次に親 (ライブラリを使用するプロジェクト) が最後にビルドされ、それらがマージされます。両方のプロジェクトで同じリソース識別子を定義でき、最後にビルドされたプロジェクト (親プロジェクト) が優先されます (上書きされます)。したがって、本質的に、親/呼び出し元のアプリケーションで文字列/レイアウトをオーバーライドできます (おそらくもっと、わからない?)。
例: 無料と有料の 2 つのプロジェクトがあるとします。既定の実装 (無料バージョン) で文字列を作成し、有料バージョン (親アプリ) でそれをオーバーライドできます。
共有ライブラリのコード Strings.xml ファイル:
<string name="AppName">My Application (Free)</string>
親アプリの Strings.xml ファイルのコード:
<string name="AppName">My Application Premium</string>