After reading all the replies after my post, I should clarify that I was speaking only about the word "gweilo", and not "laowai". I don't care terribly much about laowai to be frank, although I see many in this thread do. Most specifically, "gweilo" as used in Guangdong means some variation of "ghost man" (literal), zombie, white devil, etc. It refers to someone's appearance rather than place of origin. In a similar fashion, black people are called "hakgwei", lit. "black ghost" by which, again referencing the US in the 50's, they essentially mean what people of the past did when they called someone a "spook". Both, quite unacceptable imo.
People's intention most of the time is in fact NOT antagonistic when they call you either of these here in GD. To me though, it is just the fact people refer to you by your color instead of name or "saiyun" (westerner) because you people sorta look like a pale dead corpse...
Also, as for what to call black people, you could ask someone's opinion and see how they feel, but it shouldn't be often you need to reference someone's color. I have had a few black friends here in GZ from North America, and all of them at some point had mentioned they preferred the term "black" and not "African American", primarily to differentiate themselves from the large-ish local population of Nigerians (and other African nations) here in GZ. e.g. "I'm not an African American, I'm just an American. I've never been to Africa."
Why bother with that? There is a higher level of discrimination for being of a dark skin tone AND actually from Africa, than just being a dark skinned American here (or so they say).