Difference between Android Framework widgets and their AppCompat version

AppCompat provides consistent UI support for older versions of APIs back to API v7. from Documentation

The full list of tint aware widgets available in appcompat

AppCompatAutoCompleteTextView
AppCompatButton
AppCompatCheckBox
AppCompatCheckedTextView
AppCompatEditText
AppCompatMultiAutoCompleteTextView
AppCompatRadioButton
AppCompatRatingBar
AppCompatSpinner
AppCompatTextView

ListViewCompat is subclass of ListView same others


edited:

why both class available in framework or How Android Support Library work?


If you use AppCompatActivity, then AppCompatImageView will automatically be used when you use ImageView in your layouts.

From the AppCompatImageView AppCompatEditText AppCompatButton

Button vs AppCompatButton

This will automatically be used when you use Button in your layouts and the top-level activity / dialog is provided by appcompat. You should only need to manually use this class when writing custom views.

ImageView vs AppCompatImageView

This will automatically be used when you use ImageView in your layouts and the top-level activity / dialog is provided by appcompat. You should only need to manually use this class when writing custom views.

EditText vs AppCompatEditText

This will automatically be used when you use EditText in your layouts and the top-level activity / dialog is provided by appcompat. You should only need to manually use this class when writing custom views.

and the same rule is also valid for other appcompat views