Android の Minimum Required SDK / Target SDK / Compile With

Android ではSDKの指定がいろいろあり、それぞれについて紹介します。

Minimum Required SDK

アプリがサポートする最低レベルのSDKを選択します。
ここで選択したバージョンより低いOSではアプリがインストールできません。

バージョンの選び方。バージョンアップ。

バージョンが低いと開発工数が増えますが、高くするとアプリを提供できる範囲が狭くなるため、
工数と端末シェアのバランスを見てバージョンを選びます。
端末シェアが低くなったバージョンはサポート外にし、バージョンを上げていくと良いと思います。

Target SDK

アプリをテストするプラットフォームのSDKを選択します。
Android SDK の過去のバージョンの SDK のアプリを実行できる機能があるため、ここで選択したものよりも新しいSDKの端末でアプリを実行することが出来ます。

バージョンの選び方。バージョンアップ。

リリース前は最新バージョンを選択すれば良いと思います。
Google公式には最新にするように書かれていますが、SDKのバージョンアップによりバグが発生しないとも限らないので慎重に更新を行う必要があると思います。
こちらのバージョンを上げる際は一緒に Compile With のバージョンを上げると良いと思います。

SDKに新たな機能が実装されたら?

新たな機能が実装された場合は、バージョンを上げなければならないかもしれませんが、サポートライブラリの提供がある場合はバージョンを上げずにそちらを利用する選択肢もあります。
SDKバージョンを上げる場合はアプリ全体をテストし直すようにしましょう。

Compile With

アプリをビルドするコンパイラSDKを選択します。

バージョンの選び方。バージョンアップ。

こちらは Target SDK と同じで、リリース前は最新バージョンを選択すれば良いと思いますが、SDKのバージョンアップによりバグが発生しないとも限らないので、リリース後は慎重に更新を行う必要があると思います。
先程も記載しましたが、こちらのバージョンを上げる際は一緒に Target SDK のバージョンを上げると良いと思います。

番外編

SDKバージョン20から提供された機能をSDKバージョン10の端末でも使えるか?

サポートライブラリが提供される場合はそちらを使い、SDKバージョン10の端末でも使えます。
サポートライブラリがない場合は頑張って自作することになります。

参考にしたサイト