UserAgent可以获取的信息
browserType AgentName
代理名称-浏览器类型
browserCore LayoutEngineName
布局引擎名称 -浏览器核心
osVersion OperatingSystemNameVersion
系统版本
deviceTrademark DeviceBrand
设备品牌 制造商
equipmentModel DeviceName
设备型号
测试UserAgent示例
Mozilla/5.0 (Linux; Android 9; MIX 2S Build/PKQ1.180729.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/72.0.3626.121 Mobile Safari/537.36 Shengbei/7.4.0 ShengID/c5a521fb890c0abd
java类UserAgent解析工具类评估
-
user-agent-utils
jar依赖:<dependency> <groupId>nl.bitwalker</groupId> <artifactId>UserAgentUtils</artifactId> <version>1.2.4</version> </dependency>
解析结果:Chrome/WEB_BROWSER WEBKIT ANDROID Google Inc. MOBILE。
测试结论:类库简单,但准确度很低。
-
yauaa
jar依赖:
<dependency> <groupId>nl.basjes.parse.useragent</groupId> <artifactId>yauaa</artifactId> <version>5.14.1</version> </dependency>
解析结果:Chrome Webview Blink Android 9 Xiaomi Xiaomi MIX 2S。
测试结论:解析结果全面、准确度高,但绕不开单线程锁。
-
UASparser
jar依赖:
<dependency> <groupId>cz.mallat.uasparser</groupId> <artifactId>uasparser</artifactId> <version>0.6.2</version> </dependency>
解析结果:Chrome MobileAndroid Google, Inc.。
测试结论:jdk1.7以上版本支持,但准确度很低。
-
uap-java
jar依赖:
<dependency> <groupId>io.divolte.uaparser</groupId> <artifactId>uap-java</artifactId> <version>0.6.2</version> </dependency>
解析结果:Chrome Mobile WebView Android 9 XiaoMi MIX 2S。
测试结论:准确度高,但存在性能问题,解析慢。
结论
优点:yauaa工具类解析UserAgent获取的信息更全面,更准确;缺点:存在单线程锁的问题,容易导致线程阻塞,需要对其源码进行二次开发;改造方案:1、分段锁+多例 2、优化源码;二次开发难度不大,综合推荐使用yauaa工具。
其在线UserAgent解析体验工具:https://try.yauaa.basjes.nl/;