Changelog

Changelog

【免费下载链接】android-hid-client Android app that allows you to use your phone as a keyboard and mouse WITHOUT any software on the other end (Requires root) 【免费下载链接】android-hid-client 项目地址: https://gitcode.com/gh_mirrors/an/android-hid-client

[3.0.0] - 202X-XX-XX

Added

  • USB gadget and character device logic improvements
  • Add support for "Experimental Mode", which makes several experimental options available
  • Precision Touchpad Mode (Only working when phone is connected to a Linux or Android device)
  • Experimental "Loopback Mode" for Touchpad

Changed

  • Misc visual changes
  • Bump versions of many dependencies

Fixed

  • Many, many bug fixes

[2.3.0] - 202X-XX-XX

Added

  • New screen that provides troubleshooting information to help troubleshoot device-specific issues
  • Support for "Material You" AKA dynamic colors
  • Support for switching between light/dark mode irrespective of system setting

Changed

  • Completely rewrote the majority of the app

[2.2.0] - 202X-XX-XX

Added

  • now supports all Android versions > 8.0
  • improved touchpad input handling (and added middle click support)

Fixed

  • fix crash on Android versions < 12
  • handle various errors more clearly and gracefully

### 3.3 分支管理策略

建议采用基于GitFlow的分支管理策略:

