Compare commits

...

8 Commits

Author SHA1 Message Date
052e8e8b82 <aes>APK 15.11.6 release Publish. 2025-11-21 13:48:41 +08:00
ZhanGSKen
e590928e67 添加米盟SDK模块编译配置 2025-11-21 13:47:10 +08:00
ZhanGSKen
8346eed8f4 添加应用资源混淆配置 2025-11-21 13:34:41 +08:00
ZhanGSKen
2bde16523e Merge remote-tracking branch 'origin/appbase' into aes 2025-11-21 12:03:24 +08:00
ZhanGSKen
0a34a90acc 更新说明书 2025-11-21 12:02:57 +08:00
f039d798ae <libaes>Library Release 15.11.5 2025-11-21 03:15:50 +08:00
781d490667 <aes>APK 15.11.5 release Publish. 2025-11-21 03:15:34 +08:00
ZhanGSKen
2b8a026c0c 更新应用介绍页 2025-11-21 03:14:19 +08:00
8 changed files with 158 additions and 33 deletions

View File

@@ -1,7 +1,7 @@
# AES # AES
#### 介绍 #### 介绍
安卓视图元素类库 WinBoLL 安卓可视化元素类库测试应用。
#### 软件架构 #### 软件架构
适配安卓应用 [AIDE Pro] 的 Gradle 编译结构。 适配安卓应用 [AIDE Pro] 的 Gradle 编译结构。
@@ -32,4 +32,4 @@
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
#### 参考文档 #### 参考文档

View File

@@ -38,12 +38,10 @@ android {
versionName = genVersionName("${versionName}") versionName = genVersionName("${versionName}")
} }
} }
buildTypes { // 米盟 SDK
release { packagingOptions {
minifyEnabled false doNotStrip "*/*/libmimo_1011.so"
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
} }
} }

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Wed Nov 19 09:04:33 HKT 2025 #Fri Nov 21 13:48:41 HKT 2025
stageCount=5 stageCount=7
libraryProject=libaes libraryProject=libaes
baseVersion=15.11 baseVersion=15.11
publishVersion=15.11.4 publishVersion=15.11.6
buildCount=0 buildCount=0
baseBetaVersion=15.11.5 baseBetaVersion=15.11.7

132
aes/proguard-rules.pro vendored
View File

