我一直在读一些关于Gradle作为Android应用程序的标准构建系统的新采用的文章.嗯,来自标准Java开发的我通常依赖jar个文件来构建我的项目.不过,看起来Android也有aar个包,相当于Windows操作系统中的dll个文件,前面提到了here个:
首先,你必须意识到Android平台不允许应用级的"共享库".在"传统"编程语言平台C、C++、java中,你可以说出它,我们有这个机制运行库.(例如,Windows上的DLL、Unix上的DSO、JVM上的Jar等).然而,在Android上,你不能这样做,除非你是谷歌或手机制造商(见下面的脚注1).作为应用程序开发人员,这可能是一个基本限制.在构建时和运行时"共享"或"重用"代码是软件工程实践中非常重要的一部分.由于上述限制,这在Android上相当困难(不是不可能,只是更难).
然而,我对这个概念有些怀疑.我的意思是,开发人员什么时候应该对在其应用程序中包含aar个依赖项感兴趣?这个依赖关系是否收紧到某个SDK最低版本?
例如,在一个项目中,我访问一个COM端口,我使用NDK precompiled.so库来访问它.如果我想共享这个实用程序,我必须创建aar吗?