【Android】PA4D_CH6 使用Internat资源

  1. android中,基本使用网络资源方式如下(同步)


    try {
    URL url = new URL(myFeed);

    // Create a new HTTP URL connection
    URLConnection connection = url.openConnection();
    HttpURLConnection httpConnection = (HttpURLConnection)connection;

    int responseCode = httpConnection.getResponseCode();
    if (responseCode == HttpURLConnection.HTTP_OK) {
    InputStream in = httpConnection.getInputStream();
    processStream(in);
    }
    }
    catch (MalformedURLException e) {
    Log.d(TAG, "Malformed URL Exception.", e);
    }
    catch (IOException e) {
    Log.d(TAG, "IO Exception.", e);
    }


  2. 于此同时,android中解析XML主要有3种,分别为DOM解析器、SAX解析器和PULL解析器。
    1. DOM解析器,DomBuilder,通过DocumentBuilderFactory获取。这两个类都是javax包中定义的,不同于j2SE的是,android中重写了后者,直接获取了apache
      harmony
      的实现,不幸的是,harmony的项目在2011年时候已经被apache放弃了。


      HttpURLConnection httpConnection = (HttpURLConnection) connection;
      int responseCode = httpConnection.getResponseCode();
      if (responseCode == httpConnection.HTTP_OK) {
      InputStream in = httpConnection.getInputStream();

      DocumentBuilderFactory dbf = DocumentBuilderFactory
      .newInstance();
      DocumentBuilder db = dbf.newDocumentBuilder();

      // 分析input
      Document dom = db.parse(in);
      Element docEle = dom.getDocumentElement();
      }


    2. SAX解析器。SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备。
      SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SAX会判断当前读到的字符是否合法XML语法中的某部分,如果符合就会触发事件。所谓事件,其实就是一些回调(callback)方法,这些方法(事件)定义在ContentHandler接口。


      SAXParserFactory factory=SAXParserFactory.newInstance();
      SAXParser parser=factory.newSAXParser();
      MyHandel handel=new MyHandel (); //此处MyHandle继承自DefaultHandel
      parser.parse(inputStream, handel);


    3. PULL解析器。以下来自android
      training
      ,google比较推荐使用这个解析器
      为什么要学习PULL解析器呢?因为PULL解析是在XML文档中寻找想要的标记,把需要的内容拉入内存,而不是把整个文档都拉入内存,这种方式比较适合手机等内存有限的小型的移动设备。

      We recommend XmlPullParser,
      which is an efficient and maintainable way to parse XML on Android.
      Historically Android has had two implementations of this interface:


            factory = XmlPullParserFactory.newInstance();
      factory.setNamespaceAware(true);
      XmlPullParser xpp = factory.newPullParser();

时间: 2024-08-20 16:08:40

【Android】PA4D_CH6 使用Internat资源的相关文章

android中的用户资源访问(一)

这几天要总结一下android开发中的用户资源访问. android中的用户资源存在项目工程中res文件夹下,有字符串.颜色.大小.数组.布局.样式.主题等资源,这些资源可以在xml文件中引用,也可以在android源码文件中使用,今天总结一下字符串.颜色.大小.数组.布局和图片资源. 总的来说,在xml文件中引用的格式为[<package>.]@/XXX/name:在源码中引用格式是[<package>.]R.XXX.name. 先贴上在xml文件中引用的代码(在布局xml文件中

Android开发/源码资源汇总

Android 应用源码大收藏http://neast.cn/forum.php?mod=viewthread&tid=9483&fromuid=5 全网最全的Android游戏源码汇总http://neast.cn/forum.php?mod=viewthread&tid=5080&fromuid=5 AndroidUI设计之高仿系列http://neast.cn/forum.php?mod=viewthread&tid=5293&fromuid=5 全网

android res与assets资源的区别

android应用可以将资源存储在两个目录:res和assets.其中res目录中的资源只能存储在相应的 子目录(如res/layout.res/values等)中,不能直接将资源存储在res目录中.assets目录中的 资源可以任意存放,也可以建立任意层次的子目录.res和assets资源的主要区别如下. 1.引用资源的方式不同 res目录中的所有资源都会在R类的相应子类中生成对应的int类型变量,需要使用这些变量 来引用资源.例如res/layout/main.xml是布局文件资源,会在R.

android 中的一些资源注解,让编译器帮你检查代码

android 中的一些资源注解,让编译器帮你检查代码 写方便的时候可以用注解来声明一些参数,以明确的指示参数的类型,让代码更安全.我们看到,在android源代码里大量使用了注解.我整理了一些注解如下: @NonNull  告诉编译器,这个参数是非空的,编译器会帮你做出检查. 示例: @NonNull public static Snackbar make(@NonNull View view, @StringRes int resId, @Duration int duration) {  

Android:dimen尺寸资源文件的使用

dimen.xml在values文件夹下面 <resources> <!-- Default screen margins, per the Android Design guidelines. --> <dimen name="btn_width">16dp</dimen> <dimen name="btn_height">16dp</dimen> </resources> 布局中

Android Studio如何查看资源或者函数在哪些类中被引用

许多人在做完Keymap匹配到Eclispe快捷键后,发现查看资源或者函数在哪些地方被引用的快捷键"Ctrl+Shift+G"不灵 了,你选中某个函数后,使用这个快捷键,发现只会光标跳到该类中引用这个函数的地方.原因是啥呢? 首先这里简单分析下,选择Keymap后IDE所做的工作及选择后发生快捷键失效原因,Android Studio设置KeyMap到 Eclipse,是进行了一个快捷键的映射操作,但是Android Studio本身的快捷键数量和Eclipse是不一样的,比如Andr

Android 的assets文件资源与raw文件资源读取

res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制. res/raw和assets的不同点: 1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename:assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类. 2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹 *读取文件资源: 1

Android Lint 去除重复资源 之 idea探究

Android Lint是很好的检查工具,可以帮助开发者检查很多问题,其中检查android项目重复的资源文件非常有用. 1.命令行下使用 Android Lint有很多命令,具体可以在网上查到.今天主要使用check,这个命令目的是只进行某个或某几个类型的检查,比如只检查无用的资源"lint --check UnusedResources <project dir>".至于都有哪些类型的检查,可以输入命令"lint --list"来查看,也可以输入命令

Android复习(二)应用资源 --&gt; 动画

没什么好总结的 复制自 https://developer.android.google.cn/guide/topics/resources/animation-resource 有需要的可以查看官方文档 动画资源 一个动画资源可以定义以下两种动画类型之一: 属性动画 通过使用 Animator 在设定的时间段内修改对象的属性值来创建动画. 视图动画 使用视图动画框架可以创建两种类型的动画: 补间动画:通过使用 Animation 对单张图片执行一系列转换来创建动画 帧动画:通过使用 Anima