Basically, everybody making app reviews will find this feature extremely useful
To record videos in Android 4.4 you should use adb shell screenrecord command. You can read Android documentation on this here: http://developer.android.com/tools/help/adb.html#screenrecord. After reading docs, first thing you would like to do is to launch utility with --help option:
c:\Program Files (x86)\Android\android-sdk\platform-tools>adb shell screenrecord --help
Usage: screenrecord [options] <filename>
Records the device's display to a .mp4 file.
Set the video size, e.g. "1280x720". Default is the device's main
display resolution (if supported), 1280x720 if not. For best results,
use a size supported by the AVC encoder.
Set the video bit rate, in megabits per second. Default 4Mbps.
Set the maximum recording time, in seconds. Default / maximum is 180.
Rotate the output 90 degrees.
Display interesting information on stdout.
Show this message.
Recording continues until Ctrl-C is hit or the time limit is reached.
Recording on default settings will result in skipped frames and quality will be worse than you'd expect. On N7 you will get laggy video and on N10 you will get ugly compression artifacts - default 4Mbps bit rate is simply not enough for its enormous 2560x1600 resolution. So I've picked presets which I believe are optimal for my needs and don't cause UI lag when recording. When playing around with options, please note that you need to specify bit rate in bps, not Mbps, but yes, it reads "in megabits per second" :)
Here are command line parameters for screen recording which I believe are the most optimal:
adb shell screenrecord /sdcard/video.mp4 --bit-rate 8000000 --size 1280x768Nexus 10:
adb shell screenrecord /sdcard/video.mp4 --bit-rate 8000000 --size 1280x720Nexus 7 1st gen:
adb shell screenrecord /sdcard/video.mp4 --size 960x540 --bit-rate 5000000I don't use --time-limit option but just hit Ctrl+C after I finished recording.
Because adb shell command simply executes any shell commands on device you can call screenrecord command directly on your device in Android Terminal Emulator app. But you need to run it with root permissions to be able to actually record videos so if device is not rooted you have to use adb shell from your PC. Example:
screenrecord /sdcard/video.mp4 --bit-rate 8000000 --size 1280x720
Also note that if you rotate device when recording you will get cropped video - you will have to record landscape and portrait videos separately.
So Nexus 10 is capable of recording quite good 720p videos with little to no frameskip (it is barely noticeable when recording usual apps like browser or GMail but becomes a little bit laggy recording full-screen animations like app drawer transitions). To my liking, videos recorded from Nexus 7 have more even framerate but on Nexus10 you can achieve more sharp image because of higher resolution. Nexus4 with its powerful Snapdragon S4 is capable of capturing full-size 1280x720 frame, and I haven't noticed a single sign of lag during recording (however, there were a few negligible frame-skips in recorded video) - device operated as smooth as always.
Here is a sample video recorded from 1st-gen Nexus 7. Android doesn't record audio - I've added some free audio track in Youtube Video Manager.
Two more samples from Nexus 4: https://www.youtube.com/watch?v=4MGSHE8mZFQ and https://www.youtube.com/watch?v=v7NYbVyJRdg for vertical videos fans :)
Feel free to post your presets for your devices in comments - may be you will achieve better quality than me :)