Android网络编程基础知识详解

需积分: 8 0 下载量 85 浏览量 更新于2024-07-22 收藏 2.16MB DOCX 举报
Android基础知识点总结 Android核心基础知识是每个Android开发者都需要掌握的基本技能,本文总结了Android网络编程的基础知识,包括网络编程的预备知识、访问网络的权限、子线程执行网络操作、避免ANR异常、子线程不能修改UI、使用Handler实现子线程与主线程之间的通信、模拟器如何访问本地Tomcat等。 1.Android网络编程基础知识 Android网络编程是任何一个Android程序员必备的技能。访问网络的Android应用都必须加上访问互联网的权限,否则将无法访问网络。 1.1 网络编程的预备知识 访问网络的Android应用都必须加上访问互联网的权限,否则将无法访问网络。在Android中凡是对UI的更新、“耗时”操作等都需要在子线程中进行。Android 4.0以上版本,Google更加在意UI界面运行的流畅性,强制要求访问网络的操作不允许在主线程中执行,只能在子线程中进行,在主线程请求网络时,会报ANR异常。 1.2 子线程执行网络操作 在Android中凡是对UI的更新、“耗时”操作等都需要在子线程中进行。子线程不能修改UI,主线程也叫UI线程,Activity中的onCreate方法和点击事件的方法都是运行在主线程中的。主线程创建的界面, 只有主线程才能修改,别的线程不允许修改UI,否则会报错。如果子线程修改了UI,系统会验证当前线程是不是主线程,如果不是主线程,就会终止运行。 1.3 避免ANR异常 在主线程中做一些耗时的操作,阻塞了主线程,当用户点击其时,主线程无法响应,这是就会出ANR异常。ANR异常是ApplicationNotResponse的缩写,应用程序无响应。 1.4 使用Handler实现子线程与主线程之间的通信 既然子线程不能修改主线程的UI,那么,我们的子线程如果需要修改UI该怎么办呢?解决方式是使用Handler实现子线程与主线程之间的通信。Handler是Android提供的一种机制,用于在不同的线程之间进行通信。Looper是Handler的核心组件,负责监听和处理消息。 1.5 模拟器如何访问本地Tomcat 模拟器把它自己作为了localhost,也就是说,代码中使用localhost或者127.0.0.1来访问,都是访问模拟器自己!若想在模拟器上面访问我们的电脑,那么就使用android内置的IP:10.0.0.2,10.0.0.2是模拟器设定的特定ip,在模拟器上用10.0.0.2就能成功访问我们的电脑本机。 1.6 案例-网络图片查看器 需求:实现一个网络图片查看器,在页面输入框填入网络图片的地址,点击访问按钮,可以访问网络并获取图片,并显示在界面上。新创建一个工程,工程名字《网络图片查看器》。在工程清单文件(AndroidManifest.xml)中添加访问网络权限,使用并修改默认的布局文件(activity_main.xml),实现网络图片查看器的功能。