为什么Android有自己的DateFormat类,如果Java已经有了?

时间:2016-10-29 20:40:44

标签: java android

其他类如SimpleDateFormat也是如此。 Java有一个java.text.SimpleDateFormat Android有android.icu.text.SimpleDateFormat

背后的原因是什么? Android是否添加了自己的一组功能?

我担心,因为最近我花了很多时间想知道人们如何实例化DateFormat类,如果它是一个抽象类。现在我意识到android.text.format.DateFormat是一个可以实例化的具体类,而不是java.text.DateFormat,它是一个抽象类。

1 个答案:

答案 0 :(得分:1)

CU4J是一个开源的,广泛使用的Java库集,为软件应用程序提供Unicode和全球化支持。从Android 7.0(API级别24)开始,Android公开了ICU4J API的一个子集,供app开发人员在android.icu包下使用。这些API使用设备上存在的本地化数据。因此,您可以通过不将ICU4J库编译到APK中来减少APK足迹;相反,你可以简单地在框架中调用它们。 (在这种情况下,您可能希望提供APK的多个版本,因此运行Android版本低于Android 7.0(API级别24)的用户可以下载包含ICU4J库的应用程序版本。)

Android通过android.icu包而不是com.ibm.icu公开了ICU4J API的子集。 Android框架可能会出于各种原因选择不公开ICU4J API;例如,Android不公开某些已弃用的API或ICU团队尚未声明为稳定的API。由于ICU团队将来会弃用API,Android也会将其标记为已弃用,但会继续包含它们。

Source