soh*_*ilv 109 android cross-platform blackberry windows-phone-7 ios4
越来越多的移动平台正在推出,开发人员可以使用sdk.有各种移动平台可用:Android,iOS,Moblin,Windows mobile 7,RIM,symbian,bada,maemo等.
跨平台应用程序的制作是开发人员头疼的问题.我正在寻找跨平台的常见事物,这将有助于希望将应用程序移植到所有平台的开发人员.像差异屏幕分辨率,输入法,open gl支持等,请分享您知道的任何平台的详细信息.
或者是否有可能,通过在html(widget类型的东西)中编写代码并将其加载到本机应用程序中.我知道android,我们可以通过调用将web视图添加到应用程序中setContentView(view)
请分享我们可以将html视图添加到您知道的不同类型平台的本机应用程序中的类详细信息.
此线程的目的是在开发人员之间共享共同的细节.标记为社区维基.
跨平台工具和库
XMLVM,Codename One和iSpectrum(从Android应用程序交叉编译Java代码或从头开始创建一个
Phone Gap(跨平台移动应用)
Titanium(使用Web技术构建原生移动和桌面应用程序)
单声道触控(适用于iphone的C#)
rhomobile - http://rhomobile.com/ 样本在这里:http://github.com/rhomobile/rhodes-system-api-samples
Sencha Touch - Sencha Touch是一个HTML5移动应用程序框架,允许您开发在Apple iOS和Google Android触摸屏设备上看起来和感觉原生的Web应用程序.http://www.sencha.com/products/touch/
Corona - Iphone/Ipad/Android应用程序跨平台库.太棒了. http://anscamobile.com/corona/
将现有Android应用程序移植到Windows Phone 7的指南 http://windowsphone.interoperabilitybridges.com/articles/windows-phone-7-guide-for-iphone-application-developers
Tec*_*Zen 97
我在这里的答案涵盖了跨平台工具的一些技术限制,但让我扩展一下:
我认为跨平台工具在历史上一直都很普遍,因为这些工具具有错误的哲学焦点.
跨平台工具的所有卖点都是它们为开发人员带来的好处.它们的出售理念是它们允许开发人员在任何地方进行一次写入.它们的销售理念是它们允许开发人员在不学习新API的情况下扩展其市场.它们的销售理念是它们允许开发人员削减成本并缩短产品上市时间.
不销售什么跨平台工具是它们为最终用户带来的好处.
对最终用户的好处不是卖点,因为跨平台开发对最终用户来说很少是有益的.最终用户并不关心开发人员将产品推向市场的努力程度.当他们不使用一个平台时,他们也不关心应用程序可以运行多少个平台.他们只关心应用程序是否在运行它所需的硬件上执行了所需的操作.除非他们特别需要在许多不同的平台上运行应用程序,否则它确实没有带来任何价值.
相反,制作跨平台API的不可避免的妥协意味着API创建的所有应用程序在每个平台上都处于最佳B级.它们永远不会是每个平台上使用的最佳工具.
所有这些意味着,在大多数用例中,与使用平台特定API制作的产品相比,跨平台工具为最终用户提供了劣质产品.最终用户总是有更好的选择.
从长远来看,通过为最终用户提供最有用的工具,您可以赚钱.如果你没有哲学上专注于让最终用户的生活更轻松,更高效,那么你从一开始就注定要失败.最终用户有很多选择,如果您的工具不是最好的工具之一,那么您将不会进入市场.
如果您认为"用户将真正受益于在许多不同平台上运行此应用程序",您应该只使用跨平台工具.如果你开始只考虑跨平台工具,因为它们会让你(开发人员)的生活变得更轻松,那么你选择它们的原因是错误的,它们会伤害你,而不是帮助你.
Jla*_*Jla 14
有几种方法可以在移动设备上进行跨平台开发.当然他们都有局限性.没有任何解决方案可以像本机应用程序那样利用所有设备的功能.
重用代码
虽然所有移动操作系统都不使用相同的开发语言和API,但您有时可以共享某些类或逻辑层代码.
例如,C++可以通过使用NDK重新用于iOS应用程序,用于Android应用程序,用于Symbian应用程序,因为它们是用C++开发的,等等.
某些解决方案还提供了使用除设备通常使用的语言之外的其他语言编写应用程序的可能性.最着名的(事实上我唯一知道的)是商业的,基于Mono项目(C#开发):
但我不确定我们是否可以真正称之为跨平台开发,因为代码的重用受到限制,具体取决于设备:
UI部分也保持特定于每个设备.
Web开发
在询问有关移动设备的跨平台开发时,常规答案是Web开发.然后,我们需要一个使用移动浏览器的包装器,使其外观和行为类似于本机应用程序.这就是我们将进一步研究的一些跨平台框架的工作方式.
HTML5的兴起带来了Web开发功能,这些功能只能通过地理定位,离线应用程序,本地存储等本机应用程序来完成.
通过利用最新的Web标准HTML5,CSS3,Js,我们可以找到越来越多的框架来开发具有原生外观的移动设备的Web应用程序:
但HTML5仍然非常年轻,实施可能因浏览器而异.大多数默认移动浏览器使用WebKit引擎(主要例外是使用Internet Explorer的Windows移动/电话),即便如此,它们也不一定支持相同的功能.本地数据库仍然难以使用,我们无法确定它将如何由不同的浏览器实现.此外,即使使用HTML5,与本机应用程序相比,Web开发仍然非常有限.您无法访问联系人,相机,加速度计等.
编辑:本月早些时候,W3C发布了一些关于HTML5演变的警告:来自ZDNet的文章
因此它只适用于有限类别的应用程序.
跨平台框架
而且我们拥有跨平台的移动应用程序框架.您可以使用它开发一次并在不同平台上部署.这些解决方案通常专注于iOS和Android,并依赖于WebKit引擎.在使用Web技术进行开发时,它们提供了与电话功能的更多交互.最着名的是Nitobi PhoneGap,RhoMobile Rhodes,Appcelerator Titanium.但是很多其他人都在那里,并没有全部使用像MoSync这样的技术,在将代码编译为所需平台之前将其转换为自己的中间语言.
[1] 请记住,Apple有针对其平台编写的应用程序的特殊政策.他们似乎并没有在这个日期阻止这些应用程序,但它是一个应该考虑的信息.
编辑:自9月9日以来,Apple已经改变了这项政策.
在部署为webapp(如上所述的html5)时,您会有一些共性,但对于丰富的本机应用程序,各种智能手机的API完全不同.
HTML5可能会稍微改善一些事情,但要做有趣的事情,你需要去原生.
有"跨平台"的智能手机框架,如Phonegap,但我听说大多数关于将它用于"真实"工作的坏事.(很多开销等)
是的,html5受到了一些关注.您还应该看看第四季度的这个联盟和平台.不确定该项目的成功,因为这听起来是一个巨大的挑战,但这里有详细信息:
网站:http: //www.wholesaleappcommunity.com/default.aspx
新闻:http : //news.google.de/news/search?aq=f&pz=1&cf=all&ned=us&hl=en&q=%22Wholesale+Applications+Community%22
WAC旨在于11月向开发人员发布其SDK的初始规范和组件.该规范将基于W3C标准,并为开发丰富的移动Web应用程序创建强大的平台.WAC还将根据当前的JIL和BONDI规范为设备提供向后兼容性.(http://www.convergedigest.com/Bandwidth/newnetworksarticle.asp?ID=31021)
.
它是一个由大约25家电信公司组成的国际联盟,旨在创建一个向所有开发者开放并向所有移动电话用户销售的平台.(http://www.downloadsquad.com/2010/02/15/atandt-wholesale-applications-community-is-a-platform-not-an-app/)
| 归档时间: |
|
| 查看次数: |
41240 次 |
| 最近记录: |