Skip to content

Commit 2823033

Browse files
committed
see 08/15 log
1 parent 947c368 commit 2823033

26 files changed

+1317
-418
lines changed

README.md

+60-12
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
***
33
为方便查找,已进行大致归类,其目录如下所示:
44
> - [App相关][app.md][AppUtils.java][app.java]
5-
> - 安装指定路径下的Apk *installApp*
5+
> - 安装App *installApp*
66
> - 卸载指定包名的App *uninstallApp*
77
> - 获取当前App信息 *getAppInfo*
88
> - 获取所有已安装App信息 *getAllAppsInfo*
@@ -12,30 +12,63 @@
1212
> - 可用来做App信息分享 *shareAppInfo*
1313
> - 判断当前App处于前台还是后台 *isApplicationBackground*
1414
15+
> - [常量相关][const.md][ConstUtils.java][const.java]
16+
> - 存储相关常量
17+
> - 时间相关常量
18+
19+
> - [转换相关][vonvert.md][ConvertUtils.java][vonvert.java]
20+
> - 每1个byte转为2个hex字符 *bytes2HexString*
21+
> - 每2个hex字符转为1个byte *hexString2Bytes*
22+
> - charArr转byteArr *chars2Bytes*
23+
> - byteArr转charArr *bytes2Chars*
24+
1525
> - [设备相关][device.md][DeviceUtils.java][device.java]
1626
> - 获取设备MAC地址 *getMacAddress*
1727
> - 获取设备厂商,如Xiaomi *getManufacturer*
1828
> - 获取设备型号,如MI2SC *getModel*
1929
20-
> - 获取设备SD卡是否可用 *isSDCardEnable*
21-
> - 获取设备SD卡路径 *getSDCardPath*
22-
2330
> - [编码解码相关][encode.md][EncodeUtils.java][encode.java]
2431
> - URL编码 *urlEncode*
2532
> - URL解码 *urlDecode*
26-
> - Base64编码 *base64Encode*
33+
> - Base64编码 *base64Encode* *base64Encode2String*
2734
> - Base64解码 *base64Decode*
2835
> - Base64URL安全编码 *base64UrlSafeEncode*
2936
> - Html编码 *htmlEncode*
3037
> - Html解码 *htmlDecode*
3138
32-
> - [加解密相关][encrypt.md][EncryptUtils.java][encrypt.java]
33-
> - MD5加密 *getMD5* *encryptMD5*
34-
> - 获取文件的MD5校验码 *getMD5File*
35-
> - SHA加密 *getSHA* *encryptSHA*
39+
> - [加密解密相关][encrypt.md][EncryptUtils.java][encrypt.java]
40+
> - MD2加密 *encryptMD2ToString* *encryptMD2*
41+
> - MD5加密 *encryptMD5ToString* *encryptMD5*
42+
> - SHA1加密 *encryptSHA1ToString* *encryptSHA1*
43+
> - SHA224加密 *encryptSHA224ToString* *encryptSHA224*
44+
> - SHA256加密 *encryptSHA256ToString* *encryptSHA256*
45+
> - SHA384加密 *encryptSHA384ToString* *encryptSHA384*
46+
> - SHA512加密 *encryptSHA512ToString* *encryptSHA512*
47+
> - 获取文件的MD5校验码 *encryptMD5File2String* *encryptMD5File*
48+
> - DES加密后转为Base64编码 *encryptDES2Base64*
49+
> - DES加密后转为16进制 *encryptDES2HexString*
50+
> - DES加密 *encryptDES*
51+
> - DES解密Base64编码密文 *decryptBase64DES*
52+
> - DES解密16进制密文 *decryptHexStringDES*
53+
> - DES解密 *decryptDES*
54+
> - 3DES加密后转为Base64编码 *encrypt3DES2Base64*
55+
> - 3DES加密后转为16进制 *encrypt3DES2HexString*
56+
> - 3DES加密 *encrypt3DES*
57+
> - 3DES解密Base64编码密文 *decryptBase64_3DES*
58+
> - 3DES解密16进制密文 *decryptHexString3DES*
59+
> - 3DES解密 *decrypt3DES*
60+
> - AES加密后转为Base64编码 *encryptAES2Base64*
61+
> - AES加密后转为16进制 *encryptAES2HexString*
62+
> - AES加密 *encryptAES*
63+
> - AES解密Base64编码密文 *decryptBase64AES*
64+
> - AES解密16进制密文 *decryptHexStringAES*
65+
> - AES解密 *decryptAES*
3666
3767
> - [文件相关][file.md][FileUtils.java][file.java]
38-
> - 这几天完善ing
68+
> - 完善ing
69+
70+
> - [图片相关][image.md][ImageUtils.java][image.java]
71+
> - 完善ing
3972
4073
> - [键盘相关][keyboard.md][KeyboardUtils.java][keyboard.java]
4174
> - 避免输入法面板遮挡
@@ -56,7 +89,7 @@
5689
5790
> - [手机相关][phone.md][PhoneUtils.java][phone.java]
5891
> - 判断设备是否是手机 *isPhone*
59-
> - 获取手机的IMIE *getDeviceIMEI*
92+
> - 获取手机的IMIE *getPhoneIMEI*
6093
> - 获取手机状态信息 *getPhoneStatus*
6194
> - 跳至填充好phoneNumber的拨号界面 *dial*
6295
> - 拨打phoneNumber *call*
@@ -70,7 +103,7 @@
70103
71104
> - [屏幕相关][screen.md][ScreenUtils.java][screen.java]
72105
> - 获取手机分辨率 *getDeviceWidth**getDeviceHeight*
73-
> - 设置透明状态栏(api >= 19方可使用) *setTransparentStatusBar*
106+
> - 设置透明状态栏(api大于19方可使用) *setTransparentStatusBar*
74107
> - 隐藏状态栏(注释萌萌哒) *hideStatusBar*
75108
> - 获取状态栏高度 *getStatusBarHeight*
76109
> - 判断状态栏是否存在 *isStatusBarExists*
@@ -81,6 +114,11 @@
81114
> - 获取屏幕截图 *snapShotWithStatusBar**snapShotWithoutStatusBar*
82115
> - 判断是否锁屏 *isScreenLock*
83116
117+
> - [SD卡相关][sdcard.md][SDCardUtils.java][sdcard.java]
118+
> - 获取设备SD卡是否可用 *isSDCardEnable*
119+
> - 获取设备SD卡路径 *getSDCardPath*
120+
> - 完善ing
121+
84122
> - [Shell相关][shell.md][ShellUtils.java][shell.java]
85123
> - 判断设备是否root *isRoot*
86124
> - 是否是在root下执行命令 *execCmd*
@@ -160,12 +198,20 @@ limitations under the License.
160198