@@ -9,9 +9,129 @@
# Add any project specific keep options here: # Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following # ============================== 基础通用规则 ==============================
# and specify the fully qualified class name to the JavaScript interface # 保留系统组件
# class: -keep public class * extends android.app.Activity
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -keep public class * extends android.app.Service
# public *; -keep public class * extends android.content.BroadcastReceiver
#} -keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
# 保留 WinBoLL 核心包及子类(合并简化规则)
-keep class cc.winboll.studio.** { *; }
-keepclassmembers class cc.winboll.studio.** { *; }
# 保留所有类中的 public static final String TAG 字段(便于日志定位)
-keepclassmembers class * {
public static final java.lang.String TAG;
}
# 保留序列化类避免Parcelable/Gson解析异常
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
# 保留 R 文件避免资源ID混淆
-keepclassmembers class **.R$* {
public static <fields>;
}
# 保留 native 方法避免JNI调用失败
-keepclasseswithmembernames class * {
native <methods>;
}
# 保留注解和泛型(避免反射/序列化异常)
-keepattributes *Annotation*
-keepattributes Signature
# 屏蔽 Java 8+ 警告(适配 Java 7 语法)
-dontwarn java.lang.invoke.*
-dontwarn android.support.v8.renderscript.*
-dontwarn java.util.function.**
# ============================== 第三方框架专项规则 ==============================
# OkHttp 4.4.1米盟广告请求依赖完善Lambda兼容
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-keep class okhttp3.internal.** { *; }
-keep class okio.** { *; }
-dontwarn okhttp3.internal.platform.**
-dontwarn okio.**
# Glide 4.9.0(米盟广告图片加载依赖)
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public class * extends com.bumptech.glide.module.AppGlideModule
-keep public enum com.bumptech.glide.load.ImageHeaderParser$ImageType {
**[] $VALUES;
public *;
}
-keepclassmembers class * implements com.bumptech.glide.module.AppGlideModule {
<init>();
}
-dontwarn com.bumptech.glide.**
# Gson 2.8.5(米盟广告数据序列化依赖)
-keep class com.google.gson.** { *; }
-keep interface com.google.gson.** { *; }
-keepclassmembers class * {
@com.google.gson.annotations.SerializedName <fields>;
}
# 米盟 SDK(核心广告组件,完整保留避免加载失败)
-keep class com.miui.zeus.** { *; }
-keep interface com.miui.zeus.** { *; }
# 保留米盟日志字段(便于广告加载失败排查)
-keepclassmembers class com.miui.zeus.mimo.sdk.** {
public static final java.lang.String TAG;
}
# RecyclerView 1.0.0(米盟广告布局渲染依赖)
-keep class androidx.recyclerview.** { *; }
-keep interface androidx.recyclerview.** { *; }
-keepclassmembers class androidx.recyclerview.widget.RecyclerView$Adapter {
public *;
}
# 其他第三方框架(按引入依赖保留,无则可删除)
# XXPermissions 18.63
-keep class com.hjq.permissions.** { *; }
-keep interface com.hjq.permissions.** { *; }
# ZXing 二维码(核心解析组件)
-keep class com.google.zxing.** { *; }
-keep class com.journeyapps.zxing.** { *; }
# Jsoup HTML解析
-keep class org.jsoup.** { *; }
# Pinyin4j 拼音搜索
-keep class net.sourceforge.pinyin4j.** { *; }
# JSch SSH组件
-keep class com.jcraft.jsch.** { *; }
# AndroidX 基础组件
-keep class androidx.appcompat.** { *; }
-keep interface androidx.appcompat.** { *; }
# ============================== 优化与调试配置 ==============================
# 优化级别(平衡混淆效果与性能)
-optimizationpasses 5
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
# 调试辅助(保留行号便于崩溃定位)
-verbose
-dontpreverify
-dontusemixedcaseclassnames
-keepattributes SourceFile,LineNumberTable

View File

@@ -83,11 +83,11 @@ public class AboutActivity extends WinBoLLActivity implements IWinBoLLActivity {
appInfo.setAppGitOwner("Studio"); appInfo.setAppGitOwner("Studio");
appInfo.setAppGitAPPBranch(szBranchName); appInfo.setAppGitAPPBranch(szBranchName);
appInfo.setAppGitAPPSubProjectFolder(szBranchName); appInfo.setAppGitAPPSubProjectFolder(szBranchName);
appInfo.setAppHomePage("https://discuz.winboll.cc/forum.php?mod=viewthread&tid=3&extra=page%3D1"); appInfo.setAppHomePage("https://www.winboll.cc/apks/index.php?project=AES");
appInfo.setAppAPKName("AES"); appInfo.setAppAPKName("AES");
appInfo.setAppAPKFolderName("AES"); appInfo.setAppAPKFolderName("AES");
//appInfo.setIsAddDebugTools(false); //appInfo.setIsAddDebugTools(false);
appInfo.setIsAddDebugTools(BuildConfig.DEBUG); //appInfo.setIsAddDebugTools(BuildConfig.DEBUG);
return new AboutView(mContext, appInfo); return new AboutView(mContext, appInfo);
} }
} }

View File

