diff --git a/app/build.gradle b/app/build.gradle index e93823d..b5e7d2f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,8 +15,8 @@ android { applicationId "com.xxpatx.os" minSdkVersion 24 targetSdkVersion 29 - versionCode 7 - versionName "1.0.6" + versionCode 1008 + versionName "1.0.7" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -51,12 +51,22 @@ android { } signingConfigs { + mtk { + storeFile file("keystore/xueshibaoos.jks") + storePassword "123456" + keyAlias "xueshibaoos" + keyPassword "123456" + v1SigningEnabled true + v2SigningEnabled true + } + tuixin { storeFile file("keystore/tuixin.jks") storePassword "123456" keyAlias "universal" keyPassword "123456" - v2SigningEnabled false + v1SigningEnabled true + v2SigningEnabled true } } @@ -71,7 +81,7 @@ android { //前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明,后一个文件是自己的定义混淆文件 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //签名 - signingConfig signingConfigs.tuixin + signingConfig signingConfigs.mtk applicationVariants.all { variant -> variant.outputs.each { output -> if (outputFile != null) { @@ -91,7 +101,7 @@ android { //前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明,后一个文件是自己的定义混淆文件 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //签名 - signingConfig signingConfigs.tuixin + signingConfig signingConfigs.mtk //将release版本的包名重命名,加上版本及日期 applicationVariants.all { variant -> variant.outputs.each { output -> diff --git a/app/keystore/xueshibaoos.jks b/app/keystore/xueshibaoos.jks new file mode 100644 index 0000000..b94a626 Binary files /dev/null and b/app/keystore/xueshibaoos.jks differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4cf012c..a820608 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,7 @@ + package="com.xxpatx.os" + android:sharedUserId="android.uid.system"> @@ -124,52 +125,12 @@ android:restoreAnyVersion="true" android:supportsRtl="true" android:theme="@style/AppTheme"> - - - - - - - - - - - - - - - - - - - - - - @@ -208,8 +169,8 @@ android:screenOrientation="portrait" /> + android:launchMode="singleTask" + android:screenOrientation="portrait" /> + android:launchMode="singleTask" + android:screenOrientation="portrait" /> + android:launchMode="singleTask" + android:screenOrientation="portrait" /> + android:launchMode="singleTask" + android:screenOrientation="portrait" /> getPackageList() { diff --git a/app/src/main/java/com/xxpatx/os/service/main/MainService.java b/app/src/main/java/com/xxpatx/os/service/main/MainService.java index 5eae501..46a93b9 100644 --- a/app/src/main/java/com/xxpatx/os/service/main/MainService.java +++ b/app/src/main/java/com/xxpatx/os/service/main/MainService.java @@ -1,5 +1,6 @@ package com.xxpatx.os.service.main; +import android.app.ActivityManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -20,6 +21,7 @@ import com.arialyy.annotations.Download; import com.arialyy.aria.core.Aria; import com.arialyy.aria.core.task.DownloadTask; import com.blankj.utilcode.util.NetworkUtils; +import com.hjq.toast.Toaster; import com.shehuan.niv.NiceImageView; import com.tencent.mmkv.MMKV; import com.xxpatx.os.BuildConfig; @@ -41,6 +43,7 @@ import com.xxpatx.os.utils.ForegroundAppUtil; import java.io.File; import java.io.FileNotFoundException; +import java.lang.reflect.Method; import java.util.Calendar; import java.util.HashMap; import java.util.List; @@ -600,6 +603,35 @@ public class MainService extends BaseRxService isBallShown = true; } + private void killBackgroundApp() { + List pkgList = ApkUtils.queryFilterAppList(this); + for (String pkg : pkgList) { + if (pkg.equalsIgnoreCase(BuildConfig.APPLICATION_ID) + || "com.xxpatx.sn".equals(pkg) + ) { + continue; + } + killBackgroundProcesses(pkg); + } + Toaster.show(String.format(getString(R.string.clear_app_size), pkgList.size())); + } + + private void killBackgroundProcesses(String packageName) { + Log.e(TAG, "killBackgroundProcesses: " + packageName); + ActivityManager activityManager; + try { + activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); + activityManager.killBackgroundProcesses(packageName); + Method forceStopPackage = activityManager.getClass() + .getDeclaredMethod("forceStopPackage", String.class); + forceStopPackage.setAccessible(true); + forceStopPackage.invoke(activityManager, packageName); + } catch (Exception e) { + Log.e(TAG, "killBackgroundProcesses: " + e.getMessage()); + e.printStackTrace(); + } + } + private View setUpView() { View view = LayoutInflater.from(this).inflate(R.layout.window_float_ball, null); NiceImageView iv_ball = view.findViewById(R.id.iv_ball); @@ -608,6 +640,7 @@ public class MainService extends BaseRxService public void onClick(View v) { Log.e("iv_ball", "onClick: "); // closeToolWindow(); + killBackgroundApp(); Intent intent = new Intent(MainService.this, MainActivity.class); intent.setAction("android.intent.action.MAIN"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e0a8019..eaf4825 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -14,6 +14,7 @@ 孝心平安通讯OS快捷服务 孝心平安通讯OS一键拨打视频 Settings + 已清理%d个应用 Messages diff --git a/settings.gradle b/settings.gradle index 5dc5e42..7d2b57b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,2 @@ include ':app', ':niceimageview', ':verification-view', ':FlycoTabLayoutZ_Lib' -rootProject.name='孝心平安通讯OS' \ No newline at end of file +rootProject.name='孝心平安通讯SystemOS' \ No newline at end of file