phonegap,phonegap下载安卓
像类似Phonegap这样的app开发工具还有哪些
PhoneGap是一个用基于Web语言去创建移动跨平台移动应用程序的快速开发平台。像这类的工具还有很多,尤其是国内有很多,我给你举几个例子。
1.APICloud
Phonegap虽然好用,但是国外的。在国内使用起来,还是有些麻烦。国内也有这样的App开发工具——APICloud。APICloud是一款“云端一体”的移动开发平台。使用APICloud开发平台,是用Web语言去开发iOS和Android应用,这样将开发难度大幅降低,开发周期缩短将近一倍。此外,APICloud平台上有数百个各式各样的功能模块,方便去开发各类App。
2.MoSync
MoSync是另一种FOSS跨平台移动应用程序开发SDK工具,它基于标准的Web编程技术。这个SDK为开发人员提供了集成的编译器、代码库、运行时环境、设备配置文件及其他实用工具。MoSync现在包括基于Eclipse的集成开发环境(IDE),用于C/C++编程,计划支持J*aScript、PHP、Ruby、Python及诸如此类的其他语言。
MoSync提供了对几种*作系统的支持,其中包括WindowsMobile、安卓、塞班、Moblin甚至一款移动Linux发行版。发布MoSync 2.4后,很快就会推出支持iPhone OS和黑莓的功能。
3.Xamarin
Xamarin近年来比较流行,通过Xamarin,开发者只需使用C#语言即可开发出iOS、Android、Mac及Windows原生App。与基于HTML/JS/CSS的PhoneGap相比,Xamarin最大的优势是通过与系统的底层API通信并与系统原生UI直接交互,可以保证应用的高性能和UI流畅性。
4.ReactNative
React Native其实并不是一个真正意义上的跨平台App开发方案,而是让你能够使用相似的方法和同样的语言来在不同平台进行开发的工具,可以直接在Github上下载源代码使用。React Native的主要工作是构建响应式的View,其长处在于根据应用所处的状态来决定View的表现状态。而到目前为止,其Android版本还未发布,在构建跨平台App上显得还不够成熟,暂时还不是一个很好的选择。
5.RhoMobile
RhoMobile提供了Rhodes,这是一种基于Ruby的开源框架。这个工具让开发人员可以开发能够跨一大批*作系统和智能手机运行的原生应用程序。*作系统包括安卓、Windows Mobile、iPhone,几乎涵盖所有主流*作系统。
使用RhoMobile提供的框架,你只需要编写一次代码。该代码可以用来为大多数主流的智能手机开发应用程序。原生应用程序很适合与现有的硬件协同运行,所以你可以轻松、快速、准确地完成开发任务。
RhoMobile还为开发人员提供了RhoHub和RhoSync,前者是一种托管型的开发环境,后者可以作为*式服务器软件来部署,以便确保用户手持设备上的所有应用程序数据是最新的。
我为什么从PhoneGap中逃离
每一位程序员都有自己的技术信仰,我也不例外。但当技术信仰遇到实际工作中的问题时,你又要怎么做呢?还记得刚刚接触HTML5做跨平台开发的时候这样的问题就摆在了我面前。
当初*决定选择PhoneGap作为核心框架,不过在之后的工作中就慢慢觉得PhoneGap并不像人们说的那么好,至少在我的项目中的表现不是那么完美。
从项目研发到整体的UI体验,随之而来的各种问题都有待解决。你可以嘲笑我,也可以说我根本不懂,不过在应用开发的过程中任何的问题都不可忽视。
项目研发
在项目研发中主要是开发环境与应用实现,不过PhoneGap在终端平台的支持与应用打包上也出现了些问题。
1.支持终端平台
表面上来看,PhoneGap支持的平台数量最多。但是在实际开发过程中,不管用什么平台开发,除去平台封装的扩展对象,完全遵循W3C标准,也不可能完全运行在多个平台上,所以说跨多个平台是不现实的,还是需要针对不同的平台进行实现。
2.开发环境
在应用开发的过程中,开发环境至关重要,但是PhoneGap没有自己的IDE开发环境,官方推荐一些公开的第三方html编辑软件(第三方编辑器不可能将PhoneGap所做的JS扩展表现出来)。
对开发者来讲,用PhoneGap开发并不是单纯的html+ css+ j*ascript的开发,要进行PhoneGap开发,开发者必须要下载以上7个平台厂商所提供的开发环境,IDE等(这个PhoneGap*有描述),环境搭建完成后方可进行模拟调试,对于没有接触过手机开发的web开发者而言,还需要学习很新的东西,入门门槛太高,开发难度无疑要加大。
3.打包部署
做过应用开发的人都知道,基于开发环境必须针对不同的SDK进行开发,所以打包部部署步骤比较繁琐,而且每个平台要在不同的环境下*作。最近推出在线打包,但是需要付费购买使用的。
4.应用的实现
当进行应用实现的时候,使用PhoneGap开发应用必须在网页当中引用一个JS包,才能使用本地扩展对象。过多过大(例如再引用JQ)的JS包引用将加重引擎的负担,从而影响应用性能和用户体验,所有UI完全依靠html和css完成。
不仅如此,手机上的webkit存在IFrame不支持height属性,css样式不支持z-index,position,overflow等属性的硬伤,也就是页面的区域滚动在正常网页布局下是无法做到的,只能依赖JS或者native UI。不幸的是PhoneGap把这个问题留给了我们开发者,开发者只能选择JS。在页面滚动上用JS效率是相当低的,尤其在android的中低端手机上表现更为明显。
用户体验
用户体验是每一个应用是否能够立足生存,被用户所接受并长期使用的原因,所以导致PhoneGap在用户体验上有一定的差距,这里我主要是对PhoneGap引擎问题的分析:
1.平台稳定性差
从PhoneGap公布的源代码和一些用PhoneGap开发出来的应用体验上来看,PhoneGap是没有经过完整而系统的测试的,或者还没有进行过机型的适配,还存在很多的BUG,许多应用有手机平台版本的限制等等。
并且因为开源,不断有开发者往上提交代码,各平台的兼容和同一平台不同版本之间的兼容问题在PhoneGap开发上会越来越大。UI上最明显的问题就是页面被放大。Android平台的webkit会根据手机设备屏幕的分辨率,密度,大小等条件来对网页进行0.75~ 1.5倍的缩放,以适应屏幕。这意味着在不更改webkit缩放比例的情况下,若网页当中写了类似width:10px;时,实际上可能变成了10* 1.5。同时,在带有输入框的页面当中,一旦选中输入框,页面立即会出现再被放大的效果,并且放大后无法缩回,导致用户看到的UI效果跟开发者想要的想要的效果相差较大。
2.对国内厂商终端的适配差
PhoneGap现有功能上有多处存在不完善。比如定位功能,在关闭GPS,GPRS,WIFI、系统基于网络定位设置的情况下(此时连接了WIFI),是无法获取到地理位置的,国内手机厂商的手机经常崩溃或运行错误,所以用户体验差。
3.不支持多窗口与动画卡顿
在整体UI上,PhoneGap开发过程中自始至终只存在一个窗口,也就是所有的网页都运行在这个窗口当中的,比如窗口的切换,过度等的动画效果,使用JS和CSS3可以实现一些动画效果,效率是很低的,并且只局限于当前网页内,至少在现阶段部分设备硬件配备还没跟上之前是这样的,而且除IOS以外的终端设备,厂商繁多,参差不齐,更难确保做出来的应用能够良好的运行在各个平台,所以用户体验不好。
4. UI延迟效果差,易崩溃
从PhoneGap开源出来的代码架构来看,PhoneGap本身的机制会导致UI上有一定的延迟,在不改现有架构的基础上这个问题是不可避免的。比如传感器的速度明显过慢,照相机打开拍照后回调时间过长等,这些都是在非常简单的网页下的表现效果。由于PhoneGap本身基于开源策略架构(利于开发者往上扩充功能)和在JS层面做了大量工作的原因,PhoneGap开发无论在iPhone还是在Android上都并没有走本身平台所特有的JS扩展方式,而是采取了线程休眠,暂停浏览器timer等方式来获取回调,直接导致延迟。另外,如照相机接口,PhoneGap返回给用户的并不是类似于文件存储地址的字符串,而是将相片转为了二进制发给用户,导致这个*作非常耗资源,并且时间消耗很长,在图片大的情况下,还有可能因为OutOfMemorySize异常而引起应用直接崩溃。
也许这些问题在你的团队中称不上什么问题,但是在一个资源不是那么丰富的团队中这些问题就显得尤为突出。而且,在应用开发的过程中各种细节问题都不可忽略,追求完美的应用要从细节做起。虽然PhoneGap可以实现很多跨平台应用的开发,但开发者尤其是项目统筹人员在选择框架的时候一定要三思而后行。
Phonegap怎么用来做安卓APP
在Android上,我们可以基于android.webkit.WebView作为应用的main view来产生一个应用程序,并让此WebView在应用启动时加载指定的网页,这样就构建了一个基于Android的WebApp。对于Android, Sencha的phonegap也是基于此方法对网页程序进行打包的,下载phonegap后,其主要包括二个文件:1、phonegap.0.9.4.jar此jar文件中包含了类DroidGap,其对Activity及WebView进行了适当的封装,可以让用户更方便地进行打包。更主要的功能是能实现的多个Webkit的plugin,通过这些plugin可以在j*ascript中直接调用android的一些系统功能,比如得到设备的信息如屏幕大小,系统版本号等,还有打电话,发送短信,写本地文件等一系列功能。2、phonegap.0.9.4.js此js文件作了更高层次的封装,以便于在j*ascript中更方便地调用所增加的plugin的功能。比如在js中直接调用:n*igator.notification.vibrate(0)可以直接让手机进行振动而n*igator.notification.beep(2)可以让手机Beep二声以下尝试一个最简单的例子(也可以参见phonegap中自带的一个例子):(1)j*a源代码文件: Sample.j*apackage com.phonegap.Sample; import android.app.Activity; import android.os.Bundle; import com.phonegap.*; public class Sample extends DroidGap{@Override public void onCreate(Bundle s*edInstanceState){ super.onCreate(s*edInstanceState); super.loadUrl(“”);}}(2)网页代码: index.html><html><head><meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″><script type=”text/j*ascript” charset=”utf-8″ src=”phonegap.0.9.4.js”>script><title>Testtitle> head><body><a href=”j*ascript:n*igator.notification.alert('hello');”>click mea> body> html>把此文件放置在工程的assets/www/目录下,如果网页代码中包含了其它的目录,则一并放置在这一目录下。(3)在工程中加入库phonegap.0.9.4.jar的引用编译运行并点击页面中click me链接时,可以见到以下画面:注意:(1)phonegap.0.9.4.jar中提供了很多的plugin,上面的示例程序只调用了n*igator.notification.alert,如需要调用其它功能,则需要在android工程的Manifest.xml中加入这个功能permission声明:<uses-permission android:name=”android.permission.CAMERA”/><uses-permission android:name=”android.permission.VIBRATE”/><uses-permission android:name=”android.permission.ACCESS_COARSE_LOCATION”/><uses-permission android:name=”android.permission.ACCESS_FINE_LOCATION”/><uses-permission android:name=”android.permission.ACCESS_LOCATION_EXTRA_COMMANDS”/><uses-permission android:name=”android.permission.READ_PHONE_STATE”/><uses-permission android:name=”android.permission.INTERNET”/><uses-permission android:name=”android.permission.RECEIVE_SMS”/><uses-permission android:name=”android.permission.RECORD_AUDIO”/><uses-permission android:name=”android.permission.MODIFY_AUDIO_SETTINGS”/><uses-permission android:name=”android.permission.READ_CONTACTS”/><uses-permission android:name=”android.permission.WRITE_CONTACTS”/><uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE”/><uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE”/>(2)在此可下载完整的工程文件,此例子基于phonegap自带的一个例子,但只保留了最少的部分。小结:的内容介绍完了,希望通过PhoneGap内容的学习能对你有所帮助!
本文链接:http://www.ynbright-edu.com/html/87970177.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。