Tag: android-gradle

Android – 如何在Android Project中使用ThreeTenABP

我正在添加这个问题,因为我是Java和Android的新手,我搜索了几个小时试图解决这个问题。答案来自相关答案的组合,所以我想我会记录我为其他可能正在努力的人学到的东西。见答案。 对于一些背景知识,我的经验主要是PHP的Web开发和一点Ruby。我唯一的操作系统是Linux(Ubuntu Studio),我(不情愿地)在Android Studio 2.1.2中开发我的第一个Android应用程序。我的Java设置如下: >java -version > openjdk version "1.8.0_91" > OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1-b14) > OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode) First Discovery:为什么你必须使用ThreeTenABP而不是java.time,ThreeTen- Backport,甚至是Joda-Time 这是定义新标准的非常短的过程的一个非常简短的版本。所有这些包几乎都是一样的:为Java提供良好,现代的时间处理功能的库。差异很微妙但很重要。 最明显的解决方案是使用内置java.time包,因为这是处理Java中时间和日期的新标准方法。它是JSR 310的一个实现,它是基于Joda-Time库的时间处理的新标准提议。 但是,java.time在Java 8中引入了。Android版Marshmallow在Java 7上运行(“Android N”是第一个引入Java 8语言功能的版本)。因此,除非你只针对Android N Nougat及以上版本,否则你不能依赖Java 8语言功能(我实际上并不确定这是100%真实,但这是我理解它的方式)。所以,java.time是的。 下一个选项可能是Joda-Time,因为JSR 310基于Joda-Time。但是,正如ThreeTenABP自述文件所示,由于多种原因,Joda-Time不是最佳选择。 接下来是ThreeTen-Backport,它将Java 8的大部分功能(但不是全部)反向移植java.time到Java 7.这对于大多数用例来说都很好,但是,正如ThreeTenABP自述文件所示,它在Android上存在性能问题。 所以最后看似正确的选项是ThreeTenABP。 第二次发现:构建工具和依赖关系管理 由于编译程序 – 特别是使用一堆外部库的程序 – 很复杂,因此Java几乎总是使用“构建工具”来管理该过程。Make,Apache Ant,Apache Maven和Gradle都是与Java程序一起使用的构建工具(请参阅此文章进行比较)。如下所述,Gradle是Android项目的选择构建工具。 这些构建工具包括依赖项管理。Apache Maven似乎是第一个包含集中式软件包存储库的人。Maven引入了Maven Central