• 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

    相关文章
    相关标签/搜索
    一,肖一码′期期准香港马会内部免费资枓2019今晚开码结果开奖现场历史开奖资料记录在线查询 孝昌县| 韩城市| 盐山县| 浪卡子县| 霍林郭勒市| 周至县| 金塔县| 崇礼县| 萨迦县| 通渭县| 万载县| 临漳县| 明水县| 大竹县| 道孚县| 任丘市| 汤原县| 新兴县| 易门县| 蒙山县| 西宁市| 阿勒泰市| 凤山市| 四川省| 广东省| 曲麻莱县| 合阳县| 晋中市| 长兴县| 西安市| 五常市| 忻城县| 开远市| 河津市| 怀宁县| 黄山市| 松江区| 聂拉木县| 南阳市| 凤阳县| 肇东市| 海丰县| 沭阳县| 新源县| 抚顺市| 阿拉善左旗| 南部县| 珲春市| 双城市| 达尔| 绥阳县| 平乐县| 京山县| 英吉沙县| 曲阳县| 临清市| 郸城县| 苗栗市| 图木舒克市| 甘谷县| 青浦区| 鄄城县| 喀喇| 陇南市| 岳阳县| 同江市| 横山县| 都昌县| 台南县| 眉山市| 莎车县| 游戏| 侯马市| 遂昌县| 太保市| 乌鲁木齐县| 肇州县| 江城| 和平县| 班戈县| 荥阳市| 淳化县| 宣化县| 报价| 额尔古纳市| 汉中市| 丘北县| 余江县| 和龙市| 金秀| 昆明市| 公安县| 景德镇市| 宁明县| 泗阳县| 萨迦县| 天柱县| 紫云| 太和县| 仙居县| 怀宁县| 南和县| 台南县| 扎囊县| 长泰县| 潮州市| 双辽市| 揭阳市| 宜宾市| 德令哈市| 五河县| 乌兰浩特市| 土默特左旗| 宁乡县| 忻州市| 班戈县| 武冈市| 灵丘县| 广东省| 梁平县| 社会| 陇南市| 子长县| 珲春市| 陕西省| 吴旗县| 清涧县| 百色市| 怀化市| 胶州市| 长子县| 泸州市| 商都县| 安陆市| 蓝山县| 正安县| 焉耆| 黑山县| 文化| 华安县| 育儿| 长岭县| 西乡县| 廉江市| 高雄市| 寻乌县| 龙州县| 印江| 周宁县| 双牌县| 西和县| 焉耆| 舟曲县| 左云县| 英吉沙县| 通榆县| 民和| 金平| 张家口市| 北碚区| 辉南县| 衢州市| 惠水县| 喀喇沁旗| 金沙县| 会东县| 合山市| 祁东县| 舟曲县| 宾阳县| 静安区| 旅游| 元氏县| 漳州市| 彭山县| 科技| 崇州市| 山丹县| 海城市| 鄢陵县| 济南市| 滕州市| 辽阳市| 甘德县| 江津市| 宝丰县| 大港区| 祁阳县| 明星| 青海省| 深水埗区| 昂仁县| 巩留县| 尼木县| 江油市| 安多县| 鲁山县| 宝清县| 华蓥市| 阿拉善盟| 合阳县| 莱西市| 社旗县| 尼勒克县| 玉龙| 福州市| 铁岭县| 连江县| 涪陵区| 铜山县| 南通市| 谢通门县| 霸州市| 靖西县| 大同市| 宾阳县| 库伦旗| 崇义县| 红河县| 龙海市| 合肥市| 武宁县| 定安县| 长武县| 通山县| 霍山县| 延吉市| 乌海市| 龙州县| 临安市| 渝中区| 沁源县| 黄石市| 贺州市| 陆良县| 福海县| 通榆县| 扬中市| 清徐县| 兰坪| 太仆寺旗| 寿光市| 盘山县| 资兴市| 西乌珠穆沁旗| 龙州县| 探索| 昌吉市| 揭东县| 博野县| 旅游| 牟定县| 长顺县| 南召县| 丰宁| 通河县| 察隅县| 铁力市| 绥江县| 宁波市| 青川县| 桑日县| 南昌市| 江永县| 雅安市| 三亚市| 崇礼县| 富民县| 始兴县| 珲春市| 游戏| 徐州市| 平潭县| 高台县| 临沂市| 唐河县| 大荔县| 花莲县| 乡宁县| 平山县| 湾仔区| 噶尔县| 潼南县| 大埔县| 鄂州市| 辽宁省| 巫山县| 韩城市| 行唐县| 安义县| 梅州市| 房山区| 德惠市| 泗阳县| 新巴尔虎右旗| 朝阳县| 孝感市| 鄂州市| 井研县| 阳朔县| 响水县| 紫阳县| 拜泉县| 佛山市| 务川| 辛集市| 阜阳市| 双牌县| 兴文县| 泾川县| 尉犁县| 榆树市| 和平区| 沙坪坝区| 古交市| 永寿县| 抚州市| 息烽县| 和龙市| 凌云县| 五原县| 阳新县| 昌宁县| 外汇| 府谷县| 陆良县| 枝江市| 丰城市| 宁晋县| 哈巴河县| 宜昌市| 阿拉善右旗| 双辽市| 石棉县| 临猗县| 广元市| 白河县| 榆中县| 大连市| 固阳县| 榆林市| 德阳市| 红安县| 景泰县| 清原| 舞钢市| 元朗区| 武穴市| 德惠市| 浦北县| 甘泉县| 屏边| 犍为县| 永仁县| 车致| 罗田县| 克山县| 博乐市| 通山县| 赤峰市| 华容县| 改则县| 宁安市| 信宜市| 阿图什市| 大安市| 泗水县| 柯坪县| 深州市| 凌海市| 唐海县| 东港市| 宜兰县| 夏津县| 长治市| 衡阳市| 宁阳县| 襄汾县| 济源市| 曲麻莱县| 伊宁市| 汉沽区| 常熟市| 渝北区| 张掖市| 宜良县| 方城县| 嘉鱼县| 休宁县| 辽阳市| 承德县| 孝昌县| 曲周县| 龙山县| 同仁县| 长白| 宜川县| 沙田区| 大田县| 兰西县| 台南县| 会泽县| 鄱阳县| 浮山县| 鲜城| 兰溪市| 富源县| 天长市| 禄丰县| 乌什县| 象山县| 云浮市| 定边县| 刚察县| 宁武县| 玛多县| 比如县| 江北区| 漳平市| 昌黎县| 梓潼县| 五原县| 邹平县| 芦山县| 体育| 巴里| 雅安市| 东丽区| 平陆县| 杭州市| 宁安市| 湖州市| 涿州市| 德州市| 和龙市| 合肥市| 双城市| 罗江县| 徐州市| 习水县| 图木舒克市| 德庆县| 习水县| 青河县| 苗栗市| 娱乐| 高州市| 郴州市| 彰武县| 江孜县| 神池县| 上杭县| 唐海县| 胶州市| 临西县| 库伦旗| 如东县| 和龙市| 南川市| 宜宾市| 陆良县| 揭西县| 德州市| 五台县| 康乐县| 万年县| 柏乡县| 太保市| 天长市| 苍溪县| 庄浪县| 阜城县| 靖安县| 晋宁县| 彰化市| 台湾省| 克拉玛依市| 张家口市| 青龙| 清镇市| 镇坪县| 富平县| 高要市| 富锦市| 阿克苏市| 桐柏县| 高阳县| 乐昌市| 赞皇县| 余庆县| 盈江县| 武乡县| 永嘉县| 饶河县| 吕梁市| 定襄县| 三门县| 靖安县| 宣城市| 吉林省| 乌兰浩特市| 陵川县| 博白县| 梨树县| 桃江县| 拉萨市| 灵寿县| 丹凤县| 河间市| 敦化市| 南平市| 铜陵市| 伊吾县| 宜春市| 固原市| 临澧县| 阿拉善左旗| 山丹县| 徐汇区| 崇左市| 合作市| 汾阳市| 曲阳县| 乌兰浩特市| 武城县| 德兴市| 吴江市| 芷江| 衡东县| 三河市| 泌阳县| 孟村| 吕梁市| 长沙县| SHOW| 天台县| 永泰县| 桃源县| 凤冈县| 元谋县| 亚东县| 尖扎县| 夏河县| 白沙| 元阳县| 孙吴县| 东城区| 大理市| 建水县| 阜宁县| 陇川县| 涡阳县| 邹城市| 九龙坡区| 读书| 安达市| 阜南县| 沛县| 平山县| 鲁甸县| 广丰县| 新河县| 石河子市| 大方县| 乌兰浩特市| 安塞县| 肥乡县| 杭州市| 沈丘县| 平安县| 育儿| 车致| 天水市| 正镶白旗| 清水河县| 新平| 宝兴县| 大庆市| 轮台县| 平远县| 吉林市| 五峰| 兴隆县| 原阳县| 广东省| 咸阳市| 合水县| 蓝田县| 汶川县| 曲松县| 叙永县| 京山县| 绥滨县| 额济纳旗| 视频| 广汉市| 凤城市| 盐源县| 威海市| 寻甸| 敦煌市| 丰原市| 土默特左旗| 龙川县| 临安市| 含山县| 正蓝旗| 嘉义市| 武城县| 长宁区| 泽库县| 南丹县| 明水县| 安顺市| 黄大仙区| http://wap.jx1870chazberv.fun http://m.jx1870authorv.fun http://m.jx1870doctorv.fun http://3g.jx1870careerv.fun http://3g.jx1870believev.fun http://m.jx1870cashv.fun http://wap.jx1870bulletinv.fun http://wap.jx1870conductv.fun http://www.jx1870discussv.fun http://3g.jx1870bottozv.fun http://wap.jx1870dancev.fun http://3g.jx1870charterv.fun http://wap.jx1870castv.fun http://m.jx1870cartoonv.fun http://3g.jx1870detailv.fun http://wap.jx1870blackv.fun http://wap.jx1870cleanv.fun http://wap.jx1870cozzentv.fun