关于HybridApp与国内外移动应用开发中间件对比的疑惑
  kypbRiYY3wcd 2023年11月02日 41 0


对后者中持不同意见的部分,作者表示到:“对于‘HybridApp取代WebApp’的观点很是疑惑。稍有不满的则是文中就Rexsee的对比与评价”。同时表示欢迎各位参与其中的讨论

首先,针对于文章的主要观点,我这边的考虑是:WebApp还属初期,HybridApp只是在NativeApp与WebApp之间提供了多的一种选择,而非取代或是替换。

展开来看可能会有如下的几个问题:

基于网页的WebApp短期内将遇到发展瓶颈。因为标准化问题和终端设备功能的支持程度,很难在短时间内找到确切的解决方案。

NativeApp、WebApp以及HybridApp均会是移动应用的不同选择。“NativeAPP,就像桌面版的C/S架构,WebApp,就像桌面版的B/S架构,20年了,B/S也没完全取代C/S。”HybridApp也就可理解为B/S和C/S混合架构,针对于具体的应用场景会有特定的优势体现而已。

不同的选择需做出取舍,鱼与熊掌难以兼得。不同的应用形态优势与劣势同样明显,这取决于具体的应用需求;执行效率、设备功能支持或是跨平台需求,各种价值有时会相互冲突。

HybridApp也无法兼具两者优势同时屏蔽劣势,在不做取舍的情况下其特点不过是交集求和。比如,跨平台需求与不同平台Native View的协同。

简单说来,不同应用形态同时具备了其优劣特点,无论是具体的应用实现,还是开发平台或中间件工具都需做出选择,而非一味迎合或避重就轻。

其次,针对于文中关于Rexsee的相关特点对比有较多偏差,在此简单指正。

按原文中的定义,Rexsee也是一个HybridApp的移动应用中间件,只是在产品策略方面做出了取舍,比如跨平台特性。为获取更好的执行效率与UI交互,以及更全面的功能覆盖程度,Rexsee仅支持Android。并且在较长时间内无意跨平台。

目前开放了接近2000个扩展API,覆盖95%左右Android原生功能(使用js的方式直接调用实现,在Rexsee社区可以查看详细说明与全部实现源码)

支持WebView与NativeView混合,利用JS实现Android原生UI布局与交互(Rexsee提供rexseeJavaview扩展,用于创建和管理原生界面元素,具体见附)

其它则是诸如使用Webkit内核,支持第三方任意开发框架等特性,不再反复描述了。如下表格,就原文中的一些细项对比给出自己的判断。单纯只是Rexsee自身,仅用以对有误的地方做出指正,无需过多对比。

如下是用Rexsee扩展javaview所实现的完全等同于原生界面的展现示例:

部分源码:

