android兼容emoji显示以及检测是否支持emoji。
一、EmojiCompat库
优点:
1. 通过自动下载最新的emoji字体,或者打包emoji字体到包内,避免应用在展示最新emoji时出现无法显示的情况
2. 输入法可以检测上屏app是否支持EmojiCompat库,如果上屏app支持该功能库,输入法能够查看app是否支持特定的emoji
缺点:
1. 上屏依旧是由系统和第三方app控制
2. 只支持4.4以及以上版本,4.4以下版本也能添加该库不会造成崩溃只是功能不可用
3. 初始化时间大概需要150ms,EmojiCompat库消耗200KB内存
二、Paint.hasGlyph
优点:
1. 能够判断当前系统字体是否支持特定emoji
缺点:
1. 只支持Adnroid 6.0以及以上版本
三、PaintCompat.hasGlyph
优点:
1. 能够判断当前系统字体是否支持特定emoji
2. 兼容低版本
缺点:
1. 需要添加support-v4库25.3.0版本以上,增加包体大小
各位可以根据实际情况,选择兼容的方法,例如IM使用EmojiCompat库来适应复杂多变的信息环境更为合适,如果要过滤无法显示的emoji则使用Paint.hasGlyph,如果要兼容6.0以下则使用PaintCompat,如果不想添加support-v4,可以查看源码,只需要复制三个类就能使用PaintCompat接口了,不用添加整个库。