大家搞 android 源码开发的工作环境都是怎样的?

2022-09-05 17:52:48 +08:00
 magicls

现状

身处手机公司,目前身边 Android framework 开发的同事电脑基本都是 Ubuntu ,但几乎人人都要装虚拟机跑 Windows ,或者自己再搞个 Mac 笔记本放旁边,因为总有 IM 软件或者绿色聊天软件或者刷机工具或者一些内部工具只有 Windows 版的,总之就是没见有人只用一台 Ubuntu 的。

个人

我自己在家是搞了一台小电脑跑 Ubuntu 当编译服务器,代码也全在里面,平时 ssh 连上去命令编译,源码目录用 smb 挂出来,平时主用 Mac ,挂载出来之后多少可以改改 bp 文件之类的,简单的文件也可以修改。

问题

目前最大的问题是,源码目录里有些项目要用 Android Studio 打开,而 smb 面对这种大且文件数量众多的场景性能非常拉胯。Mac 下挂出目录之后,根目录下执行 source && lunch 都能卡半天,更加别提整个项目导进 Android Studio 了。如果用 VSCode 打开目录的话能好一些,但那样就失去了依赖和代码提示了,几乎也是不能好好开发的状态。

想问下有没有像我这样只在 Ubuntu 下编译,不主用 Ubuntu 开发的?想知道是怎么搭建开发环境的。

13616 次点击
所在节点    Android
41 条回复
woodyguo77
2022-09-06 07:54:56 +08:00
主力:本地 MBP + MacVim ; scp 修改过的文件到 Ubuntu 。
辅助:ssh 到远程 Ubuntucc + Vim
偶尔:MacVim ssh 远程编辑

前两种方式中用 LeaderF 找文件,rg 搜内容;三种方式中都有 YCM 有限的补全,够用了。
binsys
2022-09-06 08:40:26 +08:00
ubuntu+vscode+(vbox+win 有些方案刷机工具只有 win 的)
magicls
2022-09-06 09:24:25 +08:00
@aheadlead #14 感谢分享,vim 一把梭有点秀哇。
@darkengine #12 感谢分享。
@xiiix #15 我去研究下这个组合。
@Android2MCU #19 确实,目前就是发现 Mac 下 samba 挂出来一步一个卡,而且还是局域网,不知道什么原因。
@vigidroid #20 感谢分享,是个思路。我研究一下,有结果会来更新。
@woodyguo77 #21 感谢分享哈~
@binsys #22 确实,身边很多同事用这种方案也会虚拟机搞个 Win (展锐:你直接报我身份证吧),一方面是有些刷机工具只有 Win ,另一方面因为 Win 的 samba 好像问题少点。
zapper
2022-09-06 09:24:30 +08:00
我用 sublime 直接挂远程 smb 目录,改完 ssh 上远程编译,编完拷回来刷机,慢得一批,正好能刷 v2
magicls
2022-09-06 09:29:59 +08:00
@zapper #24 你是不是只要小面积改改配置文件什么的?如果要做项目,感觉不导进 Android Studio 根本没法干活儿啊。
zapper
2022-09-06 09:34:25 +08:00
@magicls 改源代码,什么多以太网口支持之类的奇葩功能。本来我也想 AndroidStudio ,但是发现挂不了远程目录,放弃之。
sadfasdfa
2022-09-06 10:07:22 +08:00
借这个问下,这个行业未来发展方向,迷茫中…
magicls
2022-09-06 10:17:04 +08:00
@sadfasdfa #27 你说安卓吗?我们团队现在都还在招人,但是从我这边过简历的经历来看,说实话一言难尽。简单来讲,Android 工程师还是要不断精进自己,要么在 app 层做精做透,要么果断往下,往 framework 层扎,我这边太多简历,5 年 8 年 10 年经验的,很多原理一问三不知,干了这么多年活脱脱把自己变成了 API Caller ,这样肯定不行的, 然后只会怪大环境不好。
sadfasdfa
2022-09-06 10:21:10 +08:00
@magicls rom 开发,现在专注 audio 这块,现在就算把系统玩出花来,未来也好迷茫
mygame
2022-09-06 11:17:08 +08:00
win10+wsl2,
wsl2 负责编译,每套代码一个虚拟机
win10 下装 as, 直接导入\\wsl$下代码,转跳断点速度飞起,
native 代码用 clion, 转跳略慢,但断点同样很爽
tracyliu
2022-09-06 11:36:26 +08:00
ubuntu 负责编译以及看代码( AS ),和大规模改动。平时就是一个 mac m2 air 负责冲浪。偶尔传传文件就用 smb 。如果哪天没去公司就开 vpn ssh 过去
Android2MCU
2022-09-06 14:47:29 +08:00
楼上的各位有没有什么 android rom 开发的交流群呀,感觉做这块的都有点封闭,可以一起聊聊编译优化,aosp 又出什么新 bug 了之类的东西呀
cang00jia
2022-09-06 15:40:19 +08:00
@magicls 已经成为 API Caller 了,好忧伤啊
liuw666
2022-09-06 15:46:52 +08:00
忧伤 +1
xiangyuecn
2022-09-06 15:49:03 +08:00
分布式,就要充分利用分布式的软件🐶🐶🐶🐶

不然给你配置 128 核+1TB 内存 都没用😂
zapper
2022-09-06 15:52:08 +08:00
@sadfasdfa 我觉得 rom 开发的话机会都往车机、物联网方面走了。而且非一线城市机会超级少
rrZ2C
2022-09-06 17:04:29 +08:00
以前是 ubuntu+Windows 虚拟机
guoziq09
2022-09-06 17:11:14 +08:00
膜拜楼上各位大佬。
SupperMary
2022-09-09 07:36:53 +08:00
代码放服务器,本地是 windows ,vscode remote-ssh 连到服务器上做代码编辑工作。AS 试过 X11 转发回来但是感觉卡卡的,所以没有继续尝试了。服务器用固态硬盘,日常用和编译都还是很可以的。
SupperMary
2022-09-09 07:44:11 +08:00
@Android2MCU Android ROM 市场需求也不像 APP 那样大,国内做的厂家也不多,几个手机厂和几个电视厂,车机应该也还有一些。你想交流这些可能需要主动找人了。

编译优化问题,个人感觉向源码内添加的东西是按照安卓的 mk 和 bp 规则写的,优化空间就不大。boot ,kernel 这些可以考虑做成预编译的,这部分适配完成之后就很少改了。裁剪 APP 和用不上的模块,以及换更高性能的 CPU/固态硬盘提升会比较明显。

作为对比,我家里 9600K ,PCIE 固态的台式机编译 Android12 大概 2.5H ,公司的服务器编译大概 40min 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/877876

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX