我一直在阅读一些关于 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?