安卓开发方式的进化之路

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/44305a99c51a

转载请标明出处:
https://www.jianshu.com/p/44305a99c51a
本文出自 AWeiLoveAndroid的博客


做安卓时间长了,接触到各种各样的框架,前前后后遇到了很多问题,这里顺便记录一下那些年在安卓开发的发展过程中的那些跨平台开发技术框架,大致如下:

如有错误,欢迎指正。


(一)适合WebApp的一些框架
1、Cordova

优点:

开源免费,社区生态成熟,插件丰富
支持离线场景应用
开发工具选择空间大

缺点:

只提供基础访问设备的接口,需要自己搭配其他UI框架和JavaScript框架来搭配

2、Ionic

优点:

国外的一款接近原生的Html5移动App开发框架,免费开源。
漂亮的界面,追求性能,专注原生,免费开源
Angular JS MVVM 开发理念,数据双向绑定
基于Cordova,可以使用 Cordova 的插件

缺点:

需要掌握 HTML + CSS + Angular JS ,学习路线陡峭
Ionic 框架相比于原生的 Cordova 有所差异,Cordova 某些官方插件可能不适用于Ionic

3、Dcloud

优点:

国内厂商,中文文档
对HTML5的性能、工具、能力都做了深入扩展,提供 IDE 、云服务等帮助节省时间
MUI 更贴近国内App使用习惯,提供模块的详细例子,如登录,个人中心

缺点:

部分操作需要具备原生开发经验,如离线打包App
新产品仍然有bug,还需改进

4、小程序

2016年9月21日,微信小程序正式开启内测。2017年1月9日0点,微信第一批小程序正式低调上线。
微信小程序,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。

优点:

1.即用即走——这个是从微信小程序上线就开始打的概念。即用即走使得小程序可以代替许多APP,或是做APP的整体嫁接,或是作为阉割版功能的承载体。
2.倚靠微信流量——相比APP,小程序一个突出的优点是完全嵌入了微信的聊天、公众号体系,完美进行微信体系内的流量引导。这一方面令小程序更加容易获客,另一方面也可以借助微信的成熟社交网络达到爆发式传播。
3.连接线上线下——连接线上线下场景也是微信小程序重要的一环,甚至最先开始为了推动线下习惯的养成,小程序在线上场景方面做了较强的限制。由于人们用微信扫描二维码的习惯培养得比较好,小程序相比APP更容易达成线上线下场景的连接与互动。

缺点:

1.留存——虽然有部分小程序已经杀出重围,但是普遍来讲,主打“即用即走”的小程序在用户留存上仍存在很大的提升空间。阿拉丁发布的小程序白皮书中显示,小程序的平均次日留存在13%左右,但是双周留存骤降到仅有1%。轻易拥有的也不在意失去,这大概是小程序目前的一个症结所在。
2.受控于微信——比起APP,尤其是安卓版的高自由度,小程序要面对很多来自微信的限制,从功能接口,甚至到类别内容,都要接受微信的管控,部分敏感内容还很容易遭受封禁威胁。

部分参考链接:https://www.zhihu.com/question/263816362/answer/274417734


5、PWA

PWA(Progressive Web App)是 Google 于 2016 年提出的概念,2017 年已被迅速采用。
PWA全称Progressive Web App,即渐进式Web应用。

一个PWA应用首先是一个网页, 可以通过Web技术编写出一个网页应用. 随后添加上App ManifestService Worker来实现PWA的安装和离线等功能。

解决了哪些问题?

可以添加至主屏幕,点击主屏幕图标可以实现启动动画以及隐藏地址栏
实现离线缓存功能,即使用户手机没有网络,依然可以使用一些离线功能
实现了消息推送
它解决了上述提到的问题,这些特性将使得 Web 应用渐进式接近原生 App。
关于PWA更多详情介绍可以看以下博客介绍:
https://segmentfault.com/a/1190000012353473

PWA的优势

可以将app的快捷方式放置到桌面上,全屏运行,与原生app无异
能够在各种网络环境下使用,包括网络差和断网条件下,不会显示undefind
推送消息的能力
其本质是一个网页,没有原生app的各种启动条件,快速响应用户指令

PWA存在的问题

支持率不高:现在ios手机端不支持pwa,IE也暂时不支持
Chrome在中国桌面版占有率还是不错的,安卓移动端上的占有率却很低
各大厂商还未明确支持pwa
依赖的GCM服务在国内无法使用
微信小程序的竞争

PWA写的app 比如这个:https://dd.shmy.tech/client (请使用谷歌浏览器打开)


6、Instant App

2016年的Google大会上,Google发布了有关Instant App的最新技术。千呼万唤之下,号称“Google版小程序”的Instant App,终于在2017年面向用户开放使用了。Instant Apps是Google 推出的应用特性。它可在用户没有下载、安装 App的前提下,直接加载App 的部分模组,并直接运行、使用,无需下载、安装整个App。
Instant App详情介绍可以看以下两个博客介绍:
http://36kr.com/p/5102782.html
https://segmentfault.com/a/1190000010906162

优势:

1.相对于小程序来说,谷歌官网要求每个Instant App程序最大不得超过4M的大小。但是小程序没有严格限制。
2.Instant App从用户体验角度来看,要比小程序好很多,体验起来让用户感觉,有种“我并没有安装这个程序,就能体验到和程序同样的丝滑体验”的感觉。

遇到的困难:

xx上网(你懂的)
Google Service不能正常的推广
具有Google Service框架的手机
完整应用必须提前安装到Google Play上
部署信息验证文件的网站,需具有https方式访问功能的网站。

另外还有一些比较过时的框架,例如:PhoneGap(支持大部分系统,不同平台需要搭建不同开发环境,需要使用三方的UI,需要使用第三方UI和扩展功能插件)、AppCan(闭源,商业化产品,免费版限制太多,无法在本地发布)。

此部分内容来源于:https://blog.csdn.net/jingwen3699/article/details/68922923


(二)适合移动端App的一些框架
1、React Native

Facebook于2015年3月份在github发布了React Native第一个正式版本为v0.1.0

特色:

Facebook 出品一个移动端开发框架,可以最大限度的接近原生的效果。
能够在Javascript和React的基础上获得完全一致的开发体验,构建原生APP。
仅需学习一次,编写任何平台。(Learn once, write anywhere)

缺点:

初次学习成本高
必须在不同平台下写两套代码,依赖暴露的接口

2、Weex

阿里巴巴于2017年4月份在github发布了Weex第一个正式版本为0.11.0-rc0
Weex的github地址 https://github.com/apache/incubator-weex

特点:

Weex能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,并支持iOS、安卓、YunOS及Web等多端部署。

缺点:
控件太少,基本只能实现最基本的效果
上手难度大,如果是前端和移动端都比较懂上手很快。
随着项目变大,编译速度会指数型上升。

此部分内容来源于:https://blog.csdn.net/jupiterxx/article/details/80026909


3、Flutter

详细介绍请看我写的博客 Flutter入门详解到填坑指南

用一张图总结一下:

跨平台开发历史图
(三)开发语言的多样性

到目前为止,能够开发Android的语言有很多种,如下所示:

Java还有其他JVM语言kotlin Groovy Scala
C/C++(也是废话)
HTML5(又是废话)
Dart(Flutter框架的开发语言)
Python(著名项目fq.router2)
Lua(bilibili客户端←_←)
QML(Qt项目的界面描述语言,同时可以用C++/js写业务代码,还能Ajax呢)
TypeScript
C#
Python
PHP

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335