越来越多的移动平台正在推出,开发人员可以使用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
在Android 1.0上有一个com.google.googlenav命名空间用于行车路线:
路线 - 改进了Google行车路线
但是在较新的SDK中,它被某些原因删除了......
Android:自API 1.0以来删除了DrivingDirections - 如何在1.5 /中执行1.6?
在黑莓手机上也缺少这样的API:
如何找到Blackberry中两个地方之间的路线?
CSIE-TW给出了一个解决方法(对于KML文件查询gmaps并解析它):
Android的-驾驶方向(路由路径)
也安德烈取得了DrivingDirections辅助类为Android.
我在j2me中为这个功能写了一个小助手,所以我想在Android和BlackBerry上分享我的样本.
更新
正如评论中所述,Google Maps API服务条款并未正式允许:
Google地图/ Google地球API服务条款
上次更新时间:2009年5月27日
...
10.许可限制.除非条款明确允许,或者除非您事先获得Google(或适用的特定内容提供商)的书面授权,否则Google的上述许可均受您遵守以下所有限制的约束.除非第7节或Maps API文档中明确允许,否则您不得(也不允许任何其他人):
...
10.9将服务或内容与任何产品,系统或应用程序一起使用或与之相关:
(a)实时导航或路线引导,包括但不限于与用户的传感器使能设备的位置同步的逐向路线引导;
并且可能对某些应用程序禁用(不知何故,至少在Android上)...来自.NET会话中的Geocode抓取:
API使用条款不允许这样做.您不应该刮掉谷歌地图来生成地理编码.我们将阻止对我们的服务器进行自动查询的服务.
Bret Taylor
Google地图产品经理
将不胜感激任何替代和/或建议!
谢谢!
有什么证据充分的或者开源项目的目标iPhone
,Blackberry
和Android
?还有其他平台更适合这种努力吗?请注意,我特别询问客户端软件,而不是网络应用程序,但有关在多个移动平台上使用网络应用程序的困难的任何信息也很有趣.
我正在为BlackBerry使用BlackBerry智能卡读卡器编写应用程序.没有太多关于这个主题的文档,所以我真的很想,如果有人能给我开始的例子.
基本上,卡上有一个RSA私钥和一个证书(用于配对的公钥).我希望能够加密/解密数据并对其进行签名.最终目标是使用智能卡上包含的客户端证书建立相互认证的SSL连接.
这是我到目前为止设法提出的代码:
SmartCardReader btReader = null;
SmartCardReader[] readers = SmartCardReaderFactory.getInstalledReaders();
for (int i = 0; i < readers.length; i++) {
SmartCardReader reader = readers[i];
if (reader.getType().equalsIgnoreCase("bluetooth")) {
btReader = reader;
break;
}
}
SmartCardReaderSession readerSession = reader.openSession();
CryptoSmartCard card = (CryptoSmartCard) readerSession.getSmartCard();
RSACryptoToken token = (RSACryptoToken) card.getCryptoToken("RSA");
Run Code Online (Sandbox Code Playgroud)
这token
看起来很有希望 - 有一些很好的方法,但有"神秘"的论点.接下来做什么?
我正在创建一个Blackberry应用程序来显示某个站点的全屏Web视图.我有一个正常显示的工作浏览器字段,但页面之间的导航速度比本机浏览器慢.browserfield似乎没有内置缓存,导致加载时间变慢.当我添加以下代码来管理缓存时,网站不再正常显示.
BrowserFieldScreen.java:
import net.rim.device.api.browser.field2.*;
import net.rim.device.api.script.ScriptEngine;
import net.rim.device.api.system.*;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import org.w3c.dom.Document;
class BrowserFieldScreen extends MainScreen
{
BrowserField browserField;
LoadingScreen load = new LoadingScreen();;
public BrowserFieldScreen()
{
browserField = new BrowserField();
browserField.getConfig().setProperty(
BrowserFieldConfig.JAVASCRIPT_ENABLED,
Boolean.TRUE);
browserField.getConfig().setProperty(
BrowserFieldConfig.NAVIGATION_MODE,
BrowserFieldConfig.NAVIGATION_MODE_POINTER);
browserField.getConfig().setProperty(
BrowserFieldConfig.CONTROLLER,
new CacheProtocolController(browserField));
browserField.requestContent("http://www.stackoverflow.com");
add(browserField);
}
}
Run Code Online (Sandbox Code Playgroud)
CacheProtocolController.java:
import javax.microedition.io.HttpConnection;
import javax.microedition.io.InputConnection;
import net.rim.device.api.browser.field2.BrowserField;
import net.rim.device.api.browser.field2.BrowserFieldRequest;
import net.rim.device.api.browser.field2.ProtocolController;
public class CacheProtocolController extends ProtocolController{
// The BrowserField instance
private BrowserField browserField;
// CacheManager will take care of cached resources …
Run Code Online (Sandbox Code Playgroud) 我们公司很快就会开始为移动平台开发少量产品,因为CTO我被要求检查可用的不同工具的Pro和Cons,以便获得最佳质量/成本效益的解决方案.
我们将主要针对iOS和Android,适用于Windows-Mobile和BlackBerry.
候选人:
在进行了一些背景研究后,我找到了以下可能的候选人:
Native - 使用其原生工具和语言,为每个平台进行简单而费力的开发.
HTML5,CSS和JavaScript - 可以是在设备的浏览器(网站)上运行的Web服务,也可以是围绕WebKit封装此类代码的应用程序.
Rho mobile - 由谷歌制作,所以它应该是好的 - 然而基于Ruby(我们不习惯)并且确实有一个复杂而且相当脆弱的开发环境.
PhoneGap - 它似乎很容易,主要基于Javascript - 它是开源的,但最近被adobe收购 - (不是一个好兆头)
Appcelerator - 从Javascript到PHP和python的任何东西都有很好的API访问范围,但是我们听到很多拒绝(苹果)的故事,以及在不同平台上使用复杂代码时的不兼容性.
而更像MoSync,Sencha,Appmobi和Corona(没有亲自测试过).
一些参考点:
我们不打算开发游戏,我们计划开发的应用程序属于商业应用程序和信息工具领域.
应用程序不依赖于设备API的过度使用(但需要一些次要的基本访问)
该公司已经开发用于iOS,我们有一个由原生iOS开发人员组成的小团队(Objective-C极客)
我们希望确保我们可以继续在该功能中开发我们的应用程序,而不会因为新的操作系统或API而导致其被破坏
事先确保应用程序不会因跨平台代码(主要是AppStore)而被拒绝将是有益的
像任何公司一样,我们希望尽可能具有成本效益 - 另一方面,我们坚持高品质的产品和顶级的用户体验.
没有比StackOverflow更好的地方提出这个问题,我将非常感谢具有此主题经验的开发人员的任何评论.
我正在创建一个将链接发布到Twitter上的应用程序.以下代码拒绝为我打包,抛出以下错误:
错误:无法运行程序"jar":CreateProcess error = 2,系统找不到指定的文件
这是代码:
public class ShowAuthBrowser extends MainScreen implements OAuthDialogListener
{
private final String CONSUMER_KEY = "<Consumer>";
private final String CONSUMER_SECRET = "<Secret>";
private LabelField _labelStutus;
private OAuthDialogWrapper pageWrapper = null;
public StoreToken _tokenValue;
public BrowserField b = new BrowserField();
Manager _authManager;
Manager _pinManager;
ButtonField authButton;
TextField authPin;
public ShowAuthBrowser()
{
_authManager = new VerticalFieldManager(NO_VERTICAL_SCROLL |
NO_VERTICAL_SCROLLBAR);
_pinManager = new HorizontalFieldManager(NO_VERTICAL_SCROLL |
NO_VERTICAL_SCROLLBAR);
authButton = new ButtonField("OK");
authPin = new TextField(Field.EDITABLE);
_authManager.add(_labelStutus );
_authManager.add(b);
_pinManager.add(authButton);
_pinManager.add(authPin);
pageWrapper …
Run Code Online (Sandbox Code Playgroud) blackberry java-me blackberry-jde blackberry-eclipse-plugin twitter-oauth
有可能用Python开发Android和iOS移动应用程序吗?我是移动应用程序的新手,并希望用Python开发移动应用程序.
是否有策略或至少是最佳实践来编写在iPhone,BlackBerry和Android上运行的应用程序?
我对BB和Android的开发环境一无所知,但我认为它们都支持Java应用程序.
我知道iPhone需要一个ObjectiveC部分(以及一个全新的UI).
有没有人这样做过?
我目前没有任何设备可供测试.我想我稍后会开始使用模拟器.
我们希望提供移动支持.我想知道jQuery甚至javascript如何在各自的浏览器中呈现.
什么有用?什么不是?有小费吗?建议吗?
blackberry ×10
android ×7
iphone ×4
ios ×2
java-me ×2
browser ×1
browserfield ×1
caching ×1
cryptography ×1
geolocation ×1
ios4 ×1
java ×1
jquery ×1
mobile ×1
python ×1
rsa ×1
smartcard ×1
webos ×1