If you would like to type Arabic vowels/diacritics/harakat on Android, you first need a keyboard that supports it. I've tried most of the keyboards available, and I've listed the ones that fit the bill. Most surprisingly, my keyboard of choice (Swype) doesn't support Arabic diacritics. Guess it's time to switch!
The first thing you'll need to do for all of these keyboards is install Arabic in the settings for each keyboard, which is normally accessible by going to Home --> Menu --> Settings --> Language and input. Once you've installed Arabic, you'll need to switch to Arabic language while using the keyboard.
Google Keyboard (pictured)To type Arabic diacritics, long-press the period key near the lower-right.
Google Keyboard is free, lightweight, and probably the best out of the options I tried. In a move against Android fragmentation, Google is modularising Android by making a lot of new features available through the Play Store, meaning it matters a lot less what version of Android you're running. The Google Keyboard is one of the results of this modularisation.
SwiftKey is a solid keyboard. It isn't free, but it's gone on sale periodically.
This was probably my least favorite. The interface felt cluttered, and having to go through six keypresses just to get to the diacritics was annoying. In addition, some of the time the 1/6 button said 1/3 instead, meaning I couldn't get to the diacritic page. It seemed that happened mostly when switching between other keyboards.