(1) 图片下载工具 ImageLoader或Volley
网络通信框架—Volley 具体使用请参考 郭大侠的blog http://blog.csdn.net/guolin_blog/article/details/17482095
使用注意的地方:
(a) 在用到gson解析,涉及到的bean类的成员不一定要求set,get方法,为高效可以直接将bean类的成员属性声明成public
(b) bean类实现序列化接口,成员属性的名称必须与Json数据的key一致
(c) 使用gson-2.2.4.jar进行代码混淆的时候注意: java bean不要混淆,因为这样gson才能反射解析到数据
(3)界面初始化工具类 roboguice
让代码变得整洁,快速初始化View(依赖注入)开源项目(roboguice-2.0.jar,guice-2.0-no-aop.jar)
(4)分页加载工具类
网络通信框架—Volley 具体使用请参考 郭大侠的blog http://blog.csdn.net/guolin_blog/article/details/17482095
(2)json解析工具类 gson-2.2.4.jar
使用注意的地方:
(a) 在用到gson解析,涉及到的bean类的成员不一定要求set,get方法,为高效可以直接将bean类的成员属性声明成public
(b) bean类实现序列化接口,成员属性的名称必须与Json数据的key一致
(c) 使用gson-2.2.4.jar进行代码混淆的时候注意: java bean不要混淆,因为这样gson才能反射解析到数据
具体使用请参考:
http://smallbee.iteye.com/blog/1066993/
http://www.cnblogs.com/sunzn/archive/2013/02/19/2917025.html
http://www.2cto.com/kf/201309/244867.html
(3)界面初始化工具类 roboguice
让代码变得整洁,快速初始化View(依赖注入)开源项目(roboguice-2.0.jar,guice-2.0-no-aop.jar)
(4)分页加载工具类
开源项目 pulltorefresh_library
proguard-project.txt 文件 正文内容如下:
-libraryjars libs/gson-2.2.4.jar
-libraryjars libs/roboguice-2.0.jar
-libraryjars libs/guice-2.0-no_aop.jar
-libraryjars libs/volley.jar
#解决android 4.2系统上,混淆后,webView不能正常调用JS
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
-keep class com.google.inject.Binder
-dontwarn roboguice.**
-keep class roboguice.** { *; }
-keep public class * extends roboguice.**
-keep class com.google.inject.** { *; }
-keepclassmembers class * {
@com.google.inject.Inject <init>(...);
}
-dontwarn com.android.volley.**
-keep class com.android.volley.** { *; }
-keep public class * extends com.android.volley.**
-keep class com.android.volley.** { *; }
-keepclassmembers class * {
@com.android.volley <init>(...);
}
-keep class com.nandudu.engsv.bean.** {*;}
-keep class com.google.gson.** { *; }
-keep public class * extends com.google.gson.**
-keep interface com.google.gson.** { *; }
-keep public final class com.google.gson.** { *; }
-keepclassmembers enum com.google.gson.FieldNamingPolicy {
*;
}
-keepclassmembers class com.google.gson.Gson {
*;
}
-dontwarn com.handmark.pulltorefresh.library.**
-keep class com.handmark.pulltorefresh.library.** { *; }
-keep interface com.handmark.pulltorefresh.library.** { *; }
-dontwarn com.handmark.pulltorefresh.extras.**
-keep class com.handmark.pulltorefresh.extras.** { *; }
-keep interface com.handmark.pulltorefresh.extras.** { *; }
-dontwarn android.support.v4.**
-keep class android.support.v4.** { *;}
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-ignorewarnings
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable,*Annotation*,Signature
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.content.Context {
public void *(android.view.View);
public void *(android.view.MenuItem);
}
-keepclassmembers class * implements android.os.Parcelable {
static android.os.Parcelable$Creator CREATOR;
}
-keepclassmembers class **.R$* {
public static <fields>;
}
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep interface com.actionbarsherlock.** { *; }
-keep class com.nineoldandroids.** { *; }
-keep interface com.nineoldandroids.** { *; }
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-keep class org.acra.ACRA {
*;
}
-keep class org.acra.ReportingInteractionMode {
*;
}
-keepnames class org.acra.ReportField {
*;
}
-keep public class org.acra.ErrorReporter
{
public void addCustomData(java.lang.String,java.lang.String);
public void putCustomData(java.lang.String,java.lang.String);
public void removeCustomData(java.lang.String);
}
-keep public class org.acra.ErrorReporter
{
public void handleSilentException(java.lang.Throwable);
}
-dontwarn android.net.http.**
-keep class javax.inject.** { *; }
-keep class javax.annotation.** { *; }
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepclassmembers class * {
void *(**On*Event);
}
-keepclassmembers public class org.springframework {
public *;
}
-dontwarn org.springframework.http.**