不存在的!
大家就先来说说 H5 开发的优势(以前上课老师说过,(认真脸)要表达一个观点的时候可以使用先抑后扬的手法,意思就是说:偶先让你一步,偶选择后攻,因为后宫佳丽三千。。。)
H5 开发的优势
跨平台。一次编写,可在 Android 和 IOS 两端同时运行。虽然说一次编写可在不同平台运行,但是兼容性可就苦了前端开发小哥了。。。。。。。
热更新。添加功能,修复 BUG ,用户不需要更新 APP。有了热更新,确实可以快速修复 BUG 了,但是,可能半夜被叫起来改 BUG,也还是苦了前端开发小哥了,。。。。。
开发快速。JS 相对于 Java 和 OC 确实开发速度上会稍微快一点,新功能要快速上线,又要苦了前端开发小哥了。。。。。
总结:什么都好,就是苦了前端开发小哥。。。。。。
H5 的优势已经说清楚了,下面再说一下 Android 原生开发相对 H5 开发 的优势,你来偶往嘛。
Android 原生开发的优势
性能高,界面流畅。原生开发由于使用本地语言开发,效率肯定要比用 H5 开发的界面性能高,因为 H5 页面毕竟还要用 WebView (相当于浏览器)来加载,就相当于中间多了一个翻译,效率不高。有人说使用 RN 效率可以跟原生媲美,偶不知道 RN 在不在这个讨论范围,那也说一下吧。其实 RN 也是通过框架转化成 原生组件 ,中间不用翻译官了,但是这种转化为了适应多种场景,往往会封装很多东西,和做更多的兼容性处理,性能也不比 原生开发 ,只是比 单纯的 H5 性能好。
支持离线功能,缓存处理。由于 H5 是加载在 WebView 里面的对于网络是比较敏感的,在网络较差或者无网络的情况下加载不出来,用户体验差。(如果你要是说,把整个页面都缓存下载,那偶也没办法)还有就是做一些缓存功能的时候,H5 就显得乏力了。
与其他 APP 或者系统交互更好。当需要和其他 APP 和系统交互的时候,H5 就基本上 GG 了。
H5 需要依赖原生。就如第一点说的,H5 说到底是运行在 WebView 里面的,而浏览器又是哪里来的呢?肯定是原生给你的啊!而且还要给你很多权限和配置,否则,H5 什么都干不了。
总结:其实根本就不存在谁取代谁的问题,就像现在的经济全球化一样,你需要偶,偶需要你,大家手拉手,一起走,互助互补才是发展的硬道理,一起实现中华的伟大复兴!呃呃呃,走错片场了。。。。
H5 有 热更新,跨平台,快速开发的优点,原生开发有性能高,流畅,离线缓存,与其他 APP 交互良好等强项,为何不结合起来呢?
在实际的应用中,往往是 原生开发 和 H5 相结合,优势互补,给用户带来良好的体验才是大家的目的。
开发2年后的薪资
在北上广深,两年基本上有 1w 或者 1w+。二三线城市,也有 7、8k 吧,具体要看个人能力,能力强的 2w 也是有可能的。
是否转方向
这个也需要看你个人的志愿,一般到了两三年,都会进入一个瓶颈期,技术很难有较大的提升,但是熬过这个时期,你就会看到不同的天空。
或者,也可以尝试转方向,有了两年的开发经验,对于其他的语言或者开发方式的学习都会很快,毕竟很多计算机的东西是有共性的,但是,你也需要从头开始。
书籍
《Android开发艺术探索》
《深入理解Android内核设计思想》
《Android进阶之光》
上面几本书都是不错的。
网站
简书,地址 :
掘金,地址:https://juejin.im
stackoverflow,地址:
大部分的问题都能在上面找到答案。
还有一个是 鸿洋 大神 自己搞的网站 ,玩Android ,是专门的 Android 技术网站
地址:
后期学习
两年工作经验之后的学习,偶觉得主要是从 扩展广度,挖掘深度 两个方面入手。
广度:平时多涉猎和了解一些平时不使用或者很少使用的技术,偶一般喜欢从公众号获取这些内容。比如:
鸿洋
郭霖
杨守乐
code 小生
Android 技术杂货铺
深度:这一块,只能靠自己平时多留意一些知识点的共同性,多联系,多总结。看一些优秀的开源框架的源码和系统的部分源码,多思考其中的设计和实现思路。
嗯,就这样了,觉得还可以的老铁们,点个赞,多评论交流。