Jackson?是一個將java對象轉(zhuǎn)換成JSON與JSON轉(zhuǎn)化java類的類庫。Gson?是解決這個問題的流行方案,然而我們發(fā)現(xiàn)Jackson更高效,因為它支持替代的方法處理JSON:流、內(nèi)存樹模型,和傳統(tǒng)JSON-POJO數(shù)據(jù)綁定。不過,請記住, Jsonkson庫比起GSON更大,所以根據(jù)你的情況選擇,你可能選擇GSON來避免APP 65k個方法限制。其它選擇:?Json-smart?and?Boon JSON
網(wǎng)絡(luò)請求,緩存,圖片?執(zhí)行請求后端服務(wù)器,有幾種交互的解決方案,你應(yīng)該考慮實現(xiàn)你自己的網(wǎng)絡(luò)客戶端。使用Volley?或Retrofit。Volley 同時提供圖片緩存類。若果你選擇使用Retrofit,那么考慮使用Picasso?來加載圖片和緩存,同時使用OkHttp作為高效的網(wǎng)絡(luò)請求。Retrofit,Picasso和OkHttp都是有同一家公司開發(fā)(注: 是由Square?公司開發(fā)),所以它們能很好的在一起運行。OkHttp 同樣可以和Volley在一起使用 Volley.
RxJava?是函數(shù)式反應(yīng)性的一個類庫,換句話說,能處理異步的事件。 這是一個強(qiáng)大的和有前途的模式,同時也可能會造成混淆,因為它是如此的不同。 我們建議在使用這個庫架構(gòu)整個應(yīng)用程序之前要謹(jǐn)慎考慮。 有一些項目是使用RxJava完成的,如果你需要幫助可以跟這些人取得聯(lián)系: Timo Tuominen, Olli Salonen, Andre Medeiros, Mark Voit, Antti Lammi, Vera Izrailit, Juha Ristolainen. 我們也寫了一些博客:?[1],?[2],?[3],?[4].
如若你之前有使用過Rx的經(jīng)歷,開始從API響應(yīng)應(yīng)用它。 另外,從簡單的UI事件處理開始運用,如單擊事件或在搜索欄輸入事件。 若對你的Rx技術(shù)有信心,同時想要將它應(yīng)用到你的整體架構(gòu)中,那么請在復(fù)雜的部分寫好Javadocs文檔。 請記住其他不熟悉RxJava的開發(fā)人員,可能會非常難理解整個項目。 盡你的的全力幫助他們理解你的代碼和Rx。
Retrolambda?是一個在Android和預(yù)JDK8平臺上的使用Lambda表達(dá)式語法的Java類庫。 它有助于保持你代碼的緊湊性和可讀性,特別當(dāng)你使用如RxJava函數(shù)風(fēng)格編程時。 使用它時先安裝JDK8,在Android Studio工程結(jié)構(gòu)對話框中把它設(shè)置成為SDK路徑,同時設(shè)置JAVA8_HOME
和JAVA7_HOME
環(huán)境變量, 然后在工程根目錄下配置 build.gradle:
dependencies {
classpath 'me.tatarka:gradle-retrolambda:2.4.+'
}
同時在每個module 的build.gradle中添加
apply plugin: 'retrolambda'
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
retrolambda {
jdk System.getenv("JAVA8_HOME")
oldJdk System.getenv("JAVA7_HOME")
javaVersion JavaVersion.VERSION_1_7
}
Android Studio 提供Java8 lambdas表帶是代碼提示支持。如果你對lambdas不熟悉,只需參照以下開始學(xué)習(xí)吧:
當(dāng)心dex方法數(shù)限制,同時避免使用過多的類庫?Android apps,當(dāng)打包成一個dex文件時,有一個65535個應(yīng)用方法強(qiáng)硬限制[1]?[2]?[3]。 當(dāng)你突破65k限制之后你會看到一個致命錯誤。因此,使用一個正常范圍的類庫文件,同時使用dex-method-counts?工具來決定哪些類庫可以再65k限制之下使用,特別的避免使用Guava類庫,因為它包含超過13k個方法。
更多建議: