Skip to content

optim_for_android

Shaojin Wen edited this page Mar 29, 2024 · 3 revisions

fastjson2提供了android版本。

1. Android兼容的版本

从2.0.46开始,提供3中Android兼容版本,分别兼容Android 4/5/8,也就是对应API Level 14/21/26

  • android4兼容版本
<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.0.48.android4</version>
</dependency>
    1. android5兼容版本 这个版本和android4兼容版本基本一致,只是使用了java.nio.charset.StandardCharsets,后续将会不再升级android4兼容版本。
<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.0.48.android5</version>
</dependency>
    1. android8兼容版本 这个版本支持java.time和Optional
<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.0.48.android8</version>
</dependency>

4. 字符串构造优化

Android 34版本才引入JEP 254 CompactStrings ( https://openjdk.org/jeps/254 ) , 所以在android 33以及之前版本,构造字符串使用new String(byte[], StandardCharsets.ISO_8859_1)会很慢。

fastjson 2.0.46的Android兼容版本做了这个优化,在android上性能明显提升。

5. 首次运行优化

Android版本和服务器版本不同,Android版本对首次运行的性能有要求,fastjson2在首次运行方面做了很多优化,包括去除不必要的静态初始化,减少对反射的调用等。