What is AppCompat?

I want to use Material Design in my app, but my app should be based on Jellybean not Lollipop. So my question is:

  1. I want to use com.android.support:appcompat-v7:23.1.1. Is this a possible solution for my problem?

  2. I want to know more about compileSdkVersion and minSdkVersion: If compileSdkVersion is 20 and minSdkVersion is 18, then, if I use some material design(in Lollipop, sdk20) like fab, cardview. Is it fine if I run my app in jellybean device?(which is SdkVersion 18, same with minSdkVersion)?


When new versions of android are published, Google will have to support the older versions of android. So AppCompat is a set of support libraries which can be used to make the apps developed with newer versions work with older versions.

For example: When you create an android project with minimum Api level 9, and target api level 21, The newer features like ActionBar, Drawer Menu (Newer in the sense that they were not present in Api 9) etc should also be supported in Api Level 10 phones. Then, you can use the appCompat library. So the android actionbar will become androidsupport actionbar/ supportFragment etc.