[Defy Android Development] YetAnotherForumUser:
All those apps... for monitoring the CPU, for disabling packages, for I don't know what... and in reality hardly any of them are needed as your phone comes with more powerful tools straight from the box.

To check what is hogging the CPU (or IO or memory or whatnot): [FONT="Monospace, Courier New"]top[/FONT], [FONT="Monospace, Courier New"]busybox top[/FONT], [FONT="Monospace, Courier New"]ps[/FONT], maybe combined with [FONT="Monospace, Courier New"]head[/FONT]. List open files with [FONT="Monospace, Courier New"]lsof[/FONT], get IO statistics with [FONT="Monospace, Courier New"]iostat[/FONT], memory with [FONT="Monospace, Comic Sans MS"]vmstat[/FONT], etc.

To disable a package: [FONT="Monospace, Courier New"]pm disable[/FONT] <package_name>

To enable a package: [FONT="Monospace, Courier New"]pm enable[/FONT] <package_name>

To list all installed packages: [FONT="Monospace, Courier New"]pm list packages[/FONT]

To force-stop (forcibly kill everything related to) a package: [FONT="Monospace, Courier New"]am force-stop[/FONT] <package_name>

To kill (only those processes which are safe to kill) a package: [FONT="Monospace, Courier New"]am kill[/FONT] <package_name>

To kill all background processes: [FONT="Monospace, Courier New"]am kill-all[/FONT]

I could go on but that would fill more time and space than I or this board has available. To get an idea of what is available, just have a look in the /system/bin and /system/xbin directory. Most of the 'default' unix tools are available as part of the toolbox binary ([FONT="Monospace, Courier New"]ls -l /system/bin|grep toolbox[/FONT]), the android-specific tools are all available as separate files ([FONT="Monospace, Courier New"]ls -l /system/bin|grep -v toolbox[/FONT] will list them together with all other non-toolbox binaries). Most tools have a help option, activated by calling the command without any parameters:

$ bmgr
usage: bmgr [backup|restore|list|transport|run]
bmgr backup PACKAGE
bmgr enable BOOL
bmgr enabled
bmgr list transports
bmgr list sets
bmgr transport WHICH
bmgr restore TOKEN
bmgr restore TOKEN PACKAGE...
bmgr restore PACKAGE
bmgr run
bmgr wipe PACKAGE

The 'backup' command schedules a backup pass for the named package.
...(much more, deleted to save space)

$ am
usage: am [subcommand] [options]
usage: am start [-D] [-W] [-P <FILE>] [--start-profiler <FILE>]
[--R COUNT] [-S] <INTENT>
am startservice <INTENT>
am force-stop <PACKAGE>
am kill <PACKAGE>
am kill-all
am broadcast <INTENT>
am instrument [-r] [-e <NAME> <VALUE>] [-p <FILE>] [-w]
[--no-window-animation] <COMPONENT>
am profile [looper] start <PROCESS> <FILE>
am profile [looper] stop [<PROCESS>]
am dumpheap [flags] <PROCESS> <FILE>
am set-debug-app [-w] [--persistent] <PACKAGE>
am clear-debug-app
am monitor [--gdb <port>]
am screen-compat [on|off] <PACKAGE>
am display-size [reset|MxN]
am to-uri [INTENT]
am to-intent-uri [INTENT]

...(much more)

$ pm
usage: pm list packages [-f] [-d] [-e] [-s] [-e] [-u] [FILTER]
pm list permission-groups
pm list permissions [-g] [-f] [-d] [-u] [GROUP]
pm list instrumentation [-f] [TARGET-PACKAGE]
pm list features
pm list libraries
pm path PACKAGE
pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH
pm uninstall [-k] PACKAGE
pm clear PACKAGE
pm enable PACKAGE_OR_COMPONENT
pm disable PACKAGE_OR_COMPONENT
pm disable-user PACKAGE_OR_COMPONENT
pm set-install-location [0/auto] [1/internal] [2/external]
pm get-install-location
pm createUser USER_NAME
pm removeUser USER_ID

pm list packages: prints all packages, optionally only
those whose package name contains the text in FILTER. Options:
-f: see their associated file.
-d: filter to only show disbled packages.
-e: filter to only show enabled packages.
-s: filter to only show system packages.
-3: filter to only show third party packages.
-u: also include uninstalled packages.

...(much more)

$ record
usage: record <filename> <input_color_format>
<input_color_format>: 0 (YUV420SP) or 1 (YUV420P)

$ recordvideo -h
usage: recordvideo
-h(elp)
-b bit rate in bits per second (default: 300000)
-c YUV420 color format: [0] semi planar or [1] planar or other omx YUV420 color format (default: 1)
-f frame rate in frames per second (default: 30)
-i I frame interval in seconds (default: 1)
-n number of frames to be recorded (default: 300)
-w width in pixels (default: 176)
-t height in pixels (default: 144)
-l encoder level. see omx il header (default: encoder specific)
-p encoder profile. see omx il header (default: encoder specific)
-v video codec: [0] AVC [1] M4V [2] H263 (default: 0)
The output file is /sdcard/output.mp4

$ screenshot
usage: screenshot [-s soundfile] filename.png
-s: play a sound effect to signal success
-i: autoincrement to avoid overwriting filename.png

$ screencap -h
usage: screencap [-hp] [FILENAME]
-h: this message
-p: save the file as a png.
If FILENAME ends with .png it will be saved as a png.
If FILENAME is not given, the results will be printed to stdout.

(note: I used another Android device (an Ainol Novo 8 running ICS) to grab some of these tool help summaries, things may be different on your ROM)

To recap, explore those tools and see what they can do. You'll find that most of those 'handy apps' are no more than a gui layer on top of some service already offered by your phone. You'll also find the command line versions to be more versatile, not to mention the fact that they can be scripted. Android might be different from most Linux distributions, but it still offers many of the conveniences Linux (and unix) users have been used to all these years.

Moderator, feel free to move this post elsewhere.