很多东西长时间不用,再用的时候又忘记了。今天工作中需要把自己开发的库做成远程依赖给客户调用。上午整理了一下,写了一篇博客,就是上篇 Android 上传自己的依赖库让别人使用(github),之后觉得干脆把生成jar 和 arr 的方法,和给别人用的方法也写一下,虽然很简单,但是最近不忙,写一下练练手。
1.首先我们要创建一个Project(这点就不演示了),然后我们创建Moudle,然后我们可以在创建的这个Android Library里面创建一个工具类。怎么创建一个Project和Model我这里就不介绍了,不会的看我上篇博客或者百度。
先写一个工具类,然后自己测试一下工具类有没有问题。我的工具类里面写了两个方法,一个是只有java代码的,一个是用到了资源文件的。jar包里面只能是java代码,不能引用资源。arr包中既可以有java,也可以有引用资源。
然后点击 Build -> Rebuild Project.
(1)得到jar包。
在lib的moudle中,build->intermediates->bundles->classes.jar,复制出来,修改名字,我这里改成myjar.jar.
(2)得到arr包。
在lib的moudle中,build->outputs->aar->*****.aar,复制出来,修改名字,我这里改成 tlibrary.aar.
2.使用jar包和arr包。
(1)使用jar包。
将jar包放到自己项目中app moudel 中的lib下,在app moudel 的 build.gradle中dependencies中添加implementation files('libs/myjar.jar')
dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation files('libs/myjar.jar') }然后就可以使用了。使用的时候两个方法,只有java代码的方法可以使用,有java代码和资源的不能使用。
(2)使用arr包。
将arr包放到自己项目中app moudel 中的lib下,在app moudel 的 build.gradle中做如图修改。
apply plugin: 'com.android.application' android { compileSdkVersion 27 defaultConfig { applicationId "com.fyamei.app.myapplication" minSdkVersion 16 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } repositories { flatDir { dirs 'libs' } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' compile(name:'tlibrary', ext:'aar') }然后就可以使用了。使用的时候工具类里的两个方法都可以使用。
但是如果在arr中封装的有.so,需要把.so文件放到jniLibs文件夹里面。
如果在arr有远程依赖,在使用的时候要在app moudel 的 build.gradle中把远程依赖加上。
其实觉得这样挺不方便的,不如直接把代码放在github上面,然后给一个远程依赖的连接,别人用的时候可以远程依赖。不会用的可以看我的上一篇博客 Android 上传自己的依赖库让别人使用(github)