@@ -35,6 +35,37 @@ show_help() {
3535 say " to find the Android emulator binary."
3636}
3737
38+ host_cpu_arch () {
39+ case " $( uname -m) " in
40+ arm64|aarch64) say " arm64-v8a" ;;
41+ x86_64|amd64) say " x86_64" ;;
42+ * ) say " unknown" ;;
43+ esac
44+ }
45+
46+ say_sample_create_avd_command () {
47+ local -r sdk_package=" system-images;android-36;google_apis;$( host_cpu_arch) "
48+ local -r avdmanager_cmd=" ${ANDROID_HOME} /cmdline-tools/latest/bin/avdmanager"
49+ local -r avdmanager_args=(
50+ " ${avdmanager_cmd} "
51+ --verbose
52+ create
53+ avd
54+ --device
55+ small_phone
56+ --name
57+ SmallPhoneAPI36
58+ --package
59+ " ${sdk_package} "
60+ )
61+ say_args " ${avdmanager_args[@]} "
62+
63+ local -r sdkmanager_cmd=" ${ANDROID_HOME} /cmdline-tools/latest/bin/sdkmanager"
64+ local -r sdkmanager_args=(" ${sdkmanager_cmd} " " ${sdk_package} " )
65+ say " If needed, install the ${sdk_package} package by running:"
66+ say_args " ${sdkmanager_args[@]} "
67+ }
68+
3869# Parse the command-line arguments.
3970zparseopts -D -E h=opt_help
4071if (( ${# opt_help} )) ; then
@@ -84,6 +115,8 @@ if (( ! ${+emulator_avd} )) ; then
84115 typeset -r avds
85116 if (( ${# avds[@]} == 0 )) ; then
86117 say_error " no AVDs are configured in the Android emulator." >&2
118+ say " To create an AVD, run this command:" >&2
119+ say_sample_create_avd_command >&2
87120 exit 1
88121 elif (( ${# avds[@]} > 1 )) ; then
89122 say_error " ${# avds[@]} AVDs are configured in the Android emulator." >&2
@@ -103,15 +136,15 @@ typeset -r args=(
103136 -no-audio
104137 -no-boot-anim
105138 -accel on
106- -gpu off
107139 -no-snapshot-load
108140 -no-snapshot-save
109141 -screen touch
110142 -netfast
111143 -no-sim
112- -timezone UTC
144+ -timezone " Etc/ UTC"
113145 -skip-adb-auth
114146 -no-metrics
147+ -grpc-use-token
115148 " ${emulator_extra_args[@]} "
116149)
117150
0 commit comments