fastlane-plugin-android_emulator 1.1.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 86c178eb6144d83935914e4894e047da05fee892
4
- data.tar.gz: ff043984afa562bdb230189b8a578d29ef0004ae
2
+ SHA256:
3
+ metadata.gz: beb865e27d0b2be0c355ddba749cc7097993f89bfae2804f6c99151eed0f013c
4
+ data.tar.gz: 9ec7938d8ccc8846b5b3404412105207c772d03151082286e3a82a7f6ab2f182
5
5
  SHA512:
6
- metadata.gz: 8601bbf7dacb3158cbbb03958a376ad7cb8f2fa53c6e88f284bf407f1009b8a6d2498e6b7d327c61d5d12d2a56a7b08ca2df70bf7ee910f75c744638ea03aa8e
7
- data.tar.gz: 2fc302387f8cb99ca88956013ab31f83368e531d766f15ad137c79ec2d0d0f1bf533c437ae382652aae086e9b2677af7caecf24b0f67b8cc4ae3bfefeff55059
6
+ metadata.gz: ca1b197134b7bea5b817bc47678099579d4d1eb63a7aeb559cacf3546dbdb6d66029c9f0ff474ddbc363b9f50833812408d3eeb36a08be8076cfcd59df179805
7
+ data.tar.gz: 376f98f5022bc8e3194f8a6be1064dc3f100def542cc99e94f0521f0fe7788ded3ba0653e3d30e28faa3ae361893a70d4f2d77634cc45c048e1402998bb05246
data/README.md CHANGED
@@ -16,22 +16,28 @@ Creates and starts a new Android Emulator (AVD)
16
16
 
17
17
  With additional features:
18
18
 
19
- * set location
20
- * set demo-mode (great for Screengrab 😀)
19
+ - set location
20
+ - set demo-mode (great for Screengrab 😀)
21
21
 
22
22
  ## Example
23
23
 
24
+ **Available Options:** sdk_dir, package, name, device, port, location, demo_mode, cold_boot, additional_options
25
+
24
26
  ```ruby
25
27
  android_emulator(
26
28
  location: '9.1808 48.7771',
27
29
  package: "system-images;android-24;google_apis;x86_64",
28
30
  demo_mode: true,
29
- sdk_dir: "PATH_TO_SDK"
31
+ sdk_dir: "PATH_TO_SDK",
32
+ device: "Nexus 5",
33
+ cold_boot: false,
34
+ additional_options: [
35
+ "key=value"
36
+ ]
30
37
  )
31
38
  ```
32
39
 
