@@ -1,175 +1,104 @@
## OriginMaster
【OriginMaster】WinBoLL 源生态计划。正如话,我需要一个 Point, 去撬动成个地球。
WinBoLL系列项目各个项目源码合并推送方向:
WinBoLL=>APPBase=>OriginMaster
WinBoLL=>AES=>OriginMaster
WinBoLL=>PowerBell=>OriginMaster
WinBoLL=>Positions=>OriginMaster
仓库规划概述:
☆ WinBoLL,APPBase,AES,PowerBell与Positions都是开发库。
☆ OriginMaster 是分支汇总存档库。
☆ OriginMaster 不适宜作为开发库克隆使用,不是应用开发基础库,而是汇总资料库。
☆ WinBoLL 库可以 作为应用开发的基础继承模板。
########
## ☁ ☁ ☁ WinBoLL APP ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁
# ☁ ☁ WinBoLL Studio Android 应用开源项目。☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁
# ☁ ☁ ☁ WinBoLL 网站地址 https://www.winboll.cc/ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁
# ☁ ☁ ☁ WinBoLL 源码地址 <https://gitea.winboll.cc/Studio/WinBoLL.git> ☁ ☁ ☁ ☁ ☁ ☁ ☁
# ☁ ☁ ☁ GitHub 源码地址 <https://github.com/ZhanGSKen/WinBoLL.git> ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁
# ☁ ☁ ☁ 码云 源码地址 <https://gitee.com/zhangsken/winboll.git> ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁
# ☁ ☁ ☁ 在 jitpack.io 托管的 APPBase 类库源码<https://github.com/ZhanGSKen/APPBase.git> ☁ ☁ ☁ ☁
# ☁ ☁ ☁ 在 jitpack.io 托管的 AES 类库源码<https://github.com/ZhanGSKen/AES.git> ☁ ☁ ☁ ☁
## WinBoLL 提问
同样是 /sdcard 目录,在开发 Android 应用时,
能否实现手机编译与电脑编译的源码同步。
☁因而 WinBoLL 项目组诞生了 。
## WinBoLL 项目组研发计划
致力于把 WinBoLL-APP 应用在手机端 Android 项目开发。
也在探索 https://gitea .winboll.cc/< WinBoLL 项目组 > /APP.git 应用于 WinBoLL-APP APK 分发。
更想进阶 https://github.com/< WinBoLL 项目组 > /APP.git 应用于 WinBoLL-APP Beta APK 分发。
## WinBoLL-APP 汗下...
#### ☁应用何置如此呢。且观用户云云。
#### ☁ 正当下 ☁ ###
#### ☁ 且容傻家叙说 ☁ WinBoLL-APP 应用场景
### ☁ WinBoLL 设备资源概述
#### ☁ 1. Raid Disk.
概述:这是一个矩阵存储类设备。
优点:该设备具有数据容错存储功能,
数据存储具有特长持久性 。
缺点:设备使用能源消耗比较高,
设备存取速度一般。
#### ☁ 2. Data Disk.
概述:这是一个普通硬盘存储设备
优点:该设备独立于操作系统,
数据持久性一般,
存取能源消耗小于 Raid Disk。
缺点:数据存储速度一般,存储能源消耗一般。
#### ☁ 3. SSD Disk.
概述:这是一个 SSD 硬盘存储设备。
优点:存取速度快于 Data Disk 与 Raid Disk,
存取能源消耗小于 Data Disk 与 Raid Disk。
缺点:数据持久性一般,
设备位于操作系统内部文件系统。
数据持久性与操作系统挂钩。
#### ☁ 4. WinBoLL 用户资源概述。
1> /home/< 用户名 > 位于 WinBoLL 操作系统目录下。
2> /rdisk/< 用户名 > 挂载用户 Raid Disk.
3> /data/< 用户名 > 挂载用户 Data Disk.
4> /sdcard/< 用户名 > 挂载用户 SSD Disk.
#### ☁ 5. WinBoLL-APP 用户资源概述。
1> /sdcard 挂载用户手机 SD 存储/storage/emulated/0
### ☁ 稍稍歇 ☁ ###
### ☁ 急急停 ☁ WinBoLL 应用前置条件
☁ WinBoLL 主机建立 1Panel MySQL 应用。
☁ WinBoLL 主机建立 1Panel Gitea 应用。
☁ WinBoLL 主机设置 WinBoLL 应用为非登录状态。
☁ WinBoLL 主机建立 WinBoLL 账户与 WinBoLL 用户组。
☁ WinBoLL 账户 User ID 为: J。
☁ WinBoLL 用户组 Group ID 为: Studio。
☁ WinBoLL 主机 WinBoLL 1Panel Gitea 建立 WinBoLL 工作组。
☁ WinBoLL 主机 WinBoLL 1Panel Gitea 用户项目 APK 编译输出目录为 /sdcard/WinBoLLStudio/< 用户名 > /APKs/
☁ WinBoLL 项目配置文件示例为 "< WinBoLL 项目根目录 > /.winboll/winboll.properties-demo"(WinBoLL 项目已设置)
☁ WinBoLL 项目配置文件为 "< WinBoLL 项目根目录 > /.winboll/winboll.properties"
☁ WinBoLL 项目配置文件设定为源码提交时忽略。(WinBoLL 项目已设置)
☁ Gradle 项目配置文件示例为 "< WinBoLL 项目根目录 > /.winboll/local.properties-demo"(WinBoLL 项目已设置)
☁ Gradle 项目配置文件为 "< WinBoLL 项目根目录 > /local.properties"(WinBoLL 项目已设置)
☁ Gradle 项目配置文件设定为源码提交时忽略。(WinBoLL 项目已设置)
### ☁ 登高处 ☁ WinBoLL 应用需求规划
☁ WinBoLL 主机建立 WinBoLL 客户端用户数据库为 MySQL winbollclient 数据库。
☁ WinBoLL 主机设置 WinBoLL 客户端用户信息存储在 winbollclient 数据库中。
☁ MySQL winbollclient 数据库中
WinBoLL 客户端用户信息设定为:
< 用户名 , 验证密码 , 验证邮箱 , 验证手机 , 唯一存储令牌Token , 备用验证邮箱 > 。
☁ WinBoLL 项目源码仓库托管在 WinBoLL 1Panel Gitea 目录 /opt/1panel/apps/gitea/gitea/data/git/repositories/studio/app.git中。
☁ WinBoLL 主机提供 WinBoLL 1Panel Gitea 应用的 WinBoLL 项目源码仓库存取功能。( Gitea 应用已提供)
☁ WinBoLL 主机提供 WinBoLL Gitea 项目仓库存档功能。( Gitea 应用已提供)
☁ 提供 WinBoLL 客户端用户登录功能。( Gitea 应用已提供)
### ☁ 看远方 ☁ ###
### ☁ 心忧虑 ☁ WinBoLL-APP 应用前置需求
☁ WinBoLL-APP WinBoLL 项目根目录设定为手机的 /sdcard/WinBoLLStudio/Sources 目录。(需要用户手动建立文件夹)
☁ WinBoLL-APP 具有手机 /sdcard/WinBoLL 目录的存储权限。(需要手机操作系统授权)
☁ WinBoLL-APP WinBoLL 项目仓库源码存储路径为 /sdcard/WinBoLLStudio/Sources/APP.git( 需要用户手动建立文件夹)
☁ WinBoLL-APP 项目 APK 编译输出目录为 /sdcard/WinBoLLStudio/APKs/
☁ WinBoLL-APP 应用签名验证可定制化。( WinBoLL 项目已提供 )
☁ WinBoLL-APP 与系列衍生 APP 应用共享 cc.winboll.studio 命名空间资源。( WinBoLL 项目已提供)
☁ WinBoLL-APP 用户客户端信息存储在命名空间为 WinBoLL APP MySQLLite 应用的 winbollappclient 数据库中。
☁ WinBoLL-APP MySQLLite 应用的 winbollappclient 数据库中,
WinBoLL 用户客户端信息设定为:
< 用户名 , 唯一存储令牌Token > 。
### ☁ 云游四方 ☁ ###
### ☁ 呔! ☁ WinBoLL-APP 应用需求规划
☁ 如要使用 WinBoLL Android 项目的 Gradle 编译功能,则需要设置以下两个文件夹。
☁ 1. 则需要建立数据存储目录 /sdcard/WinBoLLStudio/APKs。
WinBoLL 项目源码编译出来的安装包会拷贝一份到 /sdcard/WinBoLLStudio/APKs 目录下。
☁ 2. 则需要建立数据存储目录 /sdcard/AppProjects。
WinBoLL 项目源码编译出来的安装包会拷贝一份并命名 "app.apk" 的安装文件为到 /sdcard/AppProjects 目录下。
### ☁ 吁! ☁ WinBoLL-APP 共享计划前景
☁ WinBoLL-APP 将会实现 https://winboll.cc/api 访问功能。
☁ WinBoLL-APP 将会实现手机端 Android 应用的开发与管理功能。
## ☁ WinBoLL ☁ WinBoLL 主机忧虑
☁ WinBoLL 将会提供 gitea.winboll.cc 域名用户注册登录功能。
☁ WinBoLL 将会提供 WinBoLL-APP 及其衍生应用的 Gitea 仓库管理服务。
☁ WinBoLL 将会提供 winboll.cc 域名 WinBoLL 项目组注册登录功能。
# 本项目要实际运用需要注意以下几个步骤:
# 在项目根目录下:
## ★. 项目模块编译环境设置(必须), settings.gradle-demo 要复制为 settings.gradle, 并取消相应项目模块的注释。
## ★. 项目模块编译环境设置(必须) 在根目录拷贝 gradle.properties-androidx-demo 或者 gradle.properties-android-demo 文件为 gradle.properties。
## ★. 项目 Android SDK 编译环境设置(可选), local.properties-demo 要复制为 local.properties, 并按需要设置 Android SDK 目录。
## ★. 应用签名密钥 keystore 设置问题。一般调试编译只需用【Termux】cd 进 GenKeyStore 目录执行 $ bash gen_debug_keystore.sh 命令即可完成设置。
## ☆. 应用 WiBoLL 签名密钥配置问题<非必须考虑>。设置时需要 clone 【keystore】模块源码并拷贝模块目录的 appkey.jks 与 appkey.keystore 到项目根目录即可。
## ☆. 类库型模块编译环境设置(可选), winboll.properties-demo 要复制为 winboll.properties, 并按需要设置 WinBoLL Maven 库登录用户信息, 和 APK 文件额外输出路径。
# ☆类库型项目编译方法
## 先编译类库对应的模块测试项目
### 修改模块测试项目的 build.properties 文件
设置属性 libraryProject=< 类库项目模块文件夹名称 >
### 再编译测试项目
$ bash .winboll/bashPublishAPKAddTag.sh < 应用项目模块文件夹名称 >
#### 测试项目编译后,编译器会复制一份 APK 到 路径:"/sdcard/WinBoLLStudio/APKs/<项目根目录名称>/tag/" 文件夹。
#### 若是 winboll.properties 文件的 [ExtraAPKOutputPath] 属性设置了路径。编译器也会复制一份 APK 到这个路径。
### 最后编译类库项目
$ bash .winboll/bashPublishLIBAddTag.sh < 类库项目模块文件夹名称 >
#### 类库模块编译命令执行后,编译器会发布到 WinBoLL Nexus Maven 库: Maven 库地址可以参阅根项目目录配置 build.gradle 文件。
# ☆应用型项目编译方法
## 直接调用以下命令编译应用型项目
$ bash .winboll/bashPublishAPKAddTag.sh < 应用项目模块文件夹名称 >
#### 应用模块编译命令执行后,编译器会复制一份 APK 到
#### 测试项目编译后,编译器会复制一份 APK 到 路径:"/sdcard/WinBoLLStudio/APKs/<项目根目录名称>/tag/" 文件夹。
#### 若是 winboll.properties 文件的 [ExtraAPKOutputPath] 属性设置了路径。编译器也会复制一份 APK 到这个路径。
## ☆应用调试编译方法
使用以下命令编译调试:
### Beta调试使用:
$ bash gradlew assembleBetaDebug
### Stage调试使用:
$ bash gradlew assembleStageDebug
### 若是 winboll.properties 文件的 [ExtraAPKOutputPath] 属性设置了路径。编译器也会复制一份 APK 到这个路径。
# 应用版本号命名方式
## statge 渠道
V< 应用开发环境编号 >< 应用功能变更号 >< 应用调试阶段号 >
如: APPBase_15.7.0
## beta 渠道
V< 应用开发环境编号 >< 应用功能变更号 >< 应用调试阶段号 > -beta< 调试编译计数 > _< 调试编译时间 ( 分钟 + 秒钟 ) >
如: APPBase_15.9.6-beta8_5413
WinBoLL 源生态计划项目说明书
一、项目概述
1. 核心定位
【OriginMaster】WinBoLL 源生态计划,旨在通过核心项目 WinBoLL 联动系列开发库,构建手机端 Android 项目开发与多端编译同步的完整生态,实现手机与电脑的源码同步开发。
2. 仓库架构
仓库类型 包含仓库 功能说明
开发库 WinBoLL、APPBase、AES、PowerBell、Positions 核心开发依赖库,其中 WinBoLL 可 作为应用开发的基础继承模板
分支汇总存档库 OriginMaster 仅用于汇总各开发库分支,不适宜作为开发库克隆使用,非应用开发基础库
3. 源码推送路径
- WinBoLL → APPBase → OriginMaster
- WinBoLL → AES → OriginMaster
- WinBoLL → PowerBell → OriginMaster
- WinBoLL → Positions → OriginMaster
二、WinBoLL APP 核心信息
1. 项目简介
WinBoLL Studio Android 应用开源项目,专注于手机端 Android 开发与多端编译同步 。
2. 官方资源
- 官方网站: https://www .winboll.cc/
- 源码地址:
- Gitea: https://gitea.winboll.cc/Studio/WinBoLL.git
- GitHub: https://github.com/ZhanGSKen/WinBoLL.git
- 码云: https://gitee.com/zhangsken/winboll.git
- 托管类库源码:
- APPBase( jitpack.io) : https://github.com/ZhanGSKen/APPBase.git
- AES( jitpack.io) : https://github.com/ZhanGSKen/AES.git
三、通用特征文件夹前置(/sdcard)
- Linux 系统文件夹直接使用 /sdcard 。
- 手机 SD 卡存储( /storage/emulated/0 ) 挂载的别名也可为 /sdcard 。
四、前置条件
1. WinBoLL-APP 配置
- APK 编译输出目录: /sdcard/WinBoLLStudio/APKs/ ,以及 /sdcard/AppProjects/ (命名为 app.apk )
- 签名与命名空间:支持应用签名验证定制化,与衍生 APP 共享 cc.winboll.studio 命名空间
五、核心需求规划
1. 主机端需求
- 支持 winboll.cc 域名的用户注册登录服务
- 支持 https://console.winboll.cc/api 访问
2. APP 端需求
- 实现手机端 Android 应用开发与管理功能
六、编译与使用指南
1. 项目初始化(必须)
1. 复制 settings.gradle-demo 为 settings.gradle , 取消对应项目模块注释
2. 复制 gradle.properties-androidx-demo 或 gradle.properties-android-demo 为 gradle.properties
3. (可选)复制 local.properties-demo 为 local.properties , 配置 Android SDK 目录
4. 签名设置:
- 调试编译:进入 GenKeyStore 目录执行 bash gen_debug_keystore.sh
- 非必须: clone keystore 模块,拷贝 appkey.jks 与 appkey.keystore 到项目根目录
2. 编译命令
( 1) 类库型项目
1. 修改测试项目 build.properties , 设置 libraryProject=< 类库项目模块名 >
2. 编译测试项目: bash .winboll/bashPublishAPKAddTag.sh < 应用项目模块名 >
3. 编译类库项目: bash .winboll/bashPublishLIBAddTag.sh < 类库项目模块名 > (发布至 WinBoLL Nexus Maven 库)
( 2) 应用型项目
- 编译命令: bash .winboll/bashPublishAPKAddTag.sh < 应用项目模块名 >
( 3) 调试编译
- Beta 调试: bash gradlew assembleBetaDebug
- Stage 调试: bash gradlew assembleStageDebug
( 4) 发布编译
- Stage 发布: bash .winboll/bashPublishAPKAddTag.sh < 应用项目模块名 >
或者执行 bash gradlew assembleStageRelease
3. 编译输出路径
- 默认路径(assembleBetaDebug任务): /sdcard/WinBoLLStudio/APKs/< 项目根目录名称 > /debug/
- 默认路径(assembleStageRelease任务): /sdcard/WinBoLLStudio/APKs/< 项目根目录名称 > /tag/
- 额外路径:若 winboll.properties 配置 ExtraAPKOutputPath , APK 同步拷贝至该ExtraAPKOutputPath路径
4. 版本号命名规则
- Stage 渠道: V< 应用开发环境编号 >< 应用功能变更号 >< 应用调试阶段号 > ( 示例: APPBase_15.7.0 )
- Beta 渠道: V< 应用开发环境编号 >< 应用功能变更号 >< 应用调试阶段号 > -beta< 调试编译计数 > _< 调试编译时间 ( 分钟 + 秒钟 ) > ( 示例: APPBase_15.9.6-beta8_5413 )