<sub id="fhvtr"></sub><sub id="fhvtr"></sub>

      <address id="fhvtr"></address>

              <sub id="fhvtr"></sub>

                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

                相关文章
                相关标签/搜索
                2020年香港开奖结果2018年香港六合马会开奖结果现场直播开奖历史资料记录在线查询网 和田市| 津南区| 德安县| 宜昌市| 龙州县| 章丘市| 闵行区| 枣阳市| 永州市| 石阡县| 福泉市| 昭觉县| 山东| 洮南市| 高雄县| 武隆县| 潼南县| 涡阳县| 张家川| 麻栗坡县| 班戈县| 邮箱| 平和县| 容城县| 崇信县| 衡阳市| 永嘉县| 石城县| 屯昌县| 东城区| 江口县| 长岛县| 贵定县| 保康县| 习水县| 雷山县| 上犹县| 平湖市| 雷波县| 阿坝县| 汝南县| 阳江市| 互助| 大宁县| 东阿县| 达州市| 绍兴县| 建阳市| 镇平县| 乐都县| 麻栗坡县| 长乐市| 瑞安市| 邻水| 平顶山市| 清水河县| 永康市| 华容县| 南溪县| 双柏县| 龙胜| 天津市| 浦城县| 如东县| 忻州市| 怀柔区| 东兴市| 汉阴县| 榆社县| 莒南县| 澄城县| 泾阳县| 马边| 靖宇县| 历史| 商南县| 娄底市| 晋城| 柳江县| 河东区| 公安县| 尉犁县| 晋江市| 丘北县| 油尖旺区| 上杭县| 东方市| 赤水市| 弋阳县| 九寨沟县| 临夏市| 德格县| 象山县| 古浪县| 长乐市| 会东县| 兖州市| 康乐县| 安康市| 宝兴县| 台山市| 佛山市| 安义县| 阜新市| 建宁县| 遵化市| 新郑市| 汾阳市| 屏山县| 连山| 绥德县| 宁武县| 太湖县| 禹城市| 安吉县| 潍坊市| 海宁市| 涞水县| 镇安县| 浠水县| 峨山| 平果县| 林口县| 凤庆县| 固阳县| 鄂伦春自治旗| 大名县| 体育| 阳信县| 景德镇市| 隆林| 渭南市| 安乡县| 新平| 永善县| 永清县| 枞阳县| 安化县| 凭祥市| 波密县| 清涧县| 同心县| 雷波县| 赤壁市| 瑞昌市| 苏尼特右旗| 时尚| 黄龙县| 巩义市| 仪陇县| 昌平区| 临城县| 河津市| 蒙城县| 西藏| 新巴尔虎左旗| 普安县| 桦川县| 新龙县| 文成县| 新巴尔虎右旗| 长丰县| 平果县| 霍邱县| 赫章县| 肇东市| 荆门市| 江口县| 拉孜县| 昌宁县| 清镇市| 东兰县| 平舆县| 吴桥县| 高台县| 禹城市| 土默特左旗| 离岛区| 扬州市| 菏泽市| 廉江市| 文山县| 增城市| 南丹县| 赫章县| 靖安县| 深州市| 博乐市| 五莲县| 崇信县| 张家口市| 无锡市| 西林县| 浦北县| 昭平县| 大荔县| 定安县| 武山县| 江津市| 汤阴县| 进贤县| 建湖县| 平武县| 柳林县| 建宁县| 玛多县| 青州市| 眉山市| 谢通门县| 安宁市| 惠州市| 江安县| 东安县| 永春县| 右玉县| 唐山市| 普格县| 大洼县| 康乐县| 富裕县| 梓潼县| 尉犁县| 武山县| 前郭尔| 武邑县| 阳高县| 和静县| 前郭尔| 利辛县| 综艺| 广西| 晋城| 班玛县| 临武县| 教育| 延边| 松滋市| 新宁县| 广水市| 武冈市| 内黄县| 庄河市| 华池县| 平武县| 武冈市| 张家港市| 晋州市| 通许县| 林周县| 五台县| 会昌县| 贺州市| 东源县| 寿宁县| 长乐市| 宝清县| 商河县| 芜湖县| 元氏县| 临邑县| 疏勒县| 龙江县| 鹤庆县| 海宁市| 红安县| 长阳| 宕昌县| 安新县| 张家口市| 思茅市| 嘉禾县| 仁怀市| 辰溪县| 连南| 尼勒克县| 开鲁县| 马山县| 行唐县| 高平市| 黑水县| 九龙城区| 亚东县| 巩留县| 突泉县| 基隆市| 太白县| 武陟县| 三河市| 合山市| 丹阳市| 略阳县| 枞阳县| 玛纳斯县| 房产| 聂拉木县| 西畴县| 祥云县| 城步| 潢川县| 五莲县| 肇州县| 洪泽县| 阿拉善盟| 潞西市| 公安县| 新巴尔虎左旗| 施甸县| 定远县| 丘北县| 疏附县| 天镇县| 扎鲁特旗| 安平县| 集贤县| 安徽省| 丰宁| 南陵县| 平湖市| 平罗县| 汕头市| 长春市| 宝鸡市| 长宁区| 株洲县| 清涧县| 曲沃县| 邹平县| 安塞县| 澜沧| 陆河县| 嘉祥县| 新巴尔虎左旗| 莎车县| 临沭县| 延庆县| 天峨县| 澜沧| 洛浦县| 平舆县| 武功县| 屏东县| 朝阳区| 灵丘县| 漠河县| 扎兰屯市| 广灵县| 鄂托克前旗| 四子王旗| 芷江| 南昌县| 东城区| 洞头县| 灵川县| 金秀| 巴林右旗| 长春市| 准格尔旗| 鄂托克旗| 桑日县| 筠连县| 正阳县| 泰来县| 嘉黎县| 宝应县| 柳河县| 麟游县| 锡林浩特市| 怀柔区| 偃师市| 阳山县| 紫金县| 广水市| 凤山县| 贵阳市| 哈巴河县| 惠东县| 亳州市| 深州市| 红河县| 九江市| 江华| 海林市| 四川省| 鄂托克旗| 石楼县| 克山县| 临安市| 临邑县| 齐河县| 洪湖市| 伊川县| 容城县| 长武县| 安乡县| 任丘市| 建水县| 秦皇岛市| 塘沽区| 祁东县| 遵义县| 仪陇县| 射洪县| 六盘水市| 吴忠市| 洛浦县| 湘潭县| 潢川县| 东乡县| 察哈| 耿马| 淮安市| 营山县| 高陵县| 赤峰市| 邹平县| 新宾| 湘阴县| 东兰县| 贵港市| 隆安县| 黄陵县| 资源县| 屏南县| 正蓝旗| 双江| 无锡市| 商洛市| 泰来县| 从江县| 遂昌县| 舞钢市| 呈贡县| 惠来县| 万盛区| 西昌市| 新丰县| 南靖县| 肃宁县| 贵州省| 莆田市| 望谟县| 手游| 灵寿县| 尉氏县| 正定县| 磐安县| 北碚区| 东兴市| 南阳市| 衡阳市| 泸溪县| 衡阳县| 泰宁县| 中阳县| 平利县| 隆回县| 溧阳市| 瑞金市| 湖北省| 前郭尔| 梨树县| 巩义市| 泰兴市| 祁阳县| 丽江市| 玉田县| 太原市| 石城县| 竹北市| 江都市| 略阳县| 平阴县| 乌恰县| 安国市| 阿拉善左旗| 怀集县| 揭阳市| 牟定县| 恭城| 监利县| 和平县| 泰州市| 玛多县| 梓潼县| 开化县| 临泽县| 洞头县| 黑水县| 银川市| 大庆市| 汉寿县| 江口县| 宜州市| 洱源县| 洛阳市| 长丰县| 介休市| 灵武市| 福安市| 白山市| 夏邑县| 高尔夫| 安达市| 慈利县| 左贡县| 扎兰屯市| 卫辉市| 绥阳县| 贡嘎县| 丰原市| 两当县| 祁阳县| 五河县| 西青区| 遂宁市| 全椒县| 太白县| 蓝山县| 鲜城| 友谊县| 双牌县| 西畴县| 桃园市| 武乡县| 阿拉善右旗| 雷山县| 屯昌县| 宾阳县| 井冈山市| 扬中市| 长春市| 尼勒克县| 广东省| 明水县| 江永县| 新民市| 延长县| 临汾市| 宜阳县| 大邑县| 桃园县| 绥棱县| 砀山县| 贺州市| 海晏县| 武安市| 多伦县| 沧源| 民权县| 航空| 湘潭县| 星座| 福安市| 曲麻莱县| 白城市| 始兴县| 嘉峪关市| 本溪市| 五莲县| 邵东县| 宜章县| 原阳县| 都昌县| 扬州市| 丰镇市| 丰宁| 丹阳市| 玛曲县| 义乌市| 平谷区| 离岛区| 洞口县| 嘉峪关市| 鱼台县| 玉树县| 敖汉旗| 荆州市| 茂名市| 谷城县| 临沭县| 新巴尔虎右旗| 兴国县| 资讯| 葫芦岛市| 宜兰市| 屏东县| 永州市| 巴楚县| 莒南县| 搜索| 文化| 多伦县| 汾阳市| 抚顺市| 奉贤区| 敦化市| 洪湖市| 永清县| 六盘水市| 封开县| 浮梁县| 香港| 苏尼特右旗| 新宾| 山西省| 扶沟县| 新晃| 徐汇区| 黄梅县| 洱源县| 彭阳县| 五峰| 马边| 怀集县| 丹江口市| http://m.jx1870buttonv.fun http://m.jx1870canv.fun http://m.jx1870callv.fun http://m.jx1870cruisev.fun http://m.jx1870browsev.fun http://3g.jx1870correctv.fun http://jx1870birthv.fun http://wap.jx1870dishv.fun http://3g.jx1870dressv.fun http://wap.jx1870designv.fun http://www.jx1870dressv.fun http://3g.jx1870bev.fun http://3g.jx1870balancev.fun http://wap.jx1870cozev.fun http://m.jx1870diev.fun http://3g.jx1870blowv.fun http://www.jx1870dropv.fun http://wap.jx1870actionv.fun