私はAndroidアプリを構築しています。これで、API #1 のソース コードができました。これを API #2 に適合させる必要があります。次に、API #1 と API #2 の両方のバージョンを別のパッケージで公開します。両方のバージョンが世界中で使用できるため、values-en のようなものは使用できません。また、ユーザーに選択肢がない場合もあります。
新しいバージョンは同じ UI と DB ロジックを使用するため (また、コードに誤りがあるため)、コードを分離したくありません。c または c++ でコーディングしている場合は、#ifdef と Makefile を使用する必要があります。ただし、私はJavaにいます。実行時にパッケージ名を決定することで、API に依存するコードを実行することは可能ですが、やや奇妙です。
注釈を使用できると思います。私が期待するものは次のとおりです。
package foo.app;
public class API {
public boolean prepare() { ... }
@TargetPlatform(1)
public void open() { ... }
@TargetPlatform(2)
public void open() { ... }
}
そのうちの 1 つだけを使用します。また、これは良いです:
package foo.app;
public class R {
@TargetPlatform(1) com.example.foo.app.R R;
@TargetPlatform(2) net.example.foo.app.R R;
}
注釈を定義するだけで簡単です。私が知らないのは、未使用の重複をビルドまたは実行などから除外するにはどうすればよいですか? このように仕事ができるなら、私は何でもできます。