移动端之Android开发的几种方式的初步体验
目前越来越多的移动端混合开发方式,下面列举的大多数我都略微的尝试过,就初步的认识写个简单的心得:
开发方式 | 开发环境 | 是否需要AndroidSDK | 支持跨平台 | 开发语言&技能 |
MUI | Win+HBuilder | 否 | 是 | Html5+Css3 Javascript |
DeviceOne | Win+DeviceOne | 否 | 是 | JavaScript |
ReactNative | Win+AndroidSDK+Node | 需要 | 是 | React |
Xamarin | Win+AndroidSDK+VisualStudio | 需要 | 是 | C# Xaml |
Qt | Win+Qt | 需要 | 是 | C++ Qt |
1、MUI我想这个应该是很多会Html的人的首选,上手速度极快,但是也是我个人最不推荐的一个,打包出来的APP就是webView,通过Bridge调用原生接口,App启动慢,吃内存,特别是配合Chrome调试,翻~~墙是必须的,而且特吃内存,一个页面修改,调试,修改,几次内存就吃到好几百MB了,地图SDK封装太死,接口太少,简单的打个mark什么的还行,做map更多功能的app不推荐
2、DeviceOne 这个我只是刚开始用的时候体验了一把,后来就没玩了,需要下载他们基于Eclipse开发的IDE,DeviceOne,通过服务器端打包,调试需在app设置调试服务器IP跟Port,纯Javascript(原生写法)开发,知名度不如MUI,除了官方文档甚少,不过官方用户群里面响应跟支持很及时,也算是前期在培养用户群体吧。
3、ReactNative 简称RN,最刚开始推出的是MAC平台开发IOS的,后来才在Win平台退出开发Android的,,高级的功能需要有原生基础,需要有React基础,根据官方的Quick Start部署Android你会被坑进去,官方说运行React-Native run-android就能运行了,太坑了,不信你进去刷新下页面试试,你要先运行react-native start 启动服务,再运行react-native run-android 运行app调试,模拟器使用摇一摇功能进入dev setting在debug server里面设置你开发机器的ip跟host才行,然而这些都是官方没告诉你的。最终打包的app依旧是webview的不过跟MUI比简直是一个天上一个地底,因为可以流畅得让你怀疑人生
4、Xamarin,这个是微软爸爸把收费的厂商收购的过来然后开源免费给开发者用的,支持跨平台(界面必须用Xamarin.Forms)这里我们只说Android,Xamarin官方文档过时,可能你参照官方的例子来敲代码,很多都会莫名的错误,跑不起来,是的!我深有体会,所以我打算还是玩原生去。再就是如果你用Vs 2015来开发Xamarin在界面那一块很卡很卡,你会发现你写个style,selector等等都没智能提示,layout从source到design切换会卡死,而且经常VS无响应死掉,但是如果你换Xamarin来做就体验比较好了,source到design切换很流畅,写style,color,selector等都有智能提示,但是:Xamarin不支持中文。。。。你写的string.xml等资源文件都不能有中文。。。。因为他不支持。。。而且会打包一个Runtime到APK里面去,Release版我不知道多大,反正debug版本50MB是有的
5、Qt,Qt是使用C++开发,所以当然支持跨平台了,他分好几个版本,你需要下载对应的版本才行,不过现在搞C++去写Android App的人多吗?我没体验过,这里只介绍Qt可以开发,如果你使用QML还好,使用QtWidget真的很无奈。
个人推荐排序:
ReactNative 对于高级功能能需要原生基础的可能要求较高,像通用的第三方SDK Github上都有人封装过,直接可以拿来用,开发上手较快,用户群体大,网上资料多
Xamarin 这个要配合使用,界面用AndroidStudio来做,毕竟是官方自家的东西,支持很到位,后端你用VisualStudio来写 (目前我的做法)
DeviceOne 可以考虑,毕竟官方支持很及时
Mui 这个可以玩玩,了解了解,对于简单的列表,表单等要求不高的app可以用这个做
以上纯为个人观点,仅供非原生开发且徘徊在选择开发方法的新手参考
移动端之Android开发的几种方式的初步体验的更多相关文章
- 【Xamarin开发 Android 系列 2】VS2015跨平台开发的几种方式
原文:[Xamarin开发 Android 系列 2]VS2015跨平台开发的几种方式 在微软Build大会上,微软宣布在VS2015中支持三种方式进行跨平台的开发. 1. Xamarin 2. Co ...
- Android 数据存储五种方式
1.概述 Android提供了5种方式来让用户保存持久化应用程序数据.根据自己的需求来做选择,比如数据是否是应用程序私有的,是否能被其他程序访问,需要多少数据存储空间等,分别是: ① 使用Shared ...
- android 定位的四种方式
[原文] 开发中对于地图及地理位置的定位是我们经常要用地,地图功能的使用使得我们应用功能更加完善,下面总结了一下网络中现有对于介绍android定位的4种方式,希望对大家有帮助: android 定 ...
- android 定位的几种方式介绍
[地理位置] android 定位的几种方式介绍 开发中对于地图及地理位置的定位是我们经常要用地,地图功能的使用使得我们应用功能更加完善,下面 www.androidkaifa.com 总结了一下网络 ...
- Android 反射-换一种方式编程
Android 反射-换一种方式编程 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/59109933 本文出自[赵彦军的博客] 上一 ...
- 【转】在Android Studio中下载Android SDK的两种方式(Android Studio3.0、windows)
在Android Studio中下载Android SDK的两种方式(Android Studio3.0.windows) 方式一.设置HTTP Proxy1. 打开Settings2. 点击HTTP ...
- Android学习—下载Android SDK的两种方式
在Android Studio中下载Android SDK的两种方式 Android studio下载地址:http://www.android-studio.org/ 方式一.设置HTTP Prox ...
- Android 开发中三种多线程
在开发工程中线程可以帮助我们提高运行速度,Android开发中我知道的线程有四个一个是老生长谈的Thread,第二个是asyncTask,第三个:TimetTask,第四个是Looper,四个多线程各 ...
- Android开发中几种有用的的日历控件实现
我们大家都知道,在Android平台3.0中才新增了日历视图控件,可以显示网格状的日历内容,那么对于3.0以下的版本要使用日历控件只能借助第三方,目前用的最多的是CalendarView. 先简单介绍 ...
随机推荐
- [APUE]进程控制(上)
一.进程标识 进程ID 0是调度进程,常常被称为交换进程(swapper).该进程并不执行任何磁盘上的程序--它是内核的一部分,因此也被称为系统进程.进程ID 1是init进程,在自举(bootstr ...
- 重温Http协议--请求报文和响应报文
http协议是位于应用层的协议,我们在日常浏览网页比如在导航网站请求百度首页的时候,会先通过http协议把请求做一个类似于编码的工作,发送给百度的服务器,然后在百度服务器响应请求时把相应的内容再通过h ...
- Summary of Critical and Exploitable iOS Vulnerabilities in 2016
Summary of Critical and Exploitable iOS Vulnerabilities in 2016 Author:Min (Spark) Zheng, Cererdlong ...
- iOS系列文章
本博客全为原创,如果借鉴了其他文章会在博文的下面进行说明.欢迎转载,但要在文章中给出原文链接,谢谢. 有链接的说明已经发布,没有链接的说明还没有发布. 并不是所有的博文都在这里罗列,有兴趣的可以看博客 ...
- 基于Oracle安装Zabbix
软件版本 Oracle Enterprise Linux 7.1 64bit Oracle Enterprise Edition 12.1.0.2 64bit Zabbix 3.2.1 准备工作 上传 ...
- [C#] C# 知识回顾 - 你真的懂异常(Exception)吗?
你真的懂异常(Exception)吗? 目录 异常介绍 异常的特点 怎样使用异常 处理异常的 try-catch-finally 捕获异常的 Catch 块 释放资源的 Finally 块 一.异常介 ...
- 《JavaScript设计模式与开发实践》整理
最近在研读一本书<JavaScript设计模式与开发实践>,进阶用的. 一.高阶函数 高阶函数是指至少满足下列条件之一的函数. 1. 函数可以作为参数被传递. 2. 函数可以作为返回值输出 ...
- C++随笔:.NET CoreCLR之corleCLR核心探索之coreconsole(2)
这篇文章是上篇的续集,本文将会继续介绍coreconsole.cpp里面的逻辑.也许大家会看一些CLR的书,我承认我没有看过,因为我觉得一个人,他再NB,那也是他自己的眼光,而且说句难听的,CLR也不 ...
- EF上下文对象线程内唯一性与优化
在一次请求中,即一个线程内,若是用到EF数据上下文对象,就创建一个,这也加是很多人的代码中习惯在使用上下文对象时,习惯将对象建立在using中,也是为了尽早释放上下文对象, 但是如果有一个业务逻辑调用 ...
- Android之三种网络请求解析数据(最佳案例)
AsyncTask解析数据 AsyncTask主要用来更新UI线程,比较耗时的操作可以在AsyncTask中使用. AsyncTask是个抽象类,使用时需要继承这个类,然后调用execute()方法. ...