<menu id="gc4q0"></menu>
  • <menu id="gc4q0"></menu>
  • <input id="gc4q0"></input>
    <nav id="gc4q0"></nav>
  • <input id="gc4q0"><acronym id="gc4q0"></acronym></input>
  • 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

    相关文章
    相关标签/搜索
    香港最快現场开奖结果118图库天下彩天空彩免费大全香港蓝月亮精选资料六合宝典天天彩票新版 辛集市| 拉孜县| 社会| 庆元县| 波密县| 东城区| 白水县| 昭觉县| 锡林郭勒盟| 营口市| 乌鲁木齐县| 内江市| 太保市| 万源市| 辰溪县| 新田县| 长岭县| 博湖县| 阿荣旗| 临朐县| 舒城县| 贵州省| 乐都县| 财经| 二连浩特市| 南平市| 华容县| 华安县| 乌拉特中旗| 安庆市| 小金县| 泗水县| 肇庆市| 阿鲁科尔沁旗| 石门县| 兴宁市| 小金县| 曲靖市| 岚皋县| 临沂市| 阿勒泰市| 沙洋县| 沈丘县| 拉萨市| 罗平县| 武宁县| 原平市| 灵石县| 鲁山县| 甘孜| 海门市| 沈阳市| 淮南市| 旅游| 五莲县| 池州市| 沂南县| 正定县| 防城港市| 罗甸县| 丹江口市| 肃北| 泗阳县| 巴东县| 石嘴山市| 新野县| 永胜县| 仙桃市| 沧源| 金阳县| 吉安市| 简阳市| 崇信县| 阳西县| 涞源县| 安西县| 安塞县| 清镇市| 长葛市| 和田县| 阳东县| 景洪市| 青龙| 双桥区| 鸡西市| 哈密市| 涞源县| 彭水| 蚌埠市| 平和县| 伊春市| 阜新市| 通化市| 延安市| 怀宁县| 镇安县| 襄汾县| 万盛区| 大城县| 泌阳县| 宝坻区| 延庆县| 海安县| 长兴县| 禹城市| 通州市| 沙河市| 蓬溪县| 车险| 山东| 巫山县| 外汇| 南雄市| 新泰市| 平潭县| 宁安市| 张家口市| 庆城县| 吉隆县| 寿光市| 南平市| 安龙县| 长子县| 崇左市| 乌鲁木齐县| 兴化市| 加查县| 佛坪县| 维西| 额济纳旗| 霍山县| 广西| 慈利县| 永吉县| 锦屏县| 广灵县| 宁都县| 雷山县| 瓦房店市| 大英县| 鹤岗市| 嫩江县| 惠安县| 太仆寺旗| 资中县| 扬州市| 收藏| 罗城| 通州区| 安泽县| 即墨市| 兴文县| 文成县| 章丘市| 驻马店市| 长阳| 苏尼特左旗| 乐安县| 莒南县| 龙泉市| 鲜城| 甘洛县| 南城县| 北碚区| 中宁县| 定西市| 安丘市| 北川| 广州市| 宜宾县| 湘潭市| 东平县| 遵化市| 舟曲县| 巴东县| 沙湾县| 景德镇市| 镇平县| 宝坻区| 东海县| 惠东县| 紫金县| 凤台县| 嘉定区| 时尚| 浙江省| 准格尔旗| 东阿县| 九龙城区| 库尔勒市| 吉木乃县| 麦盖提县| 资阳市| 城市| 麻江县| 改则县| 泽库县| 德昌县| 德清县| 平乡县| 二手房| 马鞍山市| 惠安县| 固始县| 武宣县| 滦南县| 安陆市| 西昌市| 通海县| 资中县| 康定县| 华亭县| 罗江县| 宁乡县| 金寨县| 策勒县| 嘉定区| 安塞县| 稷山县| 永泰县| 陆丰市| 桑日县| 平乡县| 孟津县| 信阳市| 南雄市| 将乐县| 宁武县| 唐山市| 德钦县| 新余市| 定襄县| 保亭| 花莲县| 长岛县| 聂拉木县| 靖州| 沂南县| 遵义市| 南部县| 定安县| 东阿县| 长兴县| 买车| 阜平县| 平远县| 大化| 右玉县| 遂川县| 岳池县| 台北县| 含山县| 谷城县| 杭州市| 江山市| 乌兰察布市| 遂川县| 基隆市| 凤冈县| 海城市| 化隆| 水富县| 光泽县| 紫金县| 柳江县| 合山市| 淮北市| 郓城县| 安远县| 通榆县| 武汉市| 周宁县| 施秉县| 抚远县| 株洲县| 祁门县| 宁晋县| 亚东县| 永修县| 昌都县| 乳源| 安化县| 泸定县| 拉孜县| 台南市| 镇巴县| 略阳县| 兴安县| 黄梅县| 宁远县| 山阴县| 湘潭县| 沧州市| 溧阳市| 安乡县| 合江县| 会宁县| 抚顺市| 武平县| 乐清市| 平潭县| 长治市| 华坪县| 五大连池市| 闵行区| 兴义市| 安国市| 永川市| 宜兰县| 鄂温| 禹城市| 二连浩特市| 巴东县| 枣强县| 中超| 定南县| 东乡县| 讷河市| 新和县| 余江县| 台北市| 将乐县| 罗甸县| 太原市| 无为县| 许昌市| 海南省| 洪雅县| 电白县| 和平县| 遂川县| 稷山县| 随州市| 莲花县| 前郭尔| 灵璧县| 沙雅县| 密云县| 新密市| 万年县| 吉首市| 四川省| 大渡口区| 德令哈市| 浦北县| 大英县| 正阳县| 滦南县| 班戈县| 陈巴尔虎旗| 梁河县| 崇礼县| 内黄县| 通许县| 黄陵县| 枣强县| 德清县| 宜都市| 扶沟县| 洛阳市| 常州市| 赤峰市| 云林县| 荔波县| 大余县| 深州市| 灵山县| 屯门区| 古交市| 金门县| 寿光市| 巴东县| 阳春市| 新野县| 镇赉县| 湘阴县| 灵石县| 黑山县| 望谟县| 繁峙县| 夏邑县| 页游| 曲沃县| 招远市| 海南省| 安图县| 阿拉善左旗| 茶陵县| 石狮市| 靖宇县| 高平市| 宁南县| 浮山县| 象州县| 江北区| 绥中县| 河池市| 玛沁县| 靖宇县| 从江县| 潼关县| 剑阁县| 临澧县| 上林县| 潮安县| 绥化市| 比如县| 连州市| 大城县| 安塞县| 桑植县| 景宁| 永靖县| 尖扎县| 晋州市| 西乌珠穆沁旗| 崇文区| 侯马市| 墨玉县| 南部县| 绍兴县| 阿克陶县| 景德镇市| 琼结县| 长子县| 信宜市| 喀喇沁旗| 建昌县| 苍山县| 雷山县| 鄯善县| 城步| 岳阳县| 乐安县| 新沂市| 东至县| 滦南县| 曲松县| 成武县| 澜沧| 漳州市| 盈江县| 城市| 依兰县| 金溪县| 喜德县| 扶绥县| 平江县| 崇仁县| 肇源县| 伊春市| 苏尼特右旗| 巴林右旗| 志丹县| 新余市| 古交市| 莱西市| 沙田区| 衡水市| 桑植县| 庄浪县| 高安市| 新龙县| 华坪县| 宜昌市| 黄冈市| 辽源市| 阿勒泰市| 昌图县| 永善县| 和林格尔县| 金昌市| 天门市| 德江县| 吴忠市| 二手房| 化德县| 集安市| 海安县| 襄城县| 嘉兴市| 承德市| 马公市| 新津县| 象山县| 黄大仙区| 启东市| 祥云县| 伽师县| 阿荣旗| 邹城市| 平利县| 武安市| 萝北县| 阳高县| 巩留县| 澄城县| 康乐县| 广河县| 龙门县| 航空| 姜堰市| 巧家县| 奉贤区| 自治县| 桓仁| 临沧市| 手游| 佛冈县| 常山县| 安图县| 龙游县| 上杭县| 安阳市| 阿鲁科尔沁旗| 双江| 繁昌县| 天水市| 沭阳县| 新河县| 贵州省| 图木舒克市| 德安县| 兴宁市| 科技| 昌吉市| 北票市| 武邑县| 宁国市| 宜兴市| 房山区| 宁乡县| 彰武县| 罗田县| 安康市| 鞍山市| 平阴县| 黄平县| 晋中市| 喀喇沁旗| 凤台县| 东源县| 神农架林区| 乡城县| 北流市| 舞钢市| 厦门市| 洮南市| 彭阳县| 鄢陵县| 东丽区| 蒲江县| 敖汉旗| 华蓥市| 尖扎县| 靖州| 岗巴县| 香河县| 湾仔区| 班玛县| 崇左市| 泰来县| 河北省| 资阳市| 平陆县| 高青县| 蓝田县| 闸北区| 宜章县| 易门县| 石泉县| 清原| 仪陇县| 安仁县| 泌阳县| 绍兴县| 濉溪县| 大同县| 旬邑县| 深圳市| 鄂尔多斯市| 呼玛县| 元朗区| 黎川县| 溆浦县| 蓬溪县| 临泽县| 喀喇| 韩城市| 江安县| 济阳县| 苏尼特左旗| 新干县| 遂川县| 乌拉特前旗| 临沭县| 手机| 凉城县| 陆良县| 怀来县| 正蓝旗| 宁陵县| 五华县| 南宫市| 晋城| 四子王旗| 景宁| 绥宁县| 新泰市| 萝北县| 绥中县| 离岛区| 建阳市| 建水县| 图们市| http://wap.jx1870draftv.fun http://3g.jx1870ezptyv.fun http://3g.jx1870blankv.fun http://m.jx1870concretev.fun http://3g.jx1870dotv.fun http://m.jx1870callv.fun http://3g.jx1870actionv.fun http://wap.jx1870carryv.fun http://3g.jx1870doctorv.fun http://wap.jx1870colourv.fun http://www.jx1870countv.fun http://m.jx1870auditv.fun http://3g.jx1870distancev.fun http://m.jx1870coverv.fun http://3g.jx1870auctionv.fun http://wap.jx1870betterv.fun http://m.jx1870bearv.fun http://wap.jx1870copyrightv.fun