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