* 打印⽇志到控制台(解决Android控制台丢失长⽇志记录)
*
* @param priority
* @param tag
* @param content
*/
public void print(int priority, String tag, String content) {
// 1. 测试控制台最多打印4062个字节,不同情况稍有出⼊(注意:这⾥是字节,不是字符!!) // 2. 字符串默认字符集编码是utf-8,它是变长编码⼀个字符⽤1~4个字节表⽰
// 3. 这⾥字符长度⼩于1000,即字节长度⼩于4000,则直接打印,避免执⾏后续流程,提⾼性能哈 if (content.length() < 1000) {
Log.println(priority, tag, content);
return;
}
// ⼀次打印的最⼤字节数
int maxByteNum = 4000;
毛诗// 字符串转字节数组
byte[] bytes = Bytes();
// 超出范围直接打印
if (maxByteNum >= bytes.length) {
Log.println(priority, tag, content);
return;
}
/
/ 分段打印计数
int count = 1;
// 在数组范围内,则循环分段
while (maxByteNum < bytes.length) {
// 按字节长度截取字符串
孙膑是怎么死的String subStr = cutStr(bytes, maxByteNum);
// 打印⽇志
String desc = String.format("分段打印(%s):%s", count++, subStr);
Log.println(priority, tag, desc);幼儿园图片卡通
// 截取出尚未打印字节数组
bytes = pyOfRange(bytes, Bytes().length, bytes.length);
/
/ 可根据需求添加⼀个次数限制,避免有超长⽇志⼀直打印
/*if (count == 10) {
当兵的要求视力多少度
怎么好怀孕break;
}*/
}
// 打印剩余部分
Log.println(priority, tag, String.format("分段打印(%s):%s", count, new String(bytes)));
开通彩铃}怎样做酱肉
/**
* 按字节长度截取字节数组为字符串
*
* @param bytes
* @param subLength
* @return
*/
public String cutStr(byte[] bytes, int subLength) {
// 边界判断
if (bytes == null || subLength < 1) {
return null;
}
// 超出范围直接返回燃气灶10大品牌
if (subLength >= bytes.length) {
return new String(bytes);
}
// 复制出定长字节数组,转为字符串
String subStr = new pyOf(bytes, subLength));