这个项目能做什么

本仓库包含Bitwarden的官方Android应用程序,将密码管理器和身份验证器结合为单一移动客户端。该项目最低支持Android 10(SDK 29),目标版本为Android 17(SDK 37),并支持手机和平板两种形态的竖屏和横屏方向。 代码库使用Kotlin编写,并采用Jetpack Compose作为声明式UI框架,同时广泛使用AndroidX库,包括Activity、Appcompat、Autofill、Biometrics、Browser、Camera、Core、Credentials、Lifecycle、Navigation、Room、Security和WorkManager。依赖注入通过Dagger Hilt处理,图像加载通过Glide处理,网络请求通过Retrofit 2和OkHttp 3处理。Kotlin协程、不可变集合和序列化库支持异步和响应式代码,Timber提供日志记录,ZXing处理身份验证器代码的条形码扫描。 该应用程序提供两种构建变体。标准构建包含用于推送通知的Firebase Cloud Messaging、用于崩溃报告的Firebase Crashlytics以及Google Play Reviews集成。F-Droid构建则省略了这些依赖Google的组件,使应用程序免受专有服务的影响。 开发需要JDK 21和Android Studio,并使用项目特定的代码风格方案(bitwarden-style.xml),贡献者需将其导入IDE。需要一个具有read:packages权限的GitHub个人访问令牌以从GitHub Packages拉取依赖项,并且localSdk标志可将SDK重定向到本地Maven artifactory,供开发SDK功能的贡献者使用。代码质量通过detekt静态分析强制执行,并提供可选的pre-commit钩子,在每次提交前运行detekt。测试依赖JUnit 5、MockK、Robolectric和Turbine进行协程Flow测试。CI/CD使用Fastlane进行构建、签名和分发应用程序,并使用Kover进行Kotlin代码覆盖率统计。 README还记录了清晰的贡献工作流程:将格式更改与逻辑更改分开,在提交拉取请求前格式化代码,并遵循项目的风格和最佳实践文档。总体而言,这是一个成熟、结构良好的开源Android客户端,适用于广泛使用的密码管理和双因素认证服务。