第一次接触浏览器开发是在09年上半年, 一款J2me的开源浏览器。浏览器中对一些常规的标签做了样式定制,访问各网站渲染出来风格都像是自己开发的,勾起了极大的研究兴趣。心想如果把标签解析和绘制工作完全按自己的意愿去定制一遍 ,那岂不是一个浏览器开发下来,再访问所有网站都delistyle 了。激情满满的对已有的基础标签样式改了一个遍(基础标签基础样式)。对简单网页支持还不错,复杂网页解析不出来的直接过滤掉。最终止步于对于对等复杂标签的支持和CSS支持样式的扩展及Js解析能力上。工程量太大,标签和样式想都支持真心水平和精力不够(C/S架构)。
随着移动互联网大潮的兴起,10年独立开发了几款移动游戏,11年开发手机钱包(亿阳),12年开发社交类应用(人人),13年开发电商类应用(百度糯米)。移动端产品各类型开发了一圈后,最后选择沉心在一个业务方向上,14年初加入了360手机浏览器,一直到现在。
国内的浏览器开发多数处于壳层面的开发(IE,Chrome,Firefox, Safari ,Opera在争份额,争制定Html标准的话语权),在定位上,并非作为一个中立的工具去开发,而是赋予了更多的商业化属性的产品。重在推搜索,推内容服务(包括广告)。
手机浏览器也同样如此。通过提供搜索,内容聚合,个性推荐,省流,广告拦截等服务吸引用户扩大市场份额,争夺流量入口,并逐步向平台级应用发展,最终成为可提供所有内容服务的超级容器和平台。
做壳有做壳的玩法,在业务层面上开发功能和服务是没有任何阻力的,想做的事几乎都能在壳上做。这也是为什么国内到目前仍有很多家在坚持只做壳的浏览器。
然而纯做壳也有其逃脱不了的限制:核版本碎片化导致的解析渲染能力不统一,接口不统一;核层面的问题无法解决;核层面服务定制无法触及。
为什么选择下一步研究核?
国内浏览器业务上的开发已趋于成熟,可玩的花样基本均能玩转,后续拼的是服务能力和基础体验。
服务能力体现在基于大数据云服务提供更精准的内容分发&推送,搜索推荐,安全保障。
基础体验体现于网页打开速度(转码服务,省流服务,核渲染解析能力)要最快,阅读要最舒服(排版,网页操作支持)。
再去码砖码业务已没有太高的价值,专注于在服务和基础体验上提升才是拼份额争用户的最好武器。
为什么选择选择研究Chromium_Android?
1,Chromium足够强大(OS级);
2,项目开源;(C层开源已久,UI层代码也均开源)
3,很可能会成为未来技术风口;
4,做壳久了,也该剥开看看;
5,工作需要,浏览器体验之争,离不开在核上深度优化;
怎样的研究计划?
step1,编译Chrome源码,构建工程;
step2,基于源码工程,做各业务实现分析和尝试。
step3,分析核解析,渲染,硬件加速,通信代理等技术。
step4,各业务尝试,编译产出webview.apk|chrome_public_apk
为什么写出来?
这将是一个漫长和极富挑战的学习过程。通过定期总结的方式,一方面为了定期整理思路,整理所学,督促自身;另一方面希望能在前进的路上找到更多同行者。过程会将项目开源,结合项目记录学习和实践过程。
做壳那些事:
1,PC打通,收藏夹,历史纪录和PC的数据同步&网址传输;
2,省流服务,通过设置local代理,实现网络请求走代理服务器,进而实现省流。
3,免流服务,同上。关键是和运营商合作,实现结算和对账服务。
4,广告拦截,通过adblock过滤规则+白名单+黑名单。
5,小说,视频,新闻:插件化,JS注入。
6,网址安全检测。
7,Push。
8,业务性功能:导航,宫格,截图,分享,换肤,夜间模式,翻页模式,UA,标签,WI-FI,下载...
9,基础服务:版本控量升级,插件控量升级,矩阵拉活...