		Instructions to Run (and modify) app-launcher script
		----------------------------------------------------

Introduction: app-launcher is a script that launches apps many times,
measures various system metrics, computes basic stats for the metrics
and reports that stats.

Setup:
1) Make sure the device is seen via 'adb devices' and authorize adb via the
popup dialog.
2) Clear the setup wizard.
3) Login to an android user test account.
4) Clear the first time user dialogs on supported apps for your device (see
below).
5) Enable wifi and connect to a network (ex. GoogleGuest).

Launching app-launcher :
app-launcher -a|-b|-u [-c|-v|-s <serial number>] num-iterations
-a:Run on all cores
-b:Run only big cores
-c:pagecached. Don't drop pagecache before each launch (not default)
-h:Dump help menu'
-u:user experience, no change to cpu/gpu frequencies or governors'
-v:Optional, Verbose mode, prints stats on a lot of metrics.
-s <serial number>:Optional, specify serial number if multiple devices are
                   attached to host
num-iterations : Must be >= 100 to get statistically valid data.

Note, under -a|-b, we lock the CPU and GPU frequencies.

Apps Supported :
On phone, these 4 apps are launched
Chrome
Camera
Maps
Youtube

On Fugu (Google TV), these 3 apps are launched
YouTube
Games
Music

To add new apps, launch app manually and grep for package name +
activity name in logcat and add these to the launch_phone_apps()
function.

Adding support for new Devices to app-launcher :
There are a few bits of code needed to do this.
1) Add a new cpufreq_<device> routine to fix the CPU/GPU frequencies
as desired.
2) Add logic that checks the $model obtained and check against your device.
   (a) Then add code to call your cpufreq_<device> routine there
   (b) (Optional) Add code to get the /system block device pathname. This is
   only needed if you wan to get storage block device (/system) data.

Adding new Metrics to app-launcher :
You can modify the way simpleperf is used in the script to collect
different metrics, but that will require a change to getstats() to
parse the output as necessary. Adding new storage stats or other stats
collected from /proc (or /sys) is definitely possible, but code needs
to be written for that - modeled after the disk_stats_before/after
functions.

Notes :

Here are the commands to launch/stop the various Apps of interest. The
way to find the package and activity for the app of interest is to
launch the app and then grep for it in logcat to find the
package+activity and use that in am start.

Chrome :
adb shell 'simpleperf stat -a am start -W -n com.android.chrome/com.google.android.apps.chrome.Main'
adb shell 'am force-stop com.android.chrome'

Camera :
adb shell 'simpleperf stat -a am start -W -n com.google.android.GoogleCamera/com.android.camera.CameraActivity'
adb shell 'am force-stop com.google.android.GoogleCamera'

Maps :
adb shell 'simpleperf stat -a am start -W -n com.google.android.apps.maps/com.google.android.maps.MapsActivity'
adb shell 'am force-stop com.google.android.apps.maps'

Youtube :
adb shell 'am start -W -n com.google.android.youtube/com.google.android.apps.youtube.app.WatchWhileActivity'
adb shell 'am force-stop com.google.android.youtube'


