我想在Travis CI中使用模拟器构建和测试Android应用程序。
在我的本地计算机上,我可以使用android
和avdmanager
工具创建模拟器,例如:
echo no | android create avd --force --name test01 --package 'system-images;android-27;google_apis_playstore;x86'
echo no | avdmanager create avd --force --name test02 --package 'system-images;android-27;google_apis_playstore;x86'
但是在Travis上,$ ANDROID_HOME / tools / bin中没有avdmanager
当我尝试使用android
工具创建模拟器时(由于它已被弃用,这是不可取的),结果发现它与我的mac上安装的版本不同,需要不同的参数
我的.travis.yml
文件(为清晰起见,删除了vars和构建步骤):
sudo: true
os: linux
dist: trusty
language: android
android:
components:
- build-tools-26.0.2
- android-26
before_script:
- echo no | android create avd --force --name test --package 'system-images;android-27;google_apis_playstore;x86'
#- echo no | avdmanager create avd --force --name test --package 'system-images;android-27;google_apis_playstore;x86'
script:
- echo "DEBUG searching for avdmanager" && ls -lAp $ANDROID_HOME/tools/bin
那么请您建议我如何在Travis CI中创建Android模拟器?
答案 0 :(得分:1)
在玩完官方方式后,我发现在travis上启动一个模拟器的最简单方法至少在travis.xml
before_install:
# Install SDK license so Android Gradle plugin can install deps.
- mkdir "$ANDROID_HOME/licenses" || true
- echo "d56f5187479451eabf01fb78af6dfcb131a6481e" >> "$ANDROID_HOME/licenses/android-sdk-license"
# Install the rest of tools (e.g. avdmanager)
- sdkmanager tools
# Install the system image.
- sdkmanager "system-images;android-24;default;armeabi-v7a"
# Create and start emulator for the script. Meant to race the install task.
- echo no | avdmanager create avd --force -n emulatorApi24 -k "system-images;android-24;default;armeabi-v7a"
- $ANDROID_HOME/emulator/emulator -avd emulatorApi24 -no-audio -no-window &
before_script:
- android-wait-for-emulator
# Disable animations
- adb shell settings put global window_animation_scale 0 &
- adb shell settings put global transition_animation_scale 0 &
- adb shell settings put global animator_duration_scale 0 &
- adb shell input keyevent 82 &
script: ./gradlew connectedAndroidTest # Run emulator tests
现在我的travis构建需要20分钟:D
作为参考,检查工作示例的好地方是U+2020 project。