Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
mmm-rain
AndroidUtilCode
提交
7b4c8354
A
AndroidUtilCode
项目概览
mmm-rain
/
AndroidUtilCode
与 Fork 源项目一致
从无法访问的项目Fork
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
AndroidUtilCode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7b4c8354
编写于
4月 20, 2018
作者:
B
Blankj
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
see 04/20 log
上级
077e24ec
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
259 addition
and
56 deletion
+259
-56
app/src/main/AndroidManifest.xml
app/src/main/AndroidManifest.xml
+0
-11
app/src/main/java/com/blankj/androidutilcode/UtilsApp.java
app/src/main/java/com/blankj/androidutilcode/UtilsApp.java
+2
-1
app/src/main/java/com/blankj/androidutilcode/feature/core/app/AppActivity.java
.../blankj/androidutilcode/feature/core/app/AppActivity.java
+1
-4
app/src/main/res_core/xml/provider_paths.xml
app/src/main/res_core/xml/provider_paths.xml
+0
-6
update_log.md
update_log.md
+1
-0
utilcode/README-CN.md
utilcode/README-CN.md
+30
-27
utilcode/README.md
utilcode/README.md
+3
-0
utilcode/src/main/AndroidManifest.xml
utilcode/src/main/AndroidManifest.xml
+10
-0
utilcode/src/main/java/com/blankj/utilcode/util/AppUtils.java
...code/src/main/java/com/blankj/utilcode/util/AppUtils.java
+60
-0
utilcode/src/main/java/com/blankj/utilcode/util/CrashUtils.java
...de/src/main/java/com/blankj/utilcode/util/CrashUtils.java
+1
-1
utilcode/src/main/java/com/blankj/utilcode/util/IntentUtils.java
...e/src/main/java/com/blankj/utilcode/util/IntentUtils.java
+98
-1
utilcode/src/main/java/com/blankj/utilcode/util/LogUtils.java
...code/src/main/java/com/blankj/utilcode/util/LogUtils.java
+27
-5
utilcode/src/main/res/xml/provider_paths.xml
utilcode/src/main/res/xml/provider_paths.xml
+26
-0
未找到文件。
app/src/main/AndroidManifest.xml
浏览文件 @
7b4c8354
...
...
@@ -165,17 +165,6 @@
android:name=
".feature.core.toast.ToastActivity"
android:launchMode=
"singleTop"
/>
<provider
android:name=
"android.support.v4.content.FileProvider"
android:authorities=
"com.blankj.androidutilcode.provider"
android:exported=
"false"
android:grantUriPermissions=
"true"
>
<meta-data
android:name=
"android.support.FILE_PROVIDER_PATHS"
android:resource=
"@xml/provider_paths"
/>
</provider>
<!--sub-->
<activity
android:name=
".feature.sub.SubUtilActivity"
...
...
app/src/main/java/com/blankj/androidutilcode/UtilsApp.java
浏览文件 @
7b4c8354
...
...
@@ -61,7 +61,8 @@ public class UtilsApp extends BaseApplication {
.
setSingleTagSwitch
(
true
)
// 一条日志仅输出一条,默认开,为美化 AS 3.1 的 Logcat
.
setConsoleFilter
(
LogUtils
.
V
)
// log 的控制台过滤器,和 logcat 过滤器同理,默认 Verbose
.
setFileFilter
(
LogUtils
.
V
)
// log 文件过滤器,和 logcat 过滤器同理,默认 Verbose
.
setStackDeep
(
1
);
// log 栈深度,默认为 1
.
setStackDeep
(
1
)
// log 栈深度,默认为 1
.
setStackOffset
(
0
);
// 设置栈偏移,比如二次封装的话就需要设置,默认为 0
LogUtils
.
d
(
config
.
toString
());
}
...
...
app/src/main/java/com/blankj/androidutilcode/feature/core/app/AppActivity.java
浏览文件 @
7b4c8354
...
...
@@ -89,10 +89,7 @@ public class AppActivity extends BaseBackActivity {
AssertHelper
.
releaseInstallApk
(
new
AssertHelper
.
OnReleasedListener
()
{
@Override
public
void
onReleased
()
{
AppUtils
.
installApp
(
Config
.
TEST_APK_PATH
,
"com.blankj.androidutilcode.provider"
);
AppUtils
.
installApp
(
Config
.
TEST_APK_PATH
);
}
});
}
...
...
app/src/main/res_core/xml/provider_paths.xml
已删除
100644 → 0
浏览文件 @
077e24ec
<?xml version="1.0" encoding="utf-8"?>
<paths
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<external-path
name=
"my_external_path"
path=
"."
/>
</paths>
\ No newline at end of file
update_log.md
浏览文件 @
7b4c8354
*
18/04/22 新增 LogUtils#,发布 1.13.15 版本
*
18/04/21 新增 AppUtils#relaunchApp、DeviceUtils#getABIs,发布 1.13.15 版本
*
18/04/20 新增 BarUtils#setNavBarColor、BarUtils#getNavBarColor
*
18/04/19 新增 Process#isMainProcess、Process#getCurrentProcessName,发布 1.13.14 版本
...
...
utilcode/README-CN.md
浏览文件 @
7b4c8354
...
...
@@ -341,33 +341,36 @@ clickBlankArea2HideSoftInput : 点击屏幕空白区域隐藏软键盘
*
### 日志相关 ->
[
LogUtils.java
][
log.java
]
->
[
Demo
][
log.demo
]
```
getConfig : 获取 log 配置
Config.setLogSwitch : 设置 log 总开关
Config.setConsoleSwitch : 设置 log 控制台开关
Config.setGlobalTag : 设置 log 全局 tag
Config.setLogHeadSwitch : 设置 log 头部信息开关
Config.setLog2FileSwitch: 设置 log 文件开关
Config.setDir : 设置 log 文件存储目录
Config.setFilePrefix : 设置 log 文件前缀
Config.setBorderSwitch : 设置 log 边框开关
Config.setConsoleFilter : 设置 log 控制台过滤器
Config.setFileFilter : 设置 log 文件过滤器
Config.setStackDeep : 设置 log 栈深度
v : tag 为类名的 Verbose 日志
vTag : 自定义 tag 的 Verbose 日志
d : tag 为类名的 Debug 日志
dTag : 自定义 tag 的 Debug 日志
i : tag 为类名的 Info 日志
iTag : 自定义 tag 的 Info 日志
w : tag 为类名的 Warn 日志
wTag : 自定义 tag 的 Warn 日志
e : tag 为类名的 Error 日志
eTag : 自定义 tag 的 Error 日志
a : tag 为类名的 Assert 日志
aTag : 自定义 tag 的 Assert 日志
file : log 到文件
json : log 字符串之 json
xml : log 字符串之 xml
getConfig : 获取 log 配置
Config.setLogSwitch : 设置 log 总开关
Config.setConsoleSwitch : 设置 log 控制台开关
Config.setGlobalTag : 设置 log 全局 tag
Config.setLogHeadSwitch : 设置 log 头部信息开关
Config.setLog2FileSwitch : 设置 log 文件开关
Config.setDir : 设置 log 文件存储目录
Config.setFilePrefix : 设置 log 文件前缀
Config.setBorderSwitch : 设置 log 边框开关
Config.setSingleTagSwitch: 设置 log 单一 tag 开关(为美化 AS 3.1 的 Logcat)
Config.setConsoleFilter : 设置 log 控制台过滤器
Config.setFileFilter : 设置 log 文件过滤器
Config.setStackDeep : 设置 log 栈深度
Config.setStackOffset : 设置 log 栈偏移
log : 自定义 tag 的 type 日志
v : tag 为类名的 Verbose 日志
vTag : 自定义 tag 的 Verbose 日志
d : tag 为类名的 Debug 日志
dTag : 自定义 tag 的 Debug 日志
i : tag 为类名的 Info 日志
iTag : 自定义 tag 的 Info 日志
w : tag 为类名的 Warn 日志
wTag : 自定义 tag 的 Warn 日志
e : tag 为类名的 Error 日志
eTag : 自定义 tag 的 Error 日志
a : tag 为类名的 Assert 日志
aTag : 自定义 tag 的 Assert 日志
file : log 到文件
json : log 字符串之 json
xml : log 字符串之 xml
```
*
### 网络相关 ->
[
NetworkUtils.java
][
network.java
]
->
[
Demo
][
network.demo
]
...
...
utilcode/README.md
浏览文件 @
7b4c8354
...
...
@@ -350,9 +350,12 @@ Config.setLog2FileSwitch
Config.setDir
Config.setFilePrefix
Config.setBorderSwitch
Config.setSingleTagSwitch
Config.setConsoleFilter
Config.setFileFilter
Config.setStackDeep
Config.setStackOffset
log
v
vTag
d
...
...
utilcode/src/main/AndroidManifest.xml
浏览文件 @
7b4c8354
...
...
@@ -8,5 +8,15 @@
android:multiprocess=
"true"
android:theme=
"@style/ActivityTranslucent"
android:windowSoftInputMode=
"stateHidden|stateAlwaysHidden"
/>
<provider
android:name=
"android.support.v4.content.FileProvider"
android:authorities=
"${applicationId}.utilcode.provider"
android:exported=
"false"
android:grantUriPermissions=
"true"
>
<meta-data
android:name=
"android.support.FILE_PROVIDER_PATHS"
android:resource=
"@xml/provider_paths"
/>
</provider>
</application>
</manifest>
\ No newline at end of file
utilcode/src/main/java/com/blankj/utilcode/util/AppUtils.java
浏览文件 @
7b4c8354
...
...
@@ -33,6 +33,29 @@ public final class AppUtils {
throw
new
UnsupportedOperationException
(
"u can't instantiate me..."
);
}
/**
* Install the app.
* <p>Target APIs greater than 25 must hold
* {@code <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />}</p>
*
* @param filePath The path of file.
*/
public
static
void
installApp
(
final
String
filePath
)
{
installApp
(
getFileByPath
(
filePath
));
}
/**
* Install the app.
* <p>Target APIs greater than 25 must hold
* {@code <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />}</p>
*
* @param file The file.
*/
public
static
void
installApp
(
final
File
file
)
{
if
(!
isFileExists
(
file
))
return
;
Utils
.
getApp
().
startActivity
(
IntentUtils
.
getInstallAppIntent
(
file
,
true
));
}
/**
* Install the app.
* <p>Target APIs greater than 25 must hold
...
...
@@ -42,6 +65,7 @@ public final class AppUtils {
* @param authority Target APIs greater than 23 must hold the authority of a FileProvider
* defined in a {@code <provider>} element in your app's manifest.
*/
@Deprecated
public
static
void
installApp
(
final
String
filePath
,
final
String
authority
)
{
installApp
(
getFileByPath
(
filePath
),
authority
);
}
...
...
@@ -55,11 +79,45 @@ public final class AppUtils {
* @param authority Target APIs greater than 23 must hold the authority of a FileProvider
* defined in a {@code <provider>} element in your app's manifest.
*/
@Deprecated
public
static
void
installApp
(
final
File
file
,
final
String
authority
)
{
if
(!
isFileExists
(
file
))
return
;
Utils
.
getApp
().
startActivity
(
IntentUtils
.
getInstallAppIntent
(
file
,
authority
,
true
));
}
/**
* Install the app.
* <p>Target APIs greater than 25 must hold
* {@code <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />}</p>
*
* @param activity The activity.
* @param filePath The path of file.
* @param requestCode If >= 0, this code will be returned in
* onActivityResult() when the activity exits.
*/
public
static
void
installApp
(
final
Activity
activity
,
final
String
filePath
,
final
int
requestCode
)
{
installApp
(
activity
,
getFileByPath
(
filePath
),
requestCode
);
}
/**
* Install the app.
* <p>Target APIs greater than 25 must hold
* {@code <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />}</p>
*
* @param activity The activity.
* @param file The file.
* @param requestCode If >= 0, this code will be returned in
* onActivityResult() when the activity exits.
*/
public
static
void
installApp
(
final
Activity
activity
,
final
File
file
,
final
int
requestCode
)
{
if
(!
isFileExists
(
file
))
return
;
activity
.
startActivityForResult
(
IntentUtils
.
getInstallAppIntent
(
file
),
requestCode
);
}
/**
* Install the app.
* <p>Target APIs greater than 25 must hold
...
...
@@ -72,6 +130,7 @@ public final class AppUtils {
* @param requestCode If >= 0, this code will be returned in
* onActivityResult() when the activity exits.
*/
@Deprecated
public
static
void
installApp
(
final
Activity
activity
,
final
String
filePath
,
final
String
authority
,
...
...
@@ -91,6 +150,7 @@ public final class AppUtils {
* @param requestCode If >= 0, this code will be returned in
* onActivityResult() when the activity exits.
*/
@Deprecated
public
static
void
installApp
(
final
Activity
activity
,
final
File
file
,
final
String
authority
,
...
...
utilcode/src/main/java/com/blankj/utilcode/util/CrashUtils.java
浏览文件 @
7b4c8354
...
...
@@ -80,7 +80,7 @@ public final class CrashUtils {
final
String
time
=
FORMAT
.
format
(
new
Date
(
System
.
currentTimeMillis
()));
final
StringBuilder
sb
=
new
StringBuilder
();
final
String
head
=
"************* Log Head ****************"
+
"\nT
he time of Crash
: "
+
time
+
"\nT
ime Of Crash
: "
+
time
+
"\nDevice Manufacturer: "
+
Build
.
MANUFACTURER
+
"\nDevice Model : "
+
Build
.
MODEL
+
"\nAndroid Version : "
+
Build
.
VERSION
.
RELEASE
+
...
...
utilcode/src/main/java/com/blankj/utilcode/util/IntentUtils.java
浏览文件 @
7b4c8354
...
...
@@ -27,6 +27,68 @@ public final class IntentUtils {
throw
new
UnsupportedOperationException
(
"u can't instantiate me..."
);
}
/**
* Return the intent of install app.
* <p>Target APIs greater than 25 must hold
* {@code <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />}</p>
*
* @param filePath The path of file.
* @return the intent of install app
*/
public
static
Intent
getInstallAppIntent
(
final
String
filePath
)
{
return
getInstallAppIntent
(
getFileByPath
(
filePath
),
false
);
}
/**
* Return the intent of install app.
* <p>Target APIs greater than 25 must hold
* {@code <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />}</p>
*
* @param file The file.
* @return the intent of install app
*/
public
static
Intent
getInstallAppIntent
(
final
File
file
)
{
return
getInstallAppIntent
(
file
,
false
);
}
/**
* Return the intent of install app.
* <p>Target APIs greater than 25 must hold
* {@code <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />}</p>
*
* @param filePath The path of file.
* @param isNewTask True to add flag of new task, false otherwise.
* @return the intent of install app
*/
public
static
Intent
getInstallAppIntent
(
final
String
filePath
,
final
boolean
isNewTask
)
{
return
getInstallAppIntent
(
getFileByPath
(
filePath
),
isNewTask
);
}
/**
* Return the intent of install app.
* <p>Target APIs greater than 25 must hold
* {@code <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />}</p>
*
* @param file The file.
* @param isNewTask True to add flag of new task, false otherwise.
* @return the intent of install app
*/
public
static
Intent
getInstallAppIntent
(
final
File
file
,
final
boolean
isNewTask
)
{
if
(
file
==
null
)
return
null
;
Intent
intent
=
new
Intent
(
Intent
.
ACTION_VIEW
);
Uri
data
;
String
type
=
"application/vnd.android.package-archive"
;
if
(
Build
.
VERSION
.
SDK_INT
<
Build
.
VERSION_CODES
.
N
)
{
data
=
Uri
.
fromFile
(
file
);
}
else
{
intent
.
setFlags
(
Intent
.
FLAG_GRANT_READ_URI_PERMISSION
);
String
authority
=
Utils
.
getApp
().
getPackageName
()
+
".utilcode.provider"
;
data
=
FileProvider
.
getUriForFile
(
Utils
.
getApp
(),
authority
,
file
);
}
intent
.
setDataAndType
(
data
,
type
);
return
getIntent
(
intent
,
isNewTask
);
}
/**
* Return the intent of install app.
* <p>Target APIs greater than 25 must hold
...
...
@@ -37,8 +99,9 @@ public final class IntentUtils {
* defined in a {@code <provider>} element in your app's manifest.
* @return the intent of install app
*/
@Deprecated
public
static
Intent
getInstallAppIntent
(
final
String
filePath
,
final
String
authority
)
{
return
getInstallAppIntent
(
FileUtils
.
getFileByPath
(
filePath
),
authority
);
return
getInstallAppIntent
(
getFileByPath
(
filePath
),
authority
,
false
);
}
/**
...
...
@@ -51,10 +114,29 @@ public final class IntentUtils {
* defined in a {@code <provider>} element in your app's manifest.
* @return the intent of install app
*/
@Deprecated
public
static
Intent
getInstallAppIntent
(
final
File
file
,
final
String
authority
)
{
return
getInstallAppIntent
(
file
,
authority
,
false
);
}
/**
* Return the intent of install app.
* <p>Target APIs greater than 25 must hold
* {@code <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />}</p>
*
* @param filePath The path of file.
* @param authority Target APIs greater than 23 must hold the authority of a FileProvider
* defined in a {@code <provider>} element in your app's manifest.
* @param isNewTask True to add flag of new task, false otherwise.
* @return the intent of install app
*/
@Deprecated
public
static
Intent
getInstallAppIntent
(
final
String
filePath
,
final
String
authority
,
final
boolean
isNewTask
)
{
return
getInstallAppIntent
(
getFileByPath
(
filePath
),
authority
,
isNewTask
);
}
/**
* Return the intent of install app.
* <p>Target APIs greater than 25 must hold
...
...
@@ -66,6 +148,7 @@ public final class IntentUtils {
* @param isNewTask True to add flag of new task, false otherwise.
* @return the intent of install app
*/
@Deprecated
public
static
Intent
getInstallAppIntent
(
final
File
file
,
final
String
authority
,
final
boolean
isNewTask
)
{
...
...
@@ -451,6 +534,20 @@ public final class IntentUtils {
return
isNewTask
?
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
)
:
intent
;
}
private
static
File
getFileByPath
(
final
String
filePath
)
{
return
isSpace
(
filePath
)
?
null
:
new
File
(
filePath
);
}
private
static
boolean
isSpace
(
final
String
s
)
{
if
(
s
==
null
)
return
true
;
for
(
int
i
=
0
,
len
=
s
.
length
();
i
<
len
;
++
i
)
{
if
(!
Character
.
isWhitespace
(
s
.
charAt
(
i
)))
{
return
false
;
}
}
return
true
;
}
// /**
// * 获取选择照片的 Intent
// *
...
...
utilcode/src/main/java/com/blankj/utilcode/util/LogUtils.java
浏览文件 @
7b4c8354
...
...
@@ -191,7 +191,7 @@ public final class LogUtils {
log
(
XML
|
type
,
tag
,
content
);
}
p
rivate
static
void
log
(
final
int
type
,
final
String
tag
,
final
Object
...
contents
)
{
p
ublic
static
void
log
(
final
int
type
,
final
String
tag
,
final
Object
...
contents
)
{
if
(!
CONFIG
.
mLogSwitch
||
(!
CONFIG
.
mLog2ConsoleSwitch
&&
!
CONFIG
.
mLog2FileSwitch
))
return
;
int
type_low
=
type
&
0x0f
,
type_high
=
type
&
0xf0
;
if
(
type_low
<
CONFIG
.
mConsoleFilter
&&
type_low
<
CONFIG
.
mFileFilter
)
return
;
...
...
@@ -210,7 +210,17 @@ public final class LogUtils {
tag
=
CONFIG
.
mGlobalTag
;
}
else
{
final
StackTraceElement
[]
stackTrace
=
new
Throwable
().
getStackTrace
();
StackTraceElement
targetElement
=
stackTrace
[
3
];
final
int
stackIndex
=
3
+
CONFIG
.
mStackOffset
;
if
(
stackIndex
>=
stackTrace
.
length
)
{
StackTraceElement
targetElement
=
stackTrace
[
3
];
final
String
fileName
=
getFileName
(
targetElement
);
if
(
CONFIG
.
mTagIsSpace
&&
isSpace
(
tag
))
{
int
index
=
fileName
.
indexOf
(
'.'
);
// Use proguard may not find '.'.
tag
=
index
==
-
1
?
fileName
:
fileName
.
substring
(
0
,
index
);
}
return
new
TagHead
(
tag
,
null
,
": "
);
}
StackTraceElement
targetElement
=
stackTrace
[
stackIndex
];
final
String
fileName
=
getFileName
(
targetElement
);
if
(
CONFIG
.
mTagIsSpace
&&
isSpace
(
tag
))
{
int
index
=
fileName
.
indexOf
(
'.'
);
// Use proguard may not find '.'.
...
...
@@ -231,12 +241,15 @@ public final class LogUtils {
return
new
TagHead
(
tag
,
new
String
[]{
head
},
fileHead
);
}
else
{
final
String
[]
consoleHead
=
new
String
[
Math
.
min
(
CONFIG
.
mStackDeep
,
stackTrace
.
length
-
3
)];
new
String
[
Math
.
min
(
CONFIG
.
mStackDeep
,
stackTrace
.
length
-
stackIndex
)];
consoleHead
[
0
]
=
head
;
int
spaceLen
=
tName
.
length
()
+
2
;
String
space
=
new
Formatter
().
format
(
"%"
+
spaceLen
+
"s"
,
""
).
toString
();
for
(
int
i
=
1
,
len
=
consoleHead
.
length
;
i
<
len
;
++
i
)
{
targetElement
=
stackTrace
[
i
+
3
];
targetElement
=
stackTrace
[
i
+
stackIndex
];
consoleHead
[
i
]
=
new
Formatter
()
.
format
(
"%s%s.%s(%s:%d)"
,
space
,
...
...
@@ -502,7 +515,9 @@ public final class LogUtils {
}
catch
(
PackageManager
.
NameNotFoundException
e
)
{
e
.
printStackTrace
();
}
String
time
=
filePath
.
substring
(
filePath
.
length
()
-
9
,
filePath
.
length
()
-
4
);
final
String
head
=
"************* Log Head ****************"
+
"\nDate of Log : "
+
time
+
"\nDevice Manufacturer: "
+
Build
.
MANUFACTURER
+
"\nDevice Model : "
+
Build
.
MODEL
+
"\nAndroid Version : "
+
Build
.
VERSION
.
RELEASE
+
...
...
@@ -578,6 +593,7 @@ public final class LogUtils {
private
int
mConsoleFilter
=
V
;
// The console's filter of log.
private
int
mFileFilter
=
V
;
// The file's filter of log.
private
int
mStackDeep
=
1
;
// The stack's deep of log.
private
int
mStackOffset
=
0
;
// The stack's offset of log.
private
Config
()
{
if
(
mDefaultDir
!=
null
)
return
;
...
...
@@ -668,6 +684,11 @@ public final class LogUtils {
return
this
;
}
public
Config
setStackOffset
(
@IntRange
(
from
=
0
)
final
int
stackOffset
)
{
mStackOffset
=
stackOffset
;
return
this
;
}
@Override
public
String
toString
()
{
return
"switch: "
+
mLogSwitch
...
...
@@ -681,7 +702,8 @@ public final class LogUtils {
+
LINE_SEP
+
"singleTag: "
+
mSingleTagSwitch
+
LINE_SEP
+
"consoleFilter: "
+
T
[
mConsoleFilter
-
V
]
+
LINE_SEP
+
"fileFilter: "
+
T
[
mFileFilter
-
V
]
+
LINE_SEP
+
"stackDeep: "
+
mStackDeep
;
+
LINE_SEP
+
"stackDeep: "
+
mStackDeep
+
LINE_SEP
+
"mStackOffset: "
+
mStackOffset
;
}
}
...
...
utilcode/src/main/res/xml/provider_paths.xml
0 → 100644
浏览文件 @
7b4c8354
<?xml version="1.0" encoding="utf-8"?>
<paths>
<root-path
name=
"root"
path=
""
/>
<files-path
name=
"files_path"
path=
"."
/>
<cache-path
name=
"cache_path"
path=
"."
/>
<external-path
name=
"external_path"
path=
"."
/>
<external-files-path
name=
"external_files_path"
path=
"."
/>
<external-cache-path
name=
"external_cache_path"
path=
"."
/>
</paths>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录