Skip to content

Commit 22db243

Browse files
committed
see 03/13
1 parent 4e2bad2 commit 22db243

24 files changed

+870
-190
lines changed

utilcode/README-CN.md

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ isAppRoot : 判断 App 是否有 root 权限
5555
isAppDebug : 判断 App 是否是 Debug 版本
5656
isAppSystem : 判断 App 是否是系统应用
5757
isAppForeground : 判断 App 是否处于前台
58+
isAppRunning : 判断 App 是否运行
5859
launchApp : 打开 App
5960
relaunchApp : 重启 App
6061
launchAppDetailsSettings : 打开 App 具体设置
@@ -525,25 +526,27 @@ getMetaDataInReceiver: 获取 receiver 的 meta-data 值
525526

526527
* ### 网络相关 -> [NetworkUtils.java][network.java] -> [Demo][network.demo]
527528
```
528-
openWirelessSettings : 打开网络设置界面
529-
isConnected : 判断网络是否连接
530-
isAvailableByPing : 判断网络是否可用
531-
getMobileDataEnabled : 判断移动数据是否打开
532-
setMobileDataEnabled : 打开或关闭移动数据
533-
isMobileData : 判断网络是否是移动数据
534-
is4G : 判断网络是否是 4G
535-
getWifiEnabled : 判断 wifi 是否打开
536-
setWifiEnabled : 打开或关闭 wifi
537-
isWifiConnected : 判断 wifi 是否连接状态
538-
isWifiAvailable : 判断 wifi 数据是否可用
539-
getNetworkOperatorName: 获取移动网络运营商名称
540-
getNetworkType : 获取当前网络类型
541-
getIPAddress : 获取 IP 地址
542-
getDomainAddress : 获取域名 IP 地址
543-
getIpAddressByWifi : 根据 WiFi 获取网络 IP 地址
544-
getGatewayByWifi : 根据 WiFi 获取网关 IP 地址
545-
getNetMaskByWifi : 根据 WiFi 获取子网掩码 IP 地址
546-
getServerAddressByWifi: 根据 WiFi 获取服务端 IP 地址
529+
openWirelessSettings : 打开网络设置界面
530+
isConnected : 判断网络是否连接
531+
isAvailable[Async] : 判断网络是否可用
532+
isAvailableByPing[Async]: 用 ping 判断网络是否可用
533+
isAvailableByDns[Async] : 用 DNS 判断网络是否可用
534+
getMobileDataEnabled : 判断移动数据是否打开
535+
setMobileDataEnabled : 打开或关闭移动数据
536+
isMobileData : 判断网络是否是移动数据
537+
is4G : 判断网络是否是 4G
538+
getWifiEnabled : 判断 wifi 是否打开
539+
setWifiEnabled : 打开或关闭 wifi
540+
isWifiConnected : 判断 wifi 是否连接状态
541+
isWifiAvailable[Async] : 判断 wifi 数据是否可用
542+
getNetworkOperatorName : 获取移动网络运营商名称
543+
getNetworkType : 获取当前网络类型
544+
getIPAddress : 获取 IP 地址
545+
getDomainAddress[Async] : 获取域名 IP 地址
546+
getIpAddressByWifi : 根据 WiFi 获取网络 IP 地址
547+
getGatewayByWifi : 根据 WiFi 获取网关 IP 地址
548+
getNetMaskByWifi : 根据 WiFi 获取子网掩码 IP 地址
549+
getServerAddressByWifi : 根据 WiFi 获取服务端 IP 地址
547550
```
548551

549552
* ### 对象相关 -> [ObjectUtils.java][object.java] -> [Test][object.test]
@@ -746,7 +749,7 @@ isServiceRunning : 判断服务是否运行
746749

747750
* ### Shell 相关 -> [ShellUtils.java][shell.java]
748751
```
749-
execCmd: 是否是在 root 下执行命令
752+
execCmd[Async]: 执行命令
750753
```
751754

752755
* ### 尺寸相关 -> [SizeUtils.java][size.java]

