This project hosts the implementation of the controller of AimDroid.
The internal name of the controller is monidroid
golang
.
brew install go
go
following https://golang.org/doc/code.html. The following is a list of simplified steps.
$HOME/go/
.GOPATH
: export GOPATH=$HOME/go
$HOME/go/src
.$HOME/go/src
and clone the source code of Monidroid:
git clone git@github.com:icsnju/AimDroid-controller.git monidroid
.monidroid
.$HOME/go/src/monidroid
and run go build
.monidroid
at $HOME/go/src/monidroid/
Here is a sample of configuration file.
{
"PackageName":"com.google.android.apps.photos",
"MainActivity":"com.google.android.apps.photos.home.HomeActivity",
"SDKPath":"/Users/tianxiaogu/Library/Android/sdk/",
"Epsilon":0.2,
"Alpha":0.6,
"Gamma":0.5,
"MaxSeqLen":100,
"MinSeqLen":20,
"Time":3600
}
Here is the explanation of each option.
PackageName
: the app name of the app under test.MainActivity
: the entry activity of the app.SDKPath
: the path to the Android SDK
adb
to communicate with the phone.Epsilon
, Alpha
, Gamma
: the parameters for the reinforcement learning module. See the paper for more details.MaxSeqLen
, MinSeqLen
: the length of actions in a single activity. See the paper for more details.Time
: the total testing time in seconds.AimDroid was first evaluated on real table devices.
We have encountered problems of invoking su -c
on the emulator.
Apply the following patch if you want to build a version for emulator.
cd $HOME/go/src/monidroid
find . -name "*.go" -exec sed -i "s/su -c//" {} \;