当前位置:首页 » 安卓系统 » androidxml格式化

androidxml格式化

发布时间: 2024-11-01 12:23:14

A. 关于android解析XML 的问题: xml 内容如下:

先说错误的地方:在 endElement()方法中没有将tagName设置为“”,导致解析上的错误

<resource>
<name>rain.mp3</name>
<size>123</size>
</resource>
LZ我给你解释下详细的执行过程
1.<resource>这个后氏亩亮面其实还有 \n 。
android解析XML采用的sax方式解析,也就是逐行解析。解析最后这个 \n 的时候也会调用characters() 。
2. <name>rain.mp3</name>解析到这里的。前面还有两个 \t\t(制表符)也会调用 characters()。
解析到标签中的rain.mp3时也会调歼宽用characters() 。准确的说调用characters() 是7次
你再试试,我耐拦没有调试 还有错误再留言

B. AndroidManifest.xml 文件格式解析

图片左侧为解压开apk后,AndroidManifest.xml的二进制内容,右侧为各个chunk的解析。各个chunk和对应的二进制内容通过相同的颜色标记。

Android逆向三部曲之AndroidManifest.xml 文件格式 https://www.jianshu.com/p/f0f4856866e0

AndroidManifest二进制文件格式分析: https://bbs.pediy.com/thread-194206.html

手把手教你解析AXML: https://blog.csdn.net/beyond702/article/details/51830108?spm=1001.2014.3001.5502

大小端模式: https://blog.csdn.net/q2519008/article/details/80961176

ResourceTypes.h 源文件: http://androidxref.com/9.0.0_r3/xref/frameworks/base/libs/androidfw/include/androidfw/ResourceTypes.h

C. Android XML文件中的@、、@+的意义

Android XML文件中的@、?、@+的意义

在android开发中,资源文件里总是会出现

"@string/hello"、“@android:color/darker_gray”、"@+id/title"、"?android:attr/textAppearanceSmall",那么这些究竟有什么不同呢?其实这些都是对资源的引用。

1、首先来看这种,@string/hello,这个的语法是:@[:]/,其中包名是可选的,代表资源是你自己这个包中的,如下图中的例子

2、然后是“@android:color/darker_gray”,与上一个相比,它多侍竖了”android:“,语法是相同的.,它代表引用的是系统资尺谈答源。

3、"@+id/title",多了个加号,代表引用或创建,若不存在,则创建,若存在,则引用。

4、"?android:attr/textAppearanceSmall",语法是?[:][/],代表引陵慧用的是主题中的样式属性资源。

5、步骤四中的资源类型是可以省略的。可以这样写:?android:textAppearanceSmall ;

D. android中xml中有些控件的属性里面有 "app:.." ,此处的app:是什么意思和一般的android:有什么区别

区别是:这两个是声明的不同的命名空间,android的是系统的,app是自定义的。


Android自定义控件的属性,在xml中使用自己自定义的attr的时候,其中有一步就是要自定义一个xml的命名空间后然后再给自定义属性赋值,现在发现不知道什么时候开始Android把这个改了,现在发现可以统一用
xmlns:app="http://schemas.android.com/apk/res-auto"
而不是原来的:
xmlns:app="http://schemas.android.com/apk/App的Package名"
还有人提到在作为lib被使用的时候,也应该用res-auto

所以说区别就是如果你http://schemas.android.com/apk/后面写的是res/包名,那就是相关包名下的自定义属性,而res-auto就是所有的自定义包名。

E. Android 关于string.xml存值的问题

使用<b>和<b>来打印出<b></b>
这样的文字;“<”表示“<”的意思;

使用textView.setText(Html.fromHtml("Hello
<b>World</b>,<font size=\"3\"
color=\"red\">AnalysisXmlActivty!</font>"));设置类似于html那样的效果

如果你需要使用 String.format(String, Object...)
来格式化你的字符串,你可以把格式化参数放在你的字符串中,参见下面的例子:

<string
name="welcome_messages">Hello, %1$s! You have %2$d new
messages.</string>

在这个例子中,这个格式化的字符串有2个参数, %1$s是个字符串 %2$d
是个浮点数,你可以在你的程序中按照下面的方法来根据参数来格式化字符串:

Resources res = getResources();

String text = String.format(res.getString(R.string.welcome_messages),
username, mailCount);

那么根据例子上说的我需要把%s换成%1$s才行了,修改后编译通过,程序成功启动。

问题补充:如何在<string></string>中使用%号

有两个办法可供选择

1.用%%来表示1个%,和转意符号 \ 的用法相同

2.如果你的字符串不需要格式化,可以在你的<string
标签上增加一个属性:formatted="false"例如 <string name="test" formatted="false">% test
%</string> 即可

热点内容
万科海上传奇二期 发布:2024-11-01 14:22:52 浏览:59
u盘文件夹是空的 发布:2024-11-01 14:19:57 浏览:402
python包含字符串 发布:2024-11-01 14:19:17 浏览:479
c语言的精华 发布:2024-11-01 14:19:02 浏览:588
steam截图文件夹 发布:2024-11-01 14:18:59 浏览:613
ipad怎么往安卓传照片 发布:2024-11-01 14:18:19 浏览:508
我的电脑没有文件夹选项 发布:2024-11-01 14:13:55 浏览:546
vb创建数据库表 发布:2024-11-01 14:11:55 浏览:872
sql联合表 发布:2024-11-01 14:03:25 浏览:962
linux编程gcc 发布:2024-11-01 14:02:41 浏览:705