當前位置:首頁 » 安卓系統 » 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-23 12:37:47 瀏覽:1
安卓手機在哪裡退款 發布:2024-11-23 12:36:53 瀏覽:964
ftp多少w 發布:2024-11-23 12:33:21 瀏覽:309
linuxsvn重啟服務 發布:2024-11-23 12:31:24 瀏覽:557
西軟伺服器地址 發布:2024-11-23 12:27:20 瀏覽:7
二進制java 發布:2024-11-23 12:25:01 瀏覽:498
和包在京東支付密碼是什麼 發布:2024-11-23 12:24:52 瀏覽:48
風光腳本 發布:2024-11-23 12:24:09 瀏覽:118
編譯局年鑒怎麼寫 發布:2024-11-23 12:23:59 瀏覽:977
linux解壓tar命令 發布:2024-11-23 12:21:02 瀏覽:656