感受Android带给我们的新体验
By: 海市蜃楼 | In: Android开发
8 十二 2009在java.net漫游篇幅中,我们详细介绍了与网络相关的基础类,本篇幅我们详细介绍TCP、UDP,以及如何在Android 实现联网中使用TCP、UDP协议。 TCP(Transmission Control Protocol:传输控制协议) TCP模型结构图,如下图所示: 服务器端与客户端的交互图,如下图所示:
By: 海市蜃楼 | In: Android开发
4 十二 2009在前面的关于Java I/O的学习中,有一个我们需要牢记的是:对数据流的操作都是阻塞的,在一般情况下,我们是不需要考虑这个问题的,但是在Android 实现联网的时候,我们必须考虑到这个问题。比如:从网络上下载一张图片: public Bitmap returnBitmap(String url) { URL myFileUrl = null; Bitmap bitmap = null; try{ myFileUrl = new URL(url); }catch(MalformedURLException e){ e.printStackTrace(); return null; }; try{ HttpURLConnection conn = (HttpURLConnection)myFileUrl.openConnection(); conn.setDoInput(true); conn.connect(); InputStream is = conn.getInputStream(); bitmap = BitmapFactroy.decodeStream(is); is.close(); }catch(IOException e){ e.printStackTrace(); } return bitmap; } 由于网络连接需要很长的时间,需要3-5秒,甚至更长的时间才能返回页面的内容。如果此连接动作直接在主线程,也就是UI线程中处理,会发生什么情况呢?整个程序处于等待状态,界面似乎是“死”掉了。为了解决这个问题,必须把这个任务放置到单独线程中运行,避免阻塞UI线程,这样就不会对主线程有任何影响。举个例子如下:
By: 海市蜃楼 | In: Android开发
18 十一 2009相比较C++,JAVA在网络编程方面的优势是不言而喻的。想当初学习MFC网络方面的痛苦,现在看到java.net包中的类,感觉轻松多了。说点题外话:在C++网络方面可以推荐给大家一个很好的开源项目POCO库,这个库在网络方面的功能只能用:那是相当强大,有兴趣的可以去学习下。 在Android 实现联网(一)——package说明篇幅中,我们简要介绍了Android 网络方面的包,本篇幅我们漫游java.net包,按照网络方面的知识来逐步学习java网络编程,并给大家介绍一些小例子,边学习边写代码。 首先,IP地址 IP地址估计大家都明白,我们就直接来看java.net中的类吧。

这里有一群热爱开发的人,我们的文章以原创、翻译为主,包含了我们对Android的认识,对Android的研究,以及一些开发心得和感想,如果 你喜欢我们的站点,喜欢我们的文章,欢迎拍砖,欢迎交流。希望新版的mo-Android能够为你带来更好的体验。