Android Archive Library (aar) vs standard jar
我一直在阅读一些关于新采用Gradle作为Android应用程序的标准构建系统的文章。好吧,来自标准的Java开发,我通常依靠jar文件来构建我的项目。然而,Android似乎也有aar软件包,这些软件包相当于Windows操作系统中的dll文件,如下所述:
首先,您必须意识到Android平台不允许应用程序级“共享库”。在“传统”编程语言平台中,C、C++、Java,你的名字,我们都有这种共享运行时库的机制。(例如,Windows上的DLL,Unix上的DSO,JVM上的Jar等)。但是,在Android上,除非您是Google或手机制造商,否则您无法执行此操作(请参阅下面的脚注1)。作为应用程序开发人员,这可能是一个根本性的限制。在构建时和运行时“共享”或“重用”代码是软件工程实践中非常重要的一部分。由于上述限制,这在Android上相当困难(不是不可能,只是更难)。
但是,我对这个概念有一些疑问。我的意思是,开发人员什么时候应该有兴趣在其应用程序中包含aar依赖项?此依赖项是否已收紧到某些 SDK 最低版本?
例如,在一个项目中,我访问一个 COM 端口,我使用 NDK 预编译的 .so 库。如果我想共享此实用程序,是否必须创建 aar?