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