ZhishengWeather README

The project's README from github.com/zhishengplus/ZhishengWeather. As one markdown file: README.md.

枳生天气 · ZHISHENG WEATHER TERMINAL

枳生天气应用图标
打开就是天气。
一款信息密度较高的 Android 天气应用,采用磷光终端风格。没有广告、账号和统计 SDK。

下载公共版 APK

GitHub stars Android 8.0+ 当前版本 0.1.3 无广告、账号和埋点 MIT License

简体中文 · English


界面

枳生天气主页 遥测数据与空气质量 城市列表 城市搜索 设置
主页 遥测与空气 城市 搜索 设置

点击截图查看原图。

这个项目

我平时打开天气 App,只想尽快确认几件事:现在多少度,什么时候下雨,空气怎么样,明后天会不会突然降温。枳生天气把这些内容放在同一条纵向信息流里,不需要先看开屏广告,也不用登录账号。

界面走的是磷光终端风:黑色背景、细线分区、青色主信号和少量橙色提示。信息排得比较紧,但主次是固定的。实况、预警、逐时和短时降水在前,空气质量、生活指数、月相等内容继续往下滑就能看到。

能看什么

每种天气各有一套背景氛围效果,画在读数之下,强度可调,也可以完全关闭。温度、风速和气压单位分别设置;不用的页面模块可以单独隐藏。

数据源没有提供的字段会留空,不用估算值补齐。

公开发行版

GitHub Releases 只发布正式公共版 APK,这也是普通用户唯一需要下载的版本。它默认使用免配置的公共数据链路;需要和风或彩云额外内容时,可在应用的实验室中填写自己的凭据,凭据只保存在本机。

仓库中的 release、performance 和 previewPublic 是维护者本地开发、真机覆盖和并行验收使用的构建类型,不作为社区安装包发布。应用内直接更新也只面向正式公共版,确保后续版本可以保持同包名、同签名覆盖安装。

数据源怎么工作

项目接入了和风天气、彩云天气、小米公开天气接口、Open-Meteo,以及独立的浙江省水利厅台风路径公开资料。设置页可以选择自动优选,也可以固定使用某个天气数据源,并会显示当前城市实际返回数据的来源。

数据源 配置 主要内容
和风天气 实验室接入,或构建期写入 local.properties 实况、预警、逐时逐日、分钟降水、空气质量、生活指数
彩云天气 实验室填写 Token 实况、逐时逐日、分钟降水、空气质量、预警
小米公开天气接口 不需要 国内天气、城市搜索、昨日天气和台风辅助数据;手动选择时不混入其他来源
Open-Meteo 不需要 全球实况、逐时逐日、空气质量、15 分钟降水和缺项补充
浙江省水利厅台风路径系统 不需要 西北太平洋台风实况路径、中心强度、风圈与多机构预报

自动优选以小米天气为主:实况天气现象和降水判断以小米返回为准,Open-Meteo 只补充小米没有返回的遥测、逐时或逐日内容;仅当小米整次请求失败时才切换到 Open-Meteo。和风与彩云不进入自动链,只在开发者模式锁定后使用。

月相在本机按城市日期计算。数据源没有月出、月落时,应用会根据日期和城市坐标补算,不再发起额外请求。

和风接口使用 Ed25519 签名 JWT,也可填 API KEY。assemblePublicRelease 和 assemblePreviewPublic 会在构建阶段强制清空编译期凭据;用户在实验室填写的凭据只存在本机,不进备份、不进公共 APK。

图标

枳生天气应用图标

0.1.3 默认使用天气娘头像:发卡保留太阳、云和降水组成的经典标识,深色底板、青色信号和橙色提示继续沿用终端界面的视觉语言。喜欢原版图标时,可在「设置 → 界面 → 应用图标」切回经典样式。

枳生天气图标组

应用内还有 15 枚天气图标,覆盖晴、多云、阴、雾、雨、雷暴、雪、风和霰等状态。它们单独绘制,没有从通用图标库拼接。

交流群

想一起聊聊天气、提个想法,或者报个问题,都可以进枳生天气用户交流群。群号是 1106284779,扫下面的码就能加。

