2011-04-09 131 views
1

爲什麼不把數據(strings.xml,main.xml)保留在.xml文件中?爲什麼把它轉換成R.java?爲什麼android創建R.java文件

看來,android可以讀取xml(例如androidmanifest.xml)。那麼爲什麼不把strins.xml數據和main.xml數據保存爲.xml格式並將這些xml文件發送到android設備呢?

我是新的......也許我最終會看到,在R.java中,除了直接從這些.xml導出的靜態變量之外,還有更多。

感謝, 香

+0

如果您對答案感到滿意,在這裏接受您認爲最好的答案是一個很好的做法。這是一種獎勵形式,並告訴人們問題已經解決。要接受答案,請點擊旁邊的勾號。這也會給你點數,所以你也會得到特權,也可以作爲另一種形式的獎勵。 – bigstones 2011-04-09 14:09:38

回答

1

,讓您可以輕鬆地引用你反對,你已經創建了你的佈局,繪製和字符串的文件。此類表示可以在代碼中實例化的所有資源,或者可以在代碼中使用的代碼

0

將XML內容的id引用轉換爲代碼可以輕鬆地在編碼時使用這些引用,並且可以在編譯過程中正確使用編譯時間。因此避免了運行時異常。

我不知道這是否是核心原因,但這對我來說很重要:-)。

1

所以,你可以從你的代碼使用R類對象避免編譯錯誤輕鬆引用您的資源的ID,我覺得

0

R.java是一個處理程序的所有資源。

您將創建您的資源,並且R.java自動在您的代碼和res之間建立連接。你可以很容易地從R獲取你的各種資源,並且android提供了很多支持R.java和它的處理程序(這些整數)的API。你不喜歡t need to manually open a stream to res files, do file reading, images decoding and etc. It非常容易。

0

R.java不包含任何數據。它在構建過程中由aapt生成,它準備資源將其打包到APK中,包括以易於閱讀和分析的格式編譯XML文件。 R.java包含靜態int成員,它們只是打包資源的索引。

請參閱A Detailed Look at the Build Process,並查看項目的bin/文件夾。

1

如果您的程序有缺陷,您希望儘早檢測到它。

如果將資源保留爲XML,則會在運行時發現任何錯誤(測試驅動或用戶驅動)。測試永遠不能證明沒有任何缺陷,所以軟件用戶可能會發現一些錯誤!

但是,如果資源在R中轉換爲源,那麼編譯器將檢查對它們的所有引用。任何錯誤(與資源引用有關)都會在更早的階段被發現,遠在您的客戶看起來像他們之前。

+0

謝謝大家......香農 – dsdsdsdsd 2011-04-09 13:56:38