2013-08-20 58 views
2

aapt的輸出格式是什麼?Android aapt輸出格式

例如檢查這裏輸出http://elinux.org/Android_aapt

配置0 LANG = - CNT = - 廣州澳凌= 0觸摸= 0密度= DEF鍵= 0 INFL = 0 NAV = 0 W = 0 H = 0 SZ = 0 LNG = 0

資源0x7f040000 com.android.spare_parts:XML/spare_parts:T = 0×03 = d 0x00000003(S = 0×0008,R = 0×00)

什麼每個字段意思?有沒有任何文件或什麼?

+0

https://android.googlesource.com/platform/frameworks/base/+/master/tools/aapt/Resource.cpp生成,也許你可以在那裏找出它。 – zapl

+0

不是很有幫助,但謝謝! – Ahmad

回答

0

此答案解決了示例的第二行,aapt dump在resources.arsc中定義的值的表示形式。

在您的示例中,包com.android.spare_parts中ID爲0x7f04000的資源是一個名爲spare_parts的字符串,其值在字符串表中的索引3處定義。

行的格式如下:

resource <resource ID> <package>:<type>/<name> t=<dataType> d=<data> (s=<size> r=<res0>) 

resource ID是您在R.java找到well known ID。

package就是這個資源被定義的包,並且對於包中的所有資源都是相同的。

type資源的類型,在資源表別處定義的數量的字符串的一個

name的資源的名稱

data是資源值,根據的dataType解釋(見下文)

size是值struct的大小(不是值)。似乎永遠是0x0008。

res0always 0x00。

dataType是常數之一定義here

// Contains no data. 
TYPE_NULL = 0x00, 
// The 'data' holds a ResTable_ref, a reference to another resource 
// table entry. 
TYPE_REFERENCE = 0x01, 
// The 'data' holds an attribute resource identifier. 
TYPE_ATTRIBUTE = 0x02, 
// The 'data' holds an index into the containing resource table's 
// global value string pool. 
TYPE_STRING = 0x03, 
// The 'data' holds a single-precision floating point number. 
TYPE_FLOAT = 0x04, 
// The 'data' holds a complex number encoding a dimension value, 
// such as "100in". 
TYPE_DIMENSION = 0x05, 
// The 'data' holds a complex number encoding a fraction of a 
// container. 
TYPE_FRACTION = 0x06, 

// Beginning of integer flavors... 
TYPE_FIRST_INT = 0x10, 

// The 'data' is a raw integer value of the form n..n. 
TYPE_INT_DEC = 0x10, 
// The 'data' is a raw integer value of the form 0xn..n. 
TYPE_INT_HEX = 0x11, 
// The 'data' is either 0 or 1, for input "false" or "true" respectively. 
TYPE_INT_BOOLEAN = 0x12, 

// Beginning of color integer flavors... 
TYPE_FIRST_COLOR_INT = 0x1c, 

// The 'data' is a raw integer value of the form #aarrggbb. 
TYPE_INT_COLOR_ARGB8 = 0x1c, 
// The 'data' is a raw integer value of the form #rrggbb. 
TYPE_INT_COLOR_RGB8 = 0x1d, 
// The 'data' is a raw integer value of the form #argb. 
TYPE_INT_COLOR_ARGB4 = 0x1e, 
// The 'data' is a raw integer value of the form #rgb. 
TYPE_INT_COLOR_RGB4 = 0x1f, 

// ...end of integer flavors. 
TYPE_LAST_COLOR_INT = 0x1f, 

// ...end of integer flavors. 
TYPE_LAST_INT = 0x1f