Ответ 1
Чтобы быть понятным, если вы отправляете свое приложение на устройства с ART, у вас будет огромное преимущество в скорости при разборе пар.
поэтому я расскажу о своем опыте с logansquare.
профи:
- Прост в использовании: с помощью Gson вы должны использовать Type для разбора json-массива в список объектов, в loganSquare это так просто, как
LoganSquare.parseList()
- Быстрее: на любом устройстве (протестируйте его самостоятельно) он немного быстрее.
- FasterER: в устройствах ART его разрыв скорости действительно гигантский, см. их бенчмарк
- RetroFit дружелюбный: да, он хорошо играет с модификацией.
минусы:
-
NO REALM DB: я не мог запустить его с Realm db до сих пор (я еще не пробовал работать)
-
Адаптер пользовательского типа. Не удалось найти адаптер типа или что-то подобное до сих пор, но я не уверен.
см. их ориентир здесь
и вот мои плохие результаты тестов (это не правильный тест, но это что-то): Эмулятор nexus 5, с DalvikVM, 4.2 jellybean
Бенчмарки
Разработана модель
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import com.google.gson.annotations.SerializedName;
/**
* Created by Ercan on 6/26/2015.
*/
@JsonObject(serializeNullCollectionElements = true ,serializeNullObjects = true)
public class Village {
@SerializedName("IdVillage")
@JsonField(name ="IdVillage")
String tbsVillageId;
@SerializedName("TBS_VillageId")
@JsonField(name ="TBS_VillageId")
String townRefId;
@SerializedName("VillageName")
@JsonField(name ="VillageName")
String villageName;
@SerializedName("Status")
@JsonField(name ="Status")
String status;
@SerializedName("DateInserted")
@JsonField(name ="DateInserted")
String dateInserted;
@SerializedName("DateLastModified")
@JsonField(name ="DateLastModified")
String datelastModified;
public String getTbsVillageId() {
return tbsVillageId;
}
public void setTbsVillageId(String tbsVillageId) {
this.tbsVillageId = tbsVillageId;
}
public String getTownRefId() {
return townRefId;
}
public void setTownRefId(String townRefId) {
this.townRefId = townRefId;
}
public String getVillageName() {
return villageName;
}
public void setVillageName(String villageName) {
this.villageName = villageName;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getDateInserted() {
return dateInserted;
}
public void setDateInserted(String dateInserted) {
this.dateInserted = dateInserted;
}
public String getDatelastModified() {
return datelastModified;
}
public void setDatelastModified(String datelastModified) {
this.datelastModified = datelastModified;
}
}