跨平台移动开发实战(四)------Android开发环境网络连通解决方案

来源:互联网 发布:简谱识别软件 编辑:程序博客网 时间:2024/05/16 06:25

Android的开发环境环境搭建比IOS简单得多,Eclipse+Android SDK+Eclipse插件即可满足需求,如果搭建环境我就不多提了,这里想着重提两点:

  • Android源码关联
  • device与server网络连通

如何关联Android源码,以便更好的使用API,可以参考我之前很早的一篇blog:《在Eclipse里关联Android源码的简单办法》。

这里就重点谈谈如何搭建device与server的网络环境。现在的移动应用一般都需要server的搭配,开发时免不了需要联调device与server的网络连接,依情况可分为以下三种:

  • 模拟器与本地server的连接
  • device与本地server的连接
  • device与远程server的连接

1)模拟器与本地server的连接

这里比较简单,但需要注意的是android模拟器是基于虚拟机的,它不是直接与本地网卡连接,它基于虚拟路由转接,因此它访问本地server不是用localhost,而是用10.0.2.2,具体原因可以见官方文档:http://developer.android.com/tools/devices/emulator.html#networkaddresses. 为了方便测试网络连通性,最好在本地搭一个apache,放一个很简单的测试页面,当怀疑是网络连接问题时,可以在浏览器里访问这个页面:


另外一点,如果模拟器需要访问公网,并且主机需要通过代理上网,那么模拟器需要设置代理,具体方法就是在Eclipse的Android Application Run里加上-http-proxy的配置,如下图所示:

2)device与本地server的连接

这里如果有wifi就非常简单,主机和device都连接到wifi热点,device直接访问主机ip即可。

在没有wifi热点的情况下,如果主机有无线网卡就可以只建wifi,网上有很多文章讲如何通过无线网卡自建wifi,这里我推荐一个小工具:Connectify(http://www.connectify.me),通过它可以免去复杂的配置,设置好Hotspot Name和passord后,点击start hotspot即可:

之后,device就像连wifi一样,连上Connectify,一般来说ip是:192.168.159.1

3)device与远程server的连接

如果server是公网的,那device能上网就行,这里我想谈谈对于我们这些自由开发者,该如何打造一个零成本的公网网络环境。这里就得用上现在炒得火热的云服务了。换做以前我肯定会推荐google app engine,不过现在被墙,国内的阿里云的云服务可以试一下。不过真正现在做得成熟还是amazon,如何在amazon搭建server可以参考我之前的一篇blog:《基于Amazon EC2反向代理Google App Engine》