Re: [心得] adb编译,启动!解救慢吞吞的老手机!

楼主: amilkamilk   2025-03-24 12:36:02
因为我的旧手机是固定丢在车上当导航的
懒得拿回家里接线
所以研究了一下无线ADB简单分享给大家
基本上只要连在同一个网络的两支手机,
甚至用同一只手机操作都可以
不用接线了
以下针对要被ADB的手机成为目标手机
要操作指令的称为操作手机(操作手机可以跟目标手机是同一只)
但好像要目标手机在安卓10以后才能用无线adb
步骤如下
1.操作手机先安装Termux
https://play.google.com/store/apps/details?id=com.termux
2.操作手机打开Termux后
先安装adb
输入指令
pkg install android-tools
有(y/n)选y
3.确定两支手机连结到同一个wifi
(如果操作跟目标手机同一支则忽略)
我刚好有连结wifi
不确定没有wifi能不能继续
看说明是说在同一个wifi环境下侦错
可能不能用4g网络
4.目标手机去开发人员选项
打开无线侦错
勾选允许
再点一下无线侦错进入下一个画面
5.点选使用配对码配对装置
5.1如果操作手机跟配对手机是同一只
由于跳出配对画面,配对码就会消失
这时候要用分割视窗让配对画面在上半部
Termux在下半部来操作
6.在操作手机上输入配对画面的资料
adb pair ip位置:通讯埠
范例
adb pair 192.168.1.101:41733
接着输入配对码
让操作手机可以配对找到目标手机
7.配对好之后,配对画面会消失
8.接着操作手机输入
adb connect ip:通讯埠
注意是前一个画面的
通讯埠会跟配对的不一样
正常
9.连上之后就等同接线adb了,这时候如果是同一只手机,可以结束分割画面了
这边开始也可以接到任何要adb的其他操作
如果是像Chromecast
手表之类的装置
也都可以用上面的方式无线adb
10.继续输入原po的指令
adb shell pm compile -m everything -f -a
11.搞定收工
记得去把无线侦错关掉比较安全
我也会把Termux删除以策安全
还是其实留着没差,请其他大神分析
12.如果将来要继续使用adb
例如要跑原文的3.2
(2) 若只对尚未编译的程式进行编译 (适用于程式更新后):
adb shell pm compile -m everything -a
因为已经配对过了
直接从8.连线adb即可
不需要再次做7.以前的步骤
(当然打开无线adb跟同一个wifi还是需要)
※ 引述 《tom282f3 (小小年纪所向无敌)》 之铭言:
: 标题: [心得] adb编译,启动!解救慢吞吞的老手机!
: 时间: Sun Mar 23 21:58:26 2025
:  
: 大家好,我的主力机是还没换过电池的原汁原味2018年旗舰Galaxy Note 9 (台版Exynos
6G
: B/128GB),用到现在第六年,应该比版上多数人的主力机都老了XD
:  
: 究竟当年的旗舰机现在有多慢呢?随便开任何一个App都可以等十秒,结帐永远是我卡住

: 家......剩下的说多了都是泪QQ
:  
: 前阵子研究了三星官方提供的Galaxy App Booster之后,搭配版友的讨论、网络上的文件

: 其他人的讨论等,整理了以下的一些心得,希望可以帮助跟我一样同样身陷在垃圾效能手

: 当中的人~
:  
:  
:  
:  
: 【Galaxy App Booster的原理?】
:  
:  
: (注意这段比较长,想要直接实践出真知的人,可以跳到下一段:
: 【如何手动进行编译】)
:  
:  
: Android的app默认并不是用底层硬件可以直接执行的机器语言 (Machine code,人通常看

: 懂) 储存的,而是以比较高阶 (人看得懂) 的程式语言形式储存在手机内部的。机器终究

: 是人,看不懂人类写的程式语言,只能读懂机器语言的一条条指令。高阶的程式语言,会

: 要先翻译为低阶的机器语言才能执行,可以类比为:
:  
: - 程式语言:买一包最便宜的米
:  
: - 机器语言:找钱包→带钱包→出门→走到某家量贩店→走到米的走道→反复比较找到最
便
: 宜的米→把米拿起来→去结帐→走回家
:  
: 可见机器语言所占用的空间较大,但对机器而言是不可或缺的。在远古的Android 2.2时

: ,机器语言是透过Dalvik编译的,它只会在执行app的时候同步监测最常反复出现的指令

: 并且将这些反复出现的指令编译为机器语言,这种做法称为JIT (Just-in-time)。这样做

