diff --git a/.winboll/bashMergeProjects-to-Projects_Keeper.sh b/.winboll/bashMergeProjects-to-Projects_Keeper.sh index 0f1bff7..e633313 100644 --- a/.winboll/bashMergeProjects-to-Projects_Keeper.sh +++ b/.winboll/bashMergeProjects-to-Projects_Keeper.sh @@ -72,7 +72,6 @@ libaes libappbase libdebugtemp libgpsrelaysentinel -libwinboll local.properties-demo mymessagemanager positions @@ -158,7 +157,7 @@ echo -e "## 对象列表结束 ## 合并 APP 项目 MERGE_APP_PROJECT_LIST=( -DemoAPP +WinBoLL ) echo -e "#@@@ 开始合并应用型模块源码 @@@# ## 目标合并对象列表:" @@ -173,7 +172,6 @@ done ## 合并 LIB 项目 MERGE_LIB_PROJECT_LIST=( -WinBoLL APPBase AES ) @@ -189,4 +187,4 @@ git checkout origin/$item_lower $item_lower lib$item_lower done echo '正在推送 Projects_Keeper 项目' -git push \ No newline at end of file +git push diff --git a/.winboll/bashMergeProjects-to-Projects_Keeper_Tag.sh b/.winboll/bashMergeProjects-to-Projects_Keeper_Tag.sh index 6d30f3b..520335a 100644 --- a/.winboll/bashMergeProjects-to-Projects_Keeper_Tag.sh +++ b/.winboll/bashMergeProjects-to-Projects_Keeper_Tag.sh @@ -65,7 +65,6 @@ libaes libappbase libdebugtemp libgpsrelaysentinel -libwinboll local.properties-demo mymessagemanager positions @@ -98,7 +97,7 @@ check_diff echo -e "#@@@ 按时间获取最新标签合并模块源码 @@@#" # 应用型模块 -MERGE_APP_PROJECT_LIST=(DemoAPP) +MERGE_APP_PROJECT_LIST=(WinBoLL) echo -e "---------- 应用型模块 ----------" for name in "${MERGE_APP_PROJECT_LIST[@]}";do low_name=$(echo "$name" | tr 'A-Z' 'a-z') @@ -120,7 +119,7 @@ for name in "${MERGE_APP_PROJECT_LIST[@]}";do done # 类库模块 -MERGE_LIB_PROJECT_LIST=(WinBoLL APPBase AES) +MERGE_LIB_PROJECT_LIST=(APPBase AES) echo -e "---------- 类库模块 ----------" for name in "${MERGE_LIB_PROJECT_LIST[@]}";do low_name=$(echo "$name" | tr 'A-Z' 'a-z') diff --git a/.winboll/bashPublishAPKAddTagInTermux.sh b/.winboll/bashPublishAPKAddTagInTermux.sh new file mode 100644 index 0000000..bf9e239 --- /dev/null +++ b/.winboll/bashPublishAPKAddTagInTermux.sh @@ -0,0 +1,228 @@ +#!/usr/bin/bash +# ============================================================================== +# WinBoLL 应用发布脚本 +# 功能:检查Git源码状态 → 编译Stage Release包 → 添加WinBoLL标签 → 提交并推送源码 +# 依赖:build.properties、app_update_description.txt(项目根目录下) +# 使用:./script_name.sh +# 作者:豆包&ZhanGSKen +# ============================================================================== + +# ==================== 常量定义 ==================== +# 脚本退出码 +EXIT_CODE_SUCCESS=0 +EXIT_CODE_ERR_NO_APP_NAME=2 +EXIT_CODE_ERR_WORK_DIR=1 +EXIT_CODE_ERR_GIT_CHECK=1 +EXIT_CODE_ERR_ADD_WINBOLL_TAG=1 + +# Gradle 任务(正式发布) +GRADLE_TASK_PUBLISH="assembleStageRelease" +# Gradle 任务(调试用,注释备用) +# GRADLE_TASK_DEBUG="assembleBetaDebug" + +# aapt2本地覆盖参数 +AAPT2_OVERRIDE_ARG="-Pandroid.aapt2FromMavenOverride=/data/data/com.termux/files/usr/bin/aapt2" +# 禁用Gradle守护进程 +GRADLE_NO_DAEMON="--no-daemon" + +# ==================== 函数定义 ==================== +# 检查Git源码是否已完全提交(无未提交变更) +# 返回值:0=已完全提交,1=存在未提交变更 +function checkGitSources() { + # 配置Git安全目录(解决权限问题) + git config --global --add safe.directory "$(pwd)" + + # 检查是否有未提交的变更 + if [[ -n $(git diff --stat) ]]; then + echo "[ERROR] Git源码存在未提交变更,请先提交所有修改!" + return 1 + fi + + echo "[INFO] Git源码检查通过:所有变更已提交。" + return 0 +} + +# 询问是否添加GitHub Workflows标签(当前逻辑注释,保留扩展能力) +# 返回值:1=用户选择是,0=用户选择否 +function askAddWorkflowsTag() { + read -p "是否添加GitHub Workflows标签?(Y/n) " answer + if [[ $answer =~ ^[Yy]$ ]]; then + return 1 + else + return 0 + fi +} + +# 添加WinBoLL正式标签 +# 参数:$1=应用名称(项目根目录名) +# 返回值:0=标签添加成功,1=标签已存在/添加失败 +function addWinBoLLTag() { + local app_name=$1 + local build_prop_path="${app_name}/build.properties" + + # 从build.properties中提取publishVersion + local publish_version=$(grep -o "publishVersion=.*" "${build_prop_path}" | awk -F '=' '{print $2}') + if [[ -z ${publish_version} ]]; then + echo "[ERROR] 未从${build_prop_path}中提取到publishVersion配置!" + return 1 + fi + echo "[INFO] 从${build_prop_path}读取到publishVersion:${publish_version}" + + # 构造WinBoLL标签(格式:-v) + local tag="${app_name}-v${publish_version}" + echo "[INFO] 准备添加WinBoLL标签:${tag}" + + # 检查标签是否已存在 + if [[ "$(git tag -l ${tag})" == "${tag}" ]]; then + echo "[ERROR] WinBoLL标签${tag}已存在!" + return 1 + fi + + # 添加带注释的标签(注释来自app_update_description.txt) + git tag -a "${tag}" -F "${app_name}/app_update_description.txt" + echo "[INFO] WinBoLL标签${tag}添加成功!" + return 0 +} + +# 添加GitHub Workflows Beta标签(当前逻辑注释,保留扩展能力) +# 参数:$1=应用名称(项目根目录名) +# 返回值:0=标签添加成功,1=标签已存在/添加失败 +function addWorkflowsTag() { + local app_name=$1 + local build_prop_path="${app_name}/build.properties" + + # 从build.properties中提取baseBetaVersion + local base_beta_version=$(grep -o "baseBetaVersion=.*" "${build_prop_path}" | awk -F '=' '{print $2}') + if [[ -z ${base_beta_version} ]]; then + echo "[ERROR] 未从${build_prop_path}中提取到baseBetaVersion配置!" + return 1 + fi + echo "[INFO] 从${build_prop_path}读取到baseBetaVersion:${base_beta_version}" + + # 构造Workflows标签(格式:-v-beta) + local tag="${app_name}-v${base_beta_version}-beta" + echo "[INFO] 准备添加Workflows标签:${tag}" + + # 检查标签是否已存在 + if [[ "$(git tag -l ${tag})" == "${tag}" ]]; then + echo "[ERROR] Workflows标签${tag}已存在!" + return 1 + fi + + # 添加带注释的标签(注释来自app_update_description.txt) + git tag -a "${tag}" -F "${app_name}/app_update_description.txt" + echo "[INFO] Workflows标签${tag}添加成功!" + return 0 +} + +# ==================== 主流程开始 ==================== +echo "=============================================" +echo " WinBoLL 应用发布脚本" +echo "=============================================" + +# 1. 检查应用名称参数是否指定 +if [ -z "$1" ]; then + echo "[ERROR] 未指定应用名称!使用方式:${0} " + exit ${EXIT_CODE_ERR_NO_APP_NAME} +fi +APP_NAME=$1 +echo "[INFO] 待发布应用名称:${APP_NAME}" + +# 2. 检查并切换到项目根目录(确保build.properties存在) +echo "[INFO] 当前工作目录:$(pwd)" +if [[ ! -e "${APP_NAME}/build.properties" ]]; then + echo "[WARNING] 当前目录不存在${APP_NAME}/build.properties,尝试切换到上级目录..." + cd .. + echo "[INFO] 切换后工作目录:$(pwd)" +fi + +# 验证最终工作目录是否正确 +if [[ ! -e "${APP_NAME}/build.properties" ]]; then + echo "[ERROR] 工作目录错误!${APP_NAME}/build.properties 文件不存在。" + exit ${EXIT_CODE_ERR_WORK_DIR} +fi +echo "[INFO] 工作目录验证通过:${APP_NAME}/build.properties 存在。" + +# 3. 检查Git源码状态 +echo "---------------------------------------------" +echo " 步骤1:检查Git源码状态" +echo "---------------------------------------------" +checkGitSources +if [[ $? -ne ${EXIT_CODE_SUCCESS} ]]; then + echo "[ERROR] Git源码检查失败,脚本终止!" + exit ${EXIT_CODE_ERR_GIT_CHECK} +fi + +# 4. 编译Stage Release版本APK(携带aapt2覆盖参数 + --no-daemon) +echo "---------------------------------------------" +echo " 步骤2:编译Stage Release APK" +echo "---------------------------------------------" +echo "[INFO] 开始执行Gradle任务:${GRADLE_TASK_PUBLISH}" +# 调试用(注释正式任务,启用调试任务) +# bash gradlew ${AAPT2_OVERRIDE_ARG} ${GRADLE_NO_DAEMON} :${APP_NAME}:${GRADLE_TASK_DEBUG} +bash gradlew ${AAPT2_OVERRIDE_ARG} ${GRADLE_NO_DAEMON} :${APP_NAME}:${GRADLE_TASK_PUBLISH} + +if [[ $? -ne ${EXIT_CODE_SUCCESS} ]]; then + echo "[ERROR] Gradle编译任务失败!" + exit 1 +fi +echo "[INFO] Stage Release APK编译成功!" + +# 5. 添加WinBoLL正式标签 +echo "---------------------------------------------" +echo " 步骤3:添加WinBoLL标签" +echo "---------------------------------------------" +addWinBoLLTag ${APP_NAME} +if [[ $? -ne ${EXIT_CODE_SUCCESS} ]]; then + echo "[ERROR] WinBoLL标签添加失败,脚本终止!" + exit ${EXIT_CODE_ERR_ADD_WINBOLL_TAG} +fi + +# 6. (可选)添加GitHub Workflows标签(当前逻辑注释,保留扩展能力) +# echo "---------------------------------------------" +# echo " 步骤4:添加Workflows标签(可选)" +# echo "---------------------------------------------" +# echo "是否添加GitHub Workflows Beta标签?(Y/n) " +# askAddWorkflowsTag +# nAskAddWorkflowsTag=$? +# if [[ ${nAskAddWorkflowsTag} -eq 1 ]]; then +# addWorkflowsTag ${APP_NAME} +# if [[ $? -ne ${EXIT_CODE_SUCCESS} ]]; then +# echo "[ERROR] Workflows标签添加失败,脚本终止!" +# exit 1 +# fi +# fi + +# 7. 清理更新描述文件 +echo "---------------------------------------------" +echo " 步骤5:清理更新描述文件" +echo "---------------------------------------------" +echo "" > "${APP_NAME}/app_update_description.txt" +echo "[INFO] 已清空${APP_NAME}/app_update_description.txt" + +# 8. 提交并推送源码与标签 +echo "---------------------------------------------" +echo " 步骤6:提交并推送源码" +echo "---------------------------------------------" +git add . +git commit -m "<${APP_NAME}> 开始新的Stage版本开发。" +echo "[INFO] 源码提交成功,开始推送..." + +# 推送源码到远程仓库 +git push origin +# 推送标签到远程仓库 +git push origin --tags + +if [[ $? -eq ${EXIT_CODE_SUCCESS} ]]; then + echo "[INFO] 源码与标签推送成功!" +else + echo "[ERROR] 源码与标签推送失败!" + exit 1 +fi + +# ==================== 主流程结束 ==================== +echo "=============================================" +echo " WinBoLL 应用发布完成!" +echo "=============================================" +exit ${EXIT_CODE_SUCCESS} + diff --git a/.winboll/bashPublishLIBAddTagInTermux.sh b/.winboll/bashPublishLIBAddTagInTermux.sh new file mode 100644 index 0000000..b151747 --- /dev/null +++ b/.winboll/bashPublishLIBAddTagInTermux.sh @@ -0,0 +1,20 @@ +#!/usr/bin/bash + +# aapt2本地覆盖参数 +AAPT2_OVERRIDE_ARG="-Pandroid.aapt2FromMavenOverride=/data/data/com.termux/files/usr/bin/aapt2" +# Gradle禁用守护进程参数 +GRADLE_NO_DAEMON="--no-daemon" + +# 检查是否指定了将要发布的类库名称 +# 使用 `-z` 命令检查变量是否为空 +if [ -z "$1" ]; then + echo "No Library name specified : $0" + exit 2 +fi + +## 正式发布使用 +git pull && bash gradlew ${AAPT2_OVERRIDE_ARG} ${GRADLE_NO_DAEMON} :$1:publishReleasePublicationToWinBoLLReleaseRepository && bash .winboll/bashCommitLibReleaseBuildFlagInfo.sh $1 + +## 调试使用 +#bash gradlew ${AAPT2_OVERRIDE_ARG} ${GRADLE_NO_DAEMON} :$1:publishSnapshotWinBoLLPublicationToWinBoLLSnapshotRepository && bash .winboll/bashCommitLibReleaseBuildFlagInfo.sh $1 + diff --git a/.winboll/winboll_app_build.gradle b/.winboll/winboll_app_build.gradle index 57b6ba7..23fafa7 100644 --- a/.winboll/winboll_app_build.gradle +++ b/.winboll/winboll_app_build.gradle @@ -122,7 +122,6 @@ android { // 如果正在调试,就拷贝到 WinBoLL 备份管理文件夹 // if(variant.flavorName == "beta"&&variant.buildType.name == "debug"){ - //File outBuildBckDir = new File(fWinBoLLStudioDir, "/${rootProject.name}/${variant.buildType.name}") File outBuildBckDir = new File(fWinBoLLStudioDir, "/" + project.rootDir.name + "/${variant.buildType.name}") // 创建目标路径目录 if(!outBuildBckDir.exists()) { @@ -130,6 +129,7 @@ android { println "Output Folder Created.(WinBoLLStudio) : " + outBuildBckDir.getAbsolutePath() } if(outBuildBckDir.exists()) { + def targetApkFile = new File(outBuildBckDir, outputFileName) copy{ from file.outputFile into outBuildBckDir @@ -138,6 +138,14 @@ android { } println "Output APK (WinBoLLStudio): " + outBuildBckDir.getAbsolutePath() + "/${outputFileName}" } + // ========== 设置文件权限为775 ========== + if(targetApkFile.exists()){ + exec { + commandLine 'chmod', '775', targetApkFile.absolutePath + } + println "Set file permission to 775 : ${targetApkFile.absolutePath}" + } + // 检查编译标志位配置 assert (winbollBuildProps['buildCount'] != null) assert (winbollBuildProps['libraryProject'] != null) @@ -160,8 +168,7 @@ android { assert(libraryProjectBuildPropsFile.exists()) java.nio.file.Path sourceFilePath = winbollBuildPropsFile.toPath(); java.nio.file.Path targetFilePath = libraryProjectBuildPropsFile.toPath(); - // 使用copyTo()方法复制文件,如果目标文件存在会被覆盖,可选参数可以选择不覆盖 - java.nio.file.Files.copy(sourceFilePath, targetFilePath, java.nio.file.StandardCopyOption.REPLACE_EXISTING); + java.nio.file.Files.copy(sourceFilePath, targetFilePath, java.nio.file.StandardCopyOption.REPLACE_EXISTING); println "\n\n>>> Library Project build.properties saved.\n\n"; } @@ -172,16 +179,12 @@ android { // if(variant.flavorName == "stage"&&variant.buildType.name == "release"){ // 发布 APK 文件 - // - // 截取版本号的版本字段为短版本名 String szVersionName = "${versionName}" String[] szlistTemp = szVersionName.split("-") String szShortVersionName = szlistTemp[0] - //String szCommonTagAPKName = "${rootProject.name}_" + szShortVersionName + ".apk" String szCommonTagAPKName = project.rootDir.name + "_" + szShortVersionName + ".apk" println "CommonTagAPKName is : " + szCommonTagAPKName - //File outTagDir = new File(fWinBoLLStudioDir, "/${rootProject.name}/tag/") File outTagDir = new File(fWinBoLLStudioDir, "/" + project.rootDir.name + "/tag/") // 创建目标路径目录 if(!outTagDir.exists()) { @@ -192,12 +195,10 @@ android { if(outTagDir.exists()) { File targetAPK = new File(outTagDir, "${szCommonTagAPKName}") if(targetAPK.exists()) { - // 标签版本APK文件已经存在,构建拷贝任务停止 assert (!targetAPK.exists()) - // 可选择删除并继续输出APK文件 - //delete targetAPK } - // 复制一个备份 + // 复制完整版APK + def fullApkFile = new File(outTagDir, outputFileName) copy{ from file.outputFile into outTagDir @@ -206,7 +207,16 @@ android { } println "Output APK (Tags): "+ outTagDir.getAbsolutePath() + "/${outputFileName}" } - // 复制一个并重命名为短版本名 + // 设置权限775。 + if(fullApkFile.exists()){ + exec { + commandLine 'chmod', '775', fullApkFile.absolutePath + } + println "Set file permission to 775 : ${fullApkFile.absolutePath}" + } + + // 复制短版本名APK + def shortApkFile = new File(outTagDir, szCommonTagAPKName) copy{ from file.outputFile into outTagDir @@ -215,6 +225,14 @@ android { } println "Output APK (Tags): "+ outTagDir.getAbsolutePath() + "/${szCommonTagAPKName}" } + // 设置权限775。 + if(shortApkFile.exists()){ + exec { + commandLine 'chmod', '775', shortApkFile.absolutePath + } + println "Set file permission to 775 : ${shortApkFile.absolutePath}" + } + // 检查编译标志位配置 assert (winbollBuildProps['stageCount'] != null) assert (winbollBuildProps['publishVersion'] != null) @@ -239,14 +257,11 @@ android { fos.close(); if(winbollBuildProps['libraryProject'] != "") { - // 如果应用 build.properties 文件设置了类库模块项目文件名 - // 就拷贝一份新的编译标志配置到类库项目文件夹 File libraryProjectBuildPropsFile = new File("$RootProjectDir/" + winbollBuildProps['libraryProject'] + "/build.properties") assert(winbollBuildPropsFile.exists()) assert(libraryProjectBuildPropsFile.exists()) java.nio.file.Path sourceFilePath = winbollBuildPropsFile.toPath(); java.nio.file.Path targetFilePath = libraryProjectBuildPropsFile.toPath(); - // 使用copyTo()方法复制文件,如果目标文件存在会被覆盖,可选参数可以选择不覆盖 java.nio.file.Files.copy(sourceFilePath, targetFilePath, java.nio.file.StandardCopyOption.REPLACE_EXISTING); } @@ -263,17 +278,12 @@ android { // 如果正在调试发布版,就只生成和输出APK文件,不处理 Git 仓库提交与更新问题。 // if(variant.flavorName == "stage"&&variant.buildType.name == "debug"){ - // 发布 APK 文件 - // - // 截取版本号的版本字段为短版本名 String szVersionName = "${versionName}" String[] szlistTemp = szVersionName.split("-") String szShortVersionName = szlistTemp[0] - //String szCommonTagAPKName = "${rootProject.name}_" + szShortVersionName + ".apk" String szCommonTagAPKName = project.rootDir.name + "_" + szShortVersionName + ".apk" println "CommonTagAPKName is : " + szCommonTagAPKName - //File outTagDir = new File(fWinBoLLStudioDir, "/${rootProject.name}/tag/") File outTagDir = new File(fWinBoLLStudioDir, "/" + project.rootDir.name + "/${variant.buildType.name}/") // 创建目标路径目录 if(!outTagDir.exists()) { @@ -284,13 +294,11 @@ android { if(outTagDir.exists()) { File targetAPK = new File(outTagDir, "${szCommonTagAPKName}") if(targetAPK.exists()) { - // 标签版本APK文件已经存在,构建拷贝任务停止 println '如果是在调试 Stage 版应用包构建,请删除(注:在debug目录)现有的 Stage 应用包('+targetAPK.getAbsolutePath()+')。再编译一次。' assert (!targetAPK.exists()) - // 可选择删除并继续输出APK文件 - //delete targetAPK } - // 复制一个备份 + // 复制完整版APK + def debugFullApk = new File(outTagDir, outputFileName) copy{ from file.outputFile into outTagDir @@ -299,7 +307,16 @@ android { } println "Output APK (Tags): "+ outTagDir.getAbsolutePath() + "/${outputFileName}" } - // 复制一个并重命名为短版本名 + // 权限设为775。 + if(debugFullApk.exists()){ + exec { + commandLine 'chmod', '775', debugFullApk.absolutePath + } + println "Set file permission to 775 : ${debugFullApk.absolutePath}" + } + + // 复制短版本名APK + def debugShortApk = new File(outTagDir, szCommonTagAPKName) copy{ from file.outputFile into outTagDir @@ -308,8 +325,13 @@ android { } println "Output APK (Tags): "+ outTagDir.getAbsolutePath() + "/${szCommonTagAPKName}" } - - //不保存编译标志配置 + // 权限设为775 + if(debugShortApk.exists()){ + exec { + commandLine 'chmod', '775', debugShortApk.absolutePath + } + println "Set file permission to 775 : ${debugShortApk.absolutePath}" + } } } @@ -328,6 +350,13 @@ android { } println "Output APK (Common): " + outCommonDir.getAbsolutePath() + "/${commandAPKName}" } + // 额外输出文件设置775权限 + if(apkFile.exists()){ + exec { + commandLine 'chmod', '775', apkFile.absolutePath + } + println "Set file permission to 775 : ${apkFile.absolutePath}" + } } } diff --git a/libwinboll/.gitignore b/libwinboll/.gitignore deleted file mode 100644 index 796b96d..0000000 --- a/libwinboll/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/libwinboll/build.gradle b/libwinboll/build.gradle deleted file mode 100644 index ca2b4fb..0000000 --- a/libwinboll/build.gradle +++ /dev/null @@ -1,55 +0,0 @@ -apply plugin: 'com.android.library' -apply plugin: 'maven-publish' -apply from: '../.winboll/winboll_lib_build.gradle' -apply from: '../.winboll/winboll_lint_build.gradle' - -android { - // 适配MIUI12 - compileSdkVersion 30 - buildToolsVersion "30.0.3" - - defaultConfig { - minSdkVersion 26 - targetSdkVersion 30 - } - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_7 - targetCompatibility JavaVersion.VERSION_1_7 - } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - } -} - -dependencies { - // 网络连接类库 - api 'com.squareup.okhttp3:okhttp:4.4.1' - // Gson - api 'com.google.code.gson:gson:2.8.9' - // Html 解析 - api 'org.jsoup:jsoup:1.13.1' - // 添加JSch依赖(SFTP核心,com.jcraft:jsch:0.1.54) - api 'com.jcraft:jsch:0.1.54' - - // 米盟 - //api 'com.miui.zeus:mimo-ad-sdk:5.3.+'//请使用最新版sdk - //注意:以下5个库必须要引入 - //implementation 'androidx.appcompat:appcompat:1.4.1' - api 'androidx.recyclerview:recyclerview:1.0.0' - api 'com.google.code.gson:gson:2.8.5' - api 'com.github.bumptech.glide:glide:4.9.0' - //annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0' - - // WinBoLL库 nexus.winboll.cc 地址 - api 'cc.winboll.studio:libappbase:15.20.33' - api 'cc.winboll.studio:libaes:15.20.16' - - // 备用库 jitpack.io 地址 - //api 'com.github.ZhanGSKen:libappbase:appbase-v15.20.33' - //api 'com.github.ZhanGSKen:libaes:aes-v15.20.16' - - api fileTree(dir: 'libs', include: ['*.jar']) -} diff --git a/libwinboll/build.properties b/libwinboll/build.properties deleted file mode 100644 index 1a600ca..0000000 --- a/libwinboll/build.properties +++ /dev/null @@ -1,8 +0,0 @@ -#Created by .winboll/winboll_app_build.gradle -#Wed Jun 24 08:11:15 CST 2026 -stageCount=9 -libraryProject=libwinboll -baseVersion=15.20 -publishVersion=15.20.8 -buildCount=0 -baseBetaVersion=15.20.9 diff --git a/libwinboll/proguard-rules.pro b/libwinboll/proguard-rules.pro deleted file mode 100644 index 536058a..0000000 --- a/libwinboll/proguard-rules.pro +++ /dev/null @@ -1,17 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in C:/tools/adt-bundle-windows-x86_64-20131030/sdk/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# 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: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} diff --git a/libwinboll/src/main/AndroidManifest.xml b/libwinboll/src/main/AndroidManifest.xml deleted file mode 100644 index 2323080..0000000 --- a/libwinboll/src/main/AndroidManifest.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - diff --git a/libwinboll/src/main/java/cc/winboll/studio/libwinboll/WinBoLLLibraryActivity.java b/libwinboll/src/main/java/cc/winboll/studio/libwinboll/WinBoLLLibraryActivity.java deleted file mode 100644 index bb86ae9..0000000 --- a/libwinboll/src/main/java/cc/winboll/studio/libwinboll/WinBoLLLibraryActivity.java +++ /dev/null @@ -1,17 +0,0 @@ -package cc.winboll.studio.libwinboll; - -import android.app.Activity; -import android.os.Bundle; -import cc.winboll.studio.libappbase.ToastUtils; - -public class WinBoLLLibraryActivity extends Activity -{ - @Override - protected void onCreate(Bundle savedInstanceState) - { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_winbolllibrary); - - ToastUtils.show("WinBoLLLibraryActivity onCreate"); - } -} diff --git a/libwinboll/src/main/res/drawable-hdpi/ic_launcher.png b/libwinboll/src/main/res/drawable-hdpi/ic_launcher.png deleted file mode 100644 index 96a442e..0000000 Binary files a/libwinboll/src/main/res/drawable-hdpi/ic_launcher.png and /dev/null differ diff --git a/libwinboll/src/main/res/drawable-mdpi/ic_launcher.png b/libwinboll/src/main/res/drawable-mdpi/ic_launcher.png deleted file mode 100644 index 359047d..0000000 Binary files a/libwinboll/src/main/res/drawable-mdpi/ic_launcher.png and /dev/null differ diff --git a/libwinboll/src/main/res/drawable-xhdpi/ic_launcher.png b/libwinboll/src/main/res/drawable-xhdpi/ic_launcher.png deleted file mode 100644 index 71c6d76..0000000 Binary files a/libwinboll/src/main/res/drawable-xhdpi/ic_launcher.png and /dev/null differ diff --git a/libwinboll/src/main/res/drawable-xxhdpi/ic_launcher.png b/libwinboll/src/main/res/drawable-xxhdpi/ic_launcher.png deleted file mode 100644 index 4df1894..0000000 Binary files a/libwinboll/src/main/res/drawable-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/libwinboll/src/main/res/layout/activity_winbolllibrary.xml b/libwinboll/src/main/res/layout/activity_winbolllibrary.xml deleted file mode 100644 index 97dc11a..0000000 --- a/libwinboll/src/main/res/layout/activity_winbolllibrary.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/libwinboll/src/main/res/values-v21/styles.xml b/libwinboll/src/main/res/values-v21/styles.xml deleted file mode 100644 index 0948fdc..0000000 --- a/libwinboll/src/main/res/values-v21/styles.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/libwinboll/src/main/res/values/strings.xml b/libwinboll/src/main/res/values/strings.xml deleted file mode 100644 index b677aa6..0000000 --- a/libwinboll/src/main/res/values/strings.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - libwinboll - Hello world! - - diff --git a/libwinboll/src/main/res/values/styles.xml b/libwinboll/src/main/res/values/styles.xml deleted file mode 100644 index 8d78246..0000000 --- a/libwinboll/src/main/res/values/styles.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/winboll/build.gradle b/winboll/build.gradle index d536381..4999551 100644 --- a/winboll/build.gradle +++ b/winboll/build.gradle @@ -18,10 +18,14 @@ def genVersionName(def versionName){ } android { - // 适配MIUI12 - compileSdkVersion 30 - buildToolsVersion "30.0.3" - + // 适配MIUI12 + compileSdkVersion 30 + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_7 + targetCompatibility JavaVersion.VERSION_1_7 + } + defaultConfig { applicationId "cc.winboll.studio.winboll" minSdkVersion 26 @@ -39,7 +43,6 @@ android { } dependencies { - api project(':libwinboll') api 'com.google.code.gson:gson:2.10.1' // 下拉控件 @@ -97,8 +100,8 @@ dependencies { implementation 'androidx.biometric:biometric:1.1.0' // WinBoLL库 nexus.winboll.cc 地址 - api 'cc.winboll.studio:libappbase:15.20.33' - api 'cc.winboll.studio:libaes:15.20.16' + api 'cc.winboll.studio:libappbase:15.20.34' + api 'cc.winboll.studio:libaes:15.20.17' // 备用库 jitpack.io 地址 //api 'com.github.ZhanGSKen:libappbase:appbase-v15.20.33' diff --git a/winboll/build.properties b/winboll/build.properties index 1a600ca..3dcda4c 100644 --- a/winboll/build.properties +++ b/winboll/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Wed Jun 24 08:11:15 CST 2026 +#Wed Jul 01 03:24:33 CST 2026 stageCount=9 -libraryProject=libwinboll +libraryProject= baseVersion=15.20 publishVersion=15.20.8 -buildCount=0 +buildCount=8 baseBetaVersion=15.20.9 diff --git a/winboll/src/main/java/cc/winboll/studio/winboll/MainActivity.java b/winboll/src/main/java/cc/winboll/studio/winboll/MainActivity.java index 7f34285..da137ee 100644 --- a/winboll/src/main/java/cc/winboll/studio/winboll/MainActivity.java +++ b/winboll/src/main/java/cc/winboll/studio/winboll/MainActivity.java @@ -193,9 +193,7 @@ public class MainActivity extends DrawerFragmentActivity { } else if (nItemId == R.id.item_termux_env_test) { Intent intent = new Intent(getApplicationContext(), TermuxEnvTestActivity.class); WinBoLLActivityManager.getInstance().startWinBoLLActivity(getApplicationContext(), intent, AboutActivity.class); - } else if (nItemId == R.id.item_library_activity) { - Intent intent = new Intent(getApplicationContext(), cc.winboll.studio.libwinboll.WinBoLLLibraryActivity.class); - WinBoLLActivityManager.getInstance().startWinBoLLActivity(getApplicationContext(), intent, AboutActivity.class); + } else { return super.onOptionsItemSelected(item); }