HybridApp开发库
2015-10-31 17:37
453 查看
开发App时, 把一些页面使用HTML5开发, 集成到iOS和Android中, 比较省时省力. 那么来看看都有哪些主流库可以使用呢?
本文主要关注三个: PhoneGap, DCloud, ReactNative, 并都做了尝试.
PhoneGap: http://www.jianshu.com/p/c7fd736437b0
DCloud: http://www.jianshu.com/p/2cdf23c7c043
ReactNative: http://www.jianshu.com/p/d63c9a22973d
根据判断, 目前使用ReactNative比较适合我们的需求.
DCloud和ReactNative都是最近更新的.
DCloud提供了多个jar包, 功能划分的比较细致, 按需导入, 关联代理和资源加载.
ReactNative提供maven库, 配合npm加载模块使, 启动本地的服务, 通过自定义控件加载.
DCloud是国内的HTML5库, 文档均以中文显示, 比较方便学习, Demo提供很多示例和各种用法, 学习曲线比较低.
ReactNative是Facebook公开的库, 文档自然比较全, 由于Android较新, 所以直到上一周才给出完整的文档, Example是比较旧, 很难调用, 根据文档学习如何开发, 目前关注很多.
DCloud是国内开发的库, 目前还在迭代阶段, 代码比较混乱, jar包特别多, 但对国内的一些第三方库支持较好.
ReactNatvie是Facebook的新产品, 而且国内有些公司也在使用, 应该没有问题, 学习之后, 知识也可以通用, 不至于太小众.
推荐知乎的一篇关于ReactNative文章, 写得非常好!
http://www.zhihu.com/question/27852694
本文主要关注三个: PhoneGap, DCloud, ReactNative, 并都做了尝试.
PhoneGap: http://www.jianshu.com/p/c7fd736437b0
DCloud: http://www.jianshu.com/p/2cdf23c7c043
ReactNative: http://www.jianshu.com/p/d63c9a22973d
根据判断, 目前使用ReactNative比较适合我们的需求.
1. 实时
PhoneGap 2.9.1最新版本竟然是2013年11月的.DCloud和ReactNative都是最近更新的.
2. 友好
PhoneGap需要生成jar包导入, 并且不支持maven库, 继承CordovaActivity加载.public class PhoneGapActivity extends CordovaActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 更换一下载入形式 //setContentView(R.layout.activity_main); super.loadUrl("file:///android_asset/www/index.html"); } }
DCloud提供了多个jar包, 功能划分的比较细致, 按需导入, 关联代理和资源加载.
if (mEntryProxy == null) { FrameLayout f = (FrameLayout) findViewById(R.id.js_contaner); wm = new WebappMode(this, f); mEntryProxy = EntryProxy.init(this, wm); mEntryProxy.onCreate(savedInstanceState, SDK.IntegratedMode.WEBAPP, wm); }
ReactNative提供maven库, 配合npm加载模块使, 启动本地的服务, 通过自定义控件加载.
mReactRootView = (ReactRootView) findViewById(R.id.test_js); mReactInstanceManager = ReactInstanceManager.builder() .setApplication(getApplication()) .setBundleAssetName("index.android.bundle") .setJSMainModuleName("index.android") .addPackage(new MainReactPackage()) .setUseDeveloperSupport(BuildConfig.DEBUG) .setInitialLifecycleState(LifecycleState.RESUMED) .build(); mReactRootView.startReactApplication(mReactInstanceManager, "MyAwesomeApp", null);
3. 示例
PhoneGap是apache的开源项目cordova, 文档注释都比较多, 项目较早.DCloud是国内的HTML5库, 文档均以中文显示, 比较方便学习, Demo提供很多示例和各种用法, 学习曲线比较低.
ReactNative是Facebook公开的库, 文档自然比较全, 由于Android较新, 所以直到上一周才给出完整的文档, Example是比较旧, 很难调用, 根据文档学习如何开发, 目前关注很多.
4. 风险
PhoneGap目前看来属于被抛弃的阶段, 要不实在想不出为什么不更新文档了.DCloud是国内开发的库, 目前还在迭代阶段, 代码比较混乱, jar包特别多, 但对国内的一些第三方库支持较好.
ReactNatvie是Facebook的新产品, 而且国内有些公司也在使用, 应该没有问题, 学习之后, 知识也可以通用, 不至于太小众.
推荐知乎的一篇关于ReactNative文章, 写得非常好!
http://www.zhihu.com/question/27852694
5. 分享
PhoneGap的链接官网: http://phonegap.com/ Cordova: http://cordova.apache.org/[/code]
ReactNative的链接官网: http://facebook.github.io/react-native/ 中文社区: http://reactjs.cn/ 文档: http://www.w3ctech.com/topic/909?utm_source=tuicool&utm_medium=referral[/code]
DCloud的链接官网: http://www.dcloud.io/[/code]
综上所述, 本人比较喜欢ReactNative.
ReactNative的详细配置, 参考:
http://www.jianshu.com/p/7a6639d67783
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories