Android基础的xml文件创建,解析,以及安卓下的消息机制

2024-04-17 11:32

本文主要是介绍Android基础的xml文件创建,解析,以及安卓下的消息机制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

##Android下的消息机制.
* 子线程不可以修改ui.
* 只有主线程才可以修改ui.
* 如果子线程想更新ui就必须利用消息机制处理
* Handler : 消息处理器, 可以发送消息给主线程的消息队列.
* Message Queue: 消息队列,主线程里面的一个消息队列.
* Looper : 轮询器,检查消息队列里面是否有消息.---> HandleMessage();


XML的创建,使用android自带的api
    // 1.得到xml文件的序列化器
    XmlSerializer serializer = Xml.newSerializer();
    // 2.指定序列化器的一些初始参数
    File file = new File(getFilesDir(), name + ".xml");
    FileOutputStream os = new FileOutputStream(file);
    serializer.setOutput(os, "utf-8");
    // 3.写xml文件.
    serializer.startDocument("utf-8", true); 写开头
    serializer.endDocument(); 写结尾
    serializer.startTag(null, "number"); 开始标签
    serializer.endTag(null, "number"); 结束标签
    serializer.text() 写文本标签
    serializer.attribute(null, name, value) 写属性
            
            
XML的解析,用android的api      
    //1.获取到一个xml解析器
    XmlPullParser parser = Xml.newPullParser();
    //2.设置解析器的初始化参数
    FileInputStream inputStream = new FileInputStream(file);
    parser.setInput(inputStream, "utf-8");
    //3.解析xml文件
    int type = parser.getEventType(); //得到 第一个!! 事件的类型.
    XmlPullParser.START_TAG 开始节点
    XmlPullParser.END_TAG 结束节点
    parser.nextText(); <tag>foo</tag> 取两个节点中的foo文本
    parser.getName(); 获取当前节点的名称
    parser.next(); 让解析器解析下一个节点.

      


junit单元测试
    首先要在清单文件中配置,两个标签
      <!-- 测试的指令集 --> 配置在manifest节点下!!
    <instrumentation android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="(应用程序的包名)"></instrumentation>
    
        <!--  测试需要的jar包 --> 放在application节点下!
        <uses-library android:name="android.test.runner"/>
        
        
    如果要写测试类要继承AndroidTestCase
    TestCalcService extends AndroidTestCase
    
    方法public void testAdd() throws Exception 要记得抛出异常
    
    如果忘记标签的名字怎么写了,可以创建一个android Test Project 然后看看它的AndroidManifest.xml文件,复制过去就可以了,但是要注意改包名!!

    
    
logcat  android下显示日志的位置,所有的日志都是显示在logcat里面的
        
        
        Log.v(tag , "我是verbose级别的日志");//verbose 提醒
        Log.d(tag, "我是debug级别的日志");//debug 调试
        Log.i(tag, "我是info级别的日志");//info 信息
        Log.w(tag, "我是警告级别的日志");//warn 警告
        Log.e(tag, "我是错误级别的日志");//error 错误
        Log.wtf(tag, "重大异常");// what the fuck 艹
        
        System.out.println(); //有的时候老师用这个日志是习惯问题,图方便,但是实际开发中的时候
                              //还是多用Log这种日志比较好,tag这个值一般采用当前的类名
                              
        当从logcat找错误的时候,一般先从下网上找,找到错误  --》 (例子)Cause By:NullPointException,
        然后再往下找。一直找到自己的包名,然后双击选中那一行就可以快速的定位到错误的位置!
        
        如果有的时候没有Cause By,那么就一直网上找,直到有说明的原因

这篇关于Android基础的xml文件创建,解析,以及安卓下的消息机制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/911684

相关文章

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

如何通过Python实现一个消息队列

《如何通过Python实现一个消息队列》这篇文章主要为大家详细介绍了如何通过Python实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