When I am working with a open source project/codebase I get a high-level view and focus on the core code/logic by checking the package names and structure. I then typically determine how the API works by looking at any example code / documentation contained in the project. If I still need some more help I will draw up some inheritance diagrams, print out interesting classes that I may need to make significant changes to, and try to find more examples of the code being used elsewhere.
I am biased and have been using our recently launched Architexa Eclipse plugin to accomplish the above. I am sure there are others available that do something similar.