33
- Or you can use it with our [Android SDK Update Plugin](https://github.com/NovaTecConsulting/fastlane-plugin-android_sdk_update)
34
-
40
+ Or you can use it with our [Android SDK Update Plugin](https://github.com/NovaTecConsulting/fastlane-plugin-android_sdk_update)
35
41
 
36
42
  ```ruby
37
43
  ENV["AVD_PACKAGE"] = "system-images;android-24;google_apis;x86_64"
@@ -58,6 +64,7 @@ rake
58
64
  ```
59
65
 
60
66
  To automatically fix many of the styling issues, use
67
+
61
68
  ```
62
69
  rubocop -a
63
70
  ```
@@ -4,6 +4,15 @@ require_relative '../helper/android_emulator_helper'
4
4
  module Fastlane
5
5
  module Actions
6
6
  class AndroidEmulatorAction < Action
7
+ def self.avd_active(params, config_file)
8
+ image = params[:package].gsub(";", "/")
9
+ if File.exist?(config_file)
10
+ return File.readlines(config_file).grep(/#{image}/).size > 0
11
+ else
12
+ return false
13
+ end
14
+ end
15
+
7
16
  def self.run(params)
8
17
  sdk_dir = params[:sdk_dir]
9
18
  port = params[:port]
@@ -11,35 +20,57 @@ module Fastlane
11
20
 
12
21
  UI.message("Stopping emulator")
13
22
  system("#{adb} emu kill > /dev/null 2>&1 &")
14
- sleep(2)
15
-
16
- UI.message("Creating new emulator")
17
- FastlaneCore::CommandExecutor.execute(
18
- command: "#{sdk_dir}/tools/bin/avdmanager create avd -n '#{params[:name]}' -f -k '#{params[:package]}' -d '#{params[:device]}'",
19
- print_all: true,
20
- print_command: false
21
- )
22
-
23
- UI.message("Override configuration")
24
- open("#{Dir.home}/.android/avd/#{params[:name]}.avd/config.ini", 'a') { |f|
25
- f << "hw.gpu.mode=auto\n"
26
- f << "hw.gpu.enabled=yes\n"
27
- f << "skin.dynamic=yes\n"
28
- f << "skin.name=1080x1920\n"
29
- }
23
+ sleep(3)
24
+
25
+ config_file = "#{Dir.home}/.android/avd/#{params[:name]}.avd/config.ini"
26
+
27
+ if !avd_active(params, config_file) || params[:cold_boot]
28
+ UI.message("Creating new emulator")
29
+ FastlaneCore::CommandExecutor.execute(
30
+ command: "#{sdk_dir}/cmdline-tools/latest/bin/avdmanager create avd -n '#{params[:name]}' -f -k '#{params[:package]}' -d '#{params[:device]}'",
31
+ print_all: true,
32
+ print_command: true
33
+ )
34
+
35
+ configuration = {}
36
+ File.readlines(config_file).each do |definition|
37
+ key, value = definition.split("=")
38
+ configuration[key.strip] = value.strip
39
+ end
40
+
41
+ UI.message("Override configuration")
42
+ additional = {
43
+ "hw.gpu.mode" => "auto",
44
+ "hw.gpu.enabled" => "yes",
45
+ "skin.dynamic" => "yes",
46
+ "skin.name" => "1080x1920"
47
+ }
48
+
49
+ if params[:additional_options]
50
+ params[:additional_options].each do |option|
51
+ key, value = option.split("=")
52
+ additional[key.strip] = value.strip
53
+ end
54
+ end
55
+
56
+ configuration = configuration.merge(additional)
57
+ open(config_file, 'w') do |f|
58
+ configuration.each { |key, value| f << "#{key.strip}=#{value.strip}\n" }
59
+ end
60
+ end
30
61
 
31
62
  # Verify HAXM installed on mac
32
63
  if FastlaneCore::Helper.mac?
33
64
  kextstat = Actions.sh("kextstat", log: false)
34
65
 
35
- UI.user_error! "Please install the HAXM-Extension" unless kextstat.include?("intel")
66
+ UI.important("Please install the HAXM-Extension for better performance") unless kextstat.include?("intel")
36
67
  end
37
68
 
38
69
  UI.message("Starting emulator")
39
70
  system("LC_NUMERIC=C; #{sdk_dir}/emulator/emulator @#{params[:name]} -port #{port} > /dev/null 2>&1 &")
40
71
  sh("#{adb} -e wait-for-device")
41
72
 
42
- until Actions.sh("#{adb} -e shell getprop dev.bootcomplete", log: false).strip == "1" do
73
+ until Actions.sh("#{adb} -e shell getprop dev.bootcomplete", log: false).strip == "1"
43
74
  sleep(5)
44
75
  end
45
76
 
@@ -71,7 +102,8 @@ module Fastlane
71
102
  location: "9.1808 48.7771",
72
103
  package: "system-images;android-24;google_apis;x86_64",
73
104
  demo_mode: true,
74
- sdk_dir: "PATH_TO_SDK"
105
+ sdk_dir: "PATH_TO_SDK",
106
+ additional_options: []
75
107
  )'
76
108
  ]
77
109
  end
@@ -107,13 +139,25 @@ module Fastlane
107
139
  optional: false),
108
140
  FastlaneCore::ConfigItem.new(key: :location,
109
141
  env_name: "AVD_LOCATION",
110
- description: "Set location of the the emulator '<longitude> <latitude>'",
142
+ description: "Set location of the emulator '<longitude> <latitude>'",
111
143
  optional: true),
112
144
  FastlaneCore::ConfigItem.new(key: :demo_mode,
113
145
  env_name: "AVD_DEMO_MODE",
114
146
  description: "Set the emulator in demo mode",
115
147
  is_string: false,
116
- default_value: true)
148
+ default_value: true),
149
+ FastlaneCore::ConfigItem.new(key: :cold_boot,
150
+ env_name: "AVD_COLD_BOOT",
151
+ description: "Create a new AVD every run",
152
+ is_string: false,
153
+ default_value: false),
154
+ FastlaneCore::ConfigItem.new(key: :additional_options,
155
+ env_name: "AVD_ADDITIONAL_OPTIONS",
156
+ description: "Set additional options of the emulation",
157
+ type: Array,
158
+ is_string: false,
159
+ optional: true)
160
+
117
161
  ]
118
162
  end
119
163
 
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module AndroidEmulator
3
- VERSION = "1.1.0"
3
+ VERSION = "1.2.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-android_emulator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Ruhl
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-18 00:00:00.000000000 Z
11
+ date: 2022-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -136,7 +136,7 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: 2.78.0
139
- description:
139
+ description:
140
140
  email: michael.ruhl@novatec-gmbh.de
141
141
  executables: []
142
142
  extensions: []
@@ -152,7 +152,7 @@ homepage: https://github.com/NovaTecConsulting/fastlane-plugin-android_emulator
152
152
  licenses:
153
153
  - MIT
154
154
  metadata: {}
155
- post_install_message:
155
+ post_install_message:
156
156
  rdoc_options: []
157
157
  require_paths:
158
158
  - lib
@@ -167,9 +167,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
167
167
  - !ruby/object:Gem::Version
168
168
  version: '0'
169
169
  requirements: []
170
- rubyforge_project:
171
- rubygems_version: 2.6.10
172
- signing_key:
170
+ rubygems_version: 3.1.2
171
+ signing_key:
173
172
  specification_version: 4
174
173
  summary: Creates and starts an Android Emulator (AVD)
175
174
  test_files: []