I don't know how they did it but I know how I would do it: stop fighting Android and work with it. "Issue 1" is a classic example of someone trying to have a lot of control over their layout and ultimately creating a lot of work for themselves. Instead of trying to lay things out exactly, use the built in layout managers in Android. In this example one could use a LinearLayout to stack items one below the other, ensuring the "Connect with Facebook" button would never overlap the text above it.
Yeah, it seems like this article is a perfect example of why trying to do it your own way, instead of the Android way, is going to cause a lot of problems.
Yep, same with the keyboard problem. I've never had that problem in my apps because I always use the attribute that lets you scroll a view if the screen is too small to show it all.