VC++などでいうプリプロセッサのようなものを定義して
同じWorkspaceでグラフィックや文字列リソースを差し替えて別のプロダクトを作りたい
( 例:プロダクトA、プロダクトB)
のですが、次のようなことは出来ますか?

1)通常、リソースはresディレクトリ配下に格納されますが、別のディレクトリを指定できますか?

→例:プロダクトAではres1 プロダクトBではres2を参照させたい等

2)Activity.findViewByIdなど利用するID(というか自動生成されたオブジェクト?)はコンパイル時に存在しないと当然エラーとなりますが、
実行時に判定する方法はありませんか?

→例:プロダクトAには存在するIDだが、プロダクトBには無いなど・・・
findViewByNameのような関数があれば・・・