One of the things that lacking in most mobile keyboards is support for keys you’d find on a typical desktop keyboard, but for many users they are not useful on mobile devices. Having dedicated buttons for things like the Control, Shift, and arrow keys can be extremely helpful depending on what you’re trying to accomplish. Thankfully on Android you can install alternate keyboards that can be used throughout the OS. Note that I didn’t say you can “replace” the keyboard because in reality you can have multiple keyboards installed on Android, and switch between them depending on your needs.
If you’re looking for a free keyboard that has a bunch of additional buttons I would look no further than the Hacker’s Keyboard. Anyone that has to remotely connect to a desktop machine or SSH into a server will appreciate the full keyboard it has to offer. After you install the keyboard you can switch over to the five-row keyboard pictured above in the settings, and depending on how often you’re entering in numbers that may or may not be good to have. It also has an auto-complete bar that can be displayed, and the recommendations it provides I would say are mediocre.
The cool thing is that what you see pictured in the screenshot above is only about half the keys you can pull up. If you hit the Fn button it will switch over to another keyboard that has a full number pad, F1-F12 keys, and all of the other miscellaneous keys you’d find on your typical full keyboard.
The only thing you need to keep in mind is that just because you have all of the keys doesn’t mean that apps are configured to use them. Many of the keys are not available on the stock Android keyboard so apps tend to ignore their existence. That means having the full gambit of keys at your disposal may only be useful in certain apps, such as VNC/RDP and SSH programs.