@@ -15,12 +15,18 @@ android {
minSdkVersion 23 minSdkVersion 23
targetSdkVersion 30 targetSdkVersion 30
} }
buildTypes { buildTypes {
release { release {
minifyEnabled false minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
} }
} }
// 米盟 SDK
packagingOptions {
doNotStrip "*/*/libmimo_1011.so"
}
} }
dependencies { dependencies {
@@ -51,12 +57,12 @@ dependencies {
//api 'androidx.fragment:fragment:1.1.0' //api 'androidx.fragment:fragment:1.1.0'
// 米盟 // 米盟
implementation 'com.miui.zeus:mimo-ad-sdk:5.3.+'//请使用最新版sdk api 'com.miui.zeus:mimo-ad-sdk:5.3.+'//请使用最新版sdk
//注意以下5个库必须要引入 //注意以下5个库必须要引入
//implementation 'androidx.appcompat:appcompat:1.4.1' //implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'androidx.recyclerview:recyclerview:1.0.0' api 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'com.google.code.gson:gson:2.8.5' api 'com.google.code.gson:gson:2.8.5'
implementation 'com.github.bumptech.glide:glide:4.9.0' api 'com.github.bumptech.glide:glide:4.9.0'
//annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0' //annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
api 'cc.winboll.studio:libappbase:15.11.0' api 'cc.winboll.studio:libappbase:15.11.0'

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Wed Nov 19 09:04:27 HKT 2025 #Fri Nov 21 13:48:41 HKT 2025
stageCount=5 stageCount=7
libraryProject=libaes libraryProject=libaes
baseVersion=15.11 baseVersion=15.11
publishVersion=15.11.4 publishVersion=15.11.6
buildCount=0 buildCount=0
baseBetaVersion=15.11.5 baseBetaVersion=15.11.7

View File

@@ -193,8 +193,9 @@ public class AboutView extends LinearLayout {
elementGitWeb.setOnClickListener(mGitWebOnClickListener); elementGitWeb.setOnClickListener(mGitWebOnClickListener);
// 定义检查更新按钮 // 定义检查更新按钮
// //
Element elementAppUpdate = new Element(_mContext.getString(R.string.app_update), R.drawable.ic_winboll); /*Element elementAppUpdate = new Element(_mContext.getString(R.string.app_update), R.drawable.ic_winboll);
elementAppUpdate.setOnClickListener(mAppUpdateOnClickListener); elementAppUpdate.setOnClickListener(mAppUpdateOnClickListener);
*/
String szAppInfo = ""; String szAppInfo = "";
try { try {
@@ -214,8 +215,8 @@ public class AboutView extends LinearLayout {
//.addGroup("Connect with us") //.addGroup("Connect with us")
.addEmail("ZhanGSKen<zhangsken@qq.com>") .addEmail("ZhanGSKen<zhangsken@qq.com>")
.addWebsite(mszHomePage) .addWebsite(mszHomePage)
.addItem(elementGitWeb) .addItem(elementGitWeb);
.addItem(elementAppUpdate); //.addItem(elementAppUpdate);
//.addFacebook("the.medy") //.addFacebook("the.medy")
//.addTwitter("medyo80") //.addTwitter("medyo80")
//.addYoutube("UCdPQtdWIsg7_pi4mrRu46vA") //.addYoutube("UCdPQtdWIsg7_pi4mrRu46vA")
@@ -224,7 +225,7 @@ public class AboutView extends LinearLayout {
//.addInstagram("medyo80") //.addInstagram("medyo80")
//.create(); //.create();
if (mAPPInfo.isAddDebugTools()) { /*if (mAPPInfo.isAddDebugTools()) {
// 定义应用调试按钮 // 定义应用调试按钮
// //
Element elementAppMode; Element elementAppMode;
@@ -236,7 +237,7 @@ public class AboutView extends LinearLayout {
elementAppMode.setOnClickListener(mAppDebugOnClickListener); elementAppMode.setOnClickListener(mAppDebugOnClickListener);
} }
aboutPage.addItem(elementAppMode); aboutPage.addItem(elementAppMode);
} }*/
return aboutPage.create(); return aboutPage.create();
} }