安卓能不能做到像 pc 那样对单个应用限速?

2019-01-19 09:26:39 +08:00
 wanwaneryide

有时候遇到更新游戏时候,就把 4G 网络跑满了(渣渣的电信 4G 网速真心慢),导致看视频非常卡顿,是不是可以考虑下对单个应用限速一下。像 pc 上那样,什么 QQ 安全管家,360 卫士,火绒都有限速的功能,安卓上能不能做到?

14072 次点击
所在节点    Android
40 条回复
skylancer
2019-01-19 11:47:27 +08:00
@wanwaneryide 没有明确的限速功能,只能设置前台应用流量优先
skylancer
2019-01-19 11:48:19 +08:00
@acrisliu 你怕是在逗我.. 那东西并没有什么用
Nasei
2019-01-19 11:56:20 +08:00
@zhouyut001 那东西有什么用? 难道安卓有这个权限? 我的手机里怎么没有?
zhouyut001
2019-01-19 12:04:10 +08:00
@Nasei 手機權限,讀取 IMEI 權限
iwtbauh
2019-01-19 12:06:29 +08:00
Android 每个 app 都是一个 Unix 用户。

如果没有精简掉内核相应功能的话,iptables 可以针对 Unix 用户 id 限速

如果精简掉了尝试重新编译替换内核尝试添加回去
honeycomb
2019-01-19 12:10:30 +08:00
@zhouyut001
仅限于 uwp 程序。

联网权限的话无论是 iOS 还是 Android 都没有(为了禁止程序联网而设计的),有的只是我国内地的特供版本。

读取系统 /电脑信息 Windows 不作限制,我猜它从一开始就没有像手机系统那样做过限制获取设备标识的设计。
Nasei
2019-01-19 12:16:13 +08:00
@zhouyut001 为了看你说的硬件权限,我专门到 play 上下了个软件,所有系统信息传感器信息都无需权限,只有 imei 会弹出一个通话权限,普通的 pc 就没有 imei 这个东西好么…
t6attack
2019-01-19 13:16:51 +08:00
理论上可以,但没见过具体实现。比较接近的是基于 iptables 的联网控制 app (需 root )。如 AFWall+
honeycomb
2019-01-19 13:55:41 +08:00
@Nasei 它说的就是 IMEI 这样不可重置的,用来唯一识别硬件的识别码,这些东西确实不可以暴露给第三方应用
wanwaneryide
2019-01-19 14:12:07 +08:00
@iwtbauh 感觉实现起来挺复杂的
wanwaneryide
2019-01-19 14:13:56 +08:00
@t6attack root 手机还是算了,以前用的魅族,申请了 root 权限,什么都没改变,应用各种闪退,出现一个乱七八糟的问题,重新刷机之后,就没问题了
Nasei
2019-01-19 14:22:44 +08:00
@honeycomb 我觉得目前 pc 上应该不存在和 imei 等价的东西,imei 主要是可以在移动网络中标志设备吧?
jim9606
2019-01-19 14:35:14 +08:00
不是很明白为啥要限速。
通常看视频就把游戏杀掉,等有空再下游戏更新
wanwaneryide
2019-01-19 14:46:20 +08:00
@jim9606 这次是更新游戏,下次也许是下载文件,只是使用的时候有这个需求而已,并不一定是游戏更新问题
honeycomb
2019-01-19 14:48:36 +08:00
@Nasei 存在且多:
CPU,GPU,主板,以及其它各种硬件的序列号
iwtbauh
2019-01-19 15:09:35 +08:00
@Nasei #32

太天真了。smbios 可以读到主板制造商,产品名,设备唯一 UUID 等等

@wanwaneryide #30

唯一复杂的地方在于 ROM 可能去除了 Linux 内核的某些功能,如果没有去除的话还是很简单的
Nasei
2019-01-19 15:30:51 +08:00
@iwtbauh
@honeycomb
我的意思是说 imei 特殊性在于其在移动网络的作用吧?比如运营商可以通过 imei 反查到一些信息或者做一些限制,但其他硬件序列号一般只对厂商和使用者有意义,比如保修期之类的。。。
honeycomb
2019-01-19 15:41:06 +08:00
@Nasei 不,这个东西更常用的地方是应用提供商跟踪用户(非必要应用),因为它永远不会改变。所以即便是广告公司的 Google 也某种程度限制了 Android 的应用读取设备的 IMEI,但不如苹果,后者不提供任何可以存活过刷机的,且有跟踪实用性的持久识别码。

iOS 确实提供一个可以存活过刷机的,可由应用设置的变量,不过它的取值空间只有两个比特。

至于在移动网络是必要应用。
Nasei
2019-01-19 16:05:19 +08:00
@honeycomb 多谢了,这我确实没想到。你说 iOS,我想到以前做嵌入式时只有 iOS 端拿不到蓝牙的 mac,估计就是你说的机制,后来不得不在蓝牙广播里加了信息
honeycomb
2019-01-19 16:24:17 +08:00
@Nasei 一般来说应该是这样:

应用拿不到自身所在设备的 mac (蓝牙和 WiFi ),这个是为了限制追踪的隐私考虑。。

在没有位置权限时也拿不到外部设备的 mac (蓝牙和 WiFi )。
对于 WiFi 来说,无论连接到了接入点与否,在没有位置权限时,都不能拿到 mac ( bssid )和 SSID。
Android8.1 以前,定位权限的设计有漏洞,无需定位权限就能获取已经连接上的 WiFi 热点的 SSID 和 bssid。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/528493

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX