|
4 | 4 |  |
5 | 5 |  |
6 | 6 | [](https://qun.qq.com/universal-share/share?ac=1&authKey=IMGMoVIeXPmgs81WgvJEgurLGCeuV%2FWKh8wSxZIXIqtvAA6U%2BJLMtwzG0lrZj7CG&busi_data=eyJncm91cENvZGUiOiIxMDgxNzg0Njc2IiwidG9rZW4iOiI4RkllZjhUVnhGYlVXcEhHZDhyWHdzcDRkRDlGKzlBL0NId1lkMTN2WFJ4SStHa2Y1bmJMM1dlemY5eEFxdmg4IiwidWluIjoiMTA3MDU3NTUyMSJ9&data=8HydkH9NGrhzp1pPhpOFSYT4Qp1aeQZZDN-Y1nk8cp-RBsmsBnRwQ_vN2qXfmhqtTc_LXfOpR6Gv9UCswKRjKg&svctype=4&tempid=h5_group_info) |
| 7 | +[](https://t.me/dpis_chat) |
7 | 8 |
|
8 | 9 | [前往代码仓库](https://github.com/Kwensiu/DPIS) |
9 | 10 |
|
10 | 11 | 中文说明 | [English](docs/README.en.md) |
11 | 12 |
|
12 | | -DPIS 是一个基于 LSPosed/Xposed 的 Android 模块,用于按应用独立调整显示参数(最小宽度 + 字体大小),在不改全局系统显示设置的前提下,优化单应用观感。 |
| 13 | +DPIS 是一个基于 LSPosed/Xposed 的 Android 模块,用来按应用单独调整界面比例、最小宽度和字体大小。它适合想让某些应用更大、更小,或更接近平板布局的用户,不需要修改全局系统显示设置。 |
13 | 14 |
|
14 | | -## 核心能力 |
| 15 | +## 主要功能 |
15 | 16 |
|
16 | | -- 按应用配置最小宽度(`dp`) |
17 | | -- 按应用配置字体大小(`50-300%`) |
18 | | -- 宽度与字体均支持 `系统` / `兼容` 两种模式 |
19 | | -- 应用列表支持搜索与筛选(全部应用 / 已配置应用) |
20 | | -- 支持系统层 Hook 开关与安全模式 |
21 | | -- 支持在应用详情中按应用自定义字体兼容链路(含 Flutter / HyperOS native 等补充链路) |
| 17 | +- 按应用调整界面比例,范围 `30-300%` |
| 18 | +- 按应用设置最小宽度,适合固定到某个 `dp` 宽度档位 |
| 19 | +- 按应用调整字体大小,范围 `50-300%` |
| 20 | +- 支持应用搜索、已配置应用筛选和横屏 / 大屏详情面板 |
| 21 | +- 支持全局预填和快捷模板,方便重复套用常用配置 |
| 22 | +- 支持标准版和兼容版,覆盖不同 LSPosed/Xposed 环境 |
22 | 23 |
|
23 | | -## 环境要求 |
| 24 | +## 使用要求 |
24 | 25 |
|
25 | | -- Android 8.0+(`minSdk 26`) |
26 | | -- 已 Root 设备 |
27 | | -- 已安装并启用 LSPosed/Xposed 环境 |
| 26 | +- Android 8.0 或更高版本 |
| 27 | +- 已 Root |
| 28 | +- 已安装并启用 LSPosed/Xposed |
28 | 29 |
|
29 | 30 | ## 快速开始 |
30 | 31 |
|
31 | 32 | 1. 在 LSPosed 中启用 DPIS 模块。 |
32 | | -2. 在作用域中勾选目标应用。常规场景不需要勾选 `system`。 |
33 | | -3. 打开 DPIS,给目标应用设置: |
34 | | - - 最小宽度(`dp`) |
35 | | - - 字体大小(`50-300%`) |
36 | | - - 宽度模式与字体模式(`系统` / `兼容`) |
37 | | -4. 保存后重启目标应用进程生效;必要时重启设备。 |
| 33 | +2. 在作用域中勾选需要调整的目标应用。 |
| 34 | +3. 打开 DPIS,进入应用列表,选择目标应用。 |
| 35 | +4. 设置界面比例、最小宽度或字体大小。 |
| 36 | +5. 点击保存,然后重启目标应用让配置生效。 |
38 | 37 |
|
39 | | -如果你使用 `系统` 模式,请额外在 LSPosed 中勾选 `system` 作用域;`兼容` 模式通常不需要。 |
| 38 | +一般用户可以先使用默认策略,只调整界面比例和字体大小。保存表示 DPIS 已经写入配置,但目标应用通常需要重新启动进程后才会读取新配置。 |
40 | 39 |
|
41 | | -## 模式说明 |
| 40 | +## 配置建议 |
42 | 41 |
|
43 | | -| 模式 | 特点 | 适用场景 | 注意事项 | |
44 | | -| --- | --- | --- | --- | |
45 | | -| `系统` | 更接近系统原生链路,显示通常更自然 | 追求系统级一致性 | 依赖系统层 Hook;部分应用不支持 | |
46 | | -| `兼容` | 通过应用进程内兼容链路直接调整缩放,生效更直接 | 大多数常规应用 | 可能出现布局错位或缩放异常 | |
| 42 | +- 想整体放大或缩小应用界面:优先使用「界面比例」。 |
| 43 | +- 想让应用进入类似平板或固定宽度布局:使用「最小宽度」。 |
| 44 | +- 只想改变文字大小:只调整「字体大小」。 |
| 45 | +- 不确定策略怎么选:保持默认的「自动」。 |
| 46 | +- 默认方式无效或显示异常时,再尝试「兼容」。 |
| 47 | +- 如果使用系统层能力,请在 LSPosed 中额外勾选 `system` 作用域。 |
47 | 48 |
|
48 | | -> 说明:旧版本 UI 中的“伪装 / 替换”已改名为“系统 / 兼容”。 |
| 49 | +进入小窗、改变小窗大小或横竖屏切换时,DPIS 会尽量保持应用本身的缩放表现。不同应用对窗口变化的适配程度不同,遇到显示异常时建议先重启目标应用确认。 |
49 | 50 |
|
50 | | -字体 `兼容` 模式默认启用 Resources、TextView 与 Paint 兜底链路,并通过调度与来源标记尽量避免重复放大。若某个应用出现缩放异常,可在目标应用详情页打开“自定义链路”,按应用关闭具体链路;修改会在目标应用进程下次启动时生效。 |
| 51 | +## 模板与预填 |
51 | 52 |
|
52 | | -## 系统层 Hook 与安全模式 |
| 53 | +- 「全局预填」会为还没有配置过的应用准备默认草稿,不会修改已有应用配置。 |
| 54 | +- 「快捷模板」可以保存一套常用配置,并一次性应用到多个应用。 |
| 55 | +- 批量应用模板可能覆盖目标应用已有配置,请注意确认弹窗中的提示。 |
53 | 56 |
|
54 | | -- `关闭`:仅使用目标应用进程内覆写。建议搭配 `兼容` 模式。 |
55 | | -- `开启`:启用完整 `system_server` 入口,适合调试与对照。 |
56 | | -- `开启 + 安全模式`:限制为低风险入口(`activity-start`),推荐作为默认配置。 |
57 | | - |
58 | | -如果你要使用 `系统` 模式,请先确保 LSPosed 作用域已勾选 `system`。`兼容` 模式通常可以只勾选目标应用。 |
59 | | - |
60 | | -## 日志与调试 |
61 | | - |
62 | | -- `日志输出` 默认建议关闭(降低性能开销)。 |
63 | | -- 开启后,`system_server` 高频入口会按采样窗口与去重策略输出。 |
64 | | -- 字体调试统计与悬浮窗仅用于诊断,不影响正常生效链路。 |
65 | | - |
66 | | -## 构建与测试 |
67 | | - |
68 | | -```powershell |
69 | | -./gradlew :app:assembleModern101Debug :app:assembleCompat100Debug |
70 | | -./gradlew :app:testAllDebugUnitTests |
71 | | -``` |
72 | | - |
73 | | -可选安装(Windows PowerShell): |
74 | | - |
75 | | -```powershell |
76 | | -./gradlew :app:assembleModern101Debug; if ($LASTEXITCODE -eq 0) { adb install -r "app/build/outputs/apk/modern101/debug/app-modern101-debug.apk" } |
77 | | -./gradlew :app:assembleCompat100Debug; if ($LASTEXITCODE -eq 0) { adb install -r "app/build/outputs/apk/compat100/debug/app-compat100-debug.apk" } |
78 | | -``` |
79 | | - |
80 | | -## 项目结构 |
81 | | - |
82 | | -```text |
83 | | -app/ Android 主模块 |
84 | | - src/main/java/ 共享生产代码 |
85 | | - src/main/res/ 共享资源与界面 |
86 | | - src/modern101/java/ libxposed API 101 专用代码 |
87 | | - src/compat100/java/ legacy Xposed API 兼容代码 |
88 | | - src/test/java/ 单元测试 |
89 | | -docs/ 当前有效文档 |
90 | | -docs/archive/ 历史归档文档 |
91 | | -refs/ 本地参考资料(LSPosed / AOSP / libxposed) |
92 | | -``` |
93 | | - |
94 | | -## 版本说明 |
| 57 | +## 版本选择 |
95 | 58 |
|
96 | 59 | | 版本 | 文件名 | 适用环境 | |
97 | 60 | | --- | --- | --- | |
98 | 61 | | 标准版 | `DPIS_{version}.apk` | LSPosed(libxposed API 101+) | |
99 | 62 | | 兼容版 | `DPIS_{version}_legacy.apk` | 传统 Xposed / 不支持 libxposed API 101 的框架 | |
100 | 63 |
|
101 | | -两个版本面向相同的用户功能目标,区别主要在于与 Xposed 框架的对接方式、下载入口与更新行为。优先使用标准版,仅在标准版无法加载时使用兼容版。 |
102 | | - |
103 | | -兼容版(`legacy`)请始终以主仓库 Releases 为准。LSPosed / Xposed 模块仓库仅同步标准版 APK。 |
| 64 | +优先使用标准版。只有在标准版无法加载,或你的框架不支持标准版时,再使用兼容版。两个版本包名相同,不能同时安装,交叉安装会互相覆盖。 |
104 | 65 |
|
105 | | -标准版与兼容版不可共存。二者包名相同,交叉安装会相互覆盖,并可能导致已有配置或状态被重置。 |
| 66 | +兼容版请始终以主仓库 Releases 为准。LSPosed / Xposed 模块仓库通常只同步标准版 APK。 |
106 | 67 |
|
107 | | -## 文档导航 |
| 68 | +## 更多文档 |
108 | 69 |
|
109 | 70 | - 当前文档入口:[docs/README.md](docs/README.md) |
110 | | -- 英文说明文档:[docs/README.en.md](docs/README.en.md) |
111 | | -- 历史文档归档入口:[docs/archive/README.md](docs/archive/README.md) |
| 71 | +- 英文说明:[docs/README.en.md](docs/README.en.md) |
| 72 | +- 字体链路说明:[docs/font-routing.md](docs/font-routing.md) |
| 73 | +- UI 变更约定:[docs/ui-guidelines.md](docs/ui-guidelines.md) |
| 74 | +- 历史文档归档:[docs/archive/README.md](docs/archive/README.md) |
| 75 | + |
| 76 | +开发者可以在 [AGENTS.md](AGENTS.md) 中查看项目结构、构建测试命令和协作约定。 |
112 | 77 |
|
113 | 78 | ## 许可证 |
114 | 79 |
|
|
0 commit comments