Also keep in mind the low resolution of these images. There are a couple more things you can do to save space, although I don't know which of these are used by Clash of Clans:
You can bias the positioning for troops to face standard directions (N,E,S,W,NE,SE,SW,NW) more often than not, then optimize only for standard directions.
You can do a combined approach, where you pre-render only some directions. During the frame, you can render the troops which don't match an existing image, or use the closest image if you run out of time.
Use left/right symmetries whenever possible to cut the number of stored frames in half.
You can prioritize certain animations like walking and resting, storing more directions and frames for these. Then deprioritize other animations, like the swinging of a sword, where you store fewer directions and frames (I suggest keeping more directions for the first and last frame of the swing).
You can fake the remaining directions by using the closest image then stretching it.
Overall, we might be talking about 18 units, up to 8 directions, maybe 2 seconds of animations at 20 frames per second, an average of 64x64 pixels, and about 2 bytes per pixel. That's 18x2x20x64x64x2 = 50 MB. They might also scale the number of directions, resolution, and number of frames based on the capabilities of the device and number of units used on the map.