161199
[app.md]: https://github.com/Blankj/AndroidUtilCode/blob/master/md/about_app.md
162200
[app.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/AppUtils.java
201+
[const.md]: https://github.com/Blankj/AndroidUtilCode/blob/master/md/about_const.md
202+
[const.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/ConstUtils.java
203+
[convert.md]: https://github.com/Blankj/AndroidUtilCode/blob/master/md/about_convert.md
204+
[convert.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/ConvertUtils.java
163205
[device.md]: https://github.com/Blankj/AndroidUtilCode/blob/master/md/about_device.md
164206
[device.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/DeviceUtils.java
165207
[encode.md]: https://github.com/Blankj/AndroidUtilCode/blob/master/md/about_encode.md
166208
[encode.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/EncodeUtils.java
167209
[encrypt.md]: https://github.com/Blankj/AndroidUtilCode/blob/master/md/about_encrypt.md
168210
[encrypt.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/EncryptUtils.java
211+
[file.md]: https://github.com/Blankj/AndroidUtilCode/blob/master/md/about_file.md
212+
[file.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/FileUtils.java
213+
[image.md]: https://github.com/Blankj/AndroidUtilCode/blob/master/md/about_image.md
214+
[image.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/ImageUtils.java
169215
[keyboard.md]: https://github.com/Blankj/AndroidUtilCode/blob/master/md/about_keyboard.md
170216
[keyboard.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/KeyboardUtils.java
171217
[network.md]: https://github.com/Blankj/AndroidUtilCode/blob/master/md/about_network.md
@@ -176,6 +222,8 @@ limitations under the License.
176222
[regular.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/RegularUtils.java
177223
[screen.md]: https://github.com/Blankj/AndroidUtilCode/blob/master/md/about_screen.md
178224
[screen.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/ScreenUtils.java
225+
[sdcard.md]: https://github.com/Blankj/AndroidUtilCode/blob/master/md/about_sdcard.md
226+
[sdcard.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/SDCUtils.java
179227
[shell.md]: https://github.com/Blankj/AndroidUtilCode/blob/master/md/about_shell.md
180228
[shell.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/ShellUtils.java
181229
[size.md]: https://github.com/Blankj/AndroidUtilCode/blob/master/md/about_size.md

md/about_const.md

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# 常量相关
2+
``` java
3+
/**
4+
* <pre>
5+
* author: Blankj
6+
* blog : http://blankj.com
7+
* time : 2016/8/11
8+
* desc : 常量相关工具类
9+
* </pre>
10+
*/
11+
public class ConstUtils {
12+
13+
private ConstUtils() {
14+
throw new UnsupportedOperationException("u can't fuck me...");
15+
}
16+
17+
/******************** 存储相关常量 ********************/
18+
/**
19+
* Byte与Byte的倍数
20+
*/
21+
public static final long BYTE = 1;
22+
/**
23+
* KB与Byte的倍数
24+
*/
25+
public static final long KB = 1024;
26+
/**
27+
* MB与Byte的倍数
28+
*/
29+
public static final long MB = 1048576;
30+
/**
31+
* GB与Byte的倍数
32+
*/
33+
public static final long GB = 1073741824;
34+
35+
/******************** 时间相关常量 ********************/
36+
/**
37+
* 毫秒与毫秒的倍数
38+
*/
39+
public static final int MSEC = 1;
40+
/**
41+
* 秒与毫秒的倍数
42+
*/
43+
public static final int SEC = 1000;
44+
/**
45+
* 分与毫秒的倍数
46+
*/
47+
public static final int MIN = 60000;
48+
/**
49+
* 时与毫秒的倍数
50+
*/
51+
public static final int HOUR = 3600000;
52+
/**
53+
* 天与毫秒的倍数
54+
*/
55+
public static final int DAY = 86400000;
56+
}
57+
```

md/about_convert.md

+99
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# 转换相关
2+
``` java
3+
/**
4+
* <pre>
5+
* author: Blankj
6+
* blog : http://blankj.com
7+
* time : 2016/8/13
8+
* desc : 转换相关工具类
9+
* </pre>
10+
*/
11+
public class ConvertUtils {
12+
13+
static final char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
14+
15+
/**
16+
* 每1个byte转为2个hex字符
17+
* <p>例如:</p>
18+
* bytes2HexString(new byte[] { 0, (byte) 0xa8 }) returns 00A8
19+
*
20+
* @param src byte数组
21+
* @return 16进制大写字符串
22+
*/
23+
public static String bytes2HexString(byte[] src) {
24+
char[] res = new char[src.length << 1];
25+
for (int i = 0, j = 0; i < src.length; i++) {
26+
res[j++] = hexDigits[src[i] >>> 4 & 0x0f];
27+
res[j++] = hexDigits[src[i] & 0x0f];
28+
}
29+
return new String(res);
30+
}
31+
32+
/**
33+
* 每2个hex字符转为1个byte
34+
* <p>例如:</p>
35+
* hexString2Bytes("00A8") returns { 0, (byte) 0xA8 }
36+
*
37+
* @param hexString 十六进制字符串
38+
* @return byte数组
39+
*/
40+
public static byte[] hexString2Bytes(String hexString) {
41+
int len = hexString.length();
42+
if (len % 2 != 0) {
43+
throw new IllegalArgumentException("长度不是偶数");
44+
}
45+
char[] hexBytes = hexString.toUpperCase().toCharArray();
46+
byte[] res = new byte[len >>> 1];
47+
for (int i = 0; i < len; i += 2) {
48+
res[i >> 1] = (byte) (hex2Dec(hexBytes[i]) << 4 | hex2Dec(hexBytes[i + 1]));
49+
}
50+
return res;
51+
}
52+
53+
/**
54+
* 单个hex字符转为10进制
55+
*
56+
* @param hexChar hex单个字节
57+
* @return 0..15
58+
*/
59+
private static int hex2Dec(char hexChar) {
60+
if (hexChar >= '0' && hexChar <= '9') {
61+
return hexChar - '0';
62+
} else if (hexChar >= 'A' && hexChar <= 'F') {
63+
return hexChar - 'A' + 10;
64+
} else {
65+
throw new IllegalArgumentException();
66+
}
67+
}
68+
69+
/**
70+
* charArr转byteArr
71+
*
72+
* @param chars 待转的char数组
73+
* @return byte数组
74+
*/
75+
public static byte[] chars2Bytes(char[] chars) {
76+
int len = chars.length;
77+
byte[] bytes = new byte[len];
78+
for (int i = 0; i < len; i++) {
79+
bytes[i] = (byte) (chars[i]);
80+
}
81+
return bytes;
82+
}
83+
84+
/**
85+
* byteArr转charArr
86+
*
87+
* @param bytes 待转的byte数组
88+
* @return char数组
89+
*/
90+
public static char[] bytes2Chars(byte[] bytes) {
91+
int len = bytes.length;
92+
char[] chars = new char[len];
93+
for (int i = 0; i < len; i++) {
94+
chars[i] = (char) (bytes[i] & 0xff);
95+
}
96+
return chars;
97+
}
98+
}
99+
```

md/about_device.md

+9-3
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,20 @@ public class DeviceUtils {
4848
*/
4949
public static String getMacAddress() {
5050
String macAddress = null;
51+
LineNumberReader reader = null;
5152
try {
5253
Process pp = Runtime.getRuntime().exec("cat /sys/class/net/wlan0/address");
5354
InputStreamReader ir = new InputStreamReader(pp.getInputStream());
54-
LineNumberReader reader = new LineNumberReader(ir);
55+
reader = new LineNumberReader(ir);
5556
macAddress = reader.readLine().replace(":", "");
5657
} catch (IOException ex) {
5758
ex.printStackTrace();
59+
} finally {
60+
try {
61+
if (reader != null) reader.close();
62+
} catch (IOException e) {
63+
e.printStackTrace();
64+
}
5865
}
5966
return macAddress == null ? "" : macAddress;
6067
}
@@ -65,8 +72,7 @@ public class DeviceUtils {
6572
* @return 设备厂商
6673
*/
6774
public static String getManufacturer() {
68-
String MANUFACTURER = Build.MANUFACTURER;
69-
return MANUFACTURER;
75+
return Build.MANUFACTURER;
7076
}
7177

7278
/**

md/about_encode.md

+27-7
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public class EncodeUtils {
8282
* @param input 要编码的字符串
8383
* @return Base64编码后的字符串
8484
*/
85-
public static String base64Encode(String input) {
85+
public static byte[] base64Encode(String input) {
8686
return base64Encode(input.getBytes());
8787
}
8888

@@ -92,8 +92,28 @@ public class EncodeUtils {
9292
* @param input 要编码的字节数组
9393
* @return Base64编码后的字符串
9494
*/
95-
public static String base64Encode(byte[] input) {
96-
return Base64.encodeToString(input, Base64.DEFAULT);
95+
public static byte[] base64Encode(byte[] input) {
96+
return Base64.encode(input, Base64.NO_WRAP);
97+
}
98+
99+
/**
100+
* Base64编码
101+
*
102+
* @param input 要编码的字节数组
103+
* @return Base64编码后的字符串
104+
*/
105+
public static String base64Encode2String(byte[] input) {
106+
return Base64.encodeToString(input, Base64.NO_WRAP);
107+
}
108+
109+
/**
110+
* Base64解码
111+
*
112+
* @param input 要解码的字符串
113+
* @return Base64解码后的字符串
114+
*/
115+
public static byte[] base64Decode(String input) {
116+
return Base64.decode(input, Base64.NO_WRAP);
97117
}
98118

99119
/**
@@ -102,8 +122,8 @@ public class EncodeUtils {
102122
* @param input 要解码的字符串
103123
* @return Base64解码后的字符串
104124
*/
105-
public static String base64Decode(String input) {
106-
return new String(Base64.decode(input, Base64.DEFAULT));
125+
public static byte[] base64Decode(byte[] input) {
126+
return Base64.decode(input, Base64.NO_WRAP);
107127
}
108128

109129
/**
@@ -113,8 +133,8 @@ public class EncodeUtils {
113133
* @param input 要Base64URL安全编码的字符串
114134
* @return Base64URL安全编码后的字符串
115135
*/
116-
public static String base64UrlSafeEncode(String input) {
117-
return Base64.encodeToString(input.getBytes(), Base64.URL_SAFE);
136+
public static byte[] base64UrlSafeEncode(String input) {
137+
return Base64.encode(input.getBytes(), Base64.URL_SAFE);
118138
}
119139

120140
/**

0 commit comments

Comments
 (0)