我一直在主要开发iOS应用程序,但现在,我正在为iOS和Android开发应用程序。我尽可能地尝试编写与平台无关的代码。
人们为网络功能做了什么?我似乎无法找到任何有关在Android中进行GET / POST HTTP请求的资源。
您如何解决为iOS和Android开发共享网络库的问题。
编辑:我将使用C / C ++而不是Java来完成我的所有Android网络编程!
Android是否有任何C / C ++网络库(以后可用于iOS)?
答案 0 :(得分:9)
我认为这不像大多数人听起来那样不可能。我最近采访了一位为大型移动游戏开发公司工作的人,他提到他们在C / C ++库中做了尽可能多的工作,以便在包括Android和iOS在内的多个平台上重用代码。我自己没试过,但我已经多次听过这个。
举个例子,看看这篇博文: http://thesoftwarerogue.blogspot.com/2010/05/porting-of-libcurl-to-android-os-using.html
如果cURL库可以在Android上使用,我不明白为什么你的网络库不能。由于您无法从C / C ++代码库访问平台SDK,因此很可能与GUI交互有关。但对于网络库,这是完全可以的。以下是我的建议:
此外,正如之前提到的,只要完成XCode,Apple就可以用C / C ++开发应用程序。他们去年甚至放宽了这个要求。
祝你好运答案 1 :(得分:1)
我想你是在谈论原生(不是基于网络)的应用程序。要在Android中进行GET / POST HTTP请求,您应该查看 HTTPClient 。这个Java库附带Android,它允许开发您需要的功能:
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
try {
HttpResponse response = client.execute(request);
...
} catch(Exception ex) {
// handle
}
关于如何为iOS和Android开发共享网络库,这是一个有趣的问题,我无法找出任何解决方案,因为平台有太多的差异(Java与Objective C最明显),但它会很棒的。
我可以说Android通过NDK支持C / C ++代码,但我不确定它是否适用于iOS。
答案 2 :(得分:1)
如果你能忍受一种语言的可怕借口,请使用Javascript。
答案 3 :(得分:1)
考虑到差异,这是不可能的。写一个Blackberry / Android共享库并且它们都使用“Java”是痛苦的。
如果您真的想要跨平台,那么您将使用javascript编写网页,然后在设备上的网络视图中提供这些网页。
你不能真正地在Objective C和Java之间共享代码,这是不可能的,你不能在iPhone上运行Java而你无法在Android上运行ObjectiveC。因此,使用本机代码无法做到这一点。
编辑:就网络而言,不要认为你会发现很多地方可以以统一的方式跨平台访问低级网络。
答案 4 :(得分:1)
正如其他人所说,如果可能的话,这并不容易。如果您决定尝试,我建议使用C / C ++,因为两个平台都可以处理该语言。 (iOS是Objective-C,如你所知,Android可以通过NDK处理C.)不要试图让Java在iOS上运行......
答案 5 :(得分:1)
您可以尝试Titanium,源代码在JS中,然后交叉编译到iOS或Android。