zoukankan      html  css  js  c++  java
  • Running Android apps using Docker and ARC Welder


    https://hub.docker.com/r/thshaw/arc-welder/


    This tutorial will allow you to run multiple Android Apps using ARC Welder inside individual Docker containers.

    docker pull jess/chrome
    
    • Start a container
    docker run -it 
        --net host 
        --cpuset-cpus 0  
        --memory 512mb  # max memory it can use
        -v /tmp/.X11-unix:/tmp/.X11-unix  # mount the X11 socket
        -e DISPLAY=unix$DISPLAY 
        -v $HOME/Downloads:/root/Downloads 
        --device /dev/snd  # so we have sound
          --entrypoint /bin/bash 
        --name chrome 
        jess/chrome:latest
    
    • Start Chrome (Manual)
    google-chrome --user-data-dir=/data
    
    A Chrome Browser window will appear.
    
    • Install ARC Welder (Manual)

    Navigate to :
    https://developer.chrome.com/apps/getstarted_arc

    Click on "The ARC Welder app"

    Select "+ add to chrome"

    This will take a few minutes while it downloads the ARC Welder and runtime.

    Confirm it is installed : Settings, Extensions.

    • Enable WebGL

    Step 1: Type chrome://flags in the address bar

    Step 2: Press Ctrl + f and type ” Rendering list “, “Override software rendering list” should come up, Now click on Enable and restart the browser.

    Step 3: Close the Chrome window.

    • Commit these changes to a new image
    Get the container image id : 
    
    docker ps -a |head -2
    
    Commit these changes to a new image :
    
    docker commit <container id> arc-welder:base
    
    • Almost there. This is our base image. You can run this and provide an entrypoint or you can use a Dockerfile.

    Create a Dockerfile with contents :

    FROM arc-welder:base
    
    ENTRYPOINT [ "/usr/bin/google-chrome" ]
    
    #This is the app-id of ARC Welder that we installed 
    CMD [ "--user-data-dir=/data", "--app-id=emfinbmielocnlhgmfkkmkngdoccbadn" ]
    

    Build a new image :

    
    docker build -t arc-welder:latest .
    

    Start the ARC Welder container :

    docker run -it 
            --net host 
            --cpuset-cpus 0 
            --memory 512mb  # max memory it can use
            -v /tmp/.X11-unix:/tmp/.X11-unix  # mount the X11 socket
            -e DISPLAY=unix$DISPLAY 
            -v $HOME/Downloads:/root/Downloads 
            --device /dev/snd  # so we have sound
            --name arcwelder 
            arc-welder:latest
    

    Note : If you want to save the state of any apps you run then you will need to add in this line when starting the container :

    -v $HOME/.config/google-chrome/:/data  # if you want to save state
    

    The ARC Welder app will appear.

    You will be prompted for a .apk file. In the command above we setup this volume : $HOME/Downloads:/root/Downloads. On your host you can download a .apk file from http://www.apkmirror.com/ and then select this in the ARC Welder gui.

    That's it.

    Tested Angry Birds, Instagram, Twitter, Evernote.

    Tried Facebook, Netflix and AirDroid but hit issues.

    • What's the point?

    This allows Developers or Testers to start Android apps just by starting a container. Multiple apps can be run at the same time in complete isolation. No changes have been made to your host system.

    • Future work :

    Automate the install of ARC Welder

    The end user should be able to pass in the location of a .apk at container runtime and this gets loaded into ARC welder.


  • 相关阅读:
    loads和dumps的用法
    python实现装饰器
    pycharm 配置 git 方法
    正则表达式——练习一
    fiddler下载安装
    robotframework引入seleniumlibrary报错
    Codeforces-936B Sleepy Game
    Codeforces-940D. Alena And The Heater
    Codeforces-935D. Fafa and Ancient Alphabet
    Java编程规范
  • 原文地址:https://www.cnblogs.com/ztguang/p/12646416.html
Copyright © 2011-2022 走看看