I'm still fuzzy on what skins do vs what jAlbum itself does.
It's easy to separate them if you remember one thing: the jAlbum core doesn't produce a single line of HTML, CSS, or Javascript on its own. That's what a skin does.
The jAlbum core organizes the projects, processes the images and videos, and provides the programming tools. The skins actually produce the album pages, using all of the things that the core makes available. The core then provides things like the uploading module, the routines for previewing the album locally, and so on.
In the settings panels, if a setting appears on the skin's own panels (Tiger, Neptune, whatever), it's a skin setting. If a setting appears elsewhere (General, Pages, Images, etc.), it's the jAlbum core that handles it.
There are some places where the lines blur a bit, but that's the basic "division of labor."
I have seen there are skins that include the ability to download all the images in an album in a zip file, how is that done?
The zip file is created
when you build the album. It is then uploaded to the server, along with the album pages, and is sitting there ready to be downloaded on demand. But once that file is created on your PC, that's the end of the process. It can't be customized later, in response to something a particular visitor wants.