Android 小项目快速开发

别人写好的东西,直接拿来用就好了。


背景

最近在做一个简单扫描二维码的单机APP,功能简单,逻辑清晰。只想快速开发完成。用到的三方开源框架:

  • butterknife
  • litepal
  • pgyersdk

集成到项目[android studio build.grade(module)]

dependencies {
   compile fileTree(include: ['*.jar'], dir: 'libs')
   testCompile 'junit:junit:4.12'
   compile 'com.android.support:appcompat-v7:23.3.0'
   compile 'org.litepal.android:core:1.3.1'
   compile 'com.jakewharton:butterknife:7.0.1'
   compile 'com.pgyersdk:sdk:2.2.2'
   compile files('libs/zxing.jar')
}

Butterknife

  • 开源地址
  • 度娘解答

注:当然更加快捷的使用Butterknife,要配合 android studio 插件
Android ButterKnife Zelezny


Litepal

  • 开源地址
  • 度娘解答
  • 教程

注:关系型数据库,和hibernate 3.0版本很像,但是比hibernate 3.0用起来简单的很,开发必备。


pgyersdk

  • 网站地址

注:前期用来版本分发测试,正式上线就不建议继续使用了。


代码混淆

buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

默认minifyEnabled false,如果使用混淆需要改成ture。位置在:build.grade(module)

混淆规则,在proguard-rules.pro文件编写

-optimizationpasses 5          # 指定代码的压缩级别
-dontusemixedcaseclassnames   # 是否使用大小写混合
-dontpreverify           # 混淆时是否做预校验
-verbose                # 混淆时是否记录日志

-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*  # 混淆时所采用的算法



#butterknife
-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }
-keepclasseswithmembernames class * {
    @butterknife.* ;
}
-keepclasseswithmembernames class * {
    @butterknife.* ;
}
#butterknife

#pgy
-dontwarn com.pgyersdk.**
-keep class com.pgyersdk.** { *; }
#pgy


#litepal
-dontwarn org.litepal.*
-keep class org.litepal.** { *; }
-keep enum org.litepal.**
-keep interface org.litepal.** { *; }
-keep public class * extends org.litepal.**
-keepattributes *Annotation*
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}
-keepclassmembers class * extends org.litepal.crud.DataSupport{*;}
#litepal

#zxing
-dontwarn com.google.zxing.**
-keep class com.google.zxing.** {*; }
#zxing

自己的想法

使用Litepal建立model类的时候,最好实现Parcelable或Serializable接口,方便Intent进行对象传值。

你可能感兴趣的:(Android 小项目快速开发)