utilcode/README.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ implementation 'com.blankj:utilcode:1.23.7'
1111
* ### About Activity -> [ActivityUtils.java][activity.java] -> [Demo][activity.demo]
1212
```
1313
getActivityByView
14+
getActivityByContext
1415
isActivityExists
1516
startActivity
1617
startActivityForResult
@@ -54,6 +55,7 @@ isAppRoot
5455
isAppDebug
5556
isAppSystem
5657
isAppForeground
58+
isAppRunning
5759
launchApp
5860
relaunchApp
5961
launchAppDetailsSettings
@@ -526,19 +528,21 @@ getMetaDataInReceiver
526528
```
527529
openWirelessSettings
528530
isConnected
529-
isAvailableByPing
531+
isAvailable[Async] : 判断网络是否可用
532+
isAvailableByPing[Async]: 用 ping 判断网络是否可用
533+
isAvailableByDns[Async] : 用 DNS 判断网络是否可用
530534
getMobileDataEnabled
531535
setMobileDataEnabled
532536
isMobileData
533537
is4G
534538
getWifiEnabled
535539
setWifiEnabled
536540
isWifiConnected
537-
isWifiAvailable
541+
isWifiAvailable[Async] : 判断 wifi 数据是否可用
538542
getNetworkOperatorName
539543
getNetworkType
540544
getIPAddress
541-
getDomainAddress
545+
getDomainAddress[Async] : 获取域名 IP 地址
542546
getIpAddressByWifi
543547
getGatewayByWifi
544548
getNetMaskByWifi
@@ -745,7 +749,7 @@ isServiceRunning
745749

746750
* ### About Shell -> [ShellUtils.java][shell.java]
747751
```
748-
execCmd
752+
execCmd[Async]: 执行命令
749753
```
750754

751755
* ### About Size -> [SizeUtils.java][size.java]
@@ -887,6 +891,7 @@ executeByCustom
887891
executeByCustomWithDelay
888892
executeByCustomAtFixRate
889893
cancel
894+
setDeliver
890895
```
891896

892897
* ### About Time -> [TimeUtils.java][time.java] -> [Test][time.test]
@@ -940,7 +945,7 @@ file2Uri
940945
uri2File
941946
```
942947

