AQuery簡介:jQuery for Android
jQuery 的流行已經成為了事實,它極大地減少了執行異步任務和操作 DOM 所需要的代碼數量。新項目 AQuery 想要為 Android 開發者提供同樣的功能。為了向你展示 Android Query 能夠夠為用戶界面開發做到什么,我們從他們的項目頁面上引用了一個例子。
之前
之后
Android Query 簡化了附加事件處理程序的過程。它不會構建出接口或者匿名類,我們只需要確保它們不會把事件處理程序的方法名拼寫錯。
aq.id (R.id.button) .clicked (this, "buttonClicked");
因為屏幕大小和 API 版本而造成的瑣碎問題會給設備帶來很多麻煩。Android Query 通過圍繞 API 提供了自己的封裝,從而解決了部分問題。例如,函數“aq.hardwareAccelerated11();”會檢測設備是否支持 API 11,并在合適的時候啟動硬件加速。
當處理不同大小屏幕的時候,開發者經常首先會創建 tablet,然后刪除并識別控件,直到它能夠與電話的情況符合。一般這意味著,在試圖從后臺代碼操作控件之前,你需要檢查虛擬樹,以看到它們是否確實已經從 axml 文件創建。
Android Query 會根據條件來鏈接方法(conditionally chaining methods),讓你可以回避所有檢查。考慮一下這段代碼:
aq.id (R.id.address) .text (name) .background (R.color.red) .textColor (R.color.black). enabled (true) .visible () .clicked (this, "addressClicked");
如果控件地址不存在,那么后面所有設置方法和事件處理程序都會停止。盡管這可能會讓調試更困難,但是它可以極大地減少 onCreate 方法中的代碼行數。
AQuery 還可以很容易地調用異步 HTTP 請求。它包含了針對簡單和多個部分 POST 操作的支持,并且能夠接受二進制、JSON、HTML 以及 XML 格式的數據。此外,它還包含了針對圖片的單獨支持,我們使用一行代碼就能下載圖片,對其進行緩存,并把它載入到控件中。