: 好处是占用空间少,坏处就是执行效能差、耗电 (因为每次点开app后都要重新编译)。
:  
: 到了Android 4.4、5.0的时代,Google一改以往的做法,推出了Android Runtime (ART)

: 代了Dalvik。ART的革命之处在于除了JIT以外,也支援对整个app提前编译为机器语言。

: 种做法称为AOT (Ahead-of-time),会占用较多的系统空间,但好处是AOT编译后就不需要
JI
: T再编译一次了,可以直接上手,大幅增进了效率,对使用者而言就是手机的速度变快、

: 电变低了。在手机的Android系统升级后,第一次开机都会出现“更新应用程式... (1/50
0)
: ”的进度条,就是在执行ART的AOT编译。
:  
: 理论上在安装时就进行完整编译是最好的选项,但是这样做耗时会太久,因此Android 7

: 后的系统,在首次安装时并不会完整执行AOT编译,只有在手机闲置且充电时会在背景默

: 进行“较为完整”的AOT编译。说是“较为完整”,是由于编译整个App消耗的空间太大、

: 间太久,因此Android默认并不会将整个App都进行编译,会搭配使用App时同步监测的成

: (称为profile),再对部分程式语言执行编译与最佳化,力图在速度与储存空间上取得平

: 点。
:  
: 然而......对老手机而言,这个平衡点就是App要花十秒才跑得出来XD,因此三星的Galax
y
: App Booster就是手动触发手机的AOT编译机制,让手机提前把程式语言编译为机器语言后

: 存起来,让下次使用时的速度得以提升。
:  
: 对一个App进行AOT编译的比例 (称作Compiler filters) 由少到多,可以分成许多种 (各

: 厂商不同):
:  
: - verify
: - interpret-only
: - quicken
: - space-profile、space
: - speed-profile、speed
: - everything-profile、everything
:  
: 越下面的模式,编译比例越高,编译的耗时也越久,编译后的App执行速度理论上较快。

: 带有profile字样的代表虽然是同种方法,但只会针对同步监测的结果进行编译,编译耗

: 较短,但是之后执行会比不带有profile字样的更慢。
:  
: Android 8~11默认似乎都是quicken (但各家厂商会有不同),Galaxy App Booster则是以
sp
: eed-profile进行编译。聪明的你一定发现了,那为何不用everything编译呢?这样速度

: 不是会更快?我自己实测了之后,发现还真的有变快!
:  
:  
:  
:  
: 【如何手动进行编译】
:  
:  
: 理论上,Android 7以后的系统都支援手动编译,只需要电脑连接与adb即可,不需要root

: 限。
:  
: 1. 先开启手机的“开发人员选项”,并且启用“USB 侦错”。
:  
:  
: 2. 将手机连接上电脑,输入指令“adb devices”以启动adb并确认连接。
:  
: (1) 连接完成后,会跳出类似这样的内容,最后有“device”字样即为连接完成:
: List of devices attached
: 424947564e473498 device
:  
: (2) 若最后为“unauthorized”,请你在手机上点“允许这台电脑进行USB侦错”:
: List of devices attached
: 424947564e473498 unauthorized
:  
: (3) 若最后为“unauthorized”,但手机并未跳出讯息,请依序输入以下两条指令重

: 启动adb服务 (感谢kkkk1234版友提供):
: adb kill-server
: adb start-server
:  
:  
: 3. 输入指令,以everything模式重新编译程式
:  
: (1) 若要强制对所有程式重新编译 (适用于第一次执行):
: adb shell pm compile -m everything -f -a
:  
: (2) 若只对尚未编译的程式进行编译 (适用于程式更新后):
: adb shell pm compile -m everything -a
:  
: (3) 若只要强制对特定程式进行编译 (将<package_name>取代为程式的套件名称,例
: 如Spotify为com.spotify.music):
: adb shell pm compile -m everything -f <package_name>
:  
: 这个步骤最为关键!将所有程式以everything模式重新编译需要数小时的时间。输入

: 令后,手机就会开始在背景编译,此时无论拔掉传输线、重开机都无法阻止 (我试过了XD
)
: ,所以会有几个小时手机会发热、变慢、耗电大,也无法更新或安装其他程式 (会显示安

: 失败)。
:  
:  
: 4. (可跳过) 输入指令,重新编译UI的图像资源
:  
: (1) 若要强制对所有程式重新编译:
: adb shell pm compile
作者: justin332805 (拍谢挖某营)   2025-03-24 13:56:00
LADB跟Shizuku都可以用WiFi侦错下自己下指令给自己不用依靠别台装置

Links booklink

Contact Us: admin [ a t ] ucptt.com