Compare commits

..

2 Commits

Author SHA1 Message Date
6412554096 <aes>APK 15.15.10 release Publish. 2026-05-10 05:04:15 +08:00
286f8513d4 refactor: 升级编译配置并调整最低API版本
- 升级 Gradle 编译版本为 Java 11
  根目录 build.gradle 中 JavaCompile 配置从 VERSION_1_7 改为 VERSION_11

- 调整 minSdkVersion 从 21 升级至 26
  适配 Android 8.0 (API 26) 及以上系统
  修改范围: aes/build.gradle, libaes/build.gradle

- 移除未使用的 XXPermissions 依赖
  该库使用 Java 8 字节码与 minSdkVersion 21 不兼容,项目中未引用此库
2026-05-10 04:48:29 +08:00
15 changed files with 535 additions and 395 deletions

View File

@@ -24,7 +24,7 @@ android {
defaultConfig {
applicationId "cc.winboll.studio.aes"
minSdkVersion 21
minSdkVersion 26
targetSdkVersion 30
versionCode 1
// versionName 更新后需要手动设置

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Sat Apr 25 04:16:42 HKT 2026
stageCount=10
#Sun May 10 05:04:15 HKT 2026
stageCount=11
libraryProject=libaes
baseVersion=15.15
publishVersion=15.15.9
publishVersion=15.15.10
buildCount=0
baseBetaVersion=15.15.10
baseBetaVersion=15.15.11

View File

@@ -24,13 +24,13 @@ android {
defaultConfig {
applicationId "cc.winboll.studio.appbase"
minSdkVersion 26
minSdkVersion 21
targetSdkVersion 30
versionCode 1
// versionName 更新后需要手动设置
// .winboll/winbollBuildProps.properties 文件的 stageCount=0
// Gradle编译环境下合起来的 versionName 就是 "${versionName}.0"
versionName "15.16"
versionName "15.15"
if(true) {
versionName = genVersionName("${versionName}")
}

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Sat May 09 21:14:54 GMT 2026
stageCount=0
#Tue Apr 28 17:08:30 HKT 2026
stageCount=22
libraryProject=libappbase
baseVersion=15.16
publishVersion=15.16.0
buildCount=1
baseBetaVersion=15.16.1
baseVersion=15.15
publishVersion=15.15.21
buildCount=0
baseBetaVersion=15.15.22

View File

@@ -19,16 +19,28 @@
android:launchMode="singleTop"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation">
</activity>
<activity
android:name=".MainActivityAlias"
android:label="@string/app_name"
android:exported="true"
android:resizeableActivity="true"
android:launchMode="singleTop"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity
android:name=".Main2Activity"
android:label="@string/app_name"

View File

@@ -162,7 +162,25 @@ public class MainActivity extends Activity {
startActivity(aboutIntent);
}
public void onSplitScreenMode(View view) {
LogUtils.d(TAG, "onSplitScreenMode() 分屏测试按钮已点击");
ToastUtils.show("分屏测试:已启动新窗口");
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
android.graphics.Rect bounds = new android.graphics.Rect();
getWindow().getDecorView().getDisplay().getRectSize(bounds);
int height = bounds.height();
int width = bounds.width();
bounds.set(0, 0, width, height / 2);
LogUtils.d(TAG, "onSplitScreenMode() 分屏窗口范围: " + bounds);
android.content.Intent intent = new android.content.Intent(this, MainActivityAlias.class);
intent.setFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK);
LogUtils.d(TAG, "onSplitScreenMode() 准备启动MainActivityAlias");
android.app.ActivityOptions options = android.app.ActivityOptions.makeBasic();
options.setLaunchBounds(bounds);
startActivity(intent, options.toBundle());
LogUtils.d(TAG, "onSplitScreenMode() MainActivityAlias已启动");
}
}
public void onMultiInstance(View view) {
LogUtils.d(TAG, "onMultiInstance() 多开窗口按钮已点击");

View File

@@ -0,0 +1,17 @@
package cc.winboll.studio.appbase;
import android.os.Bundle;
import android.view.View;
import android.widget.Toolbar;
import cc.winboll.studio.appbase.R;
public class MainActivityAlias extends MainActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setActionBar(toolbar);
}
}

View File

@@ -83,7 +83,17 @@
android:onClick="onToastUtilsTest"
android:layout_margin="10dp"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="分屏测试"
android:textSize="16sp"
android:textColor="@android:color/white"
android:background="#81C7F5"
android:paddingVertical="12dp"
android:layout_marginHorizontal="24dp"
android:onClick="onSplitScreenMode"
android:layout_margin="10dp"/>
<Button
android:layout_width="match_parent"

View File

@@ -98,6 +98,7 @@ allprojects {
options.compilerArgs << "-parameters"
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
// 可选:确保编码一致
options.encoding = "UTF-8"
}
}

View File

@@ -9,7 +9,7 @@ android {
buildToolsVersion "30.0.3"
defaultConfig {
minSdkVersion 21
minSdkVersion 26
targetSdkVersion 30
}
@@ -27,8 +27,6 @@ android {
}
dependencies {
// 权限请求框架https://github.com/getActivity/XXPermissions
api 'com.github.getActivity:XXPermissions:18.63'
// 下拉控件
api 'com.baoyz.pullrefreshlayout:library:1.2.0'
// 拼音搜索

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Sat Apr 25 04:16:30 HKT 2026
stageCount=10
#Sun May 10 05:04:15 HKT 2026
stageCount=11
libraryProject=libaes
baseVersion=15.15
publishVersion=15.15.9
publishVersion=15.15.10
buildCount=0
baseBetaVersion=15.15.10
baseBetaVersion=15.15.11

View File

@@ -9,7 +9,7 @@ android {
buildToolsVersion "30.0.3"
defaultConfig {
minSdkVersion 26
minSdkVersion 21
targetSdkVersion 30
}
buildTypes {
@@ -18,10 +18,6 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Sat May 09 21:14:54 GMT 2026
stageCount=0
#Tue Apr 28 17:08:04 HKT 2026
stageCount=22
libraryProject=libappbase
baseVersion=15.16
publishVersion=15.16.0
buildCount=1
baseBetaVersion=15.16.1
baseVersion=15.15
publishVersion=15.15.21
buildCount=0
baseBetaVersion=15.15.22

View File

@@ -62,11 +62,11 @@ public class BackupUtils {
// 核心修改入参Map非空且非空集合时使用入参初始化否则内部new HashMap()
this.mDataDirFileMap = (dataDirFileMap != null && !dataDirFileMap.isEmpty())
? new HashMap<String, String>(dataDirFileMap)
: new HashMap<String, String>();
? new HashMap<>(dataDirFileMap) // 新建Map避免外部篡改内部数据
: new HashMap<>();
this.mSdcardFileMap = (sdcardFileMap != null && !sdcardFileMap.isEmpty())
? new HashMap<String, String>(sdcardFileMap)
: new HashMap<String, String>();
? new HashMap<>(sdcardFileMap) // 深拷贝,隔离外部引用
: new HashMap<>();
LogUtils.d(TAG, "BackupUtils初始化完成 → SFTP服务器" + ftpAuthModel.getFtpServer() + ":" + ftpAuthModel.getFtpPort() + " | 上传目录:" + mFtpTargetDir);
LogUtils.d(TAG, "SDCard Map基础根目录" + (mAppExternalFilesDir == null ? "获取失败" : mAppExternalFilesDir.getAbsolutePath()));