943-
* ### About Vibrate -> [VibrateUtils.java][vibrate.java] -> [Demo][demo.demo]
948+
* ### About Vibrate -> [VibrateUtils.java][vibrate.java] -> [Demo][vibrate.demo]
944949
```
945950
vibrate
946951
cancel

utilcode/app/src/main/java/com/blankj/utilcode/app/UtilCodeApp.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.blankj.utilcode.app
33
import android.content.Context
44

55
import com.blankj.lib.base.BaseApplication
6+
import com.blankj.utilcode.util.MessengerUtils
67
import com.blankj.utilcode.util.Utils
78

89

@@ -29,6 +30,7 @@ class UtilCodeApp : BaseApplication() {
2930
Utils.init(this)
3031
super.onCreate()
3132
instance = this
33+
MessengerUtils.registerClient("com.blankj.androidutilcode")
3234
}
3335
}
3436

utilcode/lib/src/main/java/com/blankj/utilcode/util/AppUtils.java

Lines changed: 71 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -286,13 +286,13 @@ public static boolean uninstallAppSilent(final String packageName,
286286
/**
287287
* Return whether the app is installed.
288288
*
289-
* @param packageName The name of the package.
289+
* @param pkgName The name of the package.
290290
* @return {@code true}: yes<br>{@code false}: no
291291
*/
292-
public static boolean isAppInstalled(@NonNull final String packageName) {
292+
public static boolean isAppInstalled(@NonNull final String pkgName) {
293293
PackageManager packageManager = Utils.getApp().getPackageManager();
294294
try {
295-
return packageManager.getApplicationInfo(packageName, 0) != null;
295+
return packageManager.getApplicationInfo(pkgName, 0) != null;
296296
} catch (PackageManager.NameNotFoundException e) {
297297
e.printStackTrace();
298298
return false;
@@ -388,6 +388,46 @@ public static boolean isAppForeground(@NonNull final String packageName) {
388388
return !isSpace(packageName) && packageName.equals(getForegroundProcessName());
389389
}
390390

391+
392+
/**
393+
* Return whether application is running.
394+
*
395+
* @param pkgName The name of the package.
396+
* @return {@code true}: yes<br>{@code false}: no
397+
*/
398+
public static boolean isAppRunning(@NonNull final String pkgName) {
399+
int uid;
400+
PackageManager packageManager = Utils.getApp().getPackageManager();
401+
try {
402+
ApplicationInfo ai = packageManager.getApplicationInfo(pkgName, 0);
403+
if (ai == null) return false;
404+
uid = ai.uid;
405+
} catch (PackageManager.NameNotFoundException e) {
406+
e.printStackTrace();
407+
return false;
408+
}
409+
ActivityManager am = (ActivityManager) Utils.getApp().getSystemService(Context.ACTIVITY_SERVICE);
410+
if (am != null) {
411+
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(Integer.MAX_VALUE);
412+
if (taskInfo != null && taskInfo.size() > 0) {
413+
for (ActivityManager.RunningTaskInfo aInfo : taskInfo) {
414+
if (pkgName.equals(aInfo.baseActivity.getPackageName())) {
415+
return true;
416+
}
417+
}
418+
}
419+
List<ActivityManager.RunningServiceInfo> serviceInfo = am.getRunningServices(Integer.MAX_VALUE);
420+
if (serviceInfo != null && serviceInfo.size() > 0) {
421+
for (ActivityManager.RunningServiceInfo aInfo : serviceInfo) {
422+
if (uid == aInfo.uid) {
423+
return true;
424+
}
425+
}
426+
}
427+
}
428+
return false;
429+
}
430+
391431
/**
392432
* Launch the application.
393433
*
@@ -697,6 +737,34 @@ public static String getAppSignatureMD5(final String packageName) {
697737
return getAppSignatureHash(packageName, "MD5");
698738
}
699739

740+
741+
/**
742+
* Return the application's user-ID.
743+
*
744+
* @return the application's signature for MD5 value
745+
*/
746+
public static int getAppUid() {
747+
return getAppUid(Utils.getApp().getPackageName());
748+
}
749+
750+
/**
751+
* Return the application's user-ID.
752+
*
753+
* @param pkgName The name of the package.
754+
* @return the application's signature for MD5 value
755+
*/
756+
public static int getAppUid(String pkgName) {
757+
try {
758+
ApplicationInfo ai = Utils.getApp().getPackageManager().getApplicationInfo(pkgName, 0);
759+
if (ai != null) {
760+
return ai.uid;
761+
}
762+
} catch (Exception e) {
763+
e.printStackTrace();
764+
}
765+
return -1;
766+
}
767+
700768
private static String getAppSignatureHash(final String packageName, final String algorithm) {
701769
if (isSpace(packageName)) return "";
702770
Signature[] signature = getAppSignature(packageName);

utilcode/lib/src/main/java/com/blankj/utilcode/util/GsonUtils.java

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public static Gson getGson() {
4141
/**
4242
* Gets pre-configured {@link Gson} instance.
4343
*
44-
* @param serializeNulls determines if nulls will be serialized.
44+
* @param serializeNulls Determines if nulls will be serialized.
4545
* @return {@link Gson} instance.
4646
*/
4747
public static Gson getGson(final boolean serializeNulls) {
@@ -51,7 +51,7 @@ public static Gson getGson(final boolean serializeNulls) {
5151
/**
5252
* Serializes an object into json.
5353
*
54-
* @param object the object to serialize.
54+
* @param object The object to serialize.
5555
* @return object serialized into json.
5656
*/
5757
public static String toJson(final Object object) {
@@ -61,20 +61,43 @@ public static String toJson(final Object object) {
6161
/**
6262
* Serializes an object into json.
6363
*
64-
* @param object the object to serialize.
65-
* @param includeNulls determines if nulls will be included.
64+
* @param object The object to serialize.
65+
* @param includeNulls Determines if nulls will be included.
6666
* @return object serialized into json.
6767
*/
6868
public static String toJson(final Object object, final boolean includeNulls) {
6969
return includeNulls ? GSON.toJson(object) : GSON_NO_NULLS.toJson(object);
7070
}
7171

72+
/**
73+
* Serializes an object into json.
74+
*
75+
* @param src The object to serialize.
76+
* @param typeOfSrc The specific genericized type of src.
77+
* @return object serialized into json.
78+
*/
79+
public static String toJson(final Object src, final Type typeOfSrc) {
80+
return toJson(src, typeOfSrc, true);
81+
}
82+
83+
/**
84+
* Serializes an object into json.
85+
*
86+
* @param src The object to serialize.
87+
* @param typeOfSrc The specific genericized type of src.
88+
* @param includeNulls Determines if nulls will be included.
89+
* @return object serialized into json.
90+
*/
91+
public static String toJson(final Object src, final Type typeOfSrc, final boolean includeNulls) {
92+
return includeNulls ? GSON.toJson(src, typeOfSrc) : GSON_NO_NULLS.toJson(src, typeOfSrc);
93+
}
94+
7295

7396
/**
7497
* Converts {@link String} to given type.
7598
*
76-
* @param json the json to convert.
77-
* @param type type type json will be converted to.
99+
* @param json The json to convert.
100+
* @param type Type json will be converted to.
78101
* @return instance of type
79102
*/
80103
public static <T> T fromJson(final String json, final Class<T> type) {

utilcode/lib/src/main/java/com/blankj/utilcode/util/LogUtils.java

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package com.blankj.utilcode.util;
22

3-
import android.app.ActivityManager;
43
import android.content.ClipData;
54
import android.content.ComponentName;
6-
import android.content.Context;
75
import android.content.Intent;
86
import android.content.pm.PackageInfo;
97
import android.content.pm.PackageManager;
@@ -25,8 +23,10 @@
2523
import org.json.JSONException;
2624
import org.json.JSONObject;
2725

26+
import java.io.BufferedReader;
2827
import java.io.BufferedWriter;
2928
import java.io.File;
29+
import java.io.FileReader;
3030
import java.io.FileWriter;
3131
import java.io.FilenameFilter;
3232
import java.io.IOException;
@@ -42,7 +42,6 @@
4242
import java.util.Date;
4343
import java.util.Formatter;
4444
import java.util.Iterator;
45-
import java.util.List;
4645
import java.util.Locale;
4746
import java.util.Set;
4847
import java.util.concurrent.ExecutorService;
@@ -813,19 +812,16 @@ public int getSaveDays() {
813812
}
814813

815814
private static String getCurrentProcessName() {
816-
ActivityManager am = (ActivityManager) Utils.getApp().getSystemService(Context.ACTIVITY_SERVICE);
817-
if (am == null) return "";
818-
List<ActivityManager.RunningAppProcessInfo> info = am.getRunningAppProcesses();
819-
if (info == null || info.size() == 0) return "";
820-
int pid = android.os.Process.myPid();
821-
for (ActivityManager.RunningAppProcessInfo aInfo : info) {
822-
if (aInfo.pid == pid) {
823-
if (aInfo.processName != null) {
824-
return aInfo.processName;
825-
}
826-
}
815+
try {
816+
File file = new File("/proc/" + android.os.Process.myPid() + "/" + "cmdline");
817+
BufferedReader mBufferedReader = new BufferedReader(new FileReader(file));
818+
String processName = mBufferedReader.readLine().trim();
819+
mBufferedReader.close();
820+
return processName;
821+
} catch (Exception e) {
822+
e.printStackTrace();
823+
return "";
827824
}
828-
return "";
829825
}
830826

831827
@Override

0 commit comments

Comments
 (0)