
参加完安卓绿色联盟的技术大会,想谈谈这次的感想。做Android开发已经有4年了,参加大大小小的技术大会或者技术沙龙双手还是能数的过来,难免有点两耳不闻窗外事的感觉。
其实,有时候不是不想参加,而是有对于技术沙龙或者技术大会多多少少会有一些保持怀疑的态度,究竟是分享技术还是为了自己的产品做广告,像一些面向技术的产品,例如:weex,hotfix,360天域和问天等等。这里并没有要黑什么的意思,打广告这一情况是真实存在的,但不是全部。以技术分享为基础,并以数据为辅助的推广。其中还是有很多的思想和方案是值得学习的,不至于一直在井底,适当的看看外面的世界。
接下来简单地说说大会的内容吧!
开场
演讲就讲述了绿色联盟的一个成立背景,众所周知的Android碎片化问题严重;再一个随着互联网的发展用户的隐私,以及数据安全等问题也受到大家的关注,国家在这方也提出了相关的要求和协议。整体联盟就是为了给广大开发建立一个良好的发展环境,促进整个android应用行业的发展(大体上就这么理解,其背后有什么目的不与探讨)。
网易云音乐
接下来就是网易云音乐Android团队负责人梁建分享了网易云音乐的技术框架

首先就提出质量,效率,体验并重均衡的目的,接下来就是app的框架设计

从上图中能看出来,框架分为三层能力,服务,业务;能力层也就是基础的功能并且不具有业务作用的模块,服务层则是单纯可以通用的基础业务,业务层就是纯粹的业务模块了。还有一点,各个模块之间都是相互独立的,虽然这里表现的是网状的关系结构。插件(也就是业务层)使用Fragment实现,而服务与隔层之间的连接则是通过路由或者服务注册的形式实现。
当然,以上这些并不能达到之前所提出的质量,效率,体验并重均衡的目的。
在工作的流程中,细分任务,设置节点,只有完成节点的代码才能上线。(这里我只能记得这么多了,见谅)。关于app质量方面,有建立自己的性能检测系统,听起来并不仅仅像bugly,leakcanary只有这些功能,这个系统更加完善,从crash,oom,内存(java到native),方法耗时,UI渲染等等进行检测,并且有一定的指标,能进行有效的反馈。
这里有一个观点值得一提,就是简单设计。意思就是要尽量遵循简单的设计,不要把事情搞复杂,而且还是以各式各样的分享icon举例,简直不要太棒。
还提到AOP打点的代码可能开源
手淘
虽然手淘演讲的是标题是客户端高可用平台实践,但是整体的内容所描述的解决方案与网易云音乐的有些类似,从app性能质量稳定性入手所建立的一整套体系,部分问题如下图:


针对考略到的这些问题,手淘的技术人员都作出了检测问题,收集想关信息的相应解决方案。所使用的手段从代码检查,到AOP插桩监控,再到hook native方法来监控内存,可以说这些事情在一个小团队中基本无法实现,没有这样的一个时间,可能也没有这样的一个能力来完成这么大的app检测系统。
美团
接下来是美团,下图是框架简介

相似的,讲解的也是监控系统,一次来提升app的性能以及稳定性。其中提到使用leak监控处理oom,使用hook和AOP技术为app提供修复能力。有一个亮点,就是建立了相关系统,对于问题上报到相关wiki以及相关信息关联的自动化流程,以及迭代。
微博
Pecker-啄木鸟-质量检测系统
微博所讲述的内容,与之前的几个演讲也是大致相似,Pecker相对bugly有更加准确的数据采集、分析;以及细化每个处理步骤
我还记录这个,Google breakpad 二次开发,但是我已经不太记得这个记录的是什么具体内容了T_T!。
QQ音乐
带来的演讲是P适配,本身这是一个不错的题目,但是这次演讲的内容在大会前一天被谷歌开发者公众号上以文章的形式发布出来了。这多多少少让我觉得有点缺乏诚意。这是文章链接用新技术 “派生” 的旋律把耳朵叫醒

其中有提到两个技术点,有兴趣的可以研究研究,一个是HEIF图片格式,另一个是ImageDecoder的api。
百度

接下来就进入的安全的话题,百度带来的是网络安全的部分,我所记录的就是一下几点:
- DNS安全
- 路由器劫持、ARP欺骗、Hosts文件、缓存投毒
- ARP防火墙-识别并绑定真实MAC地址
- SSL/TLS 安全问题-MesaLink
因为我真的不太记得具体的内容了,印象不深刻
360
这一天内,所有的演讲当中,演讲地最棒的一个,只是说演讲。整个过程我没有记录任何东西,但是依然从头听到尾。有问题抛出,有数据对比,但是没有详细的技术解决方案,因为听到最后你会发现这其实是广告。

上图是说网络攻击者和研发者的响应速度的差别。

这里其实还有一些点值得一提,从刚开始各个下发app的渠道来处理app的安全和盗版问题,但是这其中会存在误判的情况,于是有了360客户端的一个产生。在客户端可以检测app的安全已经相关问题,这样能更好的解决和防范恶意攻击者。
上午的技术分享就到此结束了。
华为
内容基本分为两块,F2FS新型文件系统和GPU Turbo的介绍。由于本人技术不到家,基本听不明白演讲所描述的技术,所以只是发个图让大家看看。


新浪
和几年前在InfoQ所讲述的item拆分是同一个话题,无可厚非,毕竟信息流就是新浪微博的主要业务功能;不过这次更加细致,对于方案的实现更加的优化了。但是,对于这同一话题还是有些失望的。

除了对一个大item进行拆分意外,还定义了一个VirtualView的概念,来处理原有item的背景已经点击事件的问题。
有部分忘记了,同时省略了部分广告。。。
总结:
- 大厂对于技术性能的追求,在资源和技术上都有很大的成本,我们无法照搬或者模仿。借鉴一些思维方式和解决方案还是可以的,例如:手淘为了监测主线程,使用AOP接管Looper,重写SP。一般很少有开发着会这么做
- 一点程度上,可以使用AOP,hook来做更多的事情;这两个技术点有兴趣可以学一下
- 适合的框架才是好框架,无论一个框架怎么强大,其目的是为了更好更快的开发,如果违背了这点,可以说这个框架对于你来说不那么好。
- App的安全问题不容忽视,很多开发者可能都不会留意这一点,但是有必要增强App自身的安全,总不想辛辛苦苦做出来的app被别人拿去赚钱吧!
- Flutter - 对于新技术还是需要保持关注
网友评论