Compare commits

...
412 Commits
Author SHA1 Message Date
budtmo d58eb73294 Using newest base image with Appium 1.22.3 2022-05-02 10:05:39 +02:00
budtmo 2756b7febc Updated base image that contains Appium 1.22.2 2022-04-25 16:03:44 +02:00
budtmo ee5630f893 Updated base image that contains Appium 1.22.1 2022-04-25 15:49:55 +02:00
budtmo a72a5d1edc Using python 3.8.12 on pipeline 2022-04-08 12:45:34 +02:00
budtmo 9f58ad6bda Dropped polyverse support 2022-04-08 12:35:43 +02:00
Budi UtomoandGitHub 94a3f40ac6 Merge pull request #314 from inez/patch-1
(documentation) Added information about SSHing to the virtual machine
2022-02-16 10:42:41 +01:00
Inez KorczyńskiandGitHub e340223c8c Add information about SSHing to the virtual machine 2021-12-22 16:38:23 -08:00
Budi UtomoandGitHub 77488aea7f Merge pull request #310 from JoelWhitney/joel/android-11-x86_64
Android 11 build issue with 32-bit image
2021-11-17 13:59:23 +01:00
Budi UtomoandGitHub 8f1c4bf1ca Merge branch 'master' into joel/android-11-x86_64 2021-11-17 11:45:03 +01:00
Budi UtomoandGitHub cd63313358 Changed polymorphing llink 2021-11-10 15:03:48 +01:00
Joel Whitney d0f9534e3d Android 11 build issue with 32-bit image 2021-11-04 13:02:32 -04:00
budtmo 7b6bc3fe3e Removed support for Android 5.0.1 and 5.1.1 2021-10-05 10:06:46 +02:00
budtmo 1f1d4ccf49 Using the latest appium version 2021-10-05 10:03:43 +02:00
Budi UtomoandGitHub 8278a3f6ef Merge pull request #303 from syntx/patch-1
Update README_CUSTOM_CONFIG.md
2021-10-05 10:01:38 +02:00
syntxandGitHub 92ea480e55 Update README_CUSTOM_CONFIG.md
This seems like a typo in the documentation, according to: https://github.com/budtmo/docker-android/blob/0a8b7c07a2659fe9bd316bac8c21c506f953620a/src/utils.sh#L60-L62
2021-10-04 23:55:29 +03:00
budtmo 0188131350 Replaced operator 2021-08-05 13:28:43 +02:00
budtmo 371a57c663 Added Android 12.0 into pipeline 2021-08-05 12:28:04 +02:00
Budi UtomoandGitHub 6d4de35602 Merge pull request #297 from JoelWhitney/android_12
Support Android 12 (API 31)
2021-08-05 12:24:47 +02:00
Joel Whitney 51158d8630 processor 2021-08-03 18:04:53 -04:00
Joel Whitney 3a7cba3dc9 x86_64 2021-08-03 17:16:21 -04:00
Joel Whitney 4bb9f044ed 12 2021-08-03 16:15:59 -04:00
budtmo 0e35dab27f Updated base image 2021-07-20 17:21:42 +02:00
Budi UtomoandGitHub 14a98aea88 Merge pull request #294 from ireneu/master
Check correctly if device exists
2021-07-20 17:17:57 +02:00
IreandGitHub 337aaf5103 Use regex to verify config 2021-07-09 14:20:52 +02:00
IreandGitHub f5e86d5806 Check correctly if device exists
config.ini has spaces around the equals sign
2021-07-09 10:56:29 +02:00
budtmo caf2cb2cd8 Fixed pip issue on Azure DevOps 2021-06-21 12:15:51 +02:00
budtmo 03f2ea256a Fixed wrong name 2021-06-21 12:10:18 +02:00
budtmo af2d302bbc Formatted 2021-06-21 11:45:36 +02:00
budtmo b6752ea535 Renamed 2021-06-21 11:42:05 +02:00
budtmo 06a8e83922 Updated base image 2021-06-21 11:40:22 +02:00
budtmo a7e7eaa5aa Added release pipelines 2021-06-21 11:39:10 +02:00
budtmo d2c82d05c7 Removed matrix from pipeline 2021-06-21 10:47:09 +02:00
budtmo 79d36e1536 Replaced status badge of Travis with Azure DevOps 2021-06-21 10:36:05 +02:00
budtmo 90ff1782ae Reverted the changes 2021-06-21 10:33:07 +02:00
budtmo 92e4933521 Published test result at the end 2021-06-21 10:25:54 +02:00
budtmo 4f9469db55 Added matrix 2021-06-21 10:24:06 +02:00
budtmo cc409b9914 Formatted 2021-06-21 10:18:02 +02:00
budtmo 4cc5a36c32 Added Azure DevOps 2021-06-21 10:13:15 +02:00
budtmo ed77303a16 Removed travis from the project 2021-06-21 10:11:34 +02:00
budtmo 5696fe3ea0 Deleted unused script 2021-06-21 09:54:57 +02:00
Budi UtomoandGitHub b39a8784b7 Merge pull request #287 from scottwallacesh/master
Fix an issue when attempting to detect an existing AVD image
2021-06-21 09:52:26 +02:00
Scott WallaceandGitHub fcb1f2ec31 Fix an issue when attempting to detect an existing AVD image
Fixes #286.
2021-05-05 10:04:46 +01:00
Budi UtomoandGitHub 49113f2cb4 Added PayPal link for donation 2021-04-28 15:00:12 +02:00
Budi UtomoandGitHub 0a8b7c07a2 Added step how to check kvm 2021-02-16 15:40:39 +01:00
butomo1989 49b9c44f3a Using Appium 1.20.2 2021-02-04 08:31:13 +01:00
butomo1989 15cddf08c4 Merge branch 'master' of github.com:butomo1989/docker-android 2021-02-03 16:55:06 +01:00
butomo1989 71949ee857 Using Appium 1.20.1 2021-02-03 16:54:51 +01:00
Budi UtomoandGitHub d0e3c619ca Merge pull request #277 from iqalab-cloud/bug-fix-incorrect-max-session
Bug fix: maxSession in appium config should be 1
2021-01-13 13:07:30 +01:00
Zhaopeng XUAN 8dc87a3a3c Bug fix: maxSession in appium config should be 1 2021-01-13 12:39:36 +01:00
Budi UtomoandGitHub 76617374c0 Merge pull request #274 from iqalab-cloud/feature-support-selenium-proxy-class
Feature: Support customised Selenium Proxy Class when use Appium
2021-01-09 11:21:30 +01:00
Zhaopeng XUAN 70fc3b411c Fix the issue 2021-01-08 12:05:34 +01:00
Zhaopeng XUAN 5e7ce8ce66 Feature: Support Selenium Proxy Class when use Appium 2021-01-08 11:44:56 +01:00
butomo1989 1d7121c41b Merge branch 'master' of github.com:butomo1989/docker-android 2021-01-08 08:34:25 +01:00
butomo1989 0a1758091f Updated base image 2021-01-08 08:34:06 +01:00
Budi UtomoandGitHub eb045aa644 Merge pull request #270 from jnvillar/patch-1
Update README_VMWARE.md
2021-01-07 10:42:00 +01:00
Juan Ignacio Noli VillarandGitHub e5a9fe7031 Update README_VMWARE.md 2020-12-17 10:49:08 -03:00
butomo1989 fdb464781a Added monitoring section 2020-09-02 11:33:07 +02:00
Budi UtomoandGitHub 2e5237ec80 Merge pull request #260 from yintro4ha/master
Able to add proxy user and password on Android emulator
2020-08-27 12:56:15 +02:00
yintro4haandGitHub b1f9ec5e79 Merge pull request #1 from yintro4ha/add-proxy-auth
Update utils.sh
2020-08-24 15:14:00 +08:00
yintro4haandGitHub 1ac4a6484e Update README_CUSTOM_CONFIG.md
Add document for new proxy auth variable
2020-08-24 15:10:03 +08:00
yintro4haandGitHub f09e38c92c Update utils.sh
Add Variable: 
1. HTTP_PROXY_USER
2. HTTP_PROXY_PASSWORD
2020-08-24 15:05:22 +08:00
butomo1989 e051faf84a Updated the base image 2020-07-31 10:51:08 +02:00
butomo1989 2461a6e832 Restart mobile data for specific version 2020-07-23 17:26:36 +02:00
butomo1989 20120f5c0a Added stargazers 2020-07-22 09:12:27 +02:00
butomo1989 6a0f135247 Typo 2020-07-17 14:59:21 +02:00
butomo1989 b36847817d Enable Animation 2020-07-17 14:58:17 +02:00
butomo1989 0196d23103 Switched the order because of bug on Android 10 or higher 2020-07-17 14:57:20 +02:00
butomo1989 01d1c663c1 Updated documentation 2020-07-14 09:54:31 +02:00
butomo1989 5b8ef77bba Updated link 2020-07-14 09:53:05 +02:00
butomo1989 3b3746fff3 Updated security link 2020-07-14 09:52:38 +02:00
butomo1989 d9ba33c9fa Renamed 2020-07-14 09:50:31 +02:00
butomo1989 94132acf41 Updated user statistics 2020-07-14 09:47:13 +02:00
butomo1989 86e7e0f8e5 Updated ga lines 2020-07-13 14:59:51 +02:00
butomo1989 77a1216730 Added docker-android users statistics 2020-07-13 14:20:51 +02:00
butomo1989 56e01002da Added Android 11.0 into travis configuration 2020-07-13 14:10:42 +02:00
butomo1989 287378162f Updated base image 2020-07-13 13:04:49 +02:00
butomo1989 8affae0fa1 Added Android 11.0 2020-07-13 13:03:58 +02:00
Budi UtomoandGitHub ca28b7ad10 Merge pull request #253 from analogue/update_readme_no_google_play
Update README to call out that google play store not installed
2020-07-12 18:54:47 +02:00
Budi UtomoandGitHub edebdfd380 Merge branch 'master' into update_readme_no_google_play 2020-07-12 18:46:08 +02:00
Budi UtomoandGitHub ddf0a451c9 Merge pull request #252 from analogue/fix_crashing_when_run_by_default_as_root_user
Workaround for "Running as root without --no-sandbox is not supported"
2020-07-12 18:45:40 +02:00
analogue fcc439b938 Update README to call out that play store not installed 2020-07-12 10:55:39 -05:00
analogue 68ac0c42ce Workaround crashing when run by default as root user 2020-07-12 09:56:22 -05:00
butomo1989 666d3eaee6 [Fixed issue in codacy] Using correct operator 2020-07-02 14:24:52 +02:00
butomo1989 ecfaf236b9 [Fixed issue in codacy] Added semi-colon 2020-07-02 14:24:18 +02:00
butomo1989 a5714c805d Fixed quote 2020-07-02 14:19:51 +02:00
butomo1989 9eb4b3c595 Fixed link 2020-07-02 14:18:17 +02:00
butomo1989 0389f64365 Removed duplicated note 2020-07-02 14:17:30 +02:00
butomo1989 ba476eb993 Merge branch 'master' of github.com:butomo1989/docker-android 2020-07-02 14:16:18 +02:00
butomo1989 9b2bc985e0 Added sample config of nginx 2020-07-02 14:16:02 +02:00
Budi UtomoandGitHub 1a9b9361e6 Merge pull request #248 from p0vidl0/master
Add selenium session timeout configuration via environment variable
2020-07-02 09:16:28 +02:00
Budi UtomoandGitHub abdb45ea0b Merge branch 'master' into master 2020-07-01 11:19:06 +02:00
butomo1989 b9d6237eb4 Added example to pass password through url 2020-07-01 11:06:05 +02:00
butomo1989 5936037a56 Removed unused lines 2020-06-26 16:02:58 +02:00
butomo1989 0460a62956 Added example of using nginx 2020-06-26 16:01:12 +02:00
Aleksandr Kalashnikov 6403ff78be Add selenium session timeout configuration via environment variable 2020-06-26 10:17:08 +06:00
butomo1989 7ad2eb45c8 Able to have pass in vnc 2020-06-18 16:08:48 +02:00
butomo1989 ea5661fa41 Added note 2020-06-17 17:14:57 +02:00
butomo1989 f323d29aa4 Fixed build issue for API 28 2020-06-17 17:14:50 +02:00
butomo1989 eec0c5df02 Fixed build issue for API 28 2020-06-17 12:21:36 +02:00
butomo1989 b66c5d122a Disabled apklinker 2020-05-08 15:03:47 +02:00
butomo1989 8289bc166f Using Appium 1.17.1 2020-05-08 14:18:14 +02:00
butomo1989 d1e9f7472b Added sponsor link 2020-04-25 09:08:24 +02:00
butomo1989 a22152fd4d Using Appium 1.17.0 2020-04-15 13:13:09 +02:00
butomo1989 83dcca4b8c Removed source 1810 2020-04-15 12:43:41 +02:00
Budi UtomoandGitHub a38691b5e2 Merge pull request #229 from Seabath/master
Add optional env to set avd name
2020-04-15 08:38:25 +02:00
butomo1989 ad696f84bf Merge branch 'master' of github.com:butomo1989/docker-android 2020-04-09 08:52:21 +02:00
butomo1989 b4d8241422 Using Appium 1.16.0 2020-04-09 08:52:11 +02:00
sfontanel feab383008 Add optional env to set avd name 2020-03-09 17:11:36 +01:00
Budi UtomoandGitHub d097c08789 Merge pull request #225 from ihorvitruk/patch-1
Update README.md
2020-01-24 09:06:21 +01:00
Ihor VitrukandGitHub f5978bab45 Update README.md 2020-01-17 23:30:19 +02:00
Budi UtomoandGitHub 6e953ab74b Merge pull request #214 from indranil32/patch-1
Updating README for issue #200
2020-01-07 10:07:48 +01:00
IndranilandGitHub 9794270552 Updating README for issue #200
Updating the google android sample project repo

