RedfinDemo开发进度
继上回把我的RedfinDemo集成到系统里之后,工作之余有抽空推进开发了一下这个应用,主要是产品设计路线和UI框架修改优化。新版本采用了子fragment嵌套的模式,界面应该比较紧凑高效了。
先放应用的两张图,马上记录一下这四五天的惨痛历程。
WSL方案弃用
在应用框架优化完之后,我想尝试改改简单的源码。最简单的,一下就想到了改掉AutomotiveOS上那丑陋的Toast样式,但是一直cd到目录,使用vim去改源码也不是个办法,于是从郭神公众号了解到Google官方有一个ASFP(Android Studio For Platform)专门用来改AOSP源码的IDE,有代码导航和代码提示功能。
为了使用这个IDE,我电脑上的WSL系统肯定需要装一个图形界面,应用才能成功访问Windows系统的屏幕。
于是找攻略,研究各种 .bashrc 文件的环境变量配置,网络端口暴露等等。废了很大功夫,用登录远程桌面的方式,用上Xfce4桌面,连接上了windows的屏幕。
于是下载asfp的deb包,解包后,打开了ASFP应用,新建工程,导入aaos源码,经过漫长的index之后,我又发现在这个应用界面上我的鼠标位置发生了偏移,很难点准位置,相当难受。
附链接:https://dl.google.com/android/asfp/asfp-2023.2.1.19-linux.deb
抛弃WSL,直接上Ubuntu吧,一不做二不休啊!考虑到,以后肯定还是需要一个图形界面,还有其他调试工具,多窗口查看我的各种信息,会极大地增强效率。
Ubuntu遇到的问题
没有办法访问某些网络资源
安装上Ubuntu后,立即完成基础配置,开始拉取源码编译系统。结果连repo工具的初始化都无法完成。
因为使用WSL的时候,我可以在上面使用windows的网络代理环境,而Ubuntu上则需要花费很大精力去实现,这个成本是无法接受的。于是下载源码上全线转为清华镜像的方案,repo工具也使用清华镜像的方式初始化,添加到bin目录,开始sync,又是70G的流量。。。。
有同样网络问题的小伙伴可以看看:AOSP | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
其他工具的安装问题
电脑直接装了Ubuntu,没有Windows的丰富生态,总要装一下其他常用工具吧。
首先就是搜狗输入法,但是按照官方的步骤来,始终无法成功安装使用,感觉下载的版本太高了,2204有些环境不对。
还有微信,安装上wine可以使用了,但是后来也是因为他们使用的python3和系统内置的python版本有依赖冲突,自己瞎折腾把系统搞坏了。
使用ASFP修改原生Toast样式
这个是这几天开展的稍微顺利一点的工作,通过官方文档,我定位到了原生的Toast的布局文件transient_notification.xml,再追踪到其使用的背景和文字style样式,把背景background改成白色,文字风格颜色改成黑色。
为了修改Toast的位置,我找到了ToastPresenter,发现这个是使用windowmanager添加Toast的view的类,将窗口参数的y值从100改成800。从底部变道顶部来,更符合视觉直观。
改源码和应用层自行定制的区别
做Android的朋友都知道,我们应用开发者自己也可以通过给Toast通过addView的方式,定制化自己的Toast。但是直接改源码,可以直接使用原生的方式,一行代码解决Toast弹出。通过Kotlin的top function封装,可以直接showToast(text:String)来弹出一个Toast。
还可以统一所有应用的Toast风格,在车载HMI产品设计上,改源码这个方案成本最小。
最后就是下面的两张的效果对比了:
AOSP原生
改源码定制后
果然最顺利的还是自己最擅长的东西,像折腾Ubuntu系统,需要解决.bashrc的环境依赖,还有应用安装依赖冲突,,,,,头疼。
系统出错无法进入
然后到了今天,上午为了搞定fctx输入法,把系统的python彻底删掉了,然后reboot一开机电脑就是一行报错,卡在那里:
config failed, hub doesn't have any ports(err-19)
有无解决过的大神可以支支招。我大概率今晚回去再次重装系统了,暂时还没决定是ubuntu还是deepin?
deepin这个系统,上学时用过,做大数据分析,部署hadoop啥的。因为本来国内公司,感觉对于国内开发者,其生态是绝佳的,甚至日常使用都不成问题,但是又怕会和aosp产生另外的冲突。
哎,小小记录一下,赶紧解决掉这些麻烦事,开始学习framework,积累aosp的经验,而不是因为环境问题拖累大量时间。。。。。
Newest Event
January 16, 2024. I can't use WI-FI in deepin 20.9. So I roll back to Ubuntu 20.04 now.
And still, I have no sougou input method in Ubuntu.
I guess that's it. End of the story.