![mermaid](https://web-api.gitcode.com/mermaid/svg/eNpLy8kvT85ILCpRCHHhUgCC3MTMvGgQYaXwfMr8J7uWP-9b_3RR85Pdi58vaIxV0NW1q3k6oePpzm01CkWpOamJxanRUFq_Qq9SrwqorbPj2Zw1T_snPt3R_LS97emS9liwySmpZak5-QXRUNpK4emeBqCqJzt2P-1oezZlPdTwjtlPd--qUUhLTSwpLUqNhtL6FRUVVgrPpm142jX_RfNeiFaIuVAVEN3rep51TKiB2YVsL4rpUCeD5aFssPyzrd0v1k99sn_d0yW9NQoZ-SVpmRXREArigudblj9rWApRALEeIotiOyj4cMlBXQMAQUuqvw)

关键分支说明:

1. **main**:保持与最新发布版本一致的代码,随时可部署。

2. **develop**:开发主分支,包含下一个版本的最新开发成果。

3. **feature/*:新功能开发分支,如`feature/experimental-mode`。

4. **release/*:版本发布准备分支,如`release/3.0.0`。

5. **hotfix/*:紧急修复分支,用于修复生产环境问题。

### 3.4 实验性功能管理框架

针对300版本引入的实验性功能,建议实施以下管理框架:

1. **功能开关系统**:
   ```kotlin
   // ExperimentalFeatures.kt
   object ExperimentalFeatures {
       const val PRECISION_TOUCHPAD = "precision_touchpad"
       const val LOOPBACK_MODE = "loopback_mode"
       
       fun isEnabled(feature: String, context: Context): Boolean {
           // 从SharedPreferences或远程配置读取功能状态
           return UserPreferencesRepository.getInstance(context)
               .getExperimentalFeatureState(feature)
       }
   }
  1. 独立的实验性API

    // experimental/ExperimentalTouchpadApi.kt
    @Experimental
    interface ExperimentalTouchpadApi {
        fun enablePrecisionMode()
        fun setLoopbackMode(enabled: Boolean)
    }
    
  2. 渐进式功能推出

    // FeatureRolloutManager.kt
    class FeatureRolloutManager {
        fun shouldEnableFeature(feature: String, userId: String): Boolean {
            // 基于用户ID、百分比或其他条件决定是否启用功能
            return calculateRolloutPercentage(feature) > randomPercentage
        }
    }
    

四、版本管理工具集成

4.1 版本信息自动化

  1. 版本号自动生成

    # version-bump.sh
    # 从VERSION文件读取版本信息
    source VERSION
    NEW_BUILD=$((BUILD + 1))
    echo "MAJOR=$MAJOR" > VERSION
    echo "MINOR=$MINOR" >> VERSION
    echo "PATCH=$PATCH" >> VERSION
    echo "BUILD=$NEW_BUILD" >> VERSION
    
    # 更新build.gradle中的versionCode
    sed -i "s/versionCode [0-9]*/versionCode $NEW_BUILD/" app/build.gradle
    
  2. 变更日志自动生成

    # generate-changelog.sh
    # 从git提交历史生成变更日志片段
    git log --pretty=format:"- %s (%h)" $(git describe --tags --abbrev=0)..HEAD > CHANGELOG-unreleased.md
    

4.2 兼容性测试自动化

建议集成以下兼容性测试工具:

  1. Android Studio的兼容性测试框架

    android {
        testOptions {
            animationsDisabled = true
            unitTests {
                includeAndroidResources = true
            }
        }
    }
    
  2. 版本兼容性测试套件

    // VersionCompatibilityTest.kt
    @RunWith(AndroidJUnit4::class)
    class VersionCompatibilityTest {
        @Test
        @SdkSuppress(minSdkVersion = 26, maxSdkVersion = 33)
        fun testTouchpadCompatibility() {
            // 在不同API版本上测试触摸板功能
            val touchpadSender = TouchpadSender(context)
            // ...测试逻辑...
        }
    }
    

4.3 持续集成中的版本管理

在CI/CD流程中集成版本管理:

# .github/workflows/build.yml
name: Build and Release

on:
  push:
    branches: [ develop, main, 'release/*' ]
  pull_request:
    branches: [ develop ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Set up JDK 17
        uses: actions/setup-java@v3
        with:
          java-version: '17'
          distribution: 'temurin'
          
      - name: Read version
        run: |
          source VERSION
          echo "VERSION_NAME=$MAJOR.$MINOR.$PATCH" >> $GITHUB_ENV
          echo "VERSION_CODE=$BUILD" >> $GITHUB_ENV
          
      - name: Build with Gradle
        run: ./gradlew assembleDebug -PversionName=${{ env.VERSION_NAME }} -PversionCode=${{ env.VERSION_CODE }}

五、实施路径与最佳实践

5.1 分阶段实施计划

mermaid

5.2 风险缓解策略

  1. 渐进式迁移:在采用新的分支策略时,可以先并行运行旧有流程和新流程,逐步过渡。

  2. 全面测试:在版本发布前,进行全面的兼容性测试:

    // VersionCompatibilityTest.kt
    @RunWith(ParameterizedRobolectricTestRunner::class)
    class VersionCompatibilityTest(private val sdkVersion: Int) {
        @Test
        fun testMainFunctionality() {
            // 在不同SDK版本上测试核心功能
        }
    
        companion object {
            @JvmStatic
            @Parameterized.Parameters
            fun data(): List<Int> = listOf(26, 28, 30, 31, 33) // Android 8.0+
        }
    }
    
  3. 版本回滚机制:确保能够快速回滚到上一个稳定版本,如保留每个版本的发布 artifacts。

5.3 版本管理最佳实践总结

  1. 保持版本信息透明:所有版本变更都应记录在公开可见的变更日志中,便于用户和开发者了解版本差异。

  2. 版本控制与质量门禁:在CI流程中设置质量门禁,如代码覆盖率、静态分析结果等必须满足要求才能发布新版本。

  3. 用户参与版本测试:建立beta测试计划,邀请用户参与新版本测试,如:

    // BetaProgramManager.kt
    class BetaProgramManager {
        fun isBetaUser(userId: String): Boolean {
            // 检查用户是否为beta测试人员
        }
    
        fun getLatestBetaVersion(): VersionInfo {
            // 获取最新beta版本信息
        }
    }

【免费下载链接】android-hid-client Android app that allows you to use your phone as a keyboard and mouse WITHOUT any software on the other end (Requires root) 【免费下载链接】android-hid-client 项目地址: https://gitcode.com/gh_mirrors/an/android-hid-client

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值