summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMads Ager <ager@google.com>2018-11-27 07:18:28 +0100
committerMads Ager <ager@google.com>2018-11-27 07:18:30 +0100
commit44d3900a5d8fd343e1041ae61481534353f56316 (patch)
treeb53dc391ba29dcd94edb29d059325c5dd35dde2d
parent9c7e15dfb838091487bef430d2fdb8ebc1f4414d (diff)
downloadmultidex-44d3900a5d8fd343e1041ae61481534353f56316.tar.gz
This saves 5-10ms on a JellyBean Samsung Nexus S for the check to see whether the VM supports multidex natively. On a newer Samsung S7 phone it saves 0.5 ms. Test: manually tested on old and new devices. Bug: 74259172 Change-Id: Ic05645deb5b4b990d07c726aa0fdd5f0cfa5884b
-rw-r--r--library/src/androidx/multidex/MultiDex.java13
-rw-r--r--version.gradle2
2 files changed, 8 insertions, 7 deletions
diff --git a/library/src/androidx/multidex/MultiDex.java b/library/src/androidx/multidex/MultiDex.java
index 30cb886..c038709 100644
--- a/library/src/androidx/multidex/MultiDex.java
+++ b/library/src/androidx/multidex/MultiDex.java
@@ -38,8 +38,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.ListIterator;
import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import java.util.StringTokenizer;
import java.util.zip.ZipFile;
/**
@@ -334,11 +333,13 @@ public final class MultiDex {
static boolean isVMMultidexCapable(String versionString) {
boolean isMultidexCapable = false;
if (versionString != null) {
- Matcher matcher = Pattern.compile("(\\d+)\\.(\\d+)(\\.\\d+)?").matcher(versionString);
- if (matcher.matches()) {
+ StringTokenizer tokenizer = new StringTokenizer(versionString, ".");
+ String majorToken = tokenizer.hasMoreTokens() ? tokenizer.nextToken() : null;
+ String minorToken = tokenizer.hasMoreTokens() ? tokenizer.nextToken() : null;
+ if (majorToken != null && minorToken != null) {
try {
- int major = Integer.parseInt(matcher.group(1));
- int minor = Integer.parseInt(matcher.group(2));
+ int major = Integer.parseInt(majorToken);
+ int minor = Integer.parseInt(minorToken);
isMultidexCapable = (major > VM_WITH_MULTIDEX_VERSION_MAJOR)
|| ((major == VM_WITH_MULTIDEX_VERSION_MAJOR)
&& (minor >= VM_WITH_MULTIDEX_VERSION_MINOR));
diff --git a/version.gradle b/version.gradle
index 85e088f..dd05783 100644
--- a/version.gradle
+++ b/version.gradle
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-ext.multidexVersion = '2.0.0'
+ext.multidexVersion = '2.0.1'