I also had this doubt when I started programming for Android.
I usually use a small list of packages (the minimum required) because I do not depend on the emulator to test the code, I test it directly on the Smartphone.
Minimum list:
Tools:
- Android SDK Tools
- Android SDK Platform-tools
- Android SDK Build-tools
Android N.N (API NN)
Extras
- Android Support Repository
- Google Repository
Replace NN with the API level that is your target android: targetSdkVersion (22 is for Android 5.1).
If you're programming in Windows you may need the USB Driver .
If you need an emulator, you do not need to download all images, just download the ones that have Intel x86 Atom System or Intel x86 Atom_64 System image is 10 years old here). Note: It is good to have at least 8 GB of RAM.
One case where the Android Support Repository package is needed is when your android: minSdkVersion differs from android: targetSdkVersion .
>