2019年Android开发的未来发展方向该如何走?

                作为一名资深的Android 开发者。从2017年下半年开始,就听到各种言论,例如“Android 开发凉凉”、“移动端开发没出路了赶紧转行”、“要被XXX 替代了” 等等,充分反映了大家焦虑的心态。

                移动端开发真的要凉凉了吗?也经常有粉丝私信我,在群里聊起这个话题,今天我决定写下自己的一些看法,供大家参考

                移动端开发的现状

                移动端开发的现状是什么?我们可以从自己写的代码中寻找线索。以Android 为例,很多大公司的移动端开发者写的最多的代码是这样的:

                LinearLayout layout = new LinearLayout;
                layout.addView( xxxx );
                ...

                或者也许是这样的:

                public class XXXView extends RelativeLayout {
                    public XXXView( Context context )
                    {
                        this(context, null);
                    }
                    public XXXView( Context context,
                            @Nullable AttributeSet attrs )
                    {
                        this(context, attrs, 0);
                    }
                    public XXXView( Context context, @Nullable AttributeSet attrs, int defStyleAttr )
                    {
                        super(context, attrs, defStyleAttr);
                        initView;
                    }
                    private void initView {
                        LayoutInflater.from( getContext ).inflate( R.layout.xxxlayout, this, true );
                        ...
                    }
                    public void setData( XXX xxx )
                    {
                        ...
                    }

                又或者是对着xml 标签做出各种骚操作——UI 开发。

                没错,如今移动端技术栈已经愈发趋于成熟完善,对业务来说,就连大公司的工程师也是在做UI 的展示逻辑。大公司产品相对比较完善,后端管控了大部分业务逻辑,客户端做的就是取到后端的数据,然后通过setText(xxx)展示出来,然后通过接口返回的Boolean 值来判断View 显示还是隐藏。

                我听到很多人说,工作几年感觉自己没什么提升,天天都在堆代码,随便找个刚毕业的学生也能分分钟替代自己,于是就很焦虑。那对于工作几年的人来说,要想尽可能不让自己过早的被替代、被淘汰,就需要选一个有潜力的有前景的领域深挖。

                2019年Android开发的未来发展方向该如何走?

                那么移动端开发的未来在哪里?

                动态化

                在聊动态化之前,我们先聊聊Android 的插件化。

                前两年,插件化火起来了。为什么火?因为可以实现Android 应用不发版本的同时动态上线需求,同时热修复还可以动态的修复线上出现的bug。但是插件化存在最大的问题是什么呢?兼容性。Android 机型太多太复杂,插件化框架难免会涉及到系统API 的hook,兼容性问题就出现了,开发者会看到莫名其妙的错误上报上来却束手无策。

                随着Android 版本的迭代更新,插件化这条路越来越不好走,Android P给了开发者们一个信号:别随便hook 系统API 了,Google 要开始收口整顿了。插件化这条路注定无法一直走下去,于是开发者们另辟蹊径。

                最开始是继续用H5 混合开发的方式,例如老牌Hybrid 框架Cordova,但是性能不尽人意。这时候Facebook 开发出了一个跨时代的框架:React-Native。它提供了一个全新的思路:通过jscore 进行js 解析,使用原生的View 进行渲染,提供桥机制调用原生的能力。

                React-Native?是第一个真正的高性能的动态化框架,它的出现让Web 前端和客户端的界限迅速变得模糊。随之而来的是各大公司的自研框架,例如阿里巴巴的Weex?和美团点评的Picasso?框架。React-Native?只提供了Android 和iOS 的双端支持,Weex?扩展了思路,提供的Web 端的支持,一个是React 语法糖,一个是Vue 语法糖。Picasso?又不一样,Picasso?是纯TS,DSL 语法树,写法实在太简单,又准备在三端的基础上提供小程序端的支持。

                2018年GMTC 大会上,Flutter?发布了第一个预览版,阿里巴巴闲鱼团队已经在闲鱼APP 中使用了Flutter技术。Flutter四年前开始开发,直到去年才有第一个beta 版本。通过Dart 编写APP,然后编译成机器码同时运行在Android 和iOS 上,做到了原生跨平台,Hot Reload,性能很不错,可定制性也非常强,连封装的系统层Dart 代码都能改。提供了Web、iOS、Android、React-Native?开发者学习Flutter 的入门文档,也是去年移动端少数的几个比较火的热点之一。它的思路不同于React-Native,是一种全新的思路,目前我对Flutter?持乐观态度。

                支付宝的动态方式不同于以上所有,它是完全基于自己的H5 容器进行Hybrid 开发,不过由于内核也是自研的(UC 内核),所以性能各方面都比原生的WebView 好,支付宝里非常多的页面都是基于H5 容器开发的,包括支付宝小程序,这也算是一种动态化的方式吧,只不过研发成本太高:自研WebView 内核。

                目前来看,动态化的三驾马车已经初步形成:

                • React-Native?为首的jscore(v8)桥通信动态化方案;
                • 自研WebView 内核,H5 容器化方案;
                • Flutter(我觉得Flutter 正在发力争取第三驾马车的位置)。

                动态化改变了移动开发的方式,模糊了Web 前端和客户端的界限,让越来越多的人认识了什么是“大前端”。如果有经验的开发者们对这个方向进行深入研究,五年内,应该不会被淘汰了(笑)。

                移动端机器学习

                毫无疑问,移动端机器学习从2017年年底就开始火起来了,TensorFlow 也推出了移动端框架,很多应用都开始在移动端部署机器学习模型,例如相机类应用(FaceU)、电商类应用(唯品会)等,包括离线的机器学习。

                如果深挖这个方向,我觉得十年内不会被淘汰。当然了,难度也不小。

                2019年Android开发的未来发展方向该如何走?

                AR & VR

                从支付宝的AR 抢红包、QQ 的AR 踢球等玩法被越来越多的人体验,AR 走进了人们的视野。对于广告引流玩法来说,AR 无疑是能带来巨大收益的。

                此前大众点评亲子上线了“亲子奇妙日” 活动,就是基于大头儿子小头爸爸的AR 玩法。那么开发AR 引擎的移动开发者自然成了香饽饽,目前AR 主要应用的领域还是广告变现,不过很多公司也找到了AR 的一些落地场景,比如卖家具的电商公司可以通过AR 技术让用户在购买之前就能看到实物在自己家里到底能不能放得下,这能极大的提升用户的购买体验。

                如果是研究OpenGL、计算机图形学的移动开发者,可以往AR 引擎开发方向发展,非常有前景。

                VR 同理。

                移动端音视频

                这个领域最火的产品当之无愧是抖音了,就连我自己都天天刷抖音。除了抖音,还有各大视频应用,都需要音视频开发领域的专业开发人员,图像处理、滤镜、裁剪等等骚操作都是需要专业的音视频开发知识才能做出来的,研究OpenGL、计算机图形学的移动开发者在这个领域也有很大的优势。

                据我所知,这方面人才现在缺口依然很大,各大公司求贤若渴,如果在这方面有经验并且愿意深挖的同学,自然是各大公司的香饽饽啦。

                移动端区块链

                区块链,2018年最火的技术没有之一。

                从人人都在谈比特币到人人都在谈区块链,可以看出区块链技术已经被越来越多人熟知。无数区块链公司如雨后春笋般的冒出,连大公司们也按捺不住开始涉足区块链领域。对于移动端来说,区块链应用最多的还是数字钱包。但是未来移动端区块链一定会有更多的落地应用,例如Status。区块链去年大火,移动端的区块链应用还没开始火,但是也不远了。

                如果有移动开发同学对区块链方向感兴趣的,可以开始研究起来了。如果要学习智能合约开发的同学,我推荐一个非常好的网站:Cryptozombies,绝对是入门solidity 智能合约开发的精品。

                目前移动端的区块链人才还不多,各大公司也没有在招,但是两三年内,应该就会爆发了,现在还在探索落地场景的阶段,也给了对区块链技术感兴趣的移动开发同学学习的时间。改变世界的技术了解一下?

                移动基础框架

                UI 未来可能都会被动态化技术接管,但是移动基础框架不会。但凡要开发一个APP,网络请求、日志处理、数据库处理、缓存、Push 等框架都是不可或缺的,这部分和UI 关系不大,又是APP 的命脉所在。

                只要APP 存在,基础框架就存在。有同学可能要说了,我用okhttp 分分钟写一个网络请求出来,没错,这是okhttp 已经帮我们做好了很多事。什么是框架?用一句话总结,我的理解就是:

                一种可以让能力差别较大的开发者写出功能、性能差不多的代码的库。

                不知道大家能不能理解这种说法,我举个例子:如果使用HttpUrlConnection 来写网络请求,可能不同能力的开发者写出来的代码不一样,网络请求的性能和效果也不一样。但是如果使用了okhttp 库,只要看一看okhttp 的文档,新手和老手写出来的代码估计差不多,性能和效果也差不多,这就是框架做出的最大的贡献。

                在这些框架的基础上,P5 写的代码可能和P6、P7 区别不会多大。然而,这些框架总要有人开发,开源的框架往往不能满足公司业务的需求,需要自研基础框架。尤其是BAT、TMD 六家公司,移动端框架有大部分都是自研的,越来越多的公司也开始自研,所以如果是在这个方向有经验的移动开发者,在APP 被淘汰之前,应该都不会被淘汰。这方面对移动开发者的知识深度和广度都要求相对较高,需要沉淀和学习。

                Android 工具类应用

                这个就比较特殊了,这类应用我举个例子:360 手机助手。对于Android 用户来说,清理内存、清理垃圾等已经成为了一种习惯,这方面应用的开发自然是不可少的,而且非常考验对Android 知识的深度,你们懂得。

                结语

                上面七个移动端开发方向,是我总结出来的有潜力有前景的方向,各位移动开发同学可以参考,可以选择一个方向进行深挖,相信一定会有收获。

                嘴上焦虑是没有意义的,最好的办法就是付出行动。

                Android学习PDF+架构视频+面试文档+源码笔记

                在这里我也分享一份自己收录整理的Android学习PDF+架构视频+面试文档+源码笔记,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习

                如果你有需要的话,可以点赞,然后加入Android开发交流群(820198451)免费领取

                image

                image

                相关文章
                相关标签/搜索
                香港王中王论坛资枓香港正香四肖八码期期准精选资料app,四肖八码期期准精选资料最新官方版app预约 昌黎县| 乌鲁木齐市| 丘北县| 茌平县| 昌平区| 汶上县| 临夏县| 崇信县| 炉霍县| 桂平市| 宁强县| 滕州市| 方正县| 龙川县| 丰台区| 青州市| 乐至县| 万山特区| 永康市| 曲松县| 临洮县| 嘉荫县| 牟定县| 丹江口市| 大邑县| 上虞市| 宜川县| 全州县| 额济纳旗| 临夏市| 德州市| 孟州市| 卢龙县| 西吉县| 长宁县| 东莞市| 灵宝市| 阿拉善左旗| 西宁市| 五常市| 汝南县| 华池县| 阿拉善右旗| 岚皋县| 彭阳县| 吴忠市| 遵化市| 榆林市| 临朐县| 农安县| 察隅县| 兴化市| 自治县| 宁武县| 阳朔县| 黑河市| 松潘县| 盐边县| 开远市| 襄樊市| 通城县| 彭阳县| 天水市| 凤凰县| 商都县| 贺州市| 互助| 潼关县| 冷水江市| 万荣县| 无为县| 绿春县| 南部县| 邵阳县| 东乡县| 油尖旺区| 黑水县| 襄垣县| 台州市| 榆中县| 常州市| 蓬安县| 泸溪县| 堆龙德庆县| 嘉义县| 彭山县| 乾安县| 宁城县| 阳春市| 固镇县| 乌拉特中旗| 崇礼县| 怀集县| 灵武市| 阜新市| 阜阳市| 木兰县| 承德市| 呈贡县| 衡阳县| 洪洞县| 罗甸县| 临漳县| 渝中区| 柳林县| 金阳县| 观塘区| 洞头县| 平邑县| 乐陵市| 定兴县| 陵川县| 湟源县| 濮阳市| 玛沁县| 双峰县| 塔城市| 大荔县| 石林| 镇沅| 昌乐县| 娱乐| 无棣县| 冷水江市| 卓资县| 手游| 侯马市| 鸡西市| 波密县| 调兵山市| 宁海县| 济源市| 玛沁县| 博客| 恩施市| 姚安县| 洪江市| 郧西县| 密山市| 昌江| 黔南| 绥德县| 云梦县| 石林| 丹巴县| 资讯| 胶州市| 伊通| 拜城县| 家居| 霍山县| 嘉兴市| 黄山市| 庐江县| 高清| 绥芬河市| 江安县| 丹东市| 惠水县| 娄烦县| 江川县| 手机| 乌拉特中旗| 双峰县| 恩施市| 平阳县| 正镶白旗| 汉寿县| 山阴县| 都兰县| 新干县| 黄骅市| 津市市| 冕宁县| 饶河县| 永顺县| 本溪| 龙山县| 临邑县| 鹤壁市| 南阳市| 濮阳市| 若尔盖县| 镇赉县| 天镇县| 桓台县| 沅陵县| 定州市| 炎陵县| 盈江县| 德钦县| 靖州| 老河口市| 景德镇市| 正定县| 张家川| 武平县| 阳原县| 肃北| 宝兴县| 凤城市| 大埔区| 北海市| 承德县| 永春县| 垦利县| 信阳市| 曲阜市| 荆州市| 隆昌县| 灵璧县| 临漳县| 卓资县| 台湾省| 德兴市| 西昌市| 新闻| 广安市| 舒兰市| 贡嘎县| 门头沟区| 星座| 西平县| 黔江区| 上蔡县| 延寿县| 拉萨市| 龙陵县| 大丰市| 拉孜县| 天镇县| 肥东县| 博白县| 拉孜县| 尖扎县| 三河市| 历史| 岗巴县| 仁怀市| 胶州市| 成武县| 乾安县| 陇西县| 梅河口市| 高唐县| 和政县| 洪洞县| 明光市| 清新县| 宜宾县| 丁青县| 宣威市| 嵩明县| 丹江口市| 苗栗市| 济阳县| 庄河市| 会理县| 集安市| 洛阳市| 察雅县| 桓仁| 隆昌县| 双流县| 万州区| 普定县| 华宁县| 长丰县| 嵊泗县| 秦安县| 噶尔县| 遂平县| 雅江县| 屏边| 留坝县| 图片| 集贤县| 牙克石市| 双江| 米易县| 紫阳县| 贵阳市| 红安县| 射阳县| 宁城县| 驻马店市| 噶尔县| 凤城市| 建水县| 五寨县| 临澧县| 石阡县| 贵州省| 汉寿县| 衡山县| 乐至县| 沙洋县| 宁阳县| 黄浦区| 古田县| 合作市| 中方县| 庆安县| 稻城县| 文化| 罗甸县| 舒城县| 江永县| 湖南省| 文成县| 富阳市| 循化| 临泉县| 临漳县| 库伦旗| 兴义市| 大同县| 日喀则市| 新河县| 社旗县| 石泉县| 额济纳旗| 丰城市| 延安市| 五家渠市| 营山县| 新宁县| 利辛县| 扶余县| 布尔津县| 丹东市| 香格里拉县| 甘洛县| 上犹县| 定日县| 棋牌| 洞头县| 京山县| 天等县| 特克斯县| 渑池县| 罗源县| 宁夏| 洞头县| 喀喇| 呼伦贝尔市| 黄大仙区| 荥阳市| 定结县| 鸡东县| 江安县| 昌宁县| 弥渡县| 民勤县| 香河县| 永宁县| 贺兰县| 大英县| 连云港市| 前郭尔| 大渡口区| 麻阳| 徐水县| 建宁县| 岑溪市| 台中县| 廊坊市| 南通市| 绥宁县| 西平县| 龙口市| 商都县| 阿合奇县| 崇信县| 东莞市| 齐齐哈尔市| 红桥区| 潍坊市| 汉沽区| 临海市| 钦州市| 沙湾县| 饶河县| 扶沟县| 济宁市| 宜章县| 汶上县| 南宁市| 阜城县| 祁连县| 泾源县| 息烽县| 隆昌县| 休宁县| 五峰| 巴彦淖尔市| 禄劝| 崇礼县| 云安县| 呼伦贝尔市| 凤庆县| 花莲县| 柳河县| 江西省| 衡东县| 文昌市| 甘泉县| 来宾市| 新宁县| 天长市| 葫芦岛市| 阿鲁科尔沁旗| 中西区| 施甸县| 石城县| 商南县| 砀山县| 香格里拉县| 德清县| 汕头市| 玛纳斯县| 突泉县| 平陆县| 丹寨县| 新兴县| 陆川县| 始兴县| 巴林左旗| 吉木乃县| 英超| 马鞍山市| 岫岩| 库伦旗| 利川市| 特克斯县| 民和| 温泉县| 繁昌县| 双城市| 潜山县| 庆安县| 辛集市| 固安县| 同德县| 郧西县| 通州区| 沾化县| 榆林市| 沅陵县| 贡觉县| 巴彦县| 恩施市| 理塘县| 临沧市| 乌兰县| 奎屯市| 峨边| 伊宁县| 岐山县| 巴塘县| 潮安县| 抚松县| 福贡县| 德兴市| 阜新| 肇州县| 重庆市| 额尔古纳市| 佛教| 呼和浩特市| 平舆县| 资兴市| 德庆县| 威海市| 江西省| 五莲县| 霸州市| 托克逊县| 佛冈县| 左云县| 汝州市| 岳普湖县| 兴和县| 大冶市| 淳安县| 潼南县| 天祝| 青川县| 阿拉尔市| 沿河| 视频| 澄迈县| 龙川县| 尤溪县| 积石山| 新建县| 涞源县| 金阳县| 固镇县| 绿春县| 方正县| 自治县| 明星| 阳泉市| 仙游县| 绩溪县| 北票市| 尚志市| 宁晋县| 玉田县| 灵武市| 新丰县| 黄浦区| 都兰县| 浦城县| 合作市| 临沭县| 都江堰市| 沁水县| 大冶市| 乌鲁木齐县| 邹城市| 兴义市| 子洲县| 巍山| 韩城市| 金堂县| 大新县| 平远县| 建阳市| 乌拉特中旗| 德钦县| 余姚市| 呈贡县| 西青区| 枣庄市| 张家界市| 大名县| 青冈县| 临朐县| 武城县| 灵川县| 岑溪市| 岱山县| 泰来县| 图们市| 江西省| 科技| 剑阁县| 丽水市| 邯郸市| 修水县| 双峰县| 日喀则市| 白城市| 楚雄市| 尼勒克县| 襄樊市| 苏州市| 扬州市| 赤峰市| 丰宁| 三穗县| 揭阳市| 松江区| 肃宁县| 彝良县| 广昌县| 平凉市| 丰镇市| 肇州县| 泸溪县| 永平县| 康保县| 虹口区| 南京市| 大庆市| 兴和县| 家居| 新津县| 德清县| 永吉县| 疏附县| 资兴市| 西城区| 益阳市| 香河县| 华蓥市| 伊宁县| 呼图壁县| 唐海县| 古田县| 樟树市| 东源县| 高要市| 廉江市| 横峰县| 来安县| 栾城县| 伊宁县| 广南县| 南召县| 襄汾县| 周宁县| 时尚| 玉山县| 当雄县| 阿克苏市| 斗六市| 中卫市| 成安县| 安西县| 碌曲县| 岫岩| 兴山县| http://jx1870bestv.fun http://m.jx1870culturev.fun http://m.jx1870choosev.fun http://m.jx1870bottozv.fun http://wap.jx1870cancelv.fun http://3g.jx1870costv.fun http://m.jx1870codev.fun http://jx1870arzv.fun http://wap.jx1870developv.fun http://wap.jx1870downloadv.fun http://3g.jx1870bootv.fun http://3g.jx1870dressv.fun http://wap.jx1870blankv.fun http://m.jx1870discoverv.fun http://m.jx1870chazberv.fun http://3g.jx1870cozpanyv.fun http://m.jx1870cartv.fun http://m.jx1870choosev.fun