Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 915ce03831 | |||
| 6b7e71acbf | |||
| caca1d1137 | |||
| e92aa6699e | |||
| 50a06f028c | |||
| 2aed435668 | |||
| 506a8da12c | |||
| 1e40883810 | |||
| ea90877e6b | |||
| 1bec3dc08d |
@@ -1,5 +1,5 @@
|
|||||||
#!/system/bin/sh
|
#!/system/bin/sh
|
||||||
## 合并其他项目分支的模块源码到projects-keeper分支。
|
## 合并其他项目分支的模块源码到projects_keeper分支。
|
||||||
|
|
||||||
# ====================== 0. 进入目标目录 ======================
|
# ====================== 0. 进入目标目录 ======================
|
||||||
TARGET_DIR="/sdcard/AppProjects/Projects_Keeper"
|
TARGET_DIR="/sdcard/AppProjects/Projects_Keeper"
|
||||||
@@ -36,7 +36,7 @@ fi
|
|||||||
|
|
||||||
# ====================== 3. Git 分支检查 ======================
|
# ====================== 3. Git 分支检查 ======================
|
||||||
CUR_BRANCH=$(git symbolic-ref --short HEAD 2>/dev/null)
|
CUR_BRANCH=$(git symbolic-ref --short HEAD 2>/dev/null)
|
||||||
TARGET_BRANCH="projects-keeper"
|
TARGET_BRANCH="projects_keeper"
|
||||||
|
|
||||||
if [ "$CUR_BRANCH" != "$TARGET_BRANCH" ]; then
|
if [ "$CUR_BRANCH" != "$TARGET_BRANCH" ]; then
|
||||||
echo "错误:当前不在 $TARGET_BRANCH 分支!"
|
echo "错误:当前不在 $TARGET_BRANCH 分支!"
|
||||||
@@ -72,7 +72,6 @@ libaes
|
|||||||
libappbase
|
libappbase
|
||||||
libdebugtemp
|
libdebugtemp
|
||||||
libgpsrelaysentinel
|
libgpsrelaysentinel
|
||||||
libwinboll
|
|
||||||
local.properties-demo
|
local.properties-demo
|
||||||
mymessagemanager
|
mymessagemanager
|
||||||
positions
|
positions
|
||||||
@@ -82,13 +81,14 @@ winboll
|
|||||||
winboll.properties-demo
|
winboll.properties-demo
|
||||||
)
|
)
|
||||||
|
|
||||||
# ====================== 5. 获取当前目录真实文件列表 ======================
|
# ====================== 5. 获取当前目录真实文件列表(兼容过滤 . ..) ======================
|
||||||
REAL_ITEMS=()
|
REAL_ITEMS=()
|
||||||
|
# 使用固定排序ls,自动过滤 . 和 ..,不会进入比对数组
|
||||||
while IFS= read -r line; do
|
while IFS= read -r line; do
|
||||||
if [[ "$line" != "." && "$line" != ".." ]]; then
|
if [[ "$line" != "." && "$line" != ".." ]]; then
|
||||||
REAL_ITEMS+=("$line")
|
REAL_ITEMS+=("$line")
|
||||||
fi
|
fi
|
||||||
done < <(ls -a)
|
done < <(LC_COLLATE=C ls -a1 --color=none)
|
||||||
|
|
||||||
# ====================== 6. 差异比对函数 ======================
|
# ====================== 6. 差异比对函数 ======================
|
||||||
check_diff() {
|
check_diff() {
|
||||||
@@ -158,7 +158,7 @@ echo -e "## 对象列表结束
|
|||||||
|
|
||||||
## 合并 APP 项目
|
## 合并 APP 项目
|
||||||
MERGE_APP_PROJECT_LIST=(
|
MERGE_APP_PROJECT_LIST=(
|
||||||
DemoAPP
|
WinBoLL
|
||||||
)
|
)
|
||||||
echo -e "#@@@ 开始合并应用型模块源码 @@@#
|
echo -e "#@@@ 开始合并应用型模块源码 @@@#
|
||||||
## 目标合并对象列表:"
|
## 目标合并对象列表:"
|
||||||
@@ -166,14 +166,13 @@ echo -e "#@@@ 开始合并应用型模块源码 @@@#
|
|||||||
for item in "${MERGE_APP_PROJECT_LIST[@]}"; do
|
for item in "${MERGE_APP_PROJECT_LIST[@]}"; do
|
||||||
echo "正在合并 $item 项目 ..."
|
echo "正在合并 $item 项目 ..."
|
||||||
item_lower=$(echo "$item" | tr 'A-Z' 'a-z')
|
item_lower=$(echo "$item" | tr 'A-Z' 'a-z')
|
||||||
git checkout origin/$item_lower $item_lower
|
git checkout origin/$item_lower $item_lower
|
||||||
git add .
|
git add .
|
||||||
git commit -m "合并 $item 项目"
|
git commit -m "合并 $item 项目"
|
||||||
done
|
done
|
||||||
|
|
||||||
## 合并 LIB 项目
|
## 合并 LIB 项目
|
||||||
MERGE_LIB_PROJECT_LIST=(
|
MERGE_LIB_PROJECT_LIST=(
|
||||||
WinBoLL
|
|
||||||
APPBase
|
APPBase
|
||||||
AES
|
AES
|
||||||
)
|
)
|
||||||
@@ -183,10 +182,10 @@ echo -e "#@@@ 开始合并类库型模块源码 @@@#
|
|||||||
for item in "${MERGE_LIB_PROJECT_LIST[@]}"; do
|
for item in "${MERGE_LIB_PROJECT_LIST[@]}"; do
|
||||||
echo "正在合并 $item 项目 ..."
|
echo "正在合并 $item 项目 ..."
|
||||||
item_lower=$(echo "$item" | tr 'A-Z' 'a-z')
|
item_lower=$(echo "$item" | tr 'A-Z' 'a-z')
|
||||||
git checkout origin/$item_lower $item_lower lib$item_lower
|
git checkout origin/$item_lower $item_lower lib$item_lower
|
||||||
git add .
|
git add .
|
||||||
git commit -m "合并 $item 项目"
|
git commit -m "合并 $item 项目"
|
||||||
done
|
done
|
||||||
|
|
||||||
echo '正在推送 Projects_Keeper 项目'
|
echo '正在推送 Projects_Keeper 项目'
|
||||||
git push
|
git push
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ if [ "${NOW_BRANCH}" != "${TARGET_BRANCH}" ];then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 目录结构校验
|
# 目录结构校验白名单(不含 . ..)
|
||||||
MERGE_OBJECTS_LIST=(
|
MERGE_OBJECTS_LIST=(
|
||||||
.git
|
.git
|
||||||
.gitignore
|
.gitignore
|
||||||
@@ -65,7 +65,6 @@ libaes
|
|||||||
libappbase
|
libappbase
|
||||||
libdebugtemp
|
libdebugtemp
|
||||||
libgpsrelaysentinel
|
libgpsrelaysentinel
|
||||||
libwinboll
|
|
||||||
local.properties-demo
|
local.properties-demo
|
||||||
mymessagemanager
|
mymessagemanager
|
||||||
positions
|
positions
|
||||||
@@ -76,9 +75,13 @@ winboll.properties-demo
|
|||||||
)
|
)
|
||||||
|
|
||||||
REAL_ITEMS=()
|
REAL_ITEMS=()
|
||||||
|
# 标准排序ls输出,循环强制过滤 . 和 ..
|
||||||
while IFS= read -r line; do
|
while IFS= read -r line; do
|
||||||
[[ $line != "." && $line != ".." ]] && REAL_ITEMS+=("$line")
|
# 跳过虚拟目录 . 和 ..
|
||||||
done < <(ls -a)
|
if [[ "$line" != "." && "$line" != ".." ]]; then
|
||||||
|
REAL_ITEMS+=("$line")
|
||||||
|
fi
|
||||||
|
done < <(LC_COLLATE=C ls -a1 --color=none)
|
||||||
|
|
||||||
check_diff(){
|
check_diff(){
|
||||||
local miss=() extra=()
|
local miss=() extra=()
|
||||||
@@ -89,7 +92,17 @@ check_diff(){
|
|||||||
[[ ! " ${MERGE_OBJECTS_LIST[@]} " =~ " ${i} " ]] && extra+=("$i")
|
[[ ! " ${MERGE_OBJECTS_LIST[@]} " =~ " ${i} " ]] && extra+=("$i")
|
||||||
done
|
done
|
||||||
if [[ ${#miss[@]} -gt 0 || ${#extra[@]} -gt 0 ]];then
|
if [[ ${#miss[@]} -gt 0 || ${#extra[@]} -gt 0 ]];then
|
||||||
|
echo "========================================"
|
||||||
echo "本地目录结构不一致,终止运行"
|
echo "本地目录结构不一致,终止运行"
|
||||||
|
if [[ ${#miss[@]} -gt 0 ]]; then
|
||||||
|
echo -e "\n缺失条目:"
|
||||||
|
for m in "${miss[@]}"; do echo " $m"; done
|
||||||
|
fi
|
||||||
|
if [[ ${#extra[@]} -gt 0 ]]; then
|
||||||
|
echo -e "\n多余条目:"
|
||||||
|
for e in "${extra[@]}"; do echo " $e"; done
|
||||||
|
fi
|
||||||
|
echo "========================================"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -98,7 +111,7 @@ check_diff
|
|||||||
echo -e "#@@@ 按时间获取最新标签合并模块源码 @@@#"
|
echo -e "#@@@ 按时间获取最新标签合并模块源码 @@@#"
|
||||||
|
|
||||||
# 应用型模块
|
# 应用型模块
|
||||||
MERGE_APP_PROJECT_LIST=(DemoAPP)
|
MERGE_APP_PROJECT_LIST=(WinBoLL)
|
||||||
echo -e "---------- 应用型模块 ----------"
|
echo -e "---------- 应用型模块 ----------"
|
||||||
for name in "${MERGE_APP_PROJECT_LIST[@]}";do
|
for name in "${MERGE_APP_PROJECT_LIST[@]}";do
|
||||||
low_name=$(echo "$name" | tr 'A-Z' 'a-z')
|
low_name=$(echo "$name" | tr 'A-Z' 'a-z')
|
||||||
@@ -120,7 +133,7 @@ for name in "${MERGE_APP_PROJECT_LIST[@]}";do
|
|||||||
done
|
done
|
||||||
|
|
||||||
# 类库模块
|
# 类库模块
|
||||||
MERGE_LIB_PROJECT_LIST=(WinBoLL APPBase AES)
|
MERGE_LIB_PROJECT_LIST=(APPBase AES)
|
||||||
echo -e "---------- 类库模块 ----------"
|
echo -e "---------- 类库模块 ----------"
|
||||||
for name in "${MERGE_LIB_PROJECT_LIST[@]}";do
|
for name in "${MERGE_LIB_PROJECT_LIST[@]}";do
|
||||||
low_name=$(echo "$name" | tr 'A-Z' 'a-z')
|
low_name=$(echo "$name" | tr 'A-Z' 'a-z')
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
/build
|
|
||||||
@@ -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'])
|
|
||||||
}
|
|
||||||
@@ -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
|
|
||||||
Vendored
-17
@@ -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 *;
|
|
||||||
#}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
package="cc.winboll.studio.libwinboll" >
|
|
||||||
|
|
||||||
<application>
|
|
||||||
<activity
|
|
||||||
android:name=".WinBoLLLibraryActivity">
|
|
||||||
</activity>
|
|
||||||
</application>
|
|
||||||
|
|
||||||
</manifest>
|
|
||||||
|
|
||||||
@@ -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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 9.2 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 5.1 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 14 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 19 KiB |
@@ -1,11 +0,0 @@
|
|||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:gravity="center">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="cc.winboll.studio.libwinboll.WinBoLLLibraryActivity"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<style name="AppTheme" parent="@android:style/Theme.Material.Light">
|
|
||||||
</style>
|
|
||||||
</resources>
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
|
|
||||||
<string name="lib_name">libwinboll</string>
|
|
||||||
<string name="hello_world">Hello world!</string>
|
|
||||||
|
|
||||||
</resources>
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<style name="AppTheme" parent="@android:style/Theme.Holo.Light">
|
|
||||||
</style>
|
|
||||||
</resources>
|
|
||||||
@@ -72,7 +72,6 @@
|
|||||||
|
|
||||||
// WinBoLL 项目编译设置
|
// WinBoLL 项目编译设置
|
||||||
//include ':winboll'
|
//include ':winboll'
|
||||||
//include ':libwinboll'
|
|
||||||
//rootProject.name = "winboll"
|
//rootProject.name = "winboll"
|
||||||
|
|
||||||
// RegExpUtils 项目编译设置
|
// RegExpUtils 项目编译设置
|
||||||
|
|||||||
+11
-8
@@ -18,10 +18,14 @@ def genVersionName(def versionName){
|
|||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
// 适配MIUI12
|
// 适配MIUI12
|
||||||
compileSdkVersion 30
|
compileSdkVersion 30
|
||||||
buildToolsVersion "30.0.3"
|
|
||||||
|
compileOptions {
|
||||||
|
sourceCompatibility JavaVersion.VERSION_1_7
|
||||||
|
targetCompatibility JavaVersion.VERSION_1_7
|
||||||
|
}
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "cc.winboll.studio.winboll"
|
applicationId "cc.winboll.studio.winboll"
|
||||||
minSdkVersion 26
|
minSdkVersion 26
|
||||||
@@ -31,7 +35,7 @@ android {
|
|||||||
// versionName 更新后需要手动设置
|
// versionName 更新后需要手动设置
|
||||||
// .winboll/winbollBuildProps.properties 文件的 stageCount=0
|
// .winboll/winbollBuildProps.properties 文件的 stageCount=0
|
||||||
// Gradle编译环境下合起来的 versionName 就是 "${versionName}.0"
|
// Gradle编译环境下合起来的 versionName 就是 "${versionName}.0"
|
||||||
versionName "15.20"
|
versionName "15.21"
|
||||||
if(true) {
|
if(true) {
|
||||||
versionName = genVersionName("${versionName}")
|
versionName = genVersionName("${versionName}")
|
||||||
}
|
}
|
||||||
@@ -39,7 +43,6 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api project(':libwinboll')
|
|
||||||
api 'com.google.code.gson:gson:2.10.1'
|
api 'com.google.code.gson:gson:2.10.1'
|
||||||
|
|
||||||
// 下拉控件
|
// 下拉控件
|
||||||
@@ -97,8 +100,8 @@ dependencies {
|
|||||||
implementation 'androidx.biometric:biometric:1.1.0'
|
implementation 'androidx.biometric:biometric:1.1.0'
|
||||||
|
|
||||||
// WinBoLL库 nexus.winboll.cc 地址
|
// WinBoLL库 nexus.winboll.cc 地址
|
||||||
api 'cc.winboll.studio:libappbase:15.20.33'
|
api 'cc.winboll.studio:libappbase:15.21.+'
|
||||||
api 'cc.winboll.studio:libaes:15.20.16'
|
api 'cc.winboll.studio:libaes:15.21.+'
|
||||||
|
|
||||||
// 备用库 jitpack.io 地址
|
// 备用库 jitpack.io 地址
|
||||||
//api 'com.github.ZhanGSKen:libappbase:appbase-v15.20.33'
|
//api 'com.github.ZhanGSKen:libappbase:appbase-v15.20.33'
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Wed Jun 24 08:11:15 CST 2026
|
#Tue Jul 21 09:55:56 HKT 2026
|
||||||
stageCount=9
|
stageCount=1
|
||||||
libraryProject=libwinboll
|
libraryProject=
|
||||||
baseVersion=15.20
|
baseVersion=15.21
|
||||||
publishVersion=15.20.8
|
publishVersion=15.21.0
|
||||||
buildCount=0
|
buildCount=0
|
||||||
baseBetaVersion=15.20.9
|
baseBetaVersion=15.21.1
|
||||||
|
|||||||
@@ -193,9 +193,7 @@ public class MainActivity extends DrawerFragmentActivity {
|
|||||||
} else if (nItemId == R.id.item_termux_env_test) {
|
} else if (nItemId == R.id.item_termux_env_test) {
|
||||||
Intent intent = new Intent(getApplicationContext(), TermuxEnvTestActivity.class);
|
Intent intent = new Intent(getApplicationContext(), TermuxEnvTestActivity.class);
|
||||||
WinBoLLActivityManager.getInstance().startWinBoLLActivity(getApplicationContext(), intent, AboutActivity.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 {
|
} else {
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user