1、Android 中如何访问网络
Android 提供了 org.apache.http.HttpClientConnection 和 java.net.HttpURLConnection 两个连接网络对象。
使用哪个都行,具体要看企业领导的要求了。
除 此 之 外 一 般 我 比 较 喜 欢 使 用 xUtils 中 的 HttpUtils 功 能 , 该 模 块 底 层 使 用 的 就 是
org.apache.http.client.HttpClient,使用起来非常方便。

2、如何解析服务器传来的 JSON 文件
在 Android 中内置了 JSON 的解析 API,在 org.json 包中包含了如下几个类:JSONArray、JSONObject、
JSONStringer、JSONTokener 和一个异常类 JSONException。
1、JSON 解析步骤
1)、读取网络文件数据并转为一个 json 字符串
InputStream in = conn.getInputStream();
String jsonStr = DataUtil.Stream2String(in);//将流转换成字符串的工具类
2)、将字符串传入相应的 JSON 构造函数中
①、通过构造函数将 json 字符串转换成 json 对象
JSONObject jsonObject = new JSONObject(jsonStr);
②、通过构造函数将 json 字符串转换成 json 数组:
JSONArray array = new JSONArray(jsonStr);
3)、解析出 JSON 中的数据信息:
①、从 json 对象中获取你所需要的键所对应的值
JSONObject json=jsonObject.getJSONObject("weatherinfo");
String city = json.getString("city");
String temp = json.getString("temp")
②、遍历 JSON 数组,获取数组中每一个 json 对象,同时可以获取 json 对象中键对应的值
for (int i = 0; i < array.length(); i++) {
JSONObject obj = array.getJSONObject(i);
String title=obj.getString("title");

String description=obj.getString("description");
}
2、生成 JSON 对象和数组
1)生成 JSON:
方法 1、创建一个 map,通过构造方法将 map 转换成 json 对象
Map map = new HashMap();
map.put("name", "zhangsan");
map.put("age", 24);
JSONObject json = new JSONObject(map);
方法 2、创建一个 json 对象,通过 put 方法添加数据
JSONObject json=new JSONObject();
json.put("name", "zhangsan");
json.put("age", 24);
2)生成 JSON 数组:
创建一个 list,通过构造方法将 list 转换成 json 对象
Map map1 = new HashMap();
map1.put("name", "zhangsan");
map1.put("age", 24);
Map map2 = new HashMap();
map2.put("name", "lisi");
map2.put("age", 25);
List> list=new ArrayList>();
list.add(map1);
list.add(map2);
JSONArray array=new JSONArray(list);

System.out.println(array.toString());


3、如何解析服务器传来的 XML 格式数据
Android 为我们提供了原生的 XML 解析和生成支持。
1、XML 解析
获取解析器: Xml.newPullParser()
设置输入流: setInput()
获取当前事件类型: getEventType()
解析下一个事件, 获取类型: next()
获取标签名: getName()
获取属性值: getAttributeValue()
获取下一个文本: nextText()
获取当前文本: getText()
五种事件类型: START_DOCUMENT, END_DOCUMENT, START_TAG, END_TAG, TEXT
示例代码:
public List getPersons(InuptStream in){
XmlPullParser parser=Xml.newPullParser();//获取解析器
parser.setInput(in,"utf-8");
for(int type=){ //循环解析

}

2、XML 生成

获取生成工具: Xml.newSerializer()
设置输出流: setOutput()
开始文档: startDocument()
结束文档: endDocument()
开始标签: startTag()
结束标签: endTag()
属性: attribute()
文本: text()
示例代码:
XmlSerializer serial=Xml.newSerializer();//获取 xml 序列化工具
serial.setOuput(put,"utf-8");
serial.startDocument("utf-8",true);
serial.startTag(null,"persons");
for(Person p:persons){
serial.startTag(null,"persons");
serial.attribute(null,"id",p.getId().toString());
serial.startTag(null,"name");
serial.attribute(null,"name",p.getName().toString());
serial.endTag(null,"name");
serial.startTag(null,"age");
serial.attribute(null,"age",p.getAge().toString());
serial.endTag(null,"age");
serial.endTag(null,"persons");

}


4、如何从网络上加载一个图片显示到界面
可以通过 BitmapFactory.decodeStream(inputStream);方法将图片转换为 bitmap,然后通过
imageView.setImageBitmap(bitmap);将该图片设置到 ImageView 中。这是原生的方法,还可以使用第三方开
源的工具来实现,比如使用 SmartImageView 作为 ImageView 控件,然后直接设置一个 url 地址即可。也可以使用

xUtils 中的 BitmapUtils 工具。


5、如何播放网络视频
除了使用 Android 提供的 MediaPlayerVideoView外通常还可以使用第三方开源万能播放器,

VitamioPlayer。该播放器兼容性好,支持几乎所有主流视频格式。


6、常见的访问网络 API 都有哪些?
Android 系统自带的 HttpUrlConnection/HttpClient。
java.net.HttpURLConnection;
org.apache.http.client.HttpClient;
OKhttp:
http://blog.csdn.net/lmj623565791/article/details/47911083
xUtils:

https://github.com/wyouflf/xUtils

Volley框架



更多相关文章

  1. 类和 Json对象
  2. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  3. Android屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
  4. "Failed to fetch URL https://dl-ssl.google.com/android/repos
  5. android 获取唯一标识
  6. android拍照与读取相册
  7. Android(安卓)热点开关状态的判断和获取热点ssid
  8. Android软键盘适配问题
  9. Android(安卓)P SystemUI之StatusBar UI布局status_bar.xml解析

随机推荐

  1. SlidingDrawer源码分析
  2. Android布局优化之Include(一)
  3. Android画图之Matrix(二)
  4. Android中socket(tcp|udp),websocket基本
  5. Android(安卓)Camera数据流分析全程记录
  6. Accessibility辅助功能--一念天堂,一念地
  7. AsyncTask研究(以Android(安卓)10.0为准)
  8. android frida 检测_Android逆向之hook框
  9. Android(安卓)Power Management
  10. Android高级开发面试题以及笞案整理