1<?xml version="1.0" encoding="utf-8"?> 2<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent"> 5 6 <LinearLayout android:layout_height="wrap_content" 7 android:layout_width="fill_parent" 8 android:orientation="vertical"> 9 10 <TextView 11 android:layout_width="fill_parent" 12 android:layout_height="wrap_content" 13 android:text="Policy:" 14 /> 15 16 <CheckBox 17 android:id="@+id/policy_no_write" 18 android:layout_height="wrap_content" 19 android:layout_width="fill_parent" 20 android:text="Detect writes" /> 21 22 <CheckBox 23 android:id="@+id/policy_no_reads" 24 android:layout_height="wrap_content" 25 android:layout_width="fill_parent" 26 android:text="Detect reads" /> 27 28 <CheckBox 29 android:id="@+id/policy_no_network" 30 android:layout_height="wrap_content" 31 android:layout_width="fill_parent" 32 android:text="Detect network" /> 33 34 <CheckBox 35 android:id="@+id/policy_custom" 36 android:layout_height="wrap_content" 37 android:layout_width="fill_parent" 38 android:text="Detect custom events" /> 39 40 <CheckBox 41 android:id="@+id/policy_penalty_log" 42 android:layout_height="wrap_content" 43 android:layout_width="fill_parent" 44 android:text="Penalty: Log?" /> 45 46 <CheckBox 47 android:id="@+id/policy_penalty_flash" 48 android:layout_height="wrap_content" 49 android:layout_width="fill_parent" 50 android:text="Penalty: Flash?" /> 51 52 <CheckBox 53 android:id="@+id/policy_penalty_dialog" 54 android:layout_height="wrap_content" 55 android:layout_width="fill_parent" 56 android:text="Penalty: Dialog" /> 57 58 <CheckBox 59 android:id="@+id/policy_penalty_dropbox" 60 android:layout_height="wrap_content" 61 android:layout_width="fill_parent" 62 android:text="Penalty: Dropbox" /> 63 64 <CheckBox 65 android:id="@+id/policy_penalty_death" 66 android:layout_height="wrap_content" 67 android:layout_width="fill_parent" 68 android:text="Penalty: Death" /> 69 70 <CheckBox 71 android:id="@+id/policy_penalty_network_death" 72 android:layout_height="wrap_content" 73 android:layout_width="fill_parent" 74 android:text="Penalty: Death-on-network" /> 75 76 <TextView 77 android:layout_width="fill_parent" 78 android:layout_height="wrap_content" 79 android:text="Actions:" 80 /> 81 82 <Button 83 android:id="@+id/write_button" 84 android:layout_width="fill_parent" 85 android:layout_height="wrap_content" 86 android:text="sqlite write on UI thread" 87 /> 88 89 <Button 90 android:id="@+id/write_loop_button" 91 android:layout_width="fill_parent" 92 android:layout_height="wrap_content" 93 android:text="fake write (in a loop)" 94 /> 95 96 <Button 97 android:id="@+id/read_button" 98 android:layout_width="fill_parent" 99 android:layout_height="wrap_content" 100 android:text="sqlite read on UI thread" 101 /> 102 103 <Button 104 android:id="@+id/dns_button" 105 android:layout_width="fill_parent" 106 android:layout_height="wrap_content" 107 android:text="DNS lookup on main thread" 108 /> 109 110 <Button 111 android:id="@+id/http_button" 112 android:layout_width="fill_parent" 113 android:layout_height="wrap_content" 114 android:text="(Default) HTTP on main thread" 115 /> 116 117 <Button 118 android:id="@+id/http2_button" 119 android:layout_width="fill_parent" 120 android:layout_height="wrap_content" 121 android:text="HttpURLConnection on main thread" 122 /> 123 124 <Button 125 android:id="@+id/http3_button" 126 android:layout_width="fill_parent" 127 android:layout_height="wrap_content" 128 android:text="HttpURLConnection (to raw IP)" 129 /> 130 131 <Button 132 android:id="@+id/binder_local_button" 133 android:layout_width="fill_parent" 134 android:layout_height="wrap_content" 135 android:text="Binder call (local) to write disk" 136 /> 137 138 <Button 139 android:id="@+id/binder_remote_button" 140 android:layout_width="fill_parent" 141 android:layout_height="wrap_content" 142 android:text="Binder call (remote) to write disk" 143 /> 144 145 <Button 146 android:id="@+id/binder_oneway_button" 147 android:layout_width="fill_parent" 148 android:layout_height="wrap_content" 149 android:text="Binder 1-way to write disk" 150 /> 151 152 <Button 153 android:id="@+id/service_dump" 154 android:layout_width="fill_parent" 155 android:layout_height="wrap_content" 156 android:text="Dump (remote) service which writes" 157 /> 158 159 <Button 160 android:id="@+id/binder_check_button" 161 android:layout_width="fill_parent" 162 android:layout_height="wrap_content" 163 android:text="Check binder/service policies" 164 /> 165 166 <Button 167 android:id="@+id/linger_close_button" 168 android:layout_width="fill_parent" 169 android:layout_height="wrap_content" 170 android:text="Linger close()" 171 /> 172 173 <Button 174 android:id="@+id/nonlinger_close_button" 175 android:layout_width="fill_parent" 176 android:layout_height="wrap_content" 177 android:text="Non-linger close()" 178 /> 179 180 <Button 181 android:id="@+id/leak_cursor_button" 182 android:layout_width="fill_parent" 183 android:layout_height="wrap_content" 184 android:text="Leak an SQLiteCursor" 185 /> 186 187 <Button 188 android:id="@+id/custom_button" 189 android:layout_width="fill_parent" 190 android:layout_height="wrap_content" 191 android:text="Custom slow call" 192 /> 193 194 <Button 195 android:id="@+id/gc_instance_button" 196 android:layout_width="fill_parent" 197 android:layout_height="wrap_content" 198 android:text="Class instances test" 199 /> 200 201 </LinearLayout> 202 203</ScrollView> 204