blob: d2e97904eeaf33d0901978a7ef562d8bee399a32 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
#!/bin/sh
#
# Run the code in test.jar on the device. The jar should contain a top-level
# class named Main to run.
#
# Options:
# --quiet -- don't chatter
# --debug -- wait for debugger to attach
# --zygote -- use the zygote (if so, all other options are ignored)
# --dev -- development mode (print the vm invocation cmdline)
# --no-verify -- turn off verification (on by default)
# --no-optimize -- turn off optimization (on by default)
# --no-precise -- turn off precise GC (on by default)
msg() {
if [ "$QUIET" = "n" ]; then
echo "$@"
fi
}
OATEXEC="oatexec"
DEBUG="n"
VERIFY="y"
OPTIMIZE="y"
ZYGOTE="n"
QUIET="n"
DEV_MODE="n"
INVOKE_WITH=""
while true; do
if [ "x$1" = "x--quiet" ]; then
QUIET="y"
shift
elif [ "x$1" = "x-d" ]; then
OATEXEC="oatexecd"
shift
elif [ "x$1" = "x--debug" ]; then
DEBUG="y"
shift
elif [ "x$1" = "x--zygote" ]; then
ZYGOTE="y"
msg "Spawning from zygote"
shift
elif [ "x$1" = "x--dev" ]; then
DEV_MODE="y"
shift
elif [ "x$1" = "x--invoke-with" ]; then
shift
INVOKE_WITH="$1"
shift
elif [ "x$1" = "x--no-verify" ]; then
VERIFY="n"
shift
elif [ "x$1" = "x--no-optimize" ]; then
OPTIMIZE="n"
shift
elif [ "x$1" = "x--" ]; then
shift
break
elif expr "x$1" : "x--" >/dev/null 2>&1; then
echo "unknown $0 option: $1" 1>&2
exit 1
else
break
fi
done
if [ "$ZYGOTE" = "n" ]; then
if [ "$OPTIMIZE" = "y" ]; then
if [ "$VERIFY" = "y" ]; then
DEX_OPTIMIZE="-Xdexopt:verified"
else
DEX_OPTIMIZE="-Xdexopt:all"
fi
msg "Performing optimizations"
else
DEX_OPTIMIZE="-Xdexopt:none"
msg "Skipping optimizations"
fi
if [ "$VERIFY" = "y" ]; then
DEX_VERIFY=""
msg "Performing verification"
else
DEX_VERIFY="-Xverify:none"
msg "Skipping verification"
fi
fi
msg "------------------------------"
if [ "$QUIET" = "n" ]; then
adb shell mkdir /data/art-test
adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar /data/art-test
adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar.oat /data/art-test
adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.jar /data/art-test
adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.jar.oat /data/art-test
else
adb shell mkdir /data/art-test >/dev/null 2>&1
adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar /data/art-test >/dev/null 2>&1
adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar.oat /data/art-test >/dev/null 2>&1
adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.jar /data/art-test >/dev/null 2>&1
adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.jar.oat /data/art-test >/dev/null 2>&1
fi
if [ "$DEBUG" = "y" ]; then
# This is for ddms:
#DEX_DEBUG="-agentlib:jdwp=transport=dt_android_adb,server=y,suspend=y"
# Connect by running 'ddms'.
# This is for jdb:
DEX_DEBUG="-agentlib:jdwp=transport=dt_socket,address=12345,server=y,suspend=y"
# Connect thus:
# adb forward tcp:12345 tcp:12345
# jdb -attach localhost:12345
fi
if [ "$ZYGOTE" = "y" ]; then
adb shell cd /data \; dvz -classpath $TEST_NAME.jar Main "$@"
else
cmdline="cd /data; $INVOKE_WITH $OATEXEC ${DEX_DEBUG} -Xjnigreflimit:256 \
-Ximage:/data/art-test/core.art \
-cp /data/art-test/$TEST_NAME.jar \
Main"
#cmdline="cd /data; dalvikvm $DEX_VERIFY $DEX_OPTIMIZE $DEX_DEBUG \
# -cp test.jar -Xint:${INTERP} -ea Main"
if [ "$DEV_MODE" = "y" ]; then
echo $cmdline "$@"
fi
adb shell $cmdline "$@"
fi
|