打开车载wifi能力,让车载设备能够连接wifi:
-
adb root
-
adb remount
-
adb shell setprop persist.service.wifi.ipcp false
-
adb reboot
车载安装apk总结
- 车载安装失败,报错如下:
Failure [INSTALL_PARSE_FAILED_NO_CERTIF ICATES: Failed to collect certificates from /data/app/vmdl817232687.tmp/base.apk: Attempt to get length of null array]
大部分场景,强制安装都可以安上:
- adb install -r -t -d D:\FTD_E\Task\Thundersoft\Project\com.ftd.theme.apk
如果 -r -t -d 强制低版本生高版本都无法安装上的话,可以取巧。通过pm命令去查看包安装到哪个目录了,然后把这个目录下的apk包重命名,之后车载就没有了这个应用,就可以使用没签名的包替换了
-
adb shell pm path com.ftd.theme (这个命令能够识别当前车机使用的是哪个目录下的包作为当前运行的内容,比如是system下的还是data下的起作用)。
-
将/system/app下面的你想安装的包重命名,然后车载无法识别这个应用,你就可以安装了。
关于车机签名:
关于车机包安装需要统一签名,建议项目初始应用和服务都做签名,这样方便后续AS 直接install否则,上一个车载apk安装问题,总会困扰你,整个开发周期如果你对系统包不是很理解,很容易出现调试和开发的根本不是你的当前程序的怪异问题。
image.png车载更新VIN码等的指令:
adb root
adb remount
adb shell setprop persist.adaptapi.debug 1
adb root && adb remount
adb shell setprop persist.device.vehicle_type 02605G1
adb shell setprop persist.device.vin VFK20220616661958
adb shell setprop persist.device.ihuid IFK202206162013123456798
adb shell setprop persist.device.serialno 8892558230
adb shell setprop persist.device.partno 8892558230
adb reboot
Android隐藏hide接口的调用--配置framework.jar
- 首先要配置系统签名(见上面签名配置)
-
compileOnly files('../libs/framework.jar') (compare方式编译通过即可,车机会放入framework.jar真正引用的车机内部的代码)
-
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
Set fileSet = options.bootstrapClasspath.getFiles()
List newFileList = new ArrayList<>();
newFileList.add(new File("../libs/framework.jar"))
newFileList.addAll(fileSet)
options.bootstrapClasspath = files(
newFileList.toArray()
)
}
}
也可以结合:blog.csdn.net/xiayiye5/ar…
原生的通知打开和关闭权限设置
[图片上传失败...(image-bf2868-1673592612400)]
车载换肤和切换白天黑夜,简易处理方法
保证页面不重启,通过xml解析的方式避免多次的setTextView和setBackground操作
车载清理apk缓存
data/system/package_cache/Mine.apk把缓存清理重启下
data/app/包名/*
system/app/包名下的文件。
Launcher启动:设置动态壁纸,关机,开机先显示静态壁纸,闪烁黑画,然后显示动态壁纸。
调查中:猜测是Framework开发性能优化导致的问题
1、试了更换更换systemUI,合并systemUI和Image壁纸服务进程,没有效果。
2、增加android:directBootAware="true",结果:动态壁纸服务启动太早,资源文件不可读,直接MediaPlayer黑画,无法使用此方案。
3、根因是系统启动的时候LiveWallpaperService无法被Bind上。 unavailable, 所以去加载了静态壁纸,导致闪烁
最终方案:基于方案2,给Livewallpaperservice加上android:directBootAware="true",开机快速启动,保证服务是可以被bind的,然后把动态壁纸服务Livewallpaperservice依赖的资源从/sdcard/中转到/ivres/中,sdcard开机挂载慢,ivres直接快,直接可以供framework使用解决这个问题。但是整体核心还是开机时序优化导致的问题。各种服务依赖错乱了。 (后续还有点问题是开机偶现先显示动态壁纸,黑画闪烁后再显示动态壁纸,这个还是开机时序错乱导致的页面加载混乱导致的,framework问题)。
本文转自 https://juejin.cn/post/7140971620109123621,如有侵权,请联系删除。
网友评论