源码整理
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Mon Dec 22 13:00:54 HKT 2025
|
#Mon Dec 22 15:02:15 GMT 2025
|
||||||
stageCount=24
|
stageCount=24
|
||||||
libraryProject=
|
libraryProject=
|
||||||
baseVersion=15.14
|
baseVersion=15.14
|
||||||
publishVersion=15.14.23
|
publishVersion=15.14.23
|
||||||
buildCount=0
|
buildCount=2
|
||||||
baseBetaVersion=15.14.24
|
baseBetaVersion=15.14.24
|
||||||
|
|||||||
@@ -4,74 +4,49 @@
|
|||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="cc.winboll.studio.powerbell">
|
package="cc.winboll.studio.powerbell">
|
||||||
|
|
||||||
<!-- 运行前台服务 -->
|
<!-- 前台服务权限 -->
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
||||||
|
|
||||||
<!-- 运行“specialUse”类型的前台服务 -->
|
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE"/>
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE"/>
|
||||||
|
|
||||||
<!-- 开机启动 -->
|
<!-- 系统事件权限 -->
|
||||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
||||||
|
|
||||||
<!-- 显示通知 -->
|
<!-- 通知权限 -->
|
||||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
||||||
|
|
||||||
<!-- PACKAGE_USAGE_STATS -->
|
<!-- 应用统计与查询权限 -->
|
||||||
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
|
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
|
||||||
|
|
||||||
<!-- BATTERY_STATS -->
|
|
||||||
<uses-permission android:name="android.permission.BATTERY_STATS"/>
|
|
||||||
|
|
||||||
<!-- 计算应用存储空间 -->
|
|
||||||
<uses-permission android:name="android.permission.GET_PACKAGE_SIZE"/>
|
|
||||||
|
|
||||||
<!-- 读取您共享存储空间中的内容 -->
|
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
|
||||||
|
|
||||||
<!-- 修改或删除您共享存储空间中的内容 -->
|
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
|
||||||
|
|
||||||
<!-- MANAGE_EXTERNAL_STORAGE -->
|
|
||||||
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
|
|
||||||
|
|
||||||
<!-- 请求忽略电池优化 -->
|
|
||||||
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
|
|
||||||
|
|
||||||
<!-- 拍摄照片和视频 -->
|
|
||||||
<uses-permission android:name="android.permission.CAMERA"/>
|
|
||||||
|
|
||||||
<uses-permission
|
<uses-permission
|
||||||
android:name="android.permission.ACCESS_PACKAGE_USAGE_STATS"
|
android:name="android.permission.ACCESS_PACKAGE_USAGE_STATS"
|
||||||
tools:ignore="ProtectedPermissions"/>
|
tools:ignore="ProtectedPermissions"/>
|
||||||
|
|
||||||
<uses-feature
|
|
||||||
android:name="android.hardware.camera"
|
|
||||||
android:required="false"/>
|
|
||||||
|
|
||||||
<uses-feature
|
|
||||||
android:name="android.hardware.camera.autofocus"
|
|
||||||
android:required="false"/>
|
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.CAMERA"/>
|
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.GET_PACKAGE_SIZE"/>
|
|
||||||
|
|
||||||
<uses-permission
|
<uses-permission
|
||||||
android:name="android.permission.QUERY_ALL_PACKAGES"
|
android:name="android.permission.QUERY_ALL_PACKAGES"
|
||||||
tools:ignore="QueryAllPackagesPermission"/>
|
tools:ignore="QueryAllPackagesPermission"/>
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
<!-- 电池与存储统计权限 -->
|
||||||
|
<uses-permission android:name="android.permission.BATTERY_STATS"/>
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
<uses-permission android:name="android.permission.GET_PACKAGE_SIZE"/>
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
|
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
|
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
|
||||||
|
|
||||||
|
<!-- 外部存储权限 -->
|
||||||
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||||
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||||
|
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
|
||||||
|
|
||||||
|
<!-- 相机权限 -->
|
||||||
|
<uses-permission android:name="android.permission.CAMERA"/>
|
||||||
|
|
||||||
|
<!-- 硬件特性声明 -->
|
||||||
|
<uses-feature
|
||||||
|
android:name="android.hardware.camera"
|
||||||
|
android:required="false"/>
|
||||||
|
<uses-feature
|
||||||
|
android:name="android.hardware.camera.autofocus"
|
||||||
|
android:required="false"/>
|
||||||
|
|
||||||
|
<!-- 应用查询 -->
|
||||||
<queries>
|
<queries>
|
||||||
|
|
||||||
<package android:name="com.miui.securitycenter"/>
|
<package android:name="com.miui.securitycenter"/>
|
||||||
|
|
||||||
</queries>
|
</queries>
|
||||||
|
|
||||||
<application
|
<application
|
||||||
@@ -87,18 +62,14 @@
|
|||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
tools:ignore="GoogleAppIndexingWarning,UnusedAttribute">
|
tools:ignore="GoogleAppIndexingWarning,UnusedAttribute">
|
||||||
|
|
||||||
|
<!-- 主活动 -->
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:launchMode="singleTask">
|
android:launchMode="singleTask"/>
|
||||||
|
|
||||||
</activity>
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".activities.CrashActivity"
|
|
||||||
android:exported="false"/>
|
|
||||||
|
|
||||||
|
<!-- 活动别名(启动器) -->
|
||||||
<activity-alias
|
<activity-alias
|
||||||
android:name=".MainActivityEN1"
|
android:name=".MainActivityEN1"
|
||||||
android:targetActivity=".MainActivity"
|
android:targetActivity=".MainActivity"
|
||||||
@@ -106,19 +77,13 @@
|
|||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:icon="@drawable/ic_launcher"
|
android:icon="@drawable/ic_launcher"
|
||||||
android:enabled="true">
|
android:enabled="true">
|
||||||
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
|
||||||
<action android:name="android.intent.action.MAIN"/>
|
<action android:name="android.intent.action.MAIN"/>
|
||||||
|
|
||||||
<category android:name="android.intent.category.LAUNCHER"/>
|
<category android:name="android.intent.category.LAUNCHER"/>
|
||||||
|
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="android.app.shortcuts"
|
android:name="android.app.shortcuts"
|
||||||
android:resource="@xml/shortcutsmainen1"/>
|
android:resource="@xml/shortcutsmainen1"/>
|
||||||
|
|
||||||
</activity-alias>
|
</activity-alias>
|
||||||
|
|
||||||
<activity-alias
|
<activity-alias
|
||||||
@@ -128,19 +93,13 @@
|
|||||||
android:label="@string/app_name_cn1"
|
android:label="@string/app_name_cn1"
|
||||||
android:icon="@drawable/ic_launcher"
|
android:icon="@drawable/ic_launcher"
|
||||||
android:enabled="false">
|
android:enabled="false">
|
||||||
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
|
||||||
<action android:name="android.intent.action.MAIN"/>
|
<action android:name="android.intent.action.MAIN"/>
|
||||||
|
|
||||||
<category android:name="android.intent.category.LAUNCHER"/>
|
<category android:name="android.intent.category.LAUNCHER"/>
|
||||||
|
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="android.app.shortcuts"
|
android:name="android.app.shortcuts"
|
||||||
android:resource="@xml/shortcutsmaincn1"/>
|
android:resource="@xml/shortcutsmaincn1"/>
|
||||||
|
|
||||||
</activity-alias>
|
</activity-alias>
|
||||||
|
|
||||||
<activity-alias
|
<activity-alias
|
||||||
@@ -150,21 +109,20 @@
|
|||||||
android:label="@string/app_name_cn2"
|
android:label="@string/app_name_cn2"
|
||||||
android:icon="@drawable/ic_launcher"
|
android:icon="@drawable/ic_launcher"
|
||||||
android:enabled="false">
|
android:enabled="false">
|
||||||
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
|
||||||
<action android:name="android.intent.action.MAIN"/>
|
<action android:name="android.intent.action.MAIN"/>
|
||||||
|
|
||||||
<category android:name="android.intent.category.LAUNCHER"/>
|
<category android:name="android.intent.category.LAUNCHER"/>
|
||||||
|
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="android.app.shortcuts"
|
android:name="android.app.shortcuts"
|
||||||
android:resource="@xml/shortcutsmaincn2"/>
|
android:resource="@xml/shortcutsmaincn2"/>
|
||||||
|
|
||||||
</activity-alias>
|
</activity-alias>
|
||||||
|
|
||||||
|
<!-- 功能活动 -->
|
||||||
|
<activity
|
||||||
|
android:name=".activities.CrashActivity"
|
||||||
|
android:exported="false"/>
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".activities.ClearRecordActivity"
|
android:name=".activities.ClearRecordActivity"
|
||||||
android:parentActivityName="cc.winboll.studio.powerbell.MainActivity"
|
android:parentActivityName="cc.winboll.studio.powerbell.MainActivity"
|
||||||
@@ -176,75 +134,17 @@
|
|||||||
android:parentActivityName="cc.winboll.studio.powerbell.MainActivity"
|
android:parentActivityName="cc.winboll.studio.powerbell.MainActivity"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:launchMode="singleTask">
|
android:launchMode="singleTask">
|
||||||
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
|
||||||
<action android:name="android.intent.action.SEND"/>
|
<action android:name="android.intent.action.SEND"/>
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
<category android:name="android.intent.category.DEFAULT"/>
|
||||||
|
|
||||||
<data android:mimeType="image/jpeg"/>
|
<data android:mimeType="image/jpeg"/>
|
||||||
|
|
||||||
<data android:mimeType="image/jpg"/>
|
<data android:mimeType="image/jpg"/>
|
||||||
|
|
||||||
<data android:mimeType="image/png"/>
|
<data android:mimeType="image/png"/>
|
||||||
|
|
||||||
<data android:mimeType="image/webp"/>
|
<data android:mimeType="image/webp"/>
|
||||||
|
|
||||||
<data android:mimeType="image/*"/>
|
<data android:mimeType="image/*"/>
|
||||||
|
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<receiver
|
|
||||||
android:name=".receivers.MainReceiver"
|
|
||||||
android:enabled="true"
|
|
||||||
android:exported="true"
|
|
||||||
android:directBootAware="true">
|
|
||||||
|
|
||||||
<intent-filter android:priority="1000">
|
|
||||||
|
|
||||||
<action android:name="android.intent.action.BOOT_COMPLETED"/>
|
|
||||||
|
|
||||||
<action android:name="android.intent.action.POWER_CONNECTED"/>
|
|
||||||
|
|
||||||
<action android:name="android.intent.action.USER_PRESENT"/>
|
|
||||||
|
|
||||||
</intent-filter>
|
|
||||||
|
|
||||||
</receiver>
|
|
||||||
|
|
||||||
<service
|
|
||||||
android:name=".services.ControlCenterService"
|
|
||||||
android:priority="1000"
|
|
||||||
android:enabled="true"
|
|
||||||
android:exported="false"
|
|
||||||
android:process=".controlcenterservice"
|
|
||||||
android:foregroundServiceType="dataSync">
|
|
||||||
|
|
||||||
<property
|
|
||||||
android:name="android.app.PROPERTY_SPECIAL_USE_FOREGROUND_SERVICE"
|
|
||||||
android:value="后台核心功能运行、持续保活"/>
|
|
||||||
|
|
||||||
</service>
|
|
||||||
|
|
||||||
<service
|
|
||||||
android:name=".services.AssistantService"
|
|
||||||
android:enabled="true"
|
|
||||||
android:exported="false"
|
|
||||||
android:process=".assistantservice">
|
|
||||||
|
|
||||||
<property
|
|
||||||
android:name="android.app.PROPERTY_SPECIAL_USE_FOREGROUND_SERVICE"
|
|
||||||
android:value="辅助核心功能运行"/>
|
|
||||||
|
|
||||||
</service>
|
|
||||||
|
|
||||||
<meta-data
|
|
||||||
android:name="android.max_aspect"
|
|
||||||
android:value="4.0"/>
|
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".activities.BatteryReporterActivity"
|
android:name=".activities.BatteryReporterActivity"
|
||||||
android:exported="false"/>
|
android:exported="false"/>
|
||||||
@@ -269,27 +169,69 @@
|
|||||||
android:name=".activities.SettingsActivity"
|
android:name=".activities.SettingsActivity"
|
||||||
android:exported="false"/>
|
android:exported="false"/>
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:name="cc.winboll.studio.powerbell.unittest.MainUnitTest2Activity"
|
||||||
|
android:exported="false"/>
|
||||||
|
|
||||||
|
<!-- 第三方活动 -->
|
||||||
|
<activity
|
||||||
|
android:name="com.yalantis.ucrop.UCropActivity"
|
||||||
|
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
|
||||||
|
android:exported="true"/>
|
||||||
|
|
||||||
|
<!-- 广播接收器 -->
|
||||||
|
<receiver
|
||||||
|
android:name=".receivers.MainReceiver"
|
||||||
|
android:enabled="true"
|
||||||
|
android:exported="true"
|
||||||
|
android:directBootAware="true">
|
||||||
|
<intent-filter android:priority="1000">
|
||||||
|
<action android:name="android.intent.action.BOOT_COMPLETED"/>
|
||||||
|
<action android:name="android.intent.action.POWER_CONNECTED"/>
|
||||||
|
<action android:name="android.intent.action.USER_PRESENT"/>
|
||||||
|
</intent-filter>
|
||||||
|
</receiver>
|
||||||
|
|
||||||
|
<!-- 服务 -->
|
||||||
|
<service
|
||||||
|
android:name=".services.ControlCenterService"
|
||||||
|
android:priority="1000"
|
||||||
|
android:enabled="true"
|
||||||
|
android:exported="false"
|
||||||
|
android:process=".controlcenterservice"
|
||||||
|
android:foregroundServiceType="dataSync">
|
||||||
|
<property
|
||||||
|
android:name="android.app.PROPERTY_SPECIAL_USE_FOREGROUND_SERVICE"
|
||||||
|
android:value="后台核心功能运行、持续保活"/>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<service
|
||||||
|
android:name=".services.AssistantService"
|
||||||
|
android:enabled="true"
|
||||||
|
android:exported="false"
|
||||||
|
android:process=".assistantservice">
|
||||||
|
<property
|
||||||
|
android:name="android.app.PROPERTY_SPECIAL_USE_FOREGROUND_SERVICE"
|
||||||
|
android:value="辅助核心功能运行"/>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<!-- 内容提供者 -->
|
||||||
<provider
|
<provider
|
||||||
android:name="androidx.core.content.FileProvider"
|
android:name="androidx.core.content.FileProvider"
|
||||||
android:authorities="${applicationId}.fileprovider"
|
android:authorities="${applicationId}.fileprovider"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:grantUriPermissions="true">
|
android:grantUriPermissions="true">
|
||||||
|
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||||
android:resource="@xml/file_provider"/>
|
android:resource="@xml/file_provider"/>
|
||||||
|
|
||||||
</provider>
|
</provider>
|
||||||
|
|
||||||
<activity
|
<!-- 元数据 -->
|
||||||
android:name="com.yalantis.ucrop.UCropActivity"
|
<meta-data
|
||||||
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
|
android:name="android.max_aspect"
|
||||||
android:exported="true">
|
android:value="4.0"/>
|
||||||
|
|
||||||
</activity>
|
|
||||||
|
|
||||||
<activity android:name="cc.winboll.studio.powerbell.unittest.MainUnitTest2Activity"/>
|
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package cc.winboll.studio.powerbell;
|
package cc.winboll.studio.powerbell;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import cc.winboll.studio.libaes.utils.WinBoLLActivityManager;
|
import cc.winboll.studio.libaes.utils.WinBoLLActivityManager;
|
||||||
import cc.winboll.studio.libappbase.GlobalApplication;
|
import cc.winboll.studio.libappbase.GlobalApplication;
|
||||||
@@ -19,7 +20,7 @@ import java.io.File;
|
|||||||
* 核心策略:极致强制缓存 - 无论内存紧张程度,永不自动清理任何缓存(Bitmap/视图控件/路径记录)
|
* 核心策略:极致强制缓存 - 无论内存紧张程度,永不自动清理任何缓存(Bitmap/视图控件/路径记录)
|
||||||
*/
|
*/
|
||||||
public class App extends GlobalApplication {
|
public class App extends GlobalApplication {
|
||||||
// ===================== 常量定义区 =====================
|
// ===================== 常量定义区(按功能分类排序) =====================
|
||||||
public static final String TAG = "App";
|
public static final String TAG = "App";
|
||||||
|
|
||||||
// 组件跳转常量
|
// 组件跳转常量
|
||||||
@@ -35,36 +36,30 @@ public class App extends GlobalApplication {
|
|||||||
// 缓存防护常量
|
// 缓存防护常量
|
||||||
private static final String CACHE_PROTECT_TAG = "FORCE_CACHE_PROTECT";
|
private static final String CACHE_PROTECT_TAG = "FORCE_CACHE_PROTECT";
|
||||||
|
|
||||||
// ===================== 静态属性区 =====================
|
// ===================== 静态属性区(按工具类优先级排序) =====================
|
||||||
// 数据配置工具
|
// 数据配置工具
|
||||||
private static AppConfigUtils sAppConfigUtils;
|
private static AppConfigUtils sAppConfigUtils;
|
||||||
private static AppCacheUtils sAppCacheUtils;
|
private static AppCacheUtils sAppCacheUtils;
|
||||||
|
|
||||||
// 全局Bitmap缓存工具(极致强制保持:一旦初始化,永不销毁)
|
// 全局Bitmap缓存工具(极致强制保持:一旦初始化,永不销毁)
|
||||||
public static BitmapCacheUtils sBitmapCacheUtils;
|
public static BitmapCacheUtils sBitmapCacheUtils;
|
||||||
|
|
||||||
// 全局视图控件缓存工具(极致强制保持:一旦初始化,永不销毁)
|
// 全局视图控件缓存工具(极致强制保持:一旦初始化,永不销毁)
|
||||||
public static MemoryCachedBackgroundView sMemoryCachedBackgroundView;
|
public static MemoryCachedBackgroundView sMemoryCachedBackgroundView;
|
||||||
// 临时文件夹路径
|
|
||||||
private static String sTempDirPath = "";
|
|
||||||
|
|
||||||
// ===================== 成员属性区 =====================
|
// ===================== 成员属性区(按生命周期关联度排序) =====================
|
||||||
// 全局广播接收器
|
// 全局广播接收器
|
||||||
private GlobalApplicationReceiver mGlobalReceiver;
|
private GlobalApplicationReceiver mGlobalReceiver;
|
||||||
|
|
||||||
// 通知管理工具
|
// 通知管理工具
|
||||||
private NotificationManagerUtils mNotificationManager;
|
private NotificationManagerUtils mNotificationManager;
|
||||||
|
|
||||||
// ===================== 公共方法区 =====================
|
// ===================== 公共静态方法区(工具类实例获取) =====================
|
||||||
/**
|
|
||||||
* 获取临时文件夹路径
|
|
||||||
*/
|
|
||||||
public static String getTempDirPath() {
|
|
||||||
return sTempDirPath;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取应用配置工具实例
|
* 获取应用配置工具实例
|
||||||
*/
|
*/
|
||||||
public static AppConfigUtils getAppConfigUtils(Context context) {
|
public static AppConfigUtils getAppConfigUtils(Context context) {
|
||||||
LogUtils.d(TAG, "getAppConfigUtils() 调用,传入Context:" + context.getClass().getSimpleName());
|
LogUtils.d(TAG, "getAppConfigUtils() 调用,传入Context类型:" + (context != null ? context.getClass().getSimpleName() : "null"));
|
||||||
if (sAppConfigUtils == null) {
|
if (sAppConfigUtils == null) {
|
||||||
sAppConfigUtils = AppConfigUtils.getInstance(context);
|
sAppConfigUtils = AppConfigUtils.getInstance(context);
|
||||||
LogUtils.d(TAG, "getAppConfigUtils():AppConfigUtils实例已初始化");
|
LogUtils.d(TAG, "getAppConfigUtils():AppConfigUtils实例已初始化");
|
||||||
@@ -76,7 +71,7 @@ public class App extends GlobalApplication {
|
|||||||
* 获取应用缓存工具实例
|
* 获取应用缓存工具实例
|
||||||
*/
|
*/
|
||||||
public static AppCacheUtils getAppCacheUtils(Context context) {
|
public static AppCacheUtils getAppCacheUtils(Context context) {
|
||||||
LogUtils.d(TAG, "getAppCacheUtils() 调用,传入Context:" + context.getClass().getSimpleName());
|
LogUtils.d(TAG, "getAppCacheUtils() 调用,传入Context类型:" + (context != null ? context.getClass().getSimpleName() : "null"));
|
||||||
if (sAppCacheUtils == null) {
|
if (sAppCacheUtils == null) {
|
||||||
sAppCacheUtils = AppCacheUtils.getInstance(context);
|
sAppCacheUtils = AppCacheUtils.getInstance(context);
|
||||||
LogUtils.d(TAG, "getAppCacheUtils():AppCacheUtils实例已初始化");
|
LogUtils.d(TAG, "getAppCacheUtils():AppCacheUtils实例已初始化");
|
||||||
@@ -84,12 +79,18 @@ public class App extends GlobalApplication {
|
|||||||
return sAppCacheUtils;
|
return sAppCacheUtils;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ===================== 公共成员方法区(业务功能) =====================
|
||||||
/**
|
/**
|
||||||
* 清除电池历史数据
|
* 清除电池历史数据
|
||||||
*/
|
*/
|
||||||
public void clearBatteryHistory() {
|
public void clearBatteryHistory() {
|
||||||
LogUtils.d(TAG, "clearBatteryHistory() 调用");
|
LogUtils.d(TAG, "clearBatteryHistory() 调用");
|
||||||
sAppCacheUtils.clearBatteryHistory();
|
if (sAppCacheUtils != null) {
|
||||||
|
sAppCacheUtils.clearBatteryHistory();
|
||||||
|
LogUtils.d(TAG, "clearBatteryHistory():电池历史数据已清除");
|
||||||
|
} else {
|
||||||
|
LogUtils.w(TAG, "clearBatteryHistory():AppCacheUtils未初始化,清除失败");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -111,7 +112,7 @@ public class App extends GlobalApplication {
|
|||||||
LogUtils.w(TAG, CACHE_PROTECT_TAG + " 手动清理缓存完成(部分缓存实例仍可能保留在内存中)");
|
LogUtils.w(TAG, CACHE_PROTECT_TAG + " 手动清理缓存完成(部分缓存实例仍可能保留在内存中)");
|
||||||
}
|
}
|
||||||
|
|
||||||
// ===================== 生命周期方法区 =====================
|
// ===================== 生命周期方法区(按执行顺序排序) =====================
|
||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
@@ -123,8 +124,6 @@ public class App extends GlobalApplication {
|
|||||||
|
|
||||||
// 初始化基础工具
|
// 初始化基础工具
|
||||||
initBaseTools();
|
initBaseTools();
|
||||||
// 初始化临时文件夹
|
|
||||||
initTempDir();
|
|
||||||
// 初始化工具类实例(核心:极致强制缓存,永不销毁)
|
// 初始化工具类实例(核心:极致强制缓存,永不销毁)
|
||||||
initUtils();
|
initUtils();
|
||||||
// 初始化广播接收器
|
// 初始化广播接收器
|
||||||
@@ -140,6 +139,7 @@ public class App extends GlobalApplication {
|
|||||||
|
|
||||||
// 释放Toast工具
|
// 释放Toast工具
|
||||||
ToastUtils.release();
|
ToastUtils.release();
|
||||||
|
LogUtils.d(TAG, "onTerminate():Toast工具已释放");
|
||||||
// 释放通知工具
|
// 释放通知工具
|
||||||
releaseNotificationManager();
|
releaseNotificationManager();
|
||||||
// 释放广播接收器
|
// 释放广播接收器
|
||||||
@@ -169,7 +169,7 @@ public class App extends GlobalApplication {
|
|||||||
logDetailedCacheStatus();
|
logDetailedCacheStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
// ===================== 私有初始化方法区 =====================
|
// ===================== 私有初始化方法区(按初始化顺序排序) =====================
|
||||||
/**
|
/**
|
||||||
* 初始化基础工具(Activity管理、Toast)
|
* 初始化基础工具(Activity管理、Toast)
|
||||||
*/
|
*/
|
||||||
@@ -180,21 +180,6 @@ public class App extends GlobalApplication {
|
|||||||
LogUtils.d(TAG, "initBaseTools() 基础工具初始化完成");
|
LogUtils.d(TAG, "initBaseTools() 基础工具初始化完成");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 初始化临时文件夹(适配API 30外部存储访问)
|
|
||||||
*/
|
|
||||||
private void initTempDir() {
|
|
||||||
LogUtils.d(TAG, "initTempDir() 开始初始化临时文件夹");
|
|
||||||
File picturesDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
|
|
||||||
File powerBellDir = new File(picturesDir, "PowerBell");
|
|
||||||
if (!powerBellDir.exists()) {
|
|
||||||
boolean isMkSuccess = powerBellDir.mkdirs();
|
|
||||||
LogUtils.d(TAG, "initTempDir() 文件夹创建结果:" + isMkSuccess);
|
|
||||||
}
|
|
||||||
sTempDirPath = powerBellDir.getAbsolutePath();
|
|
||||||
LogUtils.d(TAG, "initTempDir() 临时文件夹路径:" + sTempDirPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化工具类实例(核心:极致强制缓存,一旦初始化永不销毁)
|
* 初始化工具类实例(核心:极致强制缓存,一旦初始化永不销毁)
|
||||||
*/
|
*/
|
||||||
@@ -225,7 +210,7 @@ public class App extends GlobalApplication {
|
|||||||
LogUtils.d(TAG, "initReceiver() 广播接收器注册完成");
|
LogUtils.d(TAG, "initReceiver() 广播接收器注册完成");
|
||||||
}
|
}
|
||||||
|
|
||||||
// ===================== 私有工具方法区 =====================
|
// ===================== 私有释放方法区(按资源重要性排序) =====================
|
||||||
/**
|
/**
|
||||||
* 释放广播接收器资源
|
* 释放广播接收器资源
|
||||||
*/
|
*/
|
||||||
@@ -254,6 +239,7 @@ public class App extends GlobalApplication {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ===================== 私有工具方法区(辅助功能) =====================
|
||||||
/**
|
/**
|
||||||
* 记录详细缓存状态(用于调试,监控极致强制缓存效果)
|
* 记录详细缓存状态(用于调试,监控极致强制缓存效果)
|
||||||
*/
|
*/
|
||||||
@@ -267,7 +253,7 @@ public class App extends GlobalApplication {
|
|||||||
int cacheCount = sBitmapCacheUtils.getCacheCount();
|
int cacheCount = sBitmapCacheUtils.getCacheCount();
|
||||||
LogUtils.d(TAG, CACHE_PROTECT_TAG + " Bitmap缓存数量:" + cacheCount);
|
LogUtils.d(TAG, CACHE_PROTECT_TAG + " Bitmap缓存数量:" + cacheCount);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LogUtils.d(TAG, CACHE_PROTECT_TAG + " Bitmap缓存数量获取失败(不影响缓存)");
|
LogUtils.d(TAG, CACHE_PROTECT_TAG + " Bitmap缓存数量获取失败(不影响缓存),异常信息:" + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 视图控件缓存状态
|
// 视图控件缓存状态
|
||||||
|
|||||||
Reference in New Issue
Block a user