rexseeJavaView.create(‘setupList’,'ListView’,'mode:view;background-color:#000000;vertical-spacing:1px;’);//创建一个列表View
  
 rexseeJavaView.create(‘enablecheckBox’,'CheckBox’,’..label:启用来电;…’);//创建一个可勾选的View
 rexseeJavaView.create(‘whoDiv’,'FrameLayout’,”);//创建一个Frame布局。
 rexseeJavaView.create(‘wD111′,’TextView’,'…label:来电人;…’);//创建一个文本标签。
 rexseeJavaView.create(‘wD112′,’TextView’,'…label:’+c_who+’;…’);//创建一个文本标签。
 rexseeJavaView.create(‘wD113′,’TextView’,'…label:选择;…’);//创建一个文本标签。
 rexseeJavaView.setChilds(‘whoDiv’,'wD111|wD112|wD113′);//将文本标签放入Frame布局中。
  
 rexseeJavaView.create(‘timeDiv’,'FrameLayout’,”);
 rexseeJavaView.create(‘tD111′,’TextView’,'…label:时间;…’);
 rexseeJavaView.create(‘tD112′,’TextView’,'…label:’+c_time+’;…’);
 rexseeJavaView.create(‘tD113′,’TextView’,'…label:选择;…’);
 rexseeJavaView.setChilds(‘timeDiv’,'tD111|tD112|tD113′);//将文本标签放入Frame布局中
 //—————————————————————————–
 rexseeJavaView.create(‘ringtoneDiv’,'FrameLayout’,”);
 rexseeJavaView.create(‘rtD111′,’TextView’,'…label:铃声;…’);
 rexseeJavaView.create(‘rtD112′,’TextView’,'…label:’+c_ringtone+’;…’);
 rexseeJavaView.create(‘rtD113′,’TextView’,'…label:选择;…’);
 rexseeJavaView.setChilds(‘ringtoneDiv’,'rtD111|rtD112|rtD113′);//将文本标签放入Frame布局中
 //——————————————————————————–
 rexseeJavaView.create(‘upanddowncheckBox’,'CheckBox’,'…label:振动;…’);
 rexseeJavaView.setChilds(‘setupList’,'enablecheckBox|whoDiv|timeDiv|ringtoneDiv|upanddowncheckBox’);//将启用、联系人、时间、铃声选择、震动选择放入列表布局
 rexseeJavaBar.add(‘setupList’,'bar-position:top;height:306px;border-width:0px;padding-bottom:1px;’);//将列表布局放入顶部的Bar容器内。
 rexseeJavaView.create(‘btlinearLayout’,'LinearLayout’,'orientation:x;width:fillparent;’);//创建顺序布局
 rexseeJavaView.create(‘btstart’,'Button’,'label:启动;width:’+c_winwidth/2+’;event-touch:true;’);//创建按钮
 rexseeJavaView.create(‘btexit’,'Button’,'label:退出;width:’+c_winwidth/2+’;event-touch:true;’);//创建按钮
 rexseeJavaView.setChilds(‘btlinearLayout’,'btstart|btexit’);//将两个按钮放入到顺序布局
 rexseeJavaBar.add(‘btlinearLayout’,'bar-position:bottom;height:80px;border-width:0px;’);//将顺序布局放入到底部的Bar容器内。
 关于更多原生UI类应用可在如下链接获取应用:http://www.rexsee.com/CN/app/appList.php?category=multimedia
  
 附:Rexsee所提供的原生UI扩展
 详细可下载Rexsee开发手册,直接运行查看效果:http://vdisk.weibo.com/s/2wqWO/1329189032
 或直接扫码:
 
  
 rexseeJavaView对象及事件,用于创建和管理原生界面布局元素,支持一下原生布局,(API8的全部布局)
 布局类型(可以添加子对象):
 AbsoluteLayout
 Div(Rexsee扩展)
 FrameLayout
 Gallery
 GridView
 HorizontalScrollView
 LinearLayout
 ListView
 RadioGroup
 RelativeLayout
 ScrollView
 SlidingDrawer
 TableLayout
 TableRow
 ThreeDGallery(Rexsee扩展)
 ViewAnimator
 ViewFlipper
 ViewSwitcher
 基本类型(不可添加子对象):
 AnalogClock
 Button
 CheckBox
 Chronometer
 DatePicker
 DigitalClock
 EditText
 ImageButton
 ImageSwitcher
 ImageView:支持多点触摸的缩放。
 LabelDiv(Rexsee扩展)
 ProgressBar
 ProgressDiv(Rexsee扩展)
 RadioButton
 RatingBar
 SeekBar
 Spinner
 SurfaceView
 TextSwitcher
 TextView
 TimePicker
 ToggleButton
 VideoView
 WebView/Browser/BrowserDiv(Rexsee扩展)
 ZoomControls
 注意:特别提一下其中的SurfaceView类型,可以进行3D绘图,类似于HTML5的Canvas,基于Android Camera 3D绘图机制。
 rexseeJavaDialog对象及事件:将JavaView元素显示在对话框中。
 rexseeJavaBar对象:将JavaView元素直接覆盖在布局中。
 rexseeDrawable对象:预载入图片并进行简单处理。
 rexseeImageDialog对象及事件:显示图片用的对话框,支持多点触摸的缩放。
 rexseeButtonDialog对象及事件:显示一组按钮。



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  7VNj03Sk0rti   2023年11月02日   61   0   0 寄存器android操作数
  7VNj03Sk0rti   2023年11月02日   78   0   0 寄存器android操作数
kypbRiYY3wcd