枳生天气用户交流群二维码

赞赏

枳生天气会一直免费,也永远不会加广告。我做这个是因为爱好,也喜欢和大家交流。哪里不准、哪句看着别扭、下次想加什么,直接跟我说就行。

如果有意愿支持一下,扫下面的赞赏码就好。备注一下你想出现的名字,所有赞助人都会进赞助榜单。

微信赞赏码
愿你出门遇晴,代码一次通过,日子风调雨顺。

安装

  1. 从 Releases 下载最新公共版 APK。
  2. 安装到 Android 8.0 或更高版本的设备。
  3. 首次打开默认显示北京,可通过搜索保存自己的城市。

APK 只在 GitHub 发布。Android 可能提示允许当前应用安装未知来源文件,这是安装渠道提示,不是枳生天气申请了额外系统权限。

0.1.5-beta3 更新

0.1.3 更新

0.1.1 更新

0.1.1 是基于 0.1.0 的问题修复版本。

0.1.0 更新

0.1.0 是一次覆盖主屏交互、天气效果、数据源和桌面小组件的大更新。

多城市与主页

天气效果与界面

数据与显示

桌面小组件与社区

本版本仍未加入通知功能。

0.0.8 更新

本次更新主要修复天气显示不一致的问题。

  1. 修复降雨时主界面仍提示「不会下雨」的问题
  2. 修复逐时预报将下一小时误标为「现在」的问题
  3. 优化短时降水状态,雨停后不再显示「正在下雨」
  4. 优化逐日天气展示:白天与夜间天气不同时,按更显著的天气显示,展开可查看如「晴转雷阵雨」
  5. 修复阴天被显示为小雨的问题

本版本暂未加入通知功能。

0.0.6 更新

打开就能看懂接下来两小时:大温度下面加一句话(何时下雨、预警、明天冷不冷);降水卡直接写清几点下;公共版小米源补上逐分钟降水柱;点某一天可展开看出日落和月相。顺手关掉 MIUI 强制深色反转,浅色启动不再闪黑。

当前回归检查见单元测试与构建。通知功能本版不做。

0.0.5 更新

0.0.5 的重头戏是主题。深色之外新增了浅色「清冷翡翠」——冷灰纸面打底、翡冷翠做数据色,桌面小组件跟着一起换;顺手修了两个藏得比较深的毛病。

当前回归检查包括 46 项单元测试、Android Lint、Debug / 公共版 / 满血版构建。

0.0.5.1 更新

小组件小修:放大日期、更新时间、体感湿度与逐时/逐日等偏小字号;重绘添加小组件时的预览图(示范城市改为上海,与真实布局一致);小组件主题改为只跟随系统深浅,App 内切换主题不再改变桌面小组件。

参与项目

可以通过 GitHub Issues 报告可复现的问题。提问时请附上应用版本、手机型号、系统版本、数据源和必要截图,注意遮住 Token、API KEY 等个人凭据。

社区贡献者:PPQ1028、Uinuan1、KZzzzo、睡觉了寂、微生之最、r1file、vsqesy3721、茉莉羽、陈大橙、飞667、一杯冰美式、、、M1ralce、紅星照耀中國、我爱跑步、河鱼天雁、你的心里没点高数吗、周月星斗、无敌战神暴王龙、control3、明珠有泪、Gstar_、伍拾两HZ、寡欲老公猪。

从源码构建

需要 JDK 17 和 Android SDK 34。仓库包含 Gradle Wrapper。

git clone https://github.com/zhishengplus/ZhishengWeather.git
cd ZhishengWeather

不填写凭据时,构建结果使用公共版数据链路。需要和风主源时,在根目录 local.properties 中写入 SDK 路径和个人凭据;该文件已被 Git 忽略。

