以前一直纠结于android studio依赖工程application和library的问题,直到某天在AOSP想同时支持AS编译和android.mk编译以后忽然意识到了一个问题,这里作一些记录,并验证过可行。android
==============================================================================app
其实无论项目里面有什么文件,关键是咱们配置时想让项目被编译成什么包。单元测试
通常咱们常会有这么两种需求:测试
一、建立一个AS的Application A项目,而后再建立一个library的model B,估计大部分的朋友都是这么作的,这也是AS默认支持的模式,没有什么大问题,可是gradle自己会把这两个项目建立在同一个目录下,这不利于分模块维护。gradle
二、若是别人事先已经建立了一个Application项目 B,在Application项目A中想把B做为Library引入也是能够的,并且我以为这种方式更好,首先B既能够是库也能够是独立的app这样才能单独去对A作单元测试和运行到设备上测试,须要的时候又能够把B做为Librry来用,作法以下:ui
//apply plugin: 'com.android.application' apply plugin: 'com.android.library'
//applicationId "com.mxnavi.mxnavibasiclib"
以后File-Project Structure选择A项目的app选项,在Dependecies中选择Model Dependency在弹出的对话框中选择B模块便可。