UserAgent解析工具调研

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依赖:

    
    nl.bitwalker
    UserAgentUtils
    1.2.4
    
    

    解析结果:Chrome/WEB_BROWSER WEBKIT ANDROID Google Inc. MOBILE。

    测试结论:类库简单,但准确度很低。

  • yauaa

    jar依赖:

    
    nl.basjes.parse.useragent
    yauaa
    5.14.1
    
    

    解析结果:Chrome Webview Blink Android 9 Xiaomi Xiaomi MIX 2S。

    测试结论:解析结果全面、准确度高,但绕不开单线程锁。

  • UASparser

    jar依赖:

    
    cz.mallat.uasparser
    uasparser
    0.6.2
    
    

    解析结果:Chrome MobileAndroid Google, Inc.。

    测试结论:jdk1.7以上版本支持,但准确度很低。

  • uap-java

    jar依赖:

    
    io.divolte.uaparser
    uap-java
    0.6.2
    
    

    解析结果:Chrome Mobile WebView Android 9 XiaoMi MIX 2S。

    测试结论:准确度高,但存在性能问题,解析慢。

结论

优点:yauaa工具类解析UserAgent获取的信息更全面,更准确;缺点:存在单线程锁的问题,容易导致线程阻塞,需要对其源码进行二次开发;改造方案:1、分段锁+多例 2、优化源码;二次开发难度不大,综合推荐使用yauaa工具。

其在线UserAgent解析体验工具:https://try.yauaa.basjes.nl/;

yauaa相关类库

常用的解析类及字段

你可能感兴趣的:(UserAgent解析工具调研)