sdk.dir=<Android SDK 路径>
qw.host=<API Host>
qw.project_id=<Project ID>
qw.kid=<Key ID>
qw.private_key=<Ed25519 私钥,单行>
./gradlew assembleDebug                     # Windows:.\gradlew.bat assembleDebug
./gradlew assembleRelease                   # 维护者本地构建,需配置自己的签名文件
./gradlew assemblePublicRelease             # 公共版,强制清空凭据并使用随库公开证书
./gradlew assemblePreviewPublic             # 维护者本地并行验收包,不上传 Release
./scripts/package_release.ps1               # 生成 GitHub 公共版 APK 及 SHA-256
./scripts/package_release.ps1 -IncludeDevelopmentBuilds  # 另打包本地开发构建

随库的 keystore/public.jks 只用于保持公共版之间可以覆盖安装,不是私有签名身份。

主要技术栈:Kotlin 2.0.21、Jetpack Compose、Material 3、ViewModel / StateFlow、Retrofit、OkHttp、kotlinx-serialization、DataStore 和 BouncyCastle。minSdk 26,targetSdk 34。代码结构与提交约定见 CONTRIBUTING.md。

权限和数据

应用使用网络、安装更新和可选位置权限:

权限 用途
网络访问 请求天气和城市搜索数据
网络状态 判断设备是否联网
安装应用 仅在正式公共版中手动下载更新后打开系统安装页;不会静默安装
粗略位置 可选;仅在开启定位并主动重新定位时申请
精确位置 可选;只有主动开启街道级定位时才申请

应用没有广告 SDK、统计埋点、账号系统或自建后端。城市列表和设置保存在本机。天气请求会把所选城市坐标发送给当前数据源;使用定位时,坐标还用于反查城市名。

定位开启并授权后,应用回到前台会按间隔复核所在城市,不在后台持续获取位置。相关代码位于 app/src/main/kotlin/com/zhisheng/weather/data。

已知限制

更新记录

0.1.3 // STABLE RELEASE
  • 新增横屏气象时钟、街道级定位、遥测与生活指数自选,以及更明显的夜间氛围
  • 自动优选以小米天气为主,修复和风、彩云、逐时逐日与短时降水的多项数据问题
  • 重做透明玻璃小组件,统一边框、字号、对齐、�

ZhishengWeather (zhishengplus/ZhishengWeather)

Searching Database…

What is this?ZhishengWeather is an Android weather app written in Kotlin with Jetpack Compose, styled after an old phosphor terminal display. It blends Heweather, Xiaomi's public weather API and Open-Meteo data into one feed, with no ads, no login and no analytics SDK.
Do I need to sign up for an API key before I can use it?No. The public build works out of the box over a key-free pipeline combining Xiaomi's public weather data and Open-Meteo. If you want Heweather or ColorfulClouds extras, you can add your own credentials in the app's lab, and they stay on-device only.
Are the official weather warnings and forecasts always complete?The public build ships without Heweather credentials, so official warnings and life indices depend on account permissions unless you add your own key; Open-Meteo's precipitation nowcast is only 15-minute resolution rather than minute-by-minute, and duplicate warnings from different sources can still show up since they're deduped only by title.
What happens to my data and location?The app has no ad SDK, no analytics tracking, and no account system or backend server; your city list and settings stay on the device, and location is only looked up when you actively enable and request it.
What desktop widget sizes does it support?Five terminal-styled widgets: 4x1, 2x2, 4x2, 2x4 and 4x4. Larger sizes add hourly trends and life-index info, and all of them use a layered semi-transparent glass shell so your wallpaper shows through.
Can I choose which weather data source feeds the app?Yes, Settings lets you auto-pick the best source or pin one specific source (Heweather, ColorfulClouds, Xiaomi, or Open-Meteo), and the UI shows which source actually returned the current city's data. Auto mode defaults to Xiaomi for current conditions and only fills gaps from Open-Meteo.
Does it track typhoons?Yes, it pulls official typhoon-path data from the Zhejiang Provincial Water Resources Department, showing real-time position, central intensity, wind radius and forecasts from multiple agencies, with cache freshness clearly labeled.
Can I change the app icon or color theme?Yes, you can switch between the default weather-girl mascot icon and the classic sun/cloud/rain icon, and choose dark, light, or system-follow themes; widget backgrounds also have transparent, frosted-glass, or opaque options.
Size
29.4 MB
Stars
231
Age
1mo
Commits · 90 Days