AppleDouble is one of the systems used to store the Resource Fork of Macintosh files on filesystems not natively supporting it, something which became necessary when Apple moved to Unix-based operating systems instead of "classic" MacOS. AppleSingle is an alternative format to accomplish the same end, combining all the forks plus a metadata header in one file instead of keeping separate files like AppleDouble. While both AppleSingle and AppleDouble were introduced for use with early Unix-based Apple systems, AppleDouble survived as the main method of storing files with resource forks on OS X systems if a filesystem is used that doesn't directly support such forks.
The AppleDouble format keeps the data fork of the file in its original format and filename (this is the main file, as used by non-Mac operating systems, and for many file formats, the only one that matters), and creates a second "header" file with the resource fork as well as Finder metadata.
The specification says that the header filename should be prefixed with a "%", or prefixed with "R.", or have a file extension of ".ADF", depending on the filesystem's capabilities.
However, in the OS X era, the convention is to prefix the header filename with "._" (a dot and an underscore).
Sometimes, instead of using a different filename, the header files are put in special subdirectories named ".AppleDouble".
AppleDouble header files begin with signature bytes (hex)
00 05 16 07.
- AppleSingle/AppleDouble Developer’s Note - Version 2
- AppleSingle and AppleDouble format internals · PDF - Version 1
- A/UX Toolbox: Macintosh ROM Interface, p. 6-15: AppleSingle and AppleDouble format internals - Version 1
- RFC 1740 (describes various Mac-specific formats)
- Extracting extended attributes from Apple Double format