您的位置:首页 > 娱乐 > 八卦 > 基于Ubuntu的Bash脚本实现SystemUI的编译真机验证

基于Ubuntu的Bash脚本实现SystemUI的编译真机验证

2025/2/24 16:02:30 来源:https://blog.csdn.net/zxj2589/article/details/139235113  浏览:    关键词:基于Ubuntu的Bash脚本实现SystemUI的编译真机验证

使用场景描述

当开发SystemUI的时候,开发完一个需求后需要到真机上验证,虽然SystemUI模块开发最后的产物也是APK,但是这个APK 却不能单独安装查看效果,因为SystemUI是系统级别的应用,需要放置到系统指定的目录下。这时候就需要我们先通过SystemUI的编译命令编译出SystemUI的APK,然后再通过adb命令推到系统的SystemUI目录:

/system_ext/priv-app/SystemUI/SystemUI.apk

然后再通过top命令找出SystemUI的进程,使用kill命令杀一次进程让其重启,这样我们的修改才能生效。这个过程比较的繁琐,如果每次修改都需要操作这么多的步骤,那么效率就很低了,所以本文介绍使用bash脚本的方式,将这一系列的操作通过bash脚本描述出来,我们下次修改完SystemUI代码,只需要执行下脚本就可以在真机上查看效果了。

Bash脚本的命令解析

先准备AOSP的源码,确认连接上了真机,可以安装scrcpy等投屏软件协助开发会方便很多,然后编译的时候执行下面的命令

source build/envsetup.sh
lunch qssi-userdebug // 也可以是其他选项,看需求定

根据用户的输入参数决定使用全编还是快编

echo "$1"
if [ $1 -eq 1 ]
thenprebuilts/build-tools/linux-x86/bin/ninja -f out/combined-qssi.ninja SystemUI -j8echo "使用快编"
else make SystemUI -j8echo "使用全编"
fi

如上面的代码所示,如果用户传入的参数是1,我们使用快编,否则使用全编译,快编就是涉及到一些代码的修改的时候可以使用,如果涉及到资源的添加等操作就需要使用全编了。比如脚本的名字为systemUIBuild.sh 使用快编的命令就是:
./systemUIBuild.sh 1
使用全编的命令为:
./systemUIBuild.sh

编译完成后通过adb命令将产物推到手机的 /system_ext/priv-app/SystemUI/ 目录下。这里需要注意需要在root的手机上,并且要求可以remount.

adb root
adb remount
adb push out/target/product/qssi/system_ext/priv-app/SystemUI/SystemUI.apk /system_ext/priv-app/SystemUI/SystemUI.apk

最后,找到SystemUI的进程并且kill掉它使其重启

adb shell 'kill $(pidof com.android.systemui)'

在这里插入图片描述脚本中会打印出systemUI杀死前和杀死后的进程号,可判断进程是否被杀死重启过。确认后就可以看到效果了

完整的脚本代码

#!/bin/bash
source build/envsetup.sh
lunch qssi-userdebugecho "$1"
if [ $1 -eq 1 ]
thenprebuilts/build-tools/linux-x86/bin/ninja -f out/combined-qssi.ninja SystemUI -j8echo "使用快编"
else make SystemUI -j8echo "使用全编"
fi
adb root
adb remount
adb push out/target/product/qssi/system_ext/priv-app/SystemUI/SystemUI.apk /system_ext/priv-app/SystemUI/SystemUI.apk
adb shell 'echo "当前SystemUI pid====>$(pidof com.android.systemui)"'
adb shell 'kill $(pidof com.android.systemui)'
sleep 1
adb shell 'echo "重新安装SystemUI后的 pid====>$(pidof com.android.systemui)"'

需要的读者可以将其复制到一个文件中,保存为sh文件,然后放到源码的根目录下,给权限后运行就行了。有积分的富豪也可以直接下载:SystemUI构建脚本 但需要注意,脚本是Ubuntu系统的哦。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com