https://github.com/budtmo/docker-android/issues/200
2019-11-28 00:31:05 +05:30
MashumaroandBudi Utomo ba5f76116b add optional option for device name in json file and use random name instead (Genymotion) 2019-11-20 15:29:41 +01:00
Andrzej ZabostandBudi Utomo e56975ec49 Add data partition size variable documentation (#211) 2019-11-20 15:28:09 +01:00
Budi UtomoandGitHub 2fa8734ac5 Updated GitHub-id 2019-11-03 15:17:18 +01:00
butomo1989 8337e63a53 Update base image 2019-10-22 08:12:48 +02:00
butomo1989 ee9c3e3635 Added Android 10 2019-09-17 14:51:02 +02:00
butomo1989 d8ac737d00 Disabled auto restart 2019-09-16 11:56:48 +02:00
butomo1989 d6a582ae20 Using the newest base image 2019-09-16 10:58:42 +02:00
ArneandBudi Utomo 120d80f0ab Using scrcpy instead of asm (#188) 2019-09-06 14:11:06 +02:00
Budi UtomoandGitHub 377cb04ca1 Merge pull request #189 from Arne-B/real-device-appium-xterm
Running Appium in xterm window
2019-08-20 11:51:35 +02:00
ArneandGitHub a1f83daf10 Running appium in xterm window
This provides the same behaviour as on the emulator containers
2019-08-14 12:28:04 +02:00
Budi UtomoandGitHub c27ab1d6d6 Merge pull request #186 from vvbogdanov87/genymotion-subnetid
Add subnet_id parameter [Genymotion on AWS]
2019-08-12 14:12:20 +02:00
vvbogdanov87 ca0f85b48f Update genymotion documentation 2019-08-09 13:47:57 -07:00
vvbogdanov87 b1114d9b87 Add subnet_id parameter 2019-08-08 14:49:37 -07:00
butomo1989 f5e273d05c Updated readme file 2019-07-26 16:56:21 +02:00
butomo1989 65c139e7d2 Added more Samsung devices and its skin 2019-07-26 16:55:12 +02:00
Budi UtomoandGitHub 34fa736916 Merge pull request #179 from rbaron/master
Fixed issue #170
2019-07-25 12:57:01 +02:00
Budi UtomoandGitHub b707d1971f Merge branch 'master' into master 2019-07-25 12:51:27 +02:00
butomo1989 5923820261 Merge branch 'master' of github.com:butomo1989/docker-android 2019-07-25 12:19:44 +02:00
butomo1989 d9389a48c6 Removed unused lines 2019-07-25 12:19:28 +02:00
Budi UtomoandGitHub 611a93d926 Merge pull request #181 from GraemeF/patch-1
Fixed typo
2019-07-24 12:03:05 +02:00
Graeme FosterandGitHub 4d64ece2f9 Fixed typo 2019-07-23 14:17:52 +00:00
Raphael Baron d1126b58c2 Fixes AVD unit tests 2019-07-20 12:35:44 +00:00
Raphael Baron d881cb2e06 Renames tests 2019-07-20 12:34:02 +00:00
Raphael Baron 9f0c6a595e Fixes app unit tests 2019-07-20 12:31:59 +00:00
Raphael Baron 8c09a3e169 Fixes documentation for persisting device config 2019-07-20 09:45:14 +00:00
Raphael Baron 0e1ffe9cff Uses android_emulator/config.ini instead of .android/devices.xml to assess if device has been previously initialized 2019-07-20 09:43:59 +00:00
butomo1989 9adec7fcfd Fixed missing path 2019-07-10 16:10:05 +02:00
butomo1989 4de36e6568 Added Docker-Android logo as Background for other images and cleaned up 2019-07-10 16:07:20 +02:00
Budi UtomoandGitHub c299582ac4 Merge pull request #173 from trinhpham/master
Added Docker-Android logo as Background
2019-07-10 15:59:57 +02:00
Trinh Pham 69654cd036 Set screen background on startup 2019-07-10 18:30:59 +07:00
Trinh Pham 81f110adea Set screen background on startup 2019-07-10 18:30:46 +07:00
Trinh Pham 068bb87ab3 Merge branch 'master' of https://github.com/budtmo/docker-android
# Conflicts:
#	docker/Emulator_x86
#	docker/configs/sources1810.list
#	docker/configs/x11vnc.pref
#	docker/sources1810.list
#	docker/x11vnc.pref
#	src/sources1810.list
#	src/x11vnc.pref
2019-07-10 18:28:53 +07:00
Trinh Pham d1559b6748 Set screen background on startup 2019-07-10 18:20:46 +07:00
Trinh Pham 5c3cc8ed4d Add screen background 2019-07-10 16:14:27 +07:00
Trinh Pham 2ba73f87e0 Organize config files 2019-07-10 15:59:18 +07:00
butomo1989 d789139be9 Added ATD 2019-07-10 10:13:26 +02:00
butomo1989 b162e2ee58 Fixed typo 2019-07-10 09:35:34 +02:00
butomo1989 42b4775e9f Updated the base image 2019-07-10 09:35:17 +02:00
Trinh Pham 4213882f04 Add screen background 2019-07-10 14:30:48 +07:00
butomo1989 1b6bdab388 Used the same implementation of Docker-Image from Emulator_x86 2019-07-09 14:13:52 +02:00
Budi UtomoandGitHub 087c91922c Merge pull request #171 from trinhpham/master
Activate only one view of Desktop
2019-07-09 13:54:42 +02:00
Trinh Pham 168f51471c Single virtual desktop 2019-07-09 18:10:58 +07:00
butomo1989 19e26a086b Enabled proxy on Android emulator 2019-07-05 09:37:19 +02:00
butomo1989 de073327af Addded different templates for issues 2019-07-03 10:54:05 +02:00
Budi UtomoandGitHub e7d684eb0a Updated readme.md 2019-07-03 10:36:08 +02:00
butomo1989 6237f452f8 Added hyperlink 2019-07-02 13:57:10 +02:00
Budi UtomoandGitHub cd2a7a5bcd Merge pull request #168 from trinhpham/master
Fixed vnc issue while clicking/dragging mouse and reduced image size
2019-07-02 11:27:40 +02:00
Trinh Pham 92acd04a53 Move Polyverse to top to reduce the image size 2019-06-28 15:09:36 +07:00
Trinh Pham 7afe1c0e54 Default value for DOCKER_ORG 2019-06-28 13:56:04 +07:00
Trinh Pham 455bf6023d Fix wrong path 2019-06-28 13:52:00 +07:00
Trinh Pham ce9936b6df Update x11vnc to prevent crash
- Fix PATH
2019-06-28 11:46:02 +07:00
Trinh Pham 359551e272 Update x11vnc to prevent crash 2019-06-28 11:34:30 +07:00
Trinh Pham c888c05572 Auto restart x11vnc if crashes
Related bug: https://bugs.launchpad.net/ubuntu/+source/x11vnc/+bug/1686084
2019-06-16 23:45:37 +07:00
butomo1989 3479738457 Updated readme 2019-06-13 22:47:51 +07:00
butomo1989 98a3b3d8d5 Using beta version 2019-06-13 17:24:37 +07:00
butomo1989 abf1d33e62 Deleted unused file 2019-06-07 14:33:33 +07:00
butomo1989 9e826e4f61 Replaced gmtool with gmsaas 2019-06-07 14:28:48 +07:00
butomo1989 5c2045a840 Replaced gmtool with gmsaas on installation process 2019-06-06 00:59:35 +07:00
butomo1989 aa7e88cf46 Use gpu swiftshader_indirect and VM acceleration by default 2019-05-29 21:56:19 +07:00
butomo1989 4ac0bebe99 Added Polyverse for security 2019-05-06 18:33:13 +07:00
butomo1989 ac9b6e9af7 Updated the base image 2019-05-06 18:26:16 +07:00
Budi UtomoandGitHub 65afbdeeba Merge pull request #156 from polyverse/master
Added Polymorphic
2019-05-04 09:05:43 +02:00
butomo1989 ed29b14c9e Updated the docker base image 2019-04-04 20:02:26 +07:00
Budi UtomoandGitHub 54cb0fc824 Replaced the old link 2019-03-18 10:31:20 +01:00
Budi UtomoandGitHub 15375cc53b Added README.md 2019-03-11 20:13:51 +01:00
budtmo 4516899786 Added credits in readme 2019-03-11 17:10:02 +01:00
budtmo 45e7df6db3 Added Samsung S7 and S7 Edge 2019-03-11 16:53:37 +01:00
Budi UtomoandGitHub b9a7a486e1 Renamed 2019-03-06 19:33:27 +01:00
Budi UtomoandGitHub 90642436dd Renamed 2019-03-06 17:19:02 +01:00
budtmo ef3c4e28c0 Added readme file for Jenkins 2019-03-06 15:57:45 +01:00
budtmo 4d4c22124f Added SaltStack 2019-03-01 12:46:50 +01:00
budtmo 7d63eac5ae Updated Genymotion to version 3.0.1 2019-03-01 11:14:38 +01:00
Chris Hanaoka b1be8ceeab added polymorphic linux install 2019-02-26 18:34:23 -08:00
budtmo fcb89f2702 Updated maintainer email 2019-02-21 18:01:38 +01:00
budtmo 226e088390 Updated Appium server to version 1.11.1 2019-02-21 17:57:20 +01:00
budtmo 3574b9825b Merge branch 'master' of github.com:budtmo/docker-android 2019-02-19 10:26:23 +01:00
budtmo d34d635114 Using Appium 1.11.0 2019-02-19 10:26:09 +01:00
Budi UtomoandGitHub 43d38adf76 Updated readme 2019-02-14 13:20:11 +01:00
Budi UtomoandGitHub a2d3c05a1c Merge pull request #145 from fossabot/master
Add license scan report and status
2019-02-12 15:53:56 +01:00
Budi UtomoandGitHub a4c7919209 Merge branch 'master' into master 2019-02-12 15:31:20 +01:00
Budi UtomoandGitHub 2e59c45142 Added PR badge 2019-02-11 10:42:37 +01:00
fossabot 664ad07905 Add license scan report and status
Signed-off-by: fossabot <badges@fossa.io>
2019-02-07 00:55:06 -08:00
Budi UtomoandGitHub 4b7de9d645 Merge pull request #143 from nonVoid/master
change timeout in generated nodeconfig.js from 30000 to 30 [because of Selenium 3.x]
2019-01-31 16:19:57 +01:00
nonVoidandGitHub 5d1cf8e671 Merge branch 'master' into master 2019-01-31 15:41:09 +01:00
Felix Weber 9441d537b7 change timeout in generated nodeconfig.js from 30000 to 30 2019-01-31 15:32:51 +01:00
Budi UtomoandGitHub a40acea0ba Merge pull request #142 from nonVoid/master
Fixed #135
2019-01-31 14:32:29 +01:00
Felix Weber 54811c0c81 change SCREEN_DEPTH to 24+32 in noVNC(xvfb) settings 2019-01-31 14:11:01 +01:00
budtmo 893abf99e4 Added release badge 2019-01-31 10:40:19 +01:00
budtmo 14b6091277 Deleted old video 2019-01-30 15:01:28 +01:00
budtmo 5acbce6654 Renamed 2019-01-30 14:58:31 +01:00
butomo1989 1c844033f6 Merge branch 'master' of github.com:butomo1989/docker-android 2019-01-16 10:49:17 +01:00
butomo1989 83ba9bb79e Using Appium 1.10.1 2019-01-16 10:49:05 +01:00
Budi UtomoandGitHub 712d3485ad Merge pull request #139 from nichotined/master
Added documentation how to connect emulator to the host
2019-01-16 09:36:35 +01:00
Nicholas FrederickandGitHub 04512a0d16 Update README.md
Added Control Android connected to host (Emulator or Real Device)
2019-01-15 22:30:58 +07:00
butomo1989 cf0ebd7eb9 Fixed #138 2019-01-15 10:19:42 +01:00
butomo1989 32cb68f6c9 Updated base image 2019-01-08 10:48:11 +01:00
Budi UtomoandGitHub 98b0b3a140 Merge pull request #134 from tadashi0713/add_unittest_relaxed_security
Add unittest to run appium with relaxed security
2019-01-07 09:20:58 +01:00
Tadashi NemotoandGitHub 2c9c421c35 Merge branch 'master' into add_unittest_relaxed_security 2019-01-05 15:59:12 +09:00
tadashi0713 afea49a2c8 Add unittest to run appium with relaxed security 2019-01-05 15:56:24 +09:00
butomo1989 442a10afd2 Fixed wrong file 2019-01-02 13:32:09 +01:00
butomo1989 478e0d0e51 Added blog about integration between Genymotion and DockerAndroid 2019-01-02 13:29:40 +01:00
butomo1989 17d09eb835 Renamed 2018-11-29 09:16:30 +01:00
butomo1989 09c3fbe765 Edited wrong port 2018-11-29 09:09:07 +01:00
butomo1989 b285d8a1da Renamed type for consistency in article 2018-11-29 09:07:26 +01:00
Budi UtomoandGitHub 46d3a4f8c1 Removed because the content of it is old 2018-11-22 16:39:23 +01:00
butomo1989 033be6d7c4 Keep ssh sessions alive 2018-11-22 12:17:17 +01:00
butomo1989 84ed95aac1 Merge branch 'master' of github.com:butomo1989/docker-android 2018-11-19 13:01:28 +01:00
butomo1989 c298cc7ae1 Enabled of using existing security group 2018-11-19 13:01:18 +01:00
Budi UtomoandGitHub 0ab0eaffcf Typo 2018-11-19 10:53:53 +01:00
butomo1989 0e00cffe4d Corrected the example of json file for Genymotion on AWS 2018-11-15 15:02:29 +01:00
butomo1989 3dc73b4573 Enabled custom security group 2018-11-14 13:56:41 +01:00
Budi UtomoandGitHub 711cbfef72 Updated lines 2018-11-09 15:58:36 +01:00
butomo1989 67a0935fc5 Using custom_ami doesnt need android_version 2018-11-08 12:54:20 +01:00
butomo1989 55012f9ac0 Enable custom AMI which given from the user 2018-11-07 16:29:14 +01:00
butomo1989 2e379769e9 Added engress for AWS deployment for Genymotion 2018-11-05 14:49:59 +01:00
butomo1989 2ffb3a0c3d Added Android version for Google Analytics 2018-11-05 14:28:36 +01:00
butomo1989 e49d2a58cb Enabled GA 2018-10-26 15:54:04 +02:00
butomo1989 099afef2a1 Added header 2018-10-26 15:18:27 +02:00
butomo1989 67a4468b05 Modified file type 2018-10-26 15:05:14 +02:00
butomo1989 21306b5b08 Linked license in README 2018-10-26 15:03:44 +02:00
butomo1989 500fff9da4 Added google analytics and automation script for Genymotion 2018-10-26 15:00:46 +02:00
butomo1989 68db6315d4 Enabled Android 9.0 2018-10-23 16:22:03 +02:00
butomo1989 2ad579c77b Added Android 9.0 2018-10-23 16:17:12 +02:00
Budi UtomoandGitHub bc5cb96ca9 Merge pull request #124 from stazdx/aks-terraform
Custom charts added for deployment on Azure
2018-10-15 12:50:40 +02:00
Staz Dx 85b2312b7f Kompose/volumes.yaml deleted 2018-10-12 18:17:12 -05:00
Staz Dx b518b38c35 Custom chart for running in AKS (recommended) 2018-10-12 18:15:21 -05:00
Staz Dx 1ebdbc7873 Custom chart for running in AKS (recommended) 2018-10-12 18:14:26 -05:00
Budi UtomoandGitHub b3c8cb3cce Merge pull request #123 from stazdx/aks-terraform
Running it in (Azure Kubernetes Service) AKS by using Terraform, Azure CLI, Kompose & Kubectl
2018-10-11 08:18:00 +02:00
Staz Dx 05aa522965 Running in AKS using Terraform, Azure CLI, Kompose & Kubectl 2018-10-10 18:27:18 -05:00
Budi UtomoandGitHub 2a48fc6f71 Merge pull request #122 from kjlubick/patch-1
Added steps for deploying on GCE
2018-10-06 15:19:37 +02:00
Kevin LubickandGitHub fd4a5a0763 Add a bit more verbosity 2018-10-05 14:47:17 -04:00
Kevin LubickandGitHub 7c085db7a3 Add Cloud instructions for GCE 2018-10-05 11:12:55 -04:00
butomo1989 e5817ebe7d Formatted 2018-09-27 15:13:46 +02:00
butomo1989 2ed92c97e1 Added sample of docker terraform 2018-09-27 15:12:03 +02:00
butomo1989 156fc288c7 Using the latest base image 2018-09-27 09:48:27 +02:00
butomo1989 c790d05e19 Using the needed rules in security group 2018-09-26 17:38:28 +02:00
butomo1989 78b9b79212 Renamed the tag 2018-09-21 13:57:31 +02:00
Budi UtomoandGitHub 57ae8a1f16 Merge pull request #119 from lilinor/contribution
update genymotion readme file
2018-09-17 18:16:28 +02:00
butomo1989 fc90713016 Fixed broken link 2018-09-14 16:19:46 +02:00
butomo1989 948b5cc07b Merge branch 'master' of github.com:butomo1989/docker-android 2018-09-14 15:37:10 +02:00
butomo1989 dfc86227e0 Added instruction to use camera 2018-09-14 15:37:00 +02:00
Budi UtomoandGitHub dfa70768ab Merge pull request #118 from tadashi0713/add-aws-intro
Added AWS instruction
2018-09-14 10:27:26 +02:00
Tadashi NemotoandGitHub a34a7e8339 Add AWS Instruction
Instruction to use EC2 Bare Metal Instance
2018-09-14 12:37:03 +09:00
lilinor e9726a86af update genymotion readme file 2018-09-13 17:46:14 +02:00
butomo1989 4e5370b85b Cleaned up 2018-09-04 12:01:47 +02:00
butomo1989 da177442ce Cleaned up 2018-09-04 10:34:49 +02:00
butomo1989 e2800863e8 Deleted old badge 2018-09-03 12:05:23 +02:00
butomo1989 c4bd3dcf55 Updated version of Selenium Grid in examples 2018-09-03 10:28:58 +02:00
butomo1989 ac594d96e9 Updated base image 2018-09-03 10:04:48 +02:00
butomo1989 a49cc2950e Cleaned up 2018-08-30 13:46:14 +02:00
butomo1989 6b657dd13e Replaced the hard code 2018-08-30 13:36:53 +02:00
butomo1989 aa7a798f62 Connect to Genymotion emulator automatically 2018-08-30 13:35:03 +02:00
butomo1989 ccec2c5969 Using specific version of appium as base image because a release issue with it 2018-08-30 12:05:49 +02:00
butomo1989 e45bc0010f Enabled adb remotely 2018-08-29 13:02:44 +02:00
butomo1989 efd1f07e58 Fixed escape char 2018-08-27 14:32:33 +02:00
butomo1989 73418a8b4f Fixed escape char 2018-08-27 14:30:51 +02:00
Budi UtomoandGitHub ad444fd738 Merge pull request #116 from bonigarcia/master
Fix chromedriver version for Android 5.0.1
2018-08-27 09:48:28 +02:00
Boni Garcia 12391277e6 Fix chromedriver version for Android 5.0.1 2018-08-27 09:31:06 +02:00
Budi UtomoandGitHub c50f185c65 Merge pull request #115 from stazdx/master
Added documentation about Azure
2018-08-27 09:11:18 +02:00
stazdxandGitHub 62090f73b4 Merge pull request #1 from stazdx/azure-docs
Enable nested virtualization on Azure
2018-08-24 17:49:41 -05:00
stazdxandGitHub 7bce737447 Enable nested virtualization on Azure 2018-08-24 17:49:10 -05:00
butomo1989 f2c6ab79bb Enabled key pair 2018-08-24 16:14:04 +02:00
butomo1989 afcbd4a7e7 Merge branch 'master' into release-1.4 2018-08-21 16:45:54 +02:00
Budi UtomoandGitHub 9a714e5fb3 Merge pull request #111 from devilankur18/custom_args
Able to pass custom arguments to Emulator
2018-08-21 16:23:22 +02:00
Ankur Agarwal a6394bcf74 added support for custom arguments while running/creating emulator 2018-08-21 17:50:50 +05:30
butomo1989 43d0bb1292 Merge branch 'release-1.4' of github.com:butomo1989/docker-android into release-1.4 2018-08-21 09:49:41 +02:00
butomo1989 e56352bf74 Added provider id 2018-08-21 09:49:10 +02:00
Budi UtomoandGitHub 7746b0ce1a Merge pull request #112 from red-avtovo/appium_latest
Appium latest image
2018-08-21 08:55:25 +02:00
Aleksandr Bochev 806443e956 switched to base image latest appium 2018-08-20 17:38:53 +02:00
butomo1989 a5d0e6eba2 Always use the latest AMI image 2018-08-20 11:46:09 +02:00
butomo1989 ac9371a2ed Merge branch 'master' into release-1.4 2018-08-20 09:51:35 +02:00
Budi UtomoandGitHub f3abb0a828 Merge pull request #110 from devilankur18/emulator_backup_restore
AVD initialisation based on devices xml file
2018-08-16 18:04:20 +02:00
Ankur Agarwal c653efc7b1 fixes related to initialization 2018-08-16 12:36:51 +00:00
butomo1989 bcd7d9a29b Back to user mode 2018-08-14 09:14:25 +02:00
butomo1989 dd7ef41590 Added integration with Genymotion in AWS 2018-08-11 19:38:47 +02:00
butomo1989 d7c9730712 Fixed issue #90 2018-08-03 15:58:07 +02:00
butomo1989 735bc64a2d Cleaned up 2018-08-03 15:56:36 +02:00
butomo1989 307d6502af Fixed string 2018-08-02 12:52:31 +02:00
butomo1989 91a4e270c6 Refactored code 2018-08-02 11:42:19 +02:00
Budi UtomoandGitHub d13e60a122 Merge pull request #104 from devilankur18/master
Added device_id support via ENV variable or auto uuid values
2018-07-31 09:04:58 +02:00
Ankur AgarwalandGitHub c4be3a1ac0 Merge branch 'master' into master 2018-07-31 01:24:15 +05:30
Ankur AgarwalandGitHub 7c7eed4a3d Fixing trailing whitespaces 2018-07-31 01:17:01 +05:30
Budi UtomoandGitHub d0271e0be0 Merge pull request #103 from mehrdad-abdoli/master
Update Google Play Store app
2018-07-30 17:00:42 +02:00
App-Test 9d71ecded7 Update Google Play Services and some other useful stuff by adb 2018-07-30 16:30:19 +04:30
App-Test 81af88e7a4 Update Google Play Services and some other useful stuff by adb 2018-07-30 16:28:41 +04:30
App-Test a8f7fd2d02 Update Google Play Services and some other useful stuff by adb 2018-07-30 16:26:57 +04:30
App-Test de71e5156c Update Google Play Services and some other useful stuff by adb 2018-07-30 16:19:05 +04:30
Ankur AgarwalandGitHub bcf27f0489 Added logging 2018-07-28 23:20:06 +05:30
Ankur AgarwalandGitHub 972445a8bc Assign device_id via environment variable 2018-07-28 23:07:03 +05:30
App-Test 460e0b8daf Update Google Play Services and some other useful stuff by adb 2018-07-28 16:53:26 +04:30
Budi UtomoandGitHub 3673d195ea Updated Readme 2018-07-25 12:27:09 +02:00
Budi UtomoandGitHub 77c6ac8507 Updated Readme 2018-07-25 12:24:34 +02:00
Budi UtomoandGitHub cd35f4a3ab Merge pull request #100 from bonigarcia/master
Download proper version of chromedriver for each Android version
2018-07-25 12:20:11 +02:00
Boni Garcia 217df7cd65 Include browser name, browser version, and chromedriver version in Docker images table 2018-07-25 11:44:21 +02:00
Boni Garcia ccfdef4fe8 Set default chromedriver version 2018-07-24 17:18:41 +02:00
Boni Garcia b40ec48136 Download proper version of chromedriver 2018-07-24 15:59:11 +02:00
Budi UtomoandGitHub 064331de0e Merge pull request #97 from shadow1163/issue87
Once container start, add flag -wipe-data to command.
2018-07-20 08:01:40 +02:00
Budi UtomoandGitHub 5ef52ca622 Merge branch 'master' into issue87 2018-07-20 07:57:23 +02:00
junbo 15c51a4ab1 roll back is_initialized 2018-07-20 09:53:46 +08:00
Budi UtomoandGitHub 7e2b364c08 Merge pull request #96 from JoeSSS/patch-2
Add information about connecting to adb from outside the container in README
2018-07-19 13:02:04 +02:00
Serghei MoretandGitHub 0b18e4995c Update README.md 2018-07-19 12:41:04 +02:00
Serghei MoretandGitHub f0fb5ef009 Update README.md 2018-07-19 12:39:16 +02:00
Serghei MoretandGitHub ec0c381fb6 Update README.md 2018-07-19 12:38:24 +02:00
Serghei MoretandGitHub 58f7693024 Add adbkey part to README 2018-07-19 12:35:28 +02:00
junbo 40f6e67d83 fix issue 87 2018-07-19 18:11:59 +08:00
Budi UtomoandGitHub 852daa4e32 Merge pull request #92 from red-avtovo/mymaster
Initialise emulator just once
2018-07-10 19:10:49 +02:00
Aleksandr Bochev bf65a73eb1 removed time dependency 2018-07-10 18:45:29 +02:00
Aleksandr Bochev 3577d7e0a1 fixed emulator is unauthorized
performed avd creation just once
2018-07-10 18:34:53 +02:00
Budi UtomoandGitHub 1371744b36 Merge pull request #89 from JoeSSS/patch-1
Fix issue #86
2018-07-09 21:20:51 +02:00
Serghei MoretandGitHub cf3b1cf683 Fix adb getting into the loop 2018-07-09 18:06:58 +02:00
Budi UtomoandGitHub 416a88143f Updated README.md 2018-07-06 10:33:17 +02:00
butomo1989 55719bb638 Use Chrome driver version for Chrome that is inside Emulator 2018-07-05 22:40:41 +02:00
butomo1989 c22fe34e7c Updated README.md 2018-07-05 21:21:24 +02:00
butomo1989 69154410f2 Updated 2018-07-05 21:11:21 +02:00
butomo1989 4975ebcc47 Cleaned up 2018-07-05 21:06:00 +02:00
butomo1989 e4180a6e65 Passed chrome driver version through environment variable 2018-07-05 20:10:47 +02:00
butomo1989 e22b8f141e Removed arm image 2018-07-05 20:04:25 +02:00
butomo1989 7d29525b48 Build version 8.0 and 8.1 2018-07-05 19:56:14 +02:00
butomo1989 f47cc495b0 Merge branch 'release-1.1' of github.com:butomo1989/docker-android into release-1.1 2018-07-05 19:51:46 +02:00
butomo1989 bc516d5a8e Updated permission 2018-07-05 19:11:14 +02:00
Budi UtomoandGitHub b54fcd2087 Merge pull request #72 from greenerchen/patch-2
Build docker images with play store
2018-07-05 17:50:00 +02:00
Greener ChenandGitHub 7e7d12e4e8 Merge branch 'release-1.1' into patch-2 2018-07-05 23:34:22 +08:00
Budi UtomoandGitHub 8d9fc61158 Merge pull request #83 from bonigarcia/master
Use latest version of chromedriver
2018-07-05 17:01:19 +02:00
Budi UtomoandGitHub bc5635ed0a Merge pull request #81 from JoeSSS/JoeSSS-patch-1
Support for Android 8.0 and 8.1
2018-07-05 15:32:59 +02:00
Serghei MoretandGitHub 0b7ca97939 Merge branch 'release-1.1' into JoeSSS-patch-1 2018-07-05 15:28:54 +02:00
Budi UtomoandGitHub 7e0a2e4770 Merge pull request #85 from red-avtovo/sdk_installation_cleanup
cleaned sdk installation
2018-07-05 15:25:35 +02:00
Serghei Moret c82443e221 Update release.sh 2018-07-05 14:29:54 +02:00
Boni Garcia 1d7b7c2ac7 Improve script to download latest version of chromedriver automatically 2018-07-05 12:56:10 +02:00
Aleksandr Bochev 59f792f7c0 cleaned sdk installation 2018-07-05 12:23:13 +02:00
Boni Garcia 84ac59f66a Update chromedriver version to 2.40 2018-07-05 11:41:09 +02:00
Serghei MoretandGitHub d176e69cc1 Let default emulator pick the right kernel 2018-07-03 20:46:23 +02:00
Serghei MoretandGitHub 59f61e057e Update Emulator_x86 2018-07-03 20:44:13 +02:00
butomo1989 601d58c51f Changed apk path 2018-06-28 01:03:27 +02:00
butomo1989 ac33a1f687 Changed apk path 2018-06-28 00:47:49 +02:00
butomo1989 91ebdbf5ab Edited permission 2018-06-28 00:43:26 +02:00
butomo1989 c8fb92e400 Using adb version inside container 2018-06-26 22:53:34 +02:00
butomo1989 80a64e82dd Added demo how to use Genymotion cloud 2018-06-25 23:53:06 +02:00
butomo1989 780278b519 Edited README.md 2018-06-25 22:56:05 +02:00
butomo1989 b4544ae90f Cleaned up Dockerfile 2018-06-25 22:54:01 +02:00
butomo1989 0af1143e72 Deleted genymotion manual installation 2018-06-25 22:48:30 +02:00
butomo1989 48eb6bf9ae Edited README.md 2018-06-22 02:34:29 +02:00
butomo1989 f8940c79f5 Cleaned up 2018-06-22 02:32:01 +02:00
butomo1989 4b7d2aa125 Deleted unused parameter 2018-06-22 02:23:21 +02:00
butomo1989 d4832ad2b8 Fixed unit test 2018-06-22 01:37:54 +02:00
butomo1989 54d5365907 Cleaned up 2018-06-22 01:16:40 +02:00
butomo1989 2922e3ba92 Cleaned up 2018-06-22 00:34:43 +02:00
butomo1989 820b6e0e0e Enable debug modus for emulator 2018-06-21 21:16:54 +02:00
butomo1989 75514ef1f0 Updated README.md 2018-06-20 23:32:34 +02:00
butomo1989 ab34ca36d9 Enabled relaxed security 2018-06-20 23:30:54 +02:00
butomo1989 15f6541621 Fixed if-else logic 2018-06-20 23:28:41 +02:00
butomo1989 99c1b1f6b6 Using the latest base image 2018-06-20 21:10:59 +02:00
butomo1989 32258461be Enable to specify port 2018-06-19 01:20:15 +02:00
butomo1989 b7f332fd3b Added genymotion logo 2018-06-19 00:07:32 +02:00
butomo1989 09068f20c5 Formatted 2018-06-19 00:01:33 +02:00
butomo1989 59bf049159 Updated supported OS 2018-06-18 23:45:59 +02:00
butomo1989 d6b69863ca Cleaned up 2018-06-12 01:05:35 +02:00
butomo1989 68d0c2fc81 Cleaned up 2018-06-06 23:35:59 +02:00
butomo1989 5b89a28198 Renamed docker-image 2018-05-30 00:57:21 +02:00
butomo1989 705be0e3c9 Added auto-stop feature 2018-05-30 00:54:06 +02:00
butomo1989 b5f8c28fc1 Edited path 2018-05-30 00:51:16 +02:00
butomo1989 79f797213c Added integreation with geny cloud 2018-05-29 02:04:30 +02:00
butomo1989 424b6bb2ec Added script to revert a release 2018-05-29 00:09:28 +02:00
butomo1989 efccb144a4 Updated selenium hub 2018-05-29 00:08:14 +02:00
butomo1989 a960f34381 Updated base image 2018-05-28 21:02:26 +02:00
butomo1989 11e3428145 Added how to enable proxy inside container 2018-05-26 16:07:12 +02:00
butomo1989 cde35287c7 Using the latest base image 2018-05-12 13:13:21 +02:00
butomo1989 29898ba91e Fixed issue #52 2018-05-11 00:43:16 +02:00
butomo1989 2d25517bfa Using the latest version of docker-appium 2018-04-29 20:06:17 +02:00
Budi UtomoandGitHub e3219ac24b Changed order 2018-04-23 19:25:24 +02:00
Budi UtomoandGitHub c4fb6243c5 Fixed tag 2018-04-23 19:23:54 +02:00
Budi UtomoandGitHub d021fd69e6 Added video conference 2018-04-23 19:22:10 +02:00
butomo1989 cacfe568a2 Added video image 2018-04-23 21:17:41 +02:00
Diego MolinaandGitHub 9d0c66fb2b Merge branch 'master' into patch-2 2018-04-09 11:38:33 +02:00
butomo1989 cb100330ad Using appium-docker-android docker image for executing Appium UI-Test 2018-03-21 19:08:48 +01:00
butomo1989 bc0972318f Using the latest version of docker-selenium 2018-03-21 12:29:54 +01:00
Greener Chen 2b02843cfd Build docker images with play store for emulators with x86 processor and API 24 or later version 2018-03-12 01:41:16 +08:00
Budi UtomoandGitHub 3a88fa4ae4 Merge pull request #71 from greenerchen/patch-1
Add instructions for VMWare or Parallels Desktop
2018-03-05 13:44:18 +01:00
Greener Chen 398a694ccd Add supplementary images 2018-03-05 18:37:19 +08:00
Greener ChenandGitHub 14a29344b8 Add instructions for VMWare or Parallels Desktop 2018-03-05 18:28:07 +08:00
butomo1989 47621a7ccb Added sample how to build Android project 2018-02-17 10:00:03 +01:00
butomo1989 c1d66496fb Added GitHub templates 2018-02-17 09:59:09 +01:00
Budi UtomoandGitHub 1365ec736b Replaced code line 2018-02-13 11:18:50 +01:00
butomo1989 4aee17de2d Deleted unused image 2018-02-12 18:47:02 +01:00
butomo1989 5c9ad32522 Automated some steps in screen mirroring for real device 2018-02-12 18:09:14 +01:00
butomo1989 366aa8b3b3 Added real device configuration in docker-compose 2018-02-12 11:07:37 +01:00
butomo1989 905f2c723b Using the latest base image 2018-02-12 10:49:26 +01:00
Budi UtomoandGitHub 0e028d9a4a Updated version of docker-selenium hub 2018-02-06 20:33:24 +01:00
butomo1989 ce61b992f9 Using the newest version of base image 2018-01-29 16:57:46 +01:00
butomo1989 e62573036c Added dockerandroid logo 2017-11-23 21:03:12 +01:00
butomo1989 e27b2e5fdf Edited permission 2017-11-21 15:39:08 +01:00
butomo1989 fdd4a86c40 Merge remote-tracking branch 'origin/master' into release-0.9 2017-11-14 15:40:21 +01:00
Budi UtomoandGitHub 15012fd3b4 Edited README.md 2017-11-14 15:38:46 +01:00
butomo1989 1f440e1a07 Using the latest image 2017-11-09 11:44:35 +01:00
butomo1989 567a494ccb Using new usage process of new SDK 2017-11-09 11:25:21 +01:00
butomo1989 d28c4dc5e0 Fixed docker images 2017-11-07 17:33:22 +01:00
butomo1989 7a052b7e2f Merge remote-tracking branch 'origin' into update-sdk 2017-11-03 12:26:05 +01:00
butomo1989 988397318f Updated README.md 2017-11-03 11:15:38 +01:00
butomo1989 0d6356ba47 Upgraded README.md 2017-11-01 15:53:25 +01:00
butomo1989 1062da3dcc Fixed installation issue 2017-07-18 17:44:09 +02:00
butomo1989 c431118465 Using the latest image version of appium-docker-android 2017-07-18 12:06:38 +02:00
262 changed files with 6906 additions and 492 deletions
+1
View File
@@ -0,0 +1 @@
*.mp4 filter=lfs diff=lfs merge=lfs -text
+17
View File
@@ -0,0 +1,17 @@
# These are supported funding model platforms
# Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
github: [budtmo]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
# Bitcoin (BTC)
custom:
- "paypal.me/budtmo"
+28
View File
@@ -0,0 +1,28 @@
---
name: 🐛 Bug report
about: Report a bug to improve the tool
---
## 🐛 Bug Report
Operating System:
<!-- OSX Yosemite, Ubuntu 18.04, Windows 10 etc -->
Docker Image:
<!-- budtmo/docker-android-x86-7.1.1, budtmo/docker-android-real-device etc -->
Docker Version:
<!-- 17.09.0-ce, 17.06.2-ce etc -->
Docker-compose version (Only if you use it):
<!-- 1.16.1 etc -->
Docker Command to start docker-android:
<!-- docker run ... -->
## Expected Behavior
<!-- Explaination about expected behaviour goes here -->
## Actual Behavior
<!-- Explaination about actual behaviour goes here -->
+16
View File
@@ -0,0 +1,16 @@
---
name: 🚀 Feature Request
about: Submit your idea to have cool features
---
## 🚀 Feature Request
Idea:
<!-- A clear explanation about the feature -->
Problems that want to be solved:
<!-- A clear explanation about why we need that feature -->
Note:
<!-- Additional note -->
+9
View File
@@ -0,0 +1,9 @@
---
name: 💬 Questions / Help
about: If you have questions, please check the group chat
---
## 💬 Questions and Help
**Please make sure that it is an issue / a feature request. If it is a question / help wanted, please visit [our group chat](https://gitter.im/budtmo/docker-android). Thank you!**
+12
View File
@@ -0,0 +1,12 @@
### Purpose of changes
<!-- Please describe why this change is required / What problem you want to solve. -->
### Types of changes
_Put an `x` in the boxes that apply_
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
### How has this been tested?
<!-- Please describe in detail how you tested your changes. -->
-3
View File
@@ -7,6 +7,3 @@
coverage.xml
xunit.xml
coverage/*
# Video
video*
-24
View File
@@ -1,24 +0,0 @@
language: python
python:
- "3.5"
sudo: required
services:
- docker
install: "pip install -r requirements.txt"
env:
- ANDROID_VERSION=5.0.1
- ANDROID_VERSION=5.1.1
- ANDROID_VERSION=6.0
- ANDROID_VERSION=7.0
- ANDROID_VERSION=7.1.1
- REAL_DEVICE=True
script: bash travis.sh
after_success:
- bash <(curl -s https://codecov.io/bash)
+37
View File
@@ -0,0 +1,37 @@
# Docker-Android's Anonymous Aggregate User Behaviour Analytics
Docker-Android has begun gathering anonymous aggregate user behaviour analytics and reporting these to Google Analytics. You are notified about this when you start Docker-Android.
## Why?
Docker-Android is provided free of charge for our internal and external users and we don't have direct communication with its users nor time resources to ask directly for their feedback. As a result, we now use anonymous aggregate user analytics to help us understand how Docker-Android is being used, the most common used features based on how, where and when people use it. With this information we can prioritize some features over other ones.
## What?
Docker-Android's analytics record some shared information for every event:
- The Google Analytics version i.e. `1` (https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#v)
- The Google Analytics anonymous IP setting is enabled i.e. `1` (https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#aip)
- The Docker-Android analytics tracking ID e.g. `UA-133466903-1` (https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#tid)
- The release version of machine, e.g. `Linux_version_4.4.16-boot2docker_(gcc_version_4.9.2_(Debian_4.9.2-10)_)_#1_SMP_Fri_Jul_29_00:13:24_UTC_2016` This does not allow us to track individual users but does enable us to accurately measure user counts vs. event counts (https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#cid)
- Docker-Android analytics hit type, e.g. `event` (https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#t)
- Application type, e.g. `Emulator` (https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#ec)
- Description will contains information about Emulator configuration, e.g. `Processor type`. (https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#el)
- Docker-Android application name, e.g. `docker-android` (https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#an)
- Docker-Android application version, e.g. `1.5-p0` (https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#av)
With the recorded information, it is not possible for us to match any particular real user.
As far as we can tell it would be impossible for Google to match the randomly generated analytics user ID to any other Google Analytics user ID. If Google turned evil the only thing they could do would be to lie about anonymising IP addresses and attempt to match users based on IP addresses.
## When/Where?
Docker-Android's analytics are sent throughout Docker-Android's execution to Google Analytics over HTTPS.
## Who?
Docker-Android's analytics are accessible to Docker-Android's current maintainers. Contact [@budtmo](https://github.com/budtmo) if you are a maintainer and need access.
## How?
The code is viewable in [this script](./src/appium.sh).
## Opting out before starting Docker-Android
Docker-Android analytics helps us, maintainers and leaving it on is appreciated. However, if you want to opt out and not send any information, you can do this by using passing environment variable GA=false to the Docker container.
## Disclaimer
This document and the implementation are based on the great idea implemented by [Homebrew](https://github.com/Homebrew/brew/blob/master/docs/Analytics.md)
-13
View File
@@ -1,13 +0,0 @@
Copyright 2016 budi utomo
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+36
View File
@@ -0,0 +1,36 @@
## License Information
Copyright 2016 budi utomo
This program is subject to the terms of the Apache License, Version 2.0 AND the following amendments on forks and data processing. Thus, this is a Custom Apache 2.0 License, NOT a dual-license model you may choose from.
You can obtain a copy of the license at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
## Forks
Additionally to Apache-2.0, when you fork this repo you are required to either remove our Google Analytics tracking ID: UA-133466903-1 or stop usage gathering completely.
## Data processing agreement
By using this software you agree that the following non-PII (non personally identifiable information) data will be collected, processed and used by the maintainers for the purpose of improving the docker-android project. Anonymisation with respect of the IP address means that only the first two octets of the IP address are collected.
By using this software you also grant us a nonexclusive, irrevocable, world-wide, perpetual royalty-free permission to use, modify and publish these data for all purposes, internally or publicly, including the right to sub-license said permission rights.
We collect, process and use the following data:
* Release version of Docker-Android
* Anonymized IP address (only first two octets)
* Country and city
* Date and time when Docker-Android started
* User (it will collect the information about Release Version of Machine)
* Application type, e.g. Emulator or Device or Genymotion
* Emulator configuration, e.g. Processor type, Device name, Appium mode, Selenium grid mode and mobile test mode
## End of License Information
More information about anonymized data collection can be seen [here](Analytics.md)
+1 -1
View File
@@ -1 +1 @@
Budi Utomo <budi.ut.1989@gmail.com>
Budi Utomo <budtmo.os@gmail.com>
+151 -69
View File
@@ -1,19 +1,25 @@
Docker-Android
==============
<p align="center">
<img id="header" src="./images/logo_dockerandroid_small.png" />
</p>
[![Join the chat at https://gitter.im/butomo1989/docker-android](https://badges.gitter.im/butomo1989/docker-android.svg)](https://gitter.im/butomo1989/docker-android?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Build Status](https://travis-ci.org/butomo1989/docker-android.svg?branch=master)](https://travis-ci.org/butomo1989/docker-android)
[![codecov](https://codecov.io/gh/butomo1989/docker-android/branch/master/graph/badge.svg)](https://codecov.io/gh/butomo1989/docker-android)
[![Analytics](https://ga-beacon.appspot.com/UA-133466903-1/github/budtmo/docker-android/README.md)](https://github.com/igrigorik/ga-beacon "Analytics")
[![Join the chat at https://gitter.im/budtmo/docker-android](https://badges.gitter.im/budtmo/docker-android.svg)](https://gitter.im/budtmo/docker-android?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Build Status](https://dev.azure.com/budtmoos/budtmoos/_apis/build/status/budtmo.docker-android.test?branchName=master)](https://dev.azure.com/budtmoos/budtmoos/_build/latest?definitionId=7&branchName=master)
[![codecov](https://codecov.io/gh/budtmo/docker-android/branch/master/graph/badge.svg)](https://codecov.io/gh/budtmo/docker-android)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/3f000ffb97db45a59161814e1434c429)](https://www.codacy.com/app/butomo1989/docker-appium?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=butomo1989/docker-appium&amp;utm_campaign=Badge_Grade)
[![GitHub release](https://img.shields.io/github/release/budtmo/docker-android.svg)](https://github.com/budtmo/docker-android/releases)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fbudtmo%2Fdocker-android.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fbudtmo%2Fdocker-android?ref=badge_shield)
[![Paypal Donate](https://img.shields.io/badge/paypal-donate-blue.svg)](http://paypal.me/budtmo)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
Docker-Android is a docker image built to be used for everything related to mobile website testing and Android project.
Samsung Device | Google Device
:---------------------------:|:---------------------------:
![][docker android samsung] | ![][docker android nexus]
Emulator - Samsung Device | Emulator - Nexus Device | Real Device
:---------------------------:|:---------------------------:|:---------------------------:
![][emulator samsung] |![][emulator nexus] |![][real device]
Purpose
-------
Purposes
--------
1. Run UI tests for mobile websites with [appium]
2. Build Android project and run unit tests with the latest build-tools
@@ -28,29 +34,38 @@ Advantages compare with other docker-android projects
2. Emulator for different devices / skins, such as Samsung Galaxy S6, LG Nexus 4, HTC Nexus One and more.
3. Ability to connect to Selenium Grid
4. Ability to control emulator from outside container by using adb connect
5. Open source with more features coming (monkey test, support real devices with screen mirroring and video recording)
5. Support real devices with screen mirroring
6. Ability to record video during test execution for debugging
7. Integrated with other cloud solutions, e.g. [Genymotion Cloud](https://www.genymotion.com/cloud/)
8. Open source with more features coming
List of Docker images
---------------------
|Supported OS |Android version |API level |Image name |Image status |
|:---|:---|:---|:---|:---:|
|Linux|5.0.1|21|butomo1989/docker-android-x86-5.0.1|[![](https://images.microbadger.com/badges/image/butomo1989/docker-android-x86-5.0.1.svg)](https://microbadger.com/images/butomo1989/docker-android-x86-5.0.1 "Get your own image badge on microbadger.com")|
|Linux|5.1.1|22|butomo1989/docker-android-x86-5.1.1|[![](https://images.microbadger.com/badges/image/butomo1989/docker-android-x86-5.1.1.svg)](https://microbadger.com/images/butomo1989/docker-android-x86-5.1.1 "Get your own image badge on microbadger.com")|
|Linux|6.0|23|butomo1989/docker-android-x86-6.0|[![](https://images.microbadger.com/badges/image/butomo1989/docker-android-x86-6.0.svg)](https://microbadger.com/images/butomo1989/docker-android-x86-6.0 "Get your own image badge on microbadger.com")|
|Linux|7.0|24|butomo1989/docker-android-x86-7.0|[![](https://images.microbadger.com/badges/image/butomo1989/docker-android-x86-7.0.svg)](https://microbadger.com/images/butomo1989/docker-android-x86-7.0 "Get your own image badge on microbadger.com")|
|Linux|7.1.1|25|butomo1989/docker-android-x86-7.1.1|[![](https://images.microbadger.com/badges/image/butomo1989/docker-android-x86-7.1.1.svg)](https://microbadger.com/images/butomo1989/docker-android-x86-7.1.1 "Get your own image badge on microbadger.com")|
|OSX / Windows|5.0.1|21|butomo1989/docker-android-arm-5.0.1|[![](https://images.microbadger.com/badges/image/butomo1989/docker-android-arm-5.0.1.svg)](https://microbadger.com/images/butomo1989/docker-android-arm-5.0.1 "Get your own image badge on microbadger.com")|
|OSX / Windows|5.1.1|22|butomo1989/docker-android-arm-5.1.1|[![](https://images.microbadger.com/badges/image/butomo1989/docker-android-arm-5.1.1.svg)](https://microbadger.com/images/butomo1989/docker-android-arm-5.1.1 "Get your own image badge on microbadger.com")|
|OSX / Windows|6.0|23|butomo1989/docker-android-arm-6.0|[![](https://images.microbadger.com/badges/image/butomo1989/docker-android-arm-6.0.svg)](https://microbadger.com/images/butomo1989/docker-android-arm-6.0 "Get your own image badge on microbadger.com")|
|OSX / Windows|7.0|24|butomo1989/docker-android-arm-7.0|[![](https://images.microbadger.com/badges/image/butomo1989/docker-android-arm-7.0.svg)](https://microbadger.com/images/butomo1989/docker-android-arm-7.0 "Get your own image badge on microbadger.com")|
|OSX / Windows|7.1.1|25|butomo1989/docker-android-arm-7.1.1|[![](https://images.microbadger.com/badges/image/butomo1989/docker-android-arm-7.1.1.svg)](https://microbadger.com/images/butomo1989/docker-android-arm-7.1.1 "Get your own image badge on microbadger.com")|
|OS |Android |API |Browser |Browser version |Chromedriver |Image |Size |
|:---|:---|:---|:---|:---|:---|:---|:---|
|Linux|6.0|23|browser|44.0|2.18|budtmo/docker-android-x86-6.0|[![](https://images.microbadger.com/badges/image/budtmo/docker-android-x86-6.0.svg)](https://microbadger.com/images/budtmo/docker-android-x86-6.0 "Get your own image badge on microbadger.com")|
|Linux|7.0|24|chrome|51.0|2.23|budtmo/docker-android-x86-7.0|[![](https://images.microbadger.com/badges/image/budtmo/docker-android-x86-7.0.svg)](https://microbadger.com/images/budtmo/docker-android-x86-7.0 "Get your own image badge on microbadger.com")|
|Linux|7.1.1|25|chrome|55.0|2.28|budtmo/docker-android-x86-7.1.1|[![](https://images.microbadger.com/badges/image/budtmo/docker-android-x86-7.1.1.svg)](https://microbadger.com/images/budtmo/docker-android-x86-7.1.1 "Get your own image badge on microbadger.com")|
|Linux|8.0|26|chrome|58.0|2.31|budtmo/docker-android-x86-8.0|[![](https://images.microbadger.com/badges/image/budtmo/docker-android-x86-8.0.svg)](https://microbadger.com/images/budtmo/docker-android-x86-8.0 "Get your own image badge on microbadger.com")|
|Linux|8.1|27|chrome|61.0|2.33|budtmo/docker-android-x86-8.1|[![](https://images.microbadger.com/badges/image/budtmo/docker-android-x86-8.1.svg)](https://microbadger.com/images/budtmo/docker-android-x86-8.1 "Get your own image badge on microbadger.com")|
|Linux|9.0|28|chrome|66.0|2.40|budtmo/docker-android-x86-9.0|[![](https://images.microbadger.com/badges/image/budtmo/docker-android-x86-9.0.svg)](https://microbadger.com/images/budtmo/docker-android-x86-9.0 "Get your own image badge on microbadger.com")|
|Linux|10.0|29|chrome|74.0|74.0.3729.6|budtmo/docker-android-x86-10.0|[![](https://images.microbadger.com/badges/image/budtmo/docker-android-x86-10.0.svg)](https://microbadger.com/images/budtmo/docker-android-x86-10.0 "Get your own image badge on microbadger.com")|
|Linux|11.0|30|chrome|83.0|83.0.4103.39|budtmo/docker-android-x86-11.0|[![](https://images.microbadger.com/badges/image/budtmo/docker-android-x86-11.0.svg)](https://microbadger.com/images/budtmo/docker-android-x86-11.0 "Get your own image badge on microbadger.com")|
|Linux|12.0|31|chrome|93.0|93.0.4577.15|budtmo/docker-android-x86-12.0|[![](https://images.microbadger.com/badges/image/budtmo/docker-android-x86-12.0.svg)](https://microbadger.com/images/budtmo/docker-android-x86-12.0 "Get your own image badge on microbadger.com")|
|All |-|-|-|-|-|budtmo/docker-android-real-device|[![](https://images.microbadger.com/badges/image/budtmo/docker-android-real-device.svg)](https://microbadger.com/images/budtmo/docker-android-real-device "Get your own image badge on microbadger.com")|
|All|All|All|All|All|All|budtmo/docker-android-genymotion|[![](https://images.microbadger.com/badges/image/budtmo/docker-android-genymotion.svg)](https://microbadger.com/images/budtmo/docker-android-genymotion "Get your own image badge on microbadger.com")|
List of Devices
---------------
Type | Device Name
----- | -----
Phone | Samsung Galaxy S10
Phone | Samsung Galaxy S9
Phone | Samsung Galaxy S8
Phone | Samsung Galaxy S7 Edge
Phone | Samsung Galaxy S7
Phone | Samsung Galaxy S6
Phone | Nexus 4
Phone | Nexus 5
@@ -66,21 +81,25 @@ Docker is installed in your system.
Quick Start
-----------
1. Run docker-android
1. Your machine need to support virtualization. To check it:
```
sudo apt install cpu-checker
kvm-ok
```
2. Run Docker-Android
- For ***Linux OS***, please use image name that contains "x86"
```bash
docker run --privileged -d -p 6080:6080 -p 5554:5554 -p 5555:5555 -e DEVICE="Samsung Galaxy S6" --name android-container butomo1989/docker-android-x86-7.1.1
docker run --privileged -d -p 6080:6080 -p 5554:5554 -p 5555:5555 -e DEVICE="Samsung Galaxy S6" --name android-container budtmo/docker-android-x86-8.1
```
- For ***OSX*** and ***Windows OS***, please use image name that contains "arm"
- For ***OSX*** and ***Windows OS***, please use Virtual Machine that support Virtualization with Ubuntu OS
```bash
docker run --privileged -d -p 6080:6080 -p 5554:5554 -p 5555:5555 -e DEVICE="Samsung Galaxy S6" --name android-container butomo1989/docker-android-arm-7.1.1
```
2. Verify the ip address of docker host.
3. Verify the ip address of docker host.
- For OSX, you can find out by using following command:
@@ -90,53 +109,61 @@ Quick Start
- For different OS, localhost should work.
3. Open ***http://docker-host-ip-address:6080*** from web browser.
4. Open ***http://docker-host-ip-address:6080*** from web browser. Note: Adding ```?view_only=true``` will give user only view only permission.
Run Appium Server
-----------------
Custom configurations
---------------------
Appium is automation test framework to test mobile website and mobile application, including android. To be able to use appium, you need to run appium-server. You run appium server inside docker-android container by ***opening port 4723*** and ***passing an environment variable APPIUM=TRUE***.
[This document](README_CUSTOM_CONFIG.md) contains custom configurations of Docker-Android that you might need, e.g. Proxy, Changing language on fly, etc.
```bash
docker run --privileged -d -p 6080:6080 -p 5554:5554 -p 5555:5555 -p 4723:4723 -e DEVICE="Samsung Galaxy S6" -e APPIUM=True --name android-container butomo1989/docker-android-x86-7.1.1
```
Build Android project
---------------------
### Connect to Selenium Grid
Docker-Android can be used for building Android project and executing its unit test. This following steps will illustrate how to build Android project:
It is also possible to connect appium server that run inside docker-android with selenium grid by passing following environment variables:
1. Clone [this sample test project](https://github.com/android/testing-samples).
- CONNECT\_TO\_GRID=True
- APPIUM_HOST="\<host\_ip\_address>"
- APPIUM_PORT=\<port\_number>
- SELENIUM_HOST="\<host\_ip\_address>"
- SELENIUM_PORT=\<port\_number>
```bash
git clone git@github.com:android/testing-samples.git
```
To run tests for mobile browser, following parameter can be passed:
2. Build the project
- MOBILE\_WEB\_TEST=True
```bash
docker run -it --rm -v $PWD/testing-samples/ui/espresso/BasicSample:/tmp -w /tmp budtmo/docker-android-x86-8.1 /tmp/gradlew build
```
```bash
docker run --privileged -d -p 6080:6080 -p 4723:4723 -p 5554:5554 -p 5555:5555 -e DEVICE="Samsung Galaxy S6" -e APPIUM=True -e CONNECT_TO_GRID=True -e APPIUM_HOST="127.0.0.1" -e APPIUM_PORT=4723 -e SELENIUM_HOST="172.17.0.1" -e SELENIUM_PORT=4444 -e MOBILE_WEB_TEST=True --name android-container butomo1989/docker-android-x86-7.1.1
```
Control Android connected to host (Emulator or Real Device)
-----------------------------------------------------------
1. Create a docker container with this command
### Share Volume
```
$ docker run --privileged -d -p 6080:6080 -p 5554:5554 -p 5555:5555 -p 4723:4723 --name android-container-appium budtmo/docker-android-real-device
```
If you want to use appium to test UI of your android application, you need to share volume where the APK is located to folder ***/root/tmp***.
2. Open noVNC [http://localhost:6080](http://localhost:6080)
```bash
docker run --privileged -d -p 6080:6080 -p 4723:4723 -p 5554:5554 -p 5555:5555 -v $PWD/example/sample_apk:/root/tmp -e DEVICE="Nexus 5" -e APPIUM=True -e CONNECT_TO_GRID=True -e APPIUM_HOST="127.0.0.1" -e APPIUM_PORT=4723 -e SELENIUM_HOST="172.17.0.1" -e SELENIUM_PORT=4444 --name android-container butomo1989/docker-android-x86-7.1.1
```
3. Open terminal by clicking right on **noVNC** window >> **Terminal emulator**
### Docker-Compose
4. To connect to host's adb (make sure your host have adb and connected to the device.)
![][compose]
![][connected_devices]
```
$ adb -H host.docker.internal devices
```
There is [example of compose file] to run complete selenium grid and docker-android container as nodes. [docker-compose] version [1.13.0] or higher is required to be able to execute that compose file.
To specify port, just add `-P port_number`
```bash
docker-compose up -d
```
```
$ adb -H host.docker.internal -P 5037 devices
```
5. Now your container can access your host devices. But, you need to add `remoteAdbHost` and `adbPort` desired capabilities to make **Appium** can recognise those devices.
Appium and Selenium Grid
------------------------
If you want to use Appium and Selenium Grid, you can follow [this document](README_APPIUM_AND_SELENIUM.md). It also contains sample and use cases.
Control android emulator outside container
------------------------------------------
@@ -187,6 +214,34 @@ SMS Simulation
![][sms]
Google Play Services and Google Play Store
------------------------------------------
Not installed at this time.
Jenkins
-------
This [document](README_JENKINS.md) gives you information about custom plugin that supports Docker-Android.
VMWARE
------
This [document](README_VMWARE.md) shows you how to configure Virtual Machine on VMWARE to be able to run Docker-Android.
Cloud
-----
This [document](README_CLOUD.md) contains information about deploying Docker-Android on cloud services.
Genymotion
----------
<p align="center">
<img id="geny" src="./images/logo_genymotion_and_dockerandroid.png" />
</p>
For you who do not have ressources to maintain the simulator or to buy machines or need different device profiles, you need to give a try to [Genymotion Cloud](https://www.genymotion.com/cloud/). Docker-Android is integrated with Genymotion on different cloud services, e.g. Genymotion Cloud, AWS, GCP, Alibaba Cloud. Please follow [this document](README_GENYMOTION.md) or [this blog](https://medium.com/genymobile/run-your-appium-tests-using-docker-android-genymotion-cloud-e4817132ccd8) for more detail.
Troubleshooting
---------------
All logs inside container are stored under folder **/var/log/supervisor**. you can print out log file by using **docker exec**. Example:
@@ -195,15 +250,42 @@ All logs inside container are stored under folder **/var/log/supervisor**. you c
docker exec -it android-container tail -f /var/log/supervisor/docker-android.stdout.log
```
Emulator Skins
--------------
The Emulator skins are taken from [Android Studio IDE](https://developer.android.com/studio) and [Samsung Developer Website](https://developer.samsung.com/)
Monitoring
----------
You can use [cadvisor](https://github.com/google/cadvisor) combined with influxdb / prometheus and grafana if needed to monitor each running container.
Users
-----
Docker-Android are being used by 100+ countries around the world.
[![ga-datastudio-docker-android](./images/docker-android_users.png)](https://datastudio.google.com/s/ht7HVKHKAQE)
Stargazers over time
--------------------
[![Stargazers over time](https://starchart.cc/budtmo/docker-android.svg)](https://starchart.cc/budtmo/docker-android)
Special Thanks
--------------
- [Gian Christanto] for creating a great logo!
LICENSE
--------------
See [License](LICENSE.md)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fbudtmo%2Fdocker-android.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fbudtmo%2Fdocker-android?ref=badge_large)
[appium]: <https://appium.io>
[espresso]: <https://google.github.io/android-testing-support-library/docs/espresso/>
[espresso]: <https://developer.android.com/training/testing/espresso/>
[robotium]: <https://github.com/RobotiumTech/robotium>
[docker android samsung]: <images/docker_android_samsung.png>
[docker android nexus]: <images/docker_android_nexus.png>
[compose]: <images/compose.png>
[connected_devices]: <images/connected_devices.png>
[example of compose file]: <docker-compose.yml>
[docker-compose]: <https://docs.docker.com/compose/install/>
[1.13.0]: <https://github.com/docker/compose/releases/tag/1.13.0>
[emulator samsung]: <images/emulator_samsung_galaxy_s6.png>
[emulator nexus]: <images/emulator_nexus_5.png>
[real device]: <images/real_device.png>
[adb_connection]: <images/adb_connection.png>
[sms]: <images/SMS.png>
[gian christanto]: <https://www.linkedin.com/in/gian-christanto-0b398b131/>
+56
View File
@@ -0,0 +1,56 @@
Run Appium Server
-----------------
Appium is automation test framework to test mobile website and mobile application, including Android. To be able to use Appium, you need to run appium-server. You run Appium-Server inside docker-android container by ***opening port 4723*** and ***passing an environment variable APPIUM=true***.
```bash
docker run --privileged -d -p 6080:6080 -p 5554:5554 -p 5555:5555 -p 4723:4723 -e DEVICE="Samsung Galaxy S6" -e APPIUM=true --name android-container budtmo/docker-android-x86-8.1
```
### Share Volume
If you want to use appium to test UI of your android application, you need to share volume where the APK is located to folder ***/root/tmp***.
```bash
docker run --privileged -d -p 6080:6080 -p 4723:4723 -p 5554:5554 -p 5555:5555 -v $PWD/example/sample_apk:/root/tmp -e DEVICE="Nexus 5" -e APPIUM=true -e CONNECT_TO_GRID=true -e APPIUM_HOST="127.0.0.1" -e APPIUM_PORT=4723 -e SELENIUM_HOST="172.17.0.1" -e SELENIUM_PORT=4444 --name android-container budtmo/docker-android-x86-8.1
```
### Connect to Selenium Grid
It is also possible to connect appium server that run inside docker-android with selenium grid by passing following environment variables:
- CONNECT\_TO\_GRID=true
- APPIUM_HOST="\<host\_ip\_address>"
- APPIUM_PORT=\<port\_number>
- SELENIUM_HOST="\<host\_ip\_address>"
- SELENIUM_PORT=\<port\_number>
- SELENIUM_TIMEOUT=\<timeout\_in\_seconds>
- SELENIUM_PROXY_CLASS=\<selenium\_proxy\_class\_name>
To run tests for mobile browser, following parameter can be passed:
- MOBILE\_WEB\_TEST=true
```bash
docker run --privileged -d -p 6080:6080 -p 4723:4723 -p 5554:5554 -p 5555:5555 -e DEVICE="Samsung Galaxy S6" -e APPIUM=true -e CONNECT_TO_GRID=true -e APPIUM_HOST="127.0.0.1" -e APPIUM_PORT=4723 -e SELENIUM_HOST="172.17.0.1" -e SELENIUM_PORT=4444 -e MOBILE_WEB_TEST=true --name android-container budtmo/docker-android-x86-8.1
```
### Video Recording
You can deactivate auto_record by changing the value to "False" in docker-compose file. e.g. change value to "False" in this [line](docker-compose.yml#L70).
### Relaxed Security
Pass environment variable RELAXED_SECURITY=true to disable additional security check to use some advanced features.
### Docker-Compose
![][compose]
There is [example of compose file](docker-compose.yml) to run complete selenium grid and docker-android container as nodes. [docker-compose](https://docs.docker.com/compose/install/) version [1.13.0](https://github.com/docker/compose/releases/tag/1.13.0) or higher is required to be able to execute that compose file.
```bash
docker-compose up -d
```
[compose]: <images/compose.png>
+25
View File
@@ -0,0 +1,25 @@
Azure
-----
Make sure that the nodes, pods, containers for your emulators are generated within a **VM** of series **Dv3** or **Ev3**.
Reference: https://docs.microsoft.com/en-us/azure/virtual-machines/windows/nested-virtualization
AWS
-----
Make sure that containers for your emulators are generated within a EC2 Bare Metal Instance(i3.metal)
Reference: https://aws.amazon.com/jp/blogs/aws/new-amazon-ec2-bare-metal-instances-with-direct-access-to-hardware/
Google Cloud (GCE)
------------------
Make sure your instances for your emulators have Nested Virtualization enabled
Reference: https://cloud.google.com/compute/docs/instances/enable-nested-virtualization-vm-instances
One the disk and instance are created as [specified here](https://cloud.google.com/compute/docs/instances/enable-nested-virtualization-vm-instances#enablenestedvirt),
the emulator can be brought up as follows:
# Assume app.apk is in /tmp
docker run --privileged -d -e DEVICE="Samsung Galaxy S6" --volume /tmp:/APK \
--name android_em budtmo/docker-android-x86-8.1
docker exec android_em adb wait-for-device
docker exec android_em adb install /APK/app.apk
+93
View File
@@ -0,0 +1,93 @@
VNC pass
--------
Passing ```VNC_PASSWORD="your_pass_here"``` will secure your vnc connection.
Proxy
-----
You can enable proxy inside container and Android emulator by passing following environment variables:
- HTTP_PROXY="http://\<docker\_bridge\_ip>:<port>"
- HTTPS_PROXY=""http://\<docker\_bridge\_ip>:<port>"
- NO_PROXY="localhost"
- ENABLE_PROXY_ON_EMULATOR=true
Proxy with authentication
----
You can set proxy with authentication by passing following environment variable:
- HTTP_PROXY_USER="\<username>"
- HTTP_PROXY_PASSWORD="\<password>"
Language
--------
You can change the language setting of Android Emulator on the fly by passing following environment variable:
- LANGUAGE="\<language>"
- COUNTRY="\<country>"
Data partition size
-------------------
The size of the data partition can be set by passing the following environment variable:
- DATAPARTITION="\<size>"
The value can be specified in the same format that is used by the emulator config file (`disk.dataPartition.size`), e.g. `800m`.
Camera
------
Passing following environment variable to be able to connect laptop / pc camera to Android emulator:
- EMULATOR_ARGS="-camera-back webcam0"
Custom Avd name Arguments
-------------------------
Passing following environment variable to set a custom avd name
- AVD_NAME="customName"
Custom Emulator Arguments
-------------------------
If you want to add more arguments for running emulator, you can ***pass an environment variable EMULATOR_ARGS*** while running docker command.
```bash
docker run --privileged -d -p 6080:6080 -p 4723:4723 -p 5554:5554 -p 5555:5555 -e DEVICE="Samsung Galaxy S6" -e EMULATOR_ARGS="-no-snapshot-load -partition-size 512" --name android-container budtmo/docker-android-x86-8.1
```
Appium Test Distribution (ATD)
------------------------------
You can enable [ATD](https://github.com/AppiumTestDistribution/AppiumTestDistribution) by passing environment variable ATD=true and bind the port to the host, e.g. -p 4567:4567
SaltStack
---------
You can enable [SaltStack](https://github.com/saltstack/salt) to control running containers by passing environment variable SALT_MASTER=<ip_address_of_salt_master>.
Back & Restore
--------------
If you want to backup/reuse the avds created with furture upgrades or for replication, run the container with two extra mounts
- -v local_backup/.android:/root/.android
- -v local_backup/android_emulator:/root/android_emulator
```bash
docker run --privileged -d -p 6080:6080 -p 4723:4723 -p 5554:5554 -p 5555:5555 -v local_backup/.android:/root/.android -v local_backup/android_emulator:/root/android_emulator -e DEVICE="Nexus 5" --name android-container budtmo/docker-android-x86-8.1
```
For the first run, this will create a new avd and all the changes will be accessible in the `local_backup` directory. Now for all future runs, it will reuse the avds. Even this should work with new releases of `docker-android`
Nginx
-----
Sample nginx configuration can be found [here](nginx)
+41
View File
@@ -0,0 +1,41 @@
Genymotion Cloud
----------------
![Genymotion](images/logo_genymotion.png)
You can easily scale your Appium tests on Genymotion Android virtual devices in the cloud. They are available on [SaaS](http://bit.ly/2YP0P1l) or as virtual images on AWS, GCP or Alibaba Cloud.
1. On SaaS <br />
Use [device.json](genymotion/example/sample_devices/devices.json) to define the device to start. You can specify the port on which the device will start so you don't need to change the device name in your tests every time you need to run those tests. Then run following command
```bash
export USER="xxx"
export PASS="xxx"
docker run -it --rm -p 4723:4723 -v $PWD/genymotion/example/sample_devices:/root/tmp -e TYPE=SaaS -e USER=$USER -e PASS=$PASS budtmo/docker-android-genymotion
```
In case you are interesed to play around with Genymotion on SaaS, you can register to [this link](http://bit.ly/2YP0P1l) to get 1000 free minutes for free.
2. On PaaS (AWS) <br />
Use [aws.json](genymotion/example/sample_devices/aws.json) to define configuration of EC2 instance and run following command:
```bash
docker run -it --rm -p 4723:4723 -v $PWD/genymotion/example/sample_devices:/root/tmp -v ~/.aws:/root/.aws -e TYPE=aws budtmo/docker-android-genymotion
```
Existing security group and subnet can be used:
```json
[
{
"region": "us-west-2",
"instance": "t2.small",
"AMI": "ami-0673cbd39ef84d97c",
"SG": "sg-000aaa",
"subnet_id": "subnet-000aaa"
}
]
```
You can also use [this docker-compose file](genymotion/example/geny.yml).
+6
View File
@@ -0,0 +1,6 @@
Jenkins
-------
Following Jenkins plug-ins supports Docker-Android to optimize your work.
1. Live preview: [budtmo/jenkins-plugin-vncviewer-docker-container](https://github.com/budtmo/vncviewer-docker-container-plugin)
+85
View File
@@ -0,0 +1,85 @@
VMWare Fusion on OSX
--------------------
The following instructions are used for OS X. You'll need [docker-machine-parallels](https://github.com/Parallels/docker-machine-parallels) to create a virtual machine (vm) with tiny core linux for running docker images. After that, you may start the vm you created for VMWare Fusion or Parallels Desktop and run a docker container inside this vm. If you're going to use the android docker of emulator with x86 processor, setup this vm for nested virtualization and kvm support before you run a docker container.
1. Install docker-machine-parallels via Homebrew:
```bash
$ brew install docker-machine-parallels
```
2. Create a virtual machine for running docker images based on the virtual machine tool you use
2.1. Create a virtual machine of VMWare Fusion
```bash
$ docker-machine create --driver=vmwarefusion vmware-dev
```
2.2. Create a virtual machine of Parallels Desktop
```bash
$ docker-machine create --driver=parallels prl-dev
```
This utility `docker-machine-parallels` will fetch boot2docker.iso to create a vm of VMWare fusion or Parallels Desktop. When the vm is created, you'll see it's booted with VMWare fusion or Parallels Desktop where the network of vm is set to NAT and one IP is assigned. You'll be able to connect to vnc service inside the docker image through that IP. Say it's `10.211.55.3` and we'll use it later.
3. Setup the virtual machine for nested virtualization support
3.1. Shutdown the vm by running the command below in the boot2docker vm before you setup it.
```bash
# shutdown -h now
```
If you use VMWare Fusion, go to menu bar > Vitual Machine > Settings > Processors and Memory, expand Advanced options, and select `Enable hypervisor applications in this virtual machine`.
![Enable nested virtualization for VMWare Fusion](images/vmwarefusion_enable_nested_virtualization.png)
If you use Parallels Desktop, open settings screen of that vm and go to `CPU & Memory` under `hardware` tab, expand Advanced settings and select `Enable nested virtualization`.
![Enable nested virtualization for Parallels Desktop](images/parallels_enable_nested_virtualization.png)
4. Enable kvm inside virtual machine
4.0 SSH to the machine
```bash
docker-machine ssh vmware-dev
```
4.1 Check kvm version
```bash
# version
$ 10.1
```
Go to http://tinycorelinux.net/10.x/x86_64/tcz/ and check your kvm version, for version 10.1 is kvm-4.19.10-tinycore64.tcz
4.2. Run as an account other than root to install kvm packages using tce-load.
```bash
# su docker
$ tce-load -wi kvm-4.19.10-tinycore64.tcz
```
4.3. Run as root to load kvm module after kvm packages install.
```bash
$ sudo modprobe kvm_intel
```
4.4. Check if the kvm device is loaded.
```bash
$ ls /dev/kvm
```
4.5. Check if your CPU supports hardware virtualization now
```bash
$ egrep -c '(vmx|svm)' /proc/cpuinfo
```
If **0** it means that your CPU doesn't support hardware virtualization.
If **1** or more it does - but you still need to make sure that virtualization is enabled in the BIOS.
5. You may now run a docker container
5.1. Let's run a docker image for an emulator with x86 processor.
```bash
docker run --privileged -d -p 6080:6080 -p 5554:5554 -p 5555:5555 -e DEVICE="Samsung Galaxy S6" --name android-container budtmo/docker-android-x86-8.1
```
When the services inside this docker container are running, connect to http://10.211.55.3:6080/vnc.html (the IP we got when the docker machine was created) and login. The emulator with x86 processor should be running on screen.
+86
View File
@@ -0,0 +1,86 @@
# Kubernetes & Azure (AKS, Terraform, Kompose, Kubectl, Azure CLI)
- Azure CLI configuration
- Infrastructure as code for Azure
- Generating Kubernetes configuration files with Kompose (Services, Deployments, Pods & Persistent volumes)
- Terraform with Azure Provider
- Kubectl configuration
## Setting up Azure CLI
- Install Azure CLI -> https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest
- Execute ```sh $ az login ``` and authenticate with your Azure account
- Execute ```sh $ az account show --query "{subscriptionId:id, tenantId:tenantId" ``` . Then copy subscriptionId and tenantId
- Execute ```sh $ az account set --subscription="${SUBSCRIPTION_ID}" ``` . Replace ${SUBSCRIPTION_ID} for your subscriptionId copied
## Create infrastucture in Azure (AKS Service with node master)
Terraform version >= v0.11.7
- Install Terraform -> https://www.terraform.io/downloads.html
- Edit vars with Azure Account values in ```sh terraform.tfvars ```
- After that:
```sh
$ terraform init
$ terraform plan
$ terraform apply
```
## Setting up Kubectl with Azure account
- For apply Kubernetes files:
First configurate azure-cli with Azure account and install kubernetes tools with az:
```sh
$ az aks install-cli
```
Then log in in to the Azure Container Registry (if you're using it, but dockerhub or other):
```sh
$ az acr login
```
After that, connect to cluster with Kubectl:
```sh
$ az aks get-credentials --resource-group docker-android --name k8s-docker-android
```
## Running with custom K8s files (Recommended)
- You can use this approach or Kompose (Next 2 steps)
```sh
$ kubectl create -f volumes.yaml
$ kubectl create -f services_deployments.yaml
```
## Generate Kube files with Kompose
- Install Kompose -> https://github.com/kubernetes/kompose
Kompose version: >= 1.1.0
- For convert to Kompose:
```sh
$ cd kompose
$ kompose convert -f ../kompose.yml
```
## Execute Kube files (Kompose)
- First create Persistent Volume Claims, then Services; finally Deployments files. For example:
```sh
$ cd kompose
$ kubectl create -f nexus-7.1.1-claim0-persistentvolumeclaim.yaml
$ kubectl create -f nexus-7.1.1-claim1-persistentvolumeclaim.yaml
$ kubectl create -f nexus-7.1.1-service.yaml
$ kubectl create -f nexus-7.1.1-deployment.yaml
```
+114
View File
@@ -0,0 +1,114 @@
# Note: It requires docker-compose 1.13.0
#
# Usage: docker-compose up -d
version: "3"
services:
# Selenium hub
selenium_hub:
image: selenium/hub:3.14.0-curium
ports:
- 4444:4444
# There is a bug for using appium. Issue: https://github.com/butomo1989/docker-android/issues/73
# Real devices
#real_device:
# image: butomo1989/docker-android-real-device
# privileged: true
# depends_on:
# - selenium_hub
# ports:
# - 6080:6080
# volumes:
# - ./video-real-device:/tmp/video
# - /dev/bus/usb:/dev/bus/usb
# - ~/.android:/root/.android
# environment:
# - CONNECT_TO_GRID=true
# - APPIUM=true
# - SELENIUM_HOST=selenium_hub
# - AUTO_RECORD=true
# - BROWSER_NAME=chrome
# Using Appium Docker Android
real_device:
image: appium/appium
depends_on:
- selenium_hub
network_mode: "service:selenium_hub"
privileged: true
volumes:
- /dev/bus/usb:/dev/bus/usb
- ~/.android:/root/.android
- ../example/sample_apk:/root/tmp
environment:
- CONNECT_TO_GRID=true
- SELENIUM_HOST=selenium_hub
# Enable it for msite testing
#- BROWSER_NAME=chrome
# Docker-Android for Android application testing
nexus_7.1.1:
image: butomo1989/docker-android-x86-7.1.1
privileged: true
# Increase scale number if needed
#scale: 1
depends_on:
- selenium_hub
- real_device
ports:
- 6080
# Change path of apk that you want to test. I use sample_apk that I provide in folder "example"
volumes:
- ../example/sample_apk:/root/tmp/sample_apk
- ../video-nexus_7.1.1:/tmp/video
environment:
- DEVICE=Nexus 5
- CONNECT_TO_GRID=true
- APPIUM=true
- SELENIUM_HOST=selenium_hub
- AUTO_RECORD=true
# Docker-Android for mobile website testing with chrome browser
# Chrome browser exists only for version 7.0 and 7.1.1
samsung_galaxy_web_7.1.1:
image: butomo1989/docker-android-x86-8.1
privileged: true
# Increase scale number if needed
#scale: 1
depends_on:
- selenium_hub
- real_device
ports:
- 6080
volumes:
- ../video-samsung_7.1.1:/tmp/video
environment:
- DEVICE=Samsung Galaxy S6
- CONNECT_TO_GRID=true
- APPIUM=true
- SELENIUM_HOST=selenium_hub
- MOBILE_WEB_TEST=true
- AUTO_RECORD=true
# Docker-Android for mobile website testing with default browser
# Default browser exists only for version 5.0.1, 5.1.1 and 6.0
samsung_galaxy_web_5.1.1:
image: butomo1989/docker-android-x86-5.1.1
privileged: true
# Increase scale number if needed
#scale: 1
depends_on:
- selenium_hub
- real_device
ports:
- 6080
volumes:
- ../video-samsung_5.1.1:/tmp/video
environment:
- DEVICE=Samsung Galaxy S6
- CONNECT_TO_GRID=true
- APPIUM=true
- SELENIUM_HOST=selenium_hub
- MOBILE_WEB_TEST=true
- AUTO_RECORD=true
@@ -0,0 +1,14 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
io.kompose.service: nexus-7.1.1-claim0
name: nexus-7.1.1-claim0
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
status: {}
@@ -0,0 +1,14 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
io.kompose.service: nexus-7.1.1-claim1
name: nexus-7.1.1-claim1
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
status: {}
@@ -0,0 +1,53 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -f ../kompose.yml
kompose.version: 1.1.0 (36652f6)
creationTimestamp: null
labels:
io.kompose.service: nexus-7.1.1
name: nexus-7.1.1
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: nexus-7.1.1
spec:
containers:
- env:
- name: APPIUM
value: "true"
- name: AUTO_RECORD
value: "true"
- name: CONNECT_TO_GRID
value: "true"
- name: DEVICE
value: Nexus 5
- name: SELENIUM_HOST
value: selenium_hub
image: butomo1989/docker-android-x86-7.1.1
name: nexus-7.1.1
ports:
- containerPort: 6080
resources: {}
securityContext:
privileged: true
volumeMounts:
- mountPath: /root/tmp/sample_apk
name: nexus-7.1.1-claim0
- mountPath: /tmp/video
name: nexus-7.1.1-claim1
restartPolicy: Always
volumes:
- name: nexus-7.1.1-claim0
persistentVolumeClaim:
claimName: nexus-7.1.1-claim0
- name: nexus-7.1.1-claim1
persistentVolumeClaim:
claimName: nexus-7.1.1-claim1
status: {}
@@ -0,0 +1,19 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -f ../kompose.yml
kompose.version: 1.1.0 (36652f6)
creationTimestamp: null
labels:
io.kompose.service: nexus-7.1.1
name: nexus-7.1.1
spec:
ports:
- name: "6080"
port: 6080
targetPort: 6080
selector:
io.kompose.service: nexus-7.1.1
status:
loadBalancer: {}
@@ -0,0 +1,14 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
io.kompose.service: real-device-claim0
name: real-device-claim0
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
status: {}
@@ -0,0 +1,14 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
io.kompose.service: real-device-claim1
name: real-device-claim1
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
status: {}
@@ -0,0 +1,14 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
io.kompose.service: real-device-claim2
name: real-device-claim2
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
status: {}
@@ -0,0 +1,50 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -f ../kompose.yml
kompose.version: 1.1.0 (36652f6)
creationTimestamp: null
labels:
io.kompose.service: real-device
name: real-device
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: real-device
spec:
containers:
- env:
- name: CONNECT_TO_GRID
value: "true"
- name: SELENIUM_HOST
value: selenium_hub
image: appium/appium
name: real-device
resources: {}
securityContext:
privileged: true
volumeMounts:
- mountPath: /dev/bus/usb
name: real-device-claim0
- mountPath: /root/.android
name: real-device-claim1
- mountPath: /root/tmp
name: real-device-claim2
restartPolicy: Always
volumes:
- name: real-device-claim0
persistentVolumeClaim:
claimName: real-device-claim0
- name: real-device-claim1
persistentVolumeClaim:
claimName: real-device-claim1
- name: real-device-claim2
persistentVolumeClaim:
claimName: real-device-claim2
status: {}
@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -f ../kompose.yml
kompose.version: 1.1.0 (36652f6)
creationTimestamp: null
labels:
io.kompose.service: real-device
name: real-device
spec:
clusterIP: None
ports:
- name: headless
port: 55555
targetPort: 0
selector:
io.kompose.service: real-device
status:
loadBalancer: {}
@@ -0,0 +1,14 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
io.kompose.service: samsung-galaxy-web-5.1.1-claim0
name: samsung-galaxy-web-5.1.1-claim0
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
status: {}
@@ -0,0 +1,50 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -f ../kompose.yml
kompose.version: 1.1.0 (36652f6)
creationTimestamp: null
labels:
io.kompose.service: samsung-galaxy-web-5.1.1
name: samsung-galaxy-web-5.1.1
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: samsung-galaxy-web-5.1.1
spec:
containers:
- env:
- name: APPIUM
value: "true"
- name: AUTO_RECORD
value: "true"
- name: CONNECT_TO_GRID
value: "true"
- name: DEVICE
value: Samsung Galaxy S6
- name: MOBILE_WEB_TEST
value: "true"
- name: SELENIUM_HOST
value: selenium_hub
image: butomo1989/docker-android-x86-5.1.1
name: samsung-galaxy-web-5.1.1
ports:
- containerPort: 6080
resources: {}
securityContext:
privileged: true
volumeMounts:
- mountPath: /tmp/video
name: samsung-galaxy-web-5.1.1-claim0
restartPolicy: Always
volumes:
- name: samsung-galaxy-web-5.1.1-claim0
persistentVolumeClaim:
claimName: samsung-galaxy-web-5.1.1-claim0
status: {}
@@ -0,0 +1,19 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -f ../kompose.yml
kompose.version: 1.1.0 (36652f6)
creationTimestamp: null
labels:
io.kompose.service: samsung-galaxy-web-5.1.1
name: samsung-galaxy-web-5.1.1
spec:
ports:
- name: "6080"
port: 6080
targetPort: 6080
selector:
io.kompose.service: samsung-galaxy-web-5.1.1
status:
loadBalancer: {}
@@ -0,0 +1,14 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
io.kompose.service: samsung-galaxy-web-7.1.1-claim0
name: samsung-galaxy-web-7.1.1-claim0
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
status: {}
@@ -0,0 +1,50 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -f ../kompose.yml
kompose.version: 1.1.0 (36652f6)
creationTimestamp: null
labels:
io.kompose.service: samsung-galaxy-web-7.1.1
name: samsung-galaxy-web-7.1.1
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: samsung-galaxy-web-7.1.1
spec:
containers:
- env:
- name: APPIUM
value: "true"
- name: AUTO_RECORD
value: "true"
- name: CONNECT_TO_GRID
value: "true"
- name: DEVICE
value: Samsung Galaxy S6
- name: MOBILE_WEB_TEST
value: "true"
- name: SELENIUM_HOST
value: selenium_hub
image: butomo1989/docker-android-x86-8.1
name: samsung-galaxy-web-7.1.1
ports:
- containerPort: 6080
resources: {}
securityContext:
privileged: true
volumeMounts:
- mountPath: /tmp/video
name: samsung-galaxy-web-7.1.1-claim0
restartPolicy: Always
volumes:
- name: samsung-galaxy-web-7.1.1-claim0
persistentVolumeClaim:
claimName: samsung-galaxy-web-7.1.1-claim0
status: {}
@@ -0,0 +1,19 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -f ../kompose.yml
kompose.version: 1.1.0 (36652f6)
creationTimestamp: null
labels:
io.kompose.service: samsung-galaxy-web-7.1.1
name: samsung-galaxy-web-7.1.1
spec:
ports:
- name: "6080"
port: 6080
targetPort: 6080
selector:
io.kompose.service: samsung-galaxy-web-7.1.1
status:
loadBalancer: {}
@@ -0,0 +1,27 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -f ../kompose.yml
kompose.version: 1.1.0 (36652f6)
creationTimestamp: null
labels:
io.kompose.service: selenium-hub
name: selenium-hub
spec:
replicas: 1
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: selenium-hub
spec:
containers:
- image: selenium/hub:3.14.0-curium
name: selenium-hub
ports:
- containerPort: 4444
resources: {}
restartPolicy: Always
status: {}
@@ -0,0 +1,19 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -f ../kompose.yml
kompose.version: 1.1.0 (36652f6)
creationTimestamp: null
labels:
io.kompose.service: selenium-hub
name: selenium-hub
spec:
ports:
- name: "4444"
port: 4444
targetPort: 4444
selector:
io.kompose.service: selenium-hub
status:
loadBalancer: {}
+48
View File
@@ -0,0 +1,48 @@
resource "azurerm_container_service" "container_service" {
name = "k8s-docker-android"
resource_group_name = "${var.resource_group_name}"
location = "${var.resource_group_location}"
orchestration_platform = "Kubernetes"
master_profile {
count = "${var.master_count}"
dns_prefix = "${var.dns_name_prefix}-master"
}
agent_pool_profile {
name = "agentpools"
count = "${var.linux_agent_count}"
dns_prefix = "${var.dns_name_prefix}-agent"
vm_size = "${var.linux_agent_vm_size}"
}
linux_profile {
admin_username = "${var.linux_admin_username}"
ssh_key {
key_data = "${var.linux_admin_ssh_publickey}"
}
}
service_principal {
client_id = "${var.service_principal_client_id}"
client_secret = "${var.service_principal_client_secret}"
}
diagnostics_profile {
enabled = false
}
tags {
Source = "K8s with Terraform"
}
}
output "master_fqdn" {
value = "${azurerm_container_service.container_service.master_profile.fqdn}"
}
output "ssh_command_master0" {
value = "ssh ${var.linux_admin_username}@${azurerm_container_service.container_service.master_profile.fqdn} -A -p 22"
}
+11
View File
@@ -0,0 +1,11 @@
# Use this if you can't specify your credentials in file but you need ingress in the UI console.
provider "azurerm" {}
#Use this if you can specify your credentials and no more configuration is necessary
#provider "azurerm" {
# subscription_id = "${var.subscription_id}"
# client_id = "${var.service_principal_client_id}"
# client_secret = "${var.service_principal_client_secret}"
# tenant_id = "${var.tenant_id}"
#}
+147
View File
@@ -0,0 +1,147 @@
apiVersion: v1
kind: Service
metadata:
name: selenium
spec:
ports:
- name: "4444"
port: 4444
targetPort: 4444
selector:
app: selenium
type: LoadBalancer
---
apiVersion: v1
kind: Deployment
metadata:
name: selenium-deployment
labels:
app: selenium
spec:
replicas: 1
template:
metadata:
labels:
app: selenium
spec:
containers:
- image: selenium/hub:3.14.0-curium
name: selenium-hub
ports:
- containerPort: 4444
resources: {}
restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
name: real-device
spec:
clusterIP: None
ports:
- name: headless
port: 55555
targetPort: 0
selector:
app: real-device
type: LoadBalancer
---
apiVersion: v1
kind: Deployment
metadata:
labels:
app: real-device
name: real-device
spec:
replicas: 1
template:
metadata:
labels:
app: real-device
spec:
containers:
- env:
- name: CONNECT_TO_GRID
value: "true"
- name: SELENIUM_HOST
value: selenium_hub
image: appium/appium
name: real-device
securityContext:
privileged: true
volumeMounts:
- mountPath: /dev/bus/usb
name: real-device-claim0
- mountPath: /root/.android
name: real-device-claim1
- mountPath: /root/tmp
name: real-device-claim2
restartPolicy: Always
volumes:
- name: real-device-claim0
persistentVolumeClaim:
claimName: real-device-claim0
- name: real-device-claim1
persistentVolumeClaim:
claimName: real-device-claim1
- name: real-device-claim2
persistentVolumeClaim:
claimName: real-device-claim2
---
apiVersion: v1
kind: Service
metadata:
name: nexus-7.1.1
spec:
ports:
- name: "6080"
port: 6080
targetPort: 6080
selector:
app: nexus-7.1.1
type: LoadBalancer
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: nexus-7.1.1
name: nexus-7.1.1
spec:
replicas: 1
template:
metadata:
labels:
app: nexus-7.1.1
spec:
containers:
- env:
- name: APPIUM
value: "true"
- name: AUTO_RECORD
value: "true"
- name: CONNECT_TO_GRID
value: "true"
- name: DEVICE
value: Nexus 5
- name: SELENIUM_HOST
value: selenium_hub
image: butomo1989/docker-android-x86-7.1.1
name: nexus-7.1.1
ports:
- containerPort: 6080
securityContext:
privileged: true
volumeMounts:
- mountPath: /root/tmp/sample_apk
name: nexus-7.1.1-claim0
- mountPath: /tmp/video
name: nexus-7.1.1-claim1
restartPolicy: Always
volumes:
- name: nexus-7.1.1-claim0
persistentVolumeClaim:
claimName: nexus-7.1.1-claim0
- name: nexus-7.1.1-claim1
persistentVolumeClaim:
claimName: nexus-7.1.1-claim1
+19
View File
@@ -0,0 +1,19 @@
resource_group_name = "docker-android"
resource_group_location = "West US"
dns_name_prefix = "docker-android"
linux_agent_count = "1"
#Only use Dv3 or Ev3 series
linux_agent_vm_size = "Standard_D2_v3"
linux_admin_username = "(Insert any username here!)"
linux_admin_ssh_publickey = "(Insert ssh key here!)"
master_count = "1"
# Azure credentials
service_principal_client_id = "(Insert principal key client id here!)"
service_principal_client_secret = "(Insert principal key client secret here!)"
subscription_id = "(Insert subscription id here!)"
tenant_id = "(Insert tenant id here!)"
+62
View File
@@ -0,0 +1,62 @@
variable "resource_group_name" {
type = "string"
description = "Name of the azure resource group."
}
variable "resource_group_location" {
type = "string"
description = "Location of the azure resource group."
}
variable "dns_name_prefix" {
type = "string"
description = "Sets the domain name prefix for the cluster. The suffix 'master' will be added to address the master agents and the suffix 'agent' will be added to address the linux agents."
}
variable "linux_agent_count" {
type = "string"
default = "1"
description = "The number of Kubernetes linux agents in the cluster. Allowed values are 1-100 (inclusive). The default value is 1."
}
variable "linux_agent_vm_size" {
type = "string"
default = "Standard_D2_v2"
description = "The size of the virtual machine used for the Kubernetes linux agents in the cluster."
}
variable "linux_admin_username" {
type = "string"
description = "User name for authentication to the Kubernetes linux agent virtual machines in the cluster."
}
variable "linux_admin_ssh_publickey" {
type = "string"
description = "Configure all the linux virtual machines in the cluster with the SSH RSA public key string. The key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
}
variable "master_count" {
type = "string"
default = "1"
description = "The number of Kubernetes masters for the cluster. Allowed values are 1, 3, and 5. The default value is 1."
}
variable "service_principal_client_id" {
type = "string"
description = "The client id of the azure service principal used by Kubernetes to interact with Azure APIs."
}
variable "service_principal_client_secret" {
type = "string"
description = "The client secret of the azure service principal used by Kubernetes to interact with Azure APIs."
}
variable "subscription_id" {
type = "string"
description = "Your Azure subscription"
}
variable "tenant_id" {
type = "string"
description = "Your Azure Tenant id"
}
+69
View File
@@ -0,0 +1,69 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
app: real-device-claim0
name: real-device-claim0
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
app: real-device-claim1
name: real-device-claim1
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
app: real-device-claim2
name: real-device-claim2
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
app: nexus-7.1.1-claim0
name: nexus-7.1.1-claim0
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
app: nexus-7.1.1-claim1
name: nexus-7.1.1-claim1
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
+101
View File
@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<d:devices xmlns:d="http://schemas.android.com/sdk/devices/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<d:device>
<d:name>Samsung Galaxy S10</d:name>
<d:manufacturer>User</d:manufacturer>
<d:meta/>
<d:hardware>
<d:screen>
<d:screen-size>large</d:screen-size>
<d:diagonal-length>6.1</d:diagonal-length>
<d:pixel-density>xxxhdpi</d:pixel-density>
<d:screen-ratio>long</d:screen-ratio>
<d:dimensions>
<d:x-dimension>1440</d:x-dimension>
<d:y-dimension>3040</d:y-dimension>
</d:dimensions>
<d:xdpi>575.92</d:xdpi>
<d:ydpi>575.92</d:ydpi>
<d:touch>
<d:multitouch>jazz-hands</d:multitouch>
<d:mechanism>finger</d:mechanism>
<d:screen-type>capacitive</d:screen-type>
</d:touch>
</d:screen>
<d:networking>
Bluetooth
Wifi
NFC
</d:networking>
<d:sensors>
Accelerometer
Barometer
Compass
GPS
Gyroscope
LightSensor
ProximitySensor
</d:sensors>
<d:mic>true</d:mic>
<d:camera>
<d:location>back</d:location>
<d:autofocus>true</d:autofocus>
<d:flash>true</d:flash>
</d:camera>
<d:camera>
<d:location>front</d:location>
<d:autofocus>true</d:autofocus>
<d:flash>true</d:flash>
</d:camera>
<d:keyboard>qwerty</d:keyboard>
<d:nav>nonav</d:nav>
<d:ram unit="GiB">4</d:ram>
<d:buttons>hard</d:buttons>
<d:internal-storage unit="GiB">
4
</d:internal-storage>
<d:removable-storage unit="TiB"/>
<d:cpu>Generic CPU</d:cpu>
<d:gpu>Generic GPU</d:gpu>
<d:abi>
armeabi-v7a
x86
x86_64
</d:abi>
<d:dock/>
<d:power-type>battery</d:power-type>
</d:hardware>
<d:software>
<d:api-level>-</d:api-level>
<d:live-wallpaper-support>true</d:live-wallpaper-support>
<d:bluetooth-profiles/>
<d:gl-version>2.0</d:gl-version>
<d:gl-extensions/>
<d:status-bar>false</d:status-bar>
</d:software>
<d:state default="true" name="Portrait">
<d:description>The device in portrait orientation</d:description>
<d:screen-orientation>port</d:screen-orientation>
<d:keyboard-state>keyshidden</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
<d:state name="Landscape">
<d:description>The device in landscape orientation</d:description>
<d:screen-orientation>land</d:screen-orientation>
<d:keyboard-state>keyshidden</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
<d:state name="Portrait with keyboard">
<d:description>The device in portrait orientation with a keyboard open</d:description>
<d:screen-orientation>port</d:screen-orientation>
<d:keyboard-state>keysexposed</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
<d:state name="Landscape with keyboard">
<d:description>The device in landscape orientation with a keyboard open</d:description>
<d:screen-orientation>land</d:screen-orientation>
<d:keyboard-state>keysexposed</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
</d:device>
</d:devices>
+101
View File
@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<d:devices xmlns:d="http://schemas.android.com/sdk/devices/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<d:device>
<d:name>Samsung Galaxy S7</d:name>
<d:manufacturer>User</d:manufacturer>
<d:meta/>
<d:hardware>
<d:screen>
<d:screen-size>large</d:screen-size>
<d:diagonal-length>5.10</d:diagonal-length>
<d:pixel-density>xxxhdpi</d:pixel-density>
<d:screen-ratio>long</d:screen-ratio>
<d:dimensions>
<d:x-dimension>1440</d:x-dimension>
<d:y-dimension>2560</d:y-dimension>
</d:dimensions>
<d:xdpi>575.92</d:xdpi>
<d:ydpi>575.92</d:ydpi>
<d:touch>
<d:multitouch>jazz-hands</d:multitouch>
<d:mechanism>finger</d:mechanism>
<d:screen-type>capacitive</d:screen-type>
</d:touch>
</d:screen>
<d:networking>
Bluetooth
Wifi
NFC
</d:networking>
<d:sensors>
Accelerometer
Barometer
Compass
GPS
Gyroscope
LightSensor
ProximitySensor
</d:sensors>
<d:mic>true</d:mic>
<d:camera>
<d:location>back</d:location>
<d:autofocus>true</d:autofocus>
<d:flash>true</d:flash>
</d:camera>
<d:camera>
<d:location>front</d:location>
<d:autofocus>true</d:autofocus>
<d:flash>true</d:flash>
</d:camera>
<d:keyboard>qwerty</d:keyboard>
<d:nav>nonav</d:nav>
<d:ram unit="GiB">4</d:ram>
<d:buttons>hard</d:buttons>
<d:internal-storage unit="GiB">
4
</d:internal-storage>
<d:removable-storage unit="TiB"/>
<d:cpu>Generic CPU</d:cpu>
<d:gpu>Generic GPU</d:gpu>
<d:abi>
armeabi-v7a
x86
x86_64
</d:abi>
<d:dock/>
<d:power-type>battery</d:power-type>
</d:hardware>
<d:software>
<d:api-level>-</d:api-level>
<d:live-wallpaper-support>true</d:live-wallpaper-support>
<d:bluetooth-profiles/>
<d:gl-version>2.0</d:gl-version>
<d:gl-extensions/>
<d:status-bar>false</d:status-bar>
</d:software>
<d:state default="true" name="Portrait">
<d:description>The device in portrait orientation</d:description>
<d:screen-orientation>port</d:screen-orientation>
<d:keyboard-state>keyshidden</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
<d:state name="Landscape">
<d:description>The device in landscape orientation</d:description>
<d:screen-orientation>land</d:screen-orientation>
<d:keyboard-state>keyshidden</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
<d:state name="Portrait with keyboard">
<d:description>The device in portrait orientation with a keyboard open</d:description>
<d:screen-orientation>port</d:screen-orientation>
<d:keyboard-state>keysexposed</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
<d:state name="Landscape with keyboard">
<d:description>The device in landscape orientation with a keyboard open</d:description>
<d:screen-orientation>land</d:screen-orientation>
<d:keyboard-state>keysexposed</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
</d:device>
</d:devices>
+101
View File
@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<d:devices xmlns:d="http://schemas.android.com/sdk/devices/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<d:device>
<d:name>Samsung Galaxy S7 Edge</d:name>
<d:manufacturer>User</d:manufacturer>
<d:meta/>
<d:hardware>
<d:screen>
<d:screen-size>large</d:screen-size>
<d:diagonal-length>5.50</d:diagonal-length>
<d:pixel-density>xxxhdpi</d:pixel-density>
<d:screen-ratio>long</d:screen-ratio>
<d:dimensions>
<d:x-dimension>1440</d:x-dimension>
<d:y-dimension>2560</d:y-dimension>
</d:dimensions>
<d:xdpi>575.92</d:xdpi>
<d:ydpi>575.92</d:ydpi>
<d:touch>
<d:multitouch>jazz-hands</d:multitouch>
<d:mechanism>finger</d:mechanism>
<d:screen-type>capacitive</d:screen-type>
</d:touch>
</d:screen>
<d:networking>
Bluetooth
Wifi
NFC
</d:networking>
<d:sensors>
Accelerometer
Barometer
Compass
GPS
Gyroscope
LightSensor
ProximitySensor
</d:sensors>
<d:mic>true</d:mic>
<d:camera>
<d:location>back</d:location>
<d:autofocus>true</d:autofocus>
<d:flash>true</d:flash>
</d:camera>
<d:camera>
<d:location>front</d:location>
<d:autofocus>true</d:autofocus>
<d:flash>true</d:flash>
</d:camera>
<d:keyboard>qwerty</d:keyboard>
<d:nav>nonav</d:nav>
<d:ram unit="GiB">4</d:ram>
<d:buttons>hard</d:buttons>
<d:internal-storage unit="GiB">
4
</d:internal-storage>
<d:removable-storage unit="TiB"/>
<d:cpu>Generic CPU</d:cpu>
<d:gpu>Generic GPU</d:gpu>
<d:abi>
armeabi-v7a
x86
x86_64
</d:abi>
<d:dock/>
<d:power-type>battery</d:power-type>
</d:hardware>
<d:software>
<d:api-level>-</d:api-level>
<d:live-wallpaper-support>true</d:live-wallpaper-support>
<d:bluetooth-profiles/>
<d:gl-version>2.0</d:gl-version>
<d:gl-extensions/>
<d:status-bar>false</d:status-bar>
</d:software>
<d:state default="true" name="Portrait">
<d:description>The device in portrait orientation</d:description>
<d:screen-orientation>port</d:screen-orientation>
<d:keyboard-state>keyshidden</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
<d:state name="Landscape">
<d:description>The device in landscape orientation</d:description>
<d:screen-orientation>land</d:screen-orientation>
<d:keyboard-state>keyshidden</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
<d:state name="Portrait with keyboard">
<d:description>The device in portrait orientation with a keyboard open</d:description>
<d:screen-orientation>port</d:screen-orientation>
<d:keyboard-state>keysexposed</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
<d:state name="Landscape with keyboard">
<d:description>The device in landscape orientation with a keyboard open</d:description>
<d:screen-orientation>land</d:screen-orientation>
<d:keyboard-state>keysexposed</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
</d:device>
</d:devices>
+101
View File
@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<d:devices xmlns:d="http://schemas.android.com/sdk/devices/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<d:device>
<d:name>Samsung Galaxy S8</d:name>
<d:manufacturer>User</d:manufacturer>
<d:meta/>
<d:hardware>
<d:screen>
<d:screen-size>large</d:screen-size>
<d:diagonal-length>5.80</d:diagonal-length>
<d:pixel-density>xxxhdpi</d:pixel-density>
<d:screen-ratio>long</d:screen-ratio>
<d:dimensions>
<d:x-dimension>1440</d:x-dimension>
<d:y-dimension>2960</d:y-dimension>
</d:dimensions>
<d:xdpi>575.92</d:xdpi>
<d:ydpi>575.92</d:ydpi>
<d:touch>
<d:multitouch>jazz-hands</d:multitouch>
<d:mechanism>finger</d:mechanism>
<d:screen-type>capacitive</d:screen-type>
</d:touch>
</d:screen>
<d:networking>
Bluetooth
Wifi
NFC
</d:networking>
<d:sensors>
Accelerometer
Barometer
Compass
GPS
Gyroscope
LightSensor
ProximitySensor
</d:sensors>
<d:mic>true</d:mic>
<d:camera>
<d:location>back</d:location>
<d:autofocus>true</d:autofocus>
<d:flash>true</d:flash>
</d:camera>
<d:camera>
<d:location>front</d:location>
<d:autofocus>true</d:autofocus>
<d:flash>true</d:flash>
</d:camera>
<d:keyboard>qwerty</d:keyboard>
<d:nav>nonav</d:nav>
<d:ram unit="GiB">4</d:ram>
<d:buttons>hard</d:buttons>
<d:internal-storage unit="GiB">
4
</d:internal-storage>
<d:removable-storage unit="TiB"/>
<d:cpu>Generic CPU</d:cpu>
<d:gpu>Generic GPU</d:gpu>
<d:abi>
armeabi-v7a
x86
x86_64
</d:abi>
<d:dock/>
<d:power-type>battery</d:power-type>
</d:hardware>
<d:software>
<d:api-level>-</d:api-level>
<d:live-wallpaper-support>true</d:live-wallpaper-support>
<d:bluetooth-profiles/>
<d:gl-version>2.0</d:gl-version>
<d:gl-extensions/>
<d:status-bar>false</d:status-bar>
</d:software>
<d:state default="true" name="Portrait">
<d:description>The device in portrait orientation</d:description>
<d:screen-orientation>port</d:screen-orientation>
<d:keyboard-state>keyshidden</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
<d:state name="Landscape">
<d:description>The device in landscape orientation</d:description>
<d:screen-orientation>land</d:screen-orientation>
<d:keyboard-state>keyshidden</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
<d:state name="Portrait with keyboard">
<d:description>The device in portrait orientation with a keyboard open</d:description>
<d:screen-orientation>port</d:screen-orientation>
<d:keyboard-state>keysexposed</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
<d:state name="Landscape with keyboard">
<d:description>The device in landscape orientation with a keyboard open</d:description>
<d:screen-orientation>land</d:screen-orientation>
<d:keyboard-state>keysexposed</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
</d:device>
</d:devices>
+101
View File
@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<d:devices xmlns:d="http://schemas.android.com/sdk/devices/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<d:device>
<d:name>Samsung Galaxy S9</d:name>
<d:manufacturer>User</d:manufacturer>
<d:meta/>
<d:hardware>
<d:screen>
<d:screen-size>large</d:screen-size>
<d:diagonal-length>5.80</d:diagonal-length>
<d:pixel-density>xxxhdpi</d:pixel-density>
<d:screen-ratio>long</d:screen-ratio>
<d:dimensions>
<d:x-dimension>1440</d:x-dimension>
<d:y-dimension>2960</d:y-dimension>
</d:dimensions>
<d:xdpi>575.92</d:xdpi>
<d:ydpi>575.92</d:ydpi>
<d:touch>
<d:multitouch>jazz-hands</d:multitouch>
<d:mechanism>finger</d:mechanism>
<d:screen-type>capacitive</d:screen-type>
</d:touch>
</d:screen>
<d:networking>
Bluetooth
Wifi
NFC
</d:networking>
<d:sensors>
Accelerometer
Barometer
Compass
GPS
Gyroscope
LightSensor
ProximitySensor
</d:sensors>
<d:mic>true</d:mic>
<d:camera>
<d:location>back</d:location>
<d:autofocus>true</d:autofocus>
<d:flash>true</d:flash>
</d:camera>
<d:camera>
<d:location>front</d:location>
<d:autofocus>true</d:autofocus>
<d:flash>true</d:flash>
</d:camera>
<d:keyboard>qwerty</d:keyboard>
<d:nav>nonav</d:nav>
<d:ram unit="GiB">4</d:ram>
<d:buttons>hard</d:buttons>
<d:internal-storage unit="GiB">
4
</d:internal-storage>
<d:removable-storage unit="TiB"/>
<d:cpu>Generic CPU</d:cpu>
<d:gpu>Generic GPU</d:gpu>
<d:abi>
armeabi-v7a
x86
x86_64
</d:abi>
<d:dock/>
<d:power-type>battery</d:power-type>
</d:hardware>
<d:software>
<d:api-level>-</d:api-level>
<d:live-wallpaper-support>true</d:live-wallpaper-support>
<d:bluetooth-profiles/>
<d:gl-version>2.0</d:gl-version>
<d:gl-extensions/>
<d:status-bar>false</d:status-bar>
</d:software>
<d:state default="true" name="Portrait">
<d:description>The device in portrait orientation</d:description>
<d:screen-orientation>port</d:screen-orientation>
<d:keyboard-state>keyshidden</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
<d:state name="Landscape">
<d:description>The device in landscape orientation</d:description>
<d:screen-orientation>land</d:screen-orientation>
<d:keyboard-state>keyshidden</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
<d:state name="Portrait with keyboard">
<d:description>The device in portrait orientation with a keyboard open</d:description>
<d:screen-orientation>port</d:screen-orientation>
<d:keyboard-state>keysexposed</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
<d:state name="Landscape with keyboard">
<d:description>The device in landscape orientation with a keyboard open</d:description>
<d:screen-orientation>land</d:screen-orientation>
<d:keyboard-state>keysexposed</d:keyboard-state>
<d:nav-state>navhidden</d:nav-state>
</d:state>
</d:device>
</d:devices>
+4
View File
@@ -0,0 +1,4 @@
Sources
--------
The Emulator skins are taken from [Android Studio IDE](https://developer.android.com/studio) and [Samsung Developer Website](https://developer.samsung.com/home.do)
@@ -0,0 +1,4 @@
[port-button2.png]
rotate=rotate(2)
[port-button3.png]
rotate=rotate(3)
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

@@ -0,0 +1,21 @@
hw.lcd.density = 550
hw.trackBall = no
hw.keyboard = yes
hw.dPad = no
hw.camera = yes
hw.gps = yes
hw.battery = yes
hw.accelerometer = yes
hw.sdCard = yes
hw.touchScreen = yes
hw.gsmModem = yes
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

+416
View File
@@ -0,0 +1,416 @@
parts {
portrait {
background {
image device_Port.png
}
}
landscape {
background {
image device_Land.png
}
}
device {
display {
width 1440
height 3040
x 0
y 0
}
}
controls {
background {
image controls.png
}
buttons {
camera {
image button.png
x 8
y 8
}
volume-down {
image button.png
x 214
y 8
}
volume-up {
image button.png
x 419
y 8
}
power {
image button.png
x 624
y 8
}
phone-dial {
image button.png
x 8
y 273
}
phone-hangup {
image button.png
x 624
y 273
}
home {
image button.png
x 8
y 537
}
menu {
image button.png
x 214
y 537
}
back {
image button.png
x 419
y 537
}
search {
image button.png
x 624
y 537
}
dpad-left {
image arrow_left.png
x 284
y 201
}
dpad-up {
image arrow_up.png
x 8
y 678
}
dpad-down {
image arrow_down.png
x 214
y 678
}
dpad-right {
image arrow_right.png
x 450
y 216
}
dpad-select {
image select.png
x 284
y 299
}
}
}
keyboard {
background {
image keyboard.png
}
buttons {
1 {
image key-num.png
x 17
y 11
}
2 {
image key-num.png
x 149
y 11
}
3 {
image key-num.png
x 282
y 11
}
4 {
image key-num.png
x 413
y 11
}
5 {
image key-num.png
x 545
y 11
}
6 {
image key-num.png
x 677
y 11
}
7 {
image key-num.png
x 809
y 11
}
8 {
image key-num.png
x 941
y 11
}
9 {
image key-num.png
x 1072
y 11
}
0 {
image key-num.png
x 1204
y 11
}
q {
image key.png
x 17
y 78
}
w {
image key.png
x 149
y 78
}
e {
image key.png
x 281
y 78
}
r {
image key.png
x 412
y 78
}
t {
image key.png
x 544
y 78
}
y {
image key.png
x 676
y 78
}
u {
image key.png
x 808
y 78
}
i {
image key.png
x 940
y 78
}
o {
image key.png
x 1071
y 78
}
p {
image key.png
x 1201
y 78
}
a {
image key.png
x 83
y 161
}
s {
image key.png
x 215
y 161
}
d {
image key.png
x 347
y 161
}
f {
image key.png
x 479
y 161
}
g {
image key.png
x 610
y 161
}
h {
image key.png
x 742
y 161
}
j {
image key.png
x 874
y 161
}
k {
image key.png
x 1006
y 161
}
l {
image key.png
x 1138
y 161
}
CAP {
image key2.png
x 17
y 244
}
z {
image key.png
x 215
y 244
}
x {
image key.png
x 347
y 244
}
c {
image key.png
x 479
y 244
}
v {
image key.png
x 610
y 244
}
b {
image key.png
x 742
y 244
}
n {
image key.png
x 874
y 244
}
m {
image key.png
x 1006
y 244
}
DEL {
image key2.png
x 1138
y 244
}
SYM {
image key2.png
x 17
y 326
}
T {
image key.png
x 216
y 326
}
SPACE {
image spacebar.png
x 347
y 326
}
PERIOD {
image key.png
x 1006
y 326
}
NEXT {
image key2.png
x 1138
y 326
}
}
}
}
layouts {
portrait {
width 4120
height 3477
color 0xe0e0e0
event EV_SW:0:1
part1 {
name portrait
x 0
y 0
}
part2 {
name device
x 452
y 222
}
part3 {
name controls
x 2660
y 883
}
part4 {
name keyboard
x 2385
y 1847
}
}
landscape {
width 4120
height 3477
color 0xe0e0e0
event EV_SW:0:0
dpad-rotation 3
part1 {
name landscape
x 0
y 0
}
part2 {
name device
x 532
y 1864
rotation 3s
}
part3 {
name controls
x 2506
y 2072
}
part4 {
name keyboard
x 744
y 2213
}
}
}
keyboard {
charmap qwerty2
}
network {
speed full
delay none
}
@@ -0,0 +1,12 @@
name=Galaxy_S10
vendor=Samsung Electronics Co., Inc.
description=Android OS, v9.0 (Pie) device without physical keyboard and three way navigation.
# default skin
skin=Galaxy_S10
# version of the Android platform on which this add-on is built.
api=27
# revision of the add-on
revision=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

@@ -0,0 +1,4 @@
[port-button2.png]
rotate=rotate(2)
[port-button3.png]
rotate=rotate(3)
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

@@ -0,0 +1,21 @@
hw.lcd.density = 577
hw.trackBall = no
hw.keyboard = yes
hw.dPad = no
hw.camera = yes
hw.gps = yes
hw.battery = yes
hw.accelerometer = yes
hw.sdCard = yes
hw.touchScreen = yes
hw.gsmModem = yes
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

+449
View File
@@ -0,0 +1,449 @@
parts {
portrait {
background {
image device_Port.png
}
buttons {
back {
image port-button3.png
x 686
y 3158
}
home {
image port-button2.png
x 1015
y 3139
}
soft-left {
image port-button1.png
x 1596
y 3158
}
}
}
landscape {
background {
image device_Land.png
}
buttons {
soft-left {
image land-button3.png
x 3437
y 1523
}
home {
image land-button2.png
x 3416
y 959
}
back {
image land-button1.png
x 3437
y 617
}
}
}
device {
display {
width 1440
height 2560
x 0
y 0
}
}
controls {
background {
image controls.png
}
buttons {
camera {
image button.png
x 8
y 8
}
volume-down {
image button.png
x 214
y 8
}
volume-up {
image button.png
x 419
y 8
}
power {
image button.png
x 624
y 8
}
phone-dial {
image button.png
x 8
y 273
}
phone-hangup {
image button.png
x 624
y 273
}
home {
image button.png
x 8
y 537
}
menu {
image button.png
x 214
y 537
}
back {
image button.png
x 419
y 537
}
search {
image button.png
x 624
y 537
}
dpad-left {
image arrow_left.png
x 284
y 201
}
dpad-up {
image arrow_up.png
x 8
y 678
}
dpad-down {
image arrow_down.png
x 214
y 678
}
dpad-right {
image arrow_right.png
x 450
y 216
}
dpad-select {
image select.png
x 284
y 299
}
}
}
keyboard {
background {
image keyboard.png
}
buttons {
1 {
image key-num.png
x 17
y 11
}
2 {
image key-num.png
x 149
y 11
}
3 {
image key-num.png
x 282
y 11
}
4 {
image key-num.png
x 413
y 11
}
5 {
image key-num.png
x 545
y 11
}
6 {
image key-num.png
x 677
y 11
}
7 {
image key-num.png
x 809
y 11
}
8 {
image key-num.png
x 941
y 11
}
9 {
image key-num.png
x 1072
y 11
}
0 {
image key-num.png
x 1204
y 11
}
q {
image key.png
x 17
y 78
}
w {
image key.png
x 149
y 78
}
e {
image key.png
x 281
y 78
}
r {
image key.png
x 412
y 78
}
t {
image key.png
x 544
y 78
}
y {
image key.png
x 676
y 78
}
u {
image key.png
x 808
y 78
}
i {
image key.png
x 940
y 78
}
o {
image key.png
x 1071
y 78
}
p {
image key.png
x 1201
y 78
}
a {
image key.png
x 83
y 161
}
s {
image key.png
x 215
y 161
}
d {
image key.png
x 347
y 161
}
f {
image key.png
x 479
y 161
}
g {
image key.png
x 610
y 161
}
h {
image key.png
x 742
y 161
}
j {
image key.png
x 874
y 161
}
k {
image key.png
x 1006
y 161
}
l {
image key.png
x 1138
y 161
}
CAP {
image key2.png
x 17
y 244
}
z {
image key.png
x 215
y 244
}
x {
image key.png
x 347
y 244
}
c {
image key.png
x 479
y 244
}
v {
image key.png
x 610
y 244
}
b {
image key.png
x 742
y 244
}
n {
image key.png
x 874
y 244
}
m {
image key.png
x 1006
y 244
}
DEL {
image key2.png
x 1138
y 244
}
SYM {
image key2.png
x 17
y 326
}
T {
image key.png
x 216
y 326
}
SPACE {
image spacebar.png
x 347
y 326
}
PERIOD {
image key.png
x 1006
y 326
}
NEXT {
image key2.png
x 1138
y 326
}
}
}
}
layouts {
portrait {
width 4120
height 3477
color 0xe0e0e0
event EV_SW:0:1
part1 {
name portrait
x 0
y 0
}
part3 {
name device
x 456
y 498
}
part4 {
name controls
x 2660
y 883
}
part5 {
name keyboard
x 2385
y 1847
}
}
landscape {
width 4120
height 3477
color 0xe0e0e0
event EV_SW:0:0
dpad-rotation 3
part1 {
name landscape
x 0
y 0
}
part2 {
name device
x 777
y 1854
rotation 3s
}
part3 {
name controls
x 2506
y 2072
}
part4 {
name keyboard
x 744
y 2213
}
}
}
keyboard {
charmap qwerty2
}
network {
speed full
delay none
}
@@ -0,0 +1,12 @@
name=Galaxy_S7
vendor=Samsung Electronics Co., Inc.
description=Android OS, v6.0 (Marshmallow) device without physical keyboard and three way navigation.
# default skin
skin=Galaxy_S7
# version of the Android platform on which this add-on is built.
api=9
# revision of the add-on
revision=1

Some files were not shown because too many files have changed in this diff Show More