平时写一些Demo玩的时候经常会用到重复的操作,比如打印Log,而Android原生的Log每次使用都要加上tag:
Log.e(String tag, String msg);
而我习惯将tag全都写成"yjx"便于我在一个Logcat过滤器中查看所有我打的Log,即:
Log.e("yjx", "Hello");
这样我每次打Log都要写从、懒惰如我,像这种重复代码都不想写?于是我自己写了一个Log库(LogUtils),简化了打印Log的API:
package com.jx.logutils;
public class Log {
public Log() {}
public static void e(String msg) {
if(msg != null && msg.length() > 0) {
android.util.Log.e("yjx", msg);
}
}
}
这里我默认Log的tag全是“yjx”,这样在查看Log的时候我就可以只用一个tag(“yjx”)来观察所有日志了,而不用每次打Log的时候都要写一个:
Log.e("yjx", "msg");
而是:
Log.e("msg");
当然,这个库极其简单,只不过几行代码,只是我用来偷懒用的。
那么问题来了,如果我在别的项目中也想使用这个库,不可能每次使用都要重新撸一遍吧,那怎么在别的项目中是使用这个库呢?
第一步: 将aar文件拷贝到libs目录(将工程样式改为Project即可看到libs目录)
第二步: 修改build.gradle 配置文件
repositories {
flatDir {
dirs 'libs' // 声明添加libs文件夹为库
}
}
dependencies {
compile(name:'logutils', ext:'aar') // 添加logutils.aar库为倚赖
}
修改后的build.gradle :
第三步: 点击编译按钮重新编译
OK!
效果如下,输入Log代码提示中就出现了我们的LogUtils库中的Log类:
好啦,大功告成!
另外:
Q1:怎么查看导入成功的aar库中的文件?
A1: build -> intermediates -> exploded-aar -> logutils -> jars -> classes.jar
代码都在这个jar包里呢。
Q2:本地jar包怎么导入呢?
A2:这个就更简单了,直接将jar包拷贝到libs目录,然后重新编译即可。
之所以这么简单是因为我们的Android工程app Moudle的build.gradle配置文件中默认给我们配置好了:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
}
为啥不对aar这么好?
网友评论