之前主要做的车载上的CarAccount,主要是人脸注册,人脸登录,数据上传,这块,涉及的模块很多,比如我这边CarAccount调用了CarCamera的compare,CarCamera又调用了底层,通过aidl回调给我。然后数据上传又是tw给我的jar包,我把信息baseinfo整理好,以及camera回调来的image信息,然后调用aar去上传。
然后现在在做一个日志拷贝的东西,kotlin写的,将Music中的日志拷贝抽离出来,在原先拷贝mtklog的基础上,拷贝 /data/system/dropbox /data/anr /data/tombstones /data/aee_exp /data/vendor/mtklog /data/vendor/tombstones 下的路径日志,加上拷贝对话框列表和状态显示。
然后发现了一些kotlin的小问题,比如array和arraylist,listof和mutableListOf的差别,以及各个写法,let,when,这些的使用。包括Object类,data类。先这样。 拷贝的话就是当识别到Usb挂在的广播的时候,将一些日志拷贝下来,但是一开始发现很多文件无法读取,isread为false,然后加上
android:sharedUserId="android.uid.system"
即可。在这个过程中,没有依赖activity的,在收到广播后启动一个service,继承自intentservice,然后弹出对话框去显示当前状态,接着去拷贝文件,显示当前拷贝的文件,以及记录拷贝状态,然后不断往后面增加文件条目,这个对话框也是需要权限的,不然显示不了。然后这个因为加了系统签名一致的配置,也是需要对其进行签名,再adb进入system/priv-app/下新建LogCopy这个文件目录,再把签好名的apk push进去,这样reboot后,才能响应到。在这个过程中,因为我需要频繁切换usb模式和adb模式,切换usb模式是因为我需要u盘挂载的环境才能进行广播接收拷贝,adb模式是因为我需要对apk进行更换。然后这个因为是车机设备,需要在电脑端投屏观看,用的时候ARDC这个软件,再配合electerm进行serial,path和baudrate的配置进行连接,
usb:
echo 1 > /sys/devices/platform/otg_iddig/otg_mode
echo out 107 1 > /sys/devices/platform/1000b000.pinctrl/mt_gpio
adb:
echo 0 > /sys/devices/platform/otg_iddig/otg_mode
echo out 107 0 > /sys/devices/platform/1000b000.pinctrl/mt_gpio
当我一开始置于adb模式的时候,ARDC软件是可以看到屏幕的,但是一旦切换到usb模式,就断开了,这个时候需要电脑和这个车载机器连接同一个wifi,然后查看wifi的ip地址,在电脑端通过adb connect +ip去连接,这样才能看到图形,也就是看到日志拷贝dialog的出现,经常会出现一些问题的话,需要拷贝mtklog到u盘上去分析,这个时候是Usb模式,需要cd 到指定目录,比如/storage/emulated/0/mtklog/去拷贝最新的日志,通过cp -r … /storage/你的u盘 然后再将u盘插到电脑去做分析。反反复复,也很浪费时间的。先这样,都是一些流程上的繁琐事情。
|