Skip to content

Commit a0c89be

Browse files
committed
Merge pull request #166 in FPDA/fourpda from feature/proguard to develop
* commit 'f899c014afb7d63c4c39392ab2166af7f3312304': Remove Google services plugin Правила Proguard с параметром dontobfuscate Добавляем основные правила для Proguard
2 parents 27f2dc8 + f899c01 commit a0c89be

File tree

5 files changed

+261
-51
lines changed

5 files changed

+261
-51
lines changed

app/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
apply plugin: 'com.android.application'
22
apply plugin: 'com.neenbedankt.android-apt'
3-
apply plugin: 'com.google.gms.google-services'
43
apply plugin: 'io.fabric'
54
apply plugin: 'me.tatarka.retrolambda'
65
apply plugin: 'com.jakewharton.butterknife'
@@ -48,6 +47,8 @@ android {
4847

4948
release {
5049
signingConfig signingConfigs.fromProperties
50+
minifyEnabled true
51+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
5152
}
5253

5354
}

app/google-services.json

Lines changed: 0 additions & 45 deletions
This file was deleted.

app/proguard-rules.pro

Lines changed: 259 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,259 @@
1+
-dontobfuscate
2+
-dontwarn **
3+
4+
5+
# http://blog.androidquery.com/2011/06/android-optimization-with-proper.html
6+
7+
-optimizationpasses 5
8+
-dontusemixedcaseclassnames
9+
-dontskipnonpubliclibraryclasses
10+
-dontpreverify
11+
-verbose
12+
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
13+
14+
-keep public class * extends android.app.Activity
15+
-keep public class * extends android.app.Application
16+
-keep public class * extends android.app.Service
17+
-keep public class * extends android.content.BroadcastReceiver
18+
-keep public class * extends android.content.ContentProvider
19+
-keep public class * extends android.app.backup.BackupAgentHelper
20+
-keep public class * extends android.preference.Preference
21+
-keep public class com.android.vending.licensing.ILicensingService
22+
23+
#keep all classes that might be used in XML layouts
24+
-keep public class * extends android.view.View
25+
-keep public class * extends android.app.Fragment
26+
-keep public class * extends android.support.v4.Fragment
27+
28+
29+
#keep all public and protected methods that could be used by java reflection
30+
-keepclassmembernames class * {
31+
public protected <methods>;
32+
}
33+
34+
-keepclasseswithmembernames class * {
35+
native <methods>;
36+
}
37+
38+
-keepclasseswithmembernames class * {
39+
public <init>(android.content.Context, android.util.AttributeSet);
40+
}
41+
42+
-keepclasseswithmembernames class * {
43+
public <init>(android.content.Context, android.util.AttributeSet, int);
44+
}
45+
46+
47+
-keepclassmembers enum * {
48+
public static **[] values();
49+
public static ** valueOf(java.lang.String);
50+
}
51+
52+
-keep class * implements android.os.Parcelable {
53+
public static final android.os.Parcelable$Creator *;
54+
}
55+
56+
-dontwarn **CompatHoneycomb
57+
-dontwarn org.htmlcleaner.*
58+
59+
60+
# PersistentCookieJar
61+
# https://github.com/franmontiel/PersistentCookieJar
62+
-dontwarn com.franmontiel.persistentcookiejar.**
63+
-keep class com.franmontiel.persistentcookiejar.**
64+
65+
-keepclassmembers class * implements java.io.Serializable {
66+
static final long serialVersionUID;
67+
private static final java.io.ObjectStreamField[] serialPersistentFields;
68+
!static !transient <fields>;
69+
private void writeObject(java.io.ObjectOutputStream);
70+
private void readObject(java.io.ObjectInputStream);
71+
java.lang.Object writeReplace();
72+
java.lang.Object readResolve();
73+
}
74+
75+
76+
# AndroidAnnotations
77+
# https://github.com/androidannotations/androidannotations/wiki/ProGuard
78+
79+
-optimizationpasses 5
80+
-dontusemixedcaseclassnames
81+
-dontskipnonpubliclibraryclasses
82+
-dontpreverify
83+
-verbose
84+
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
85+
86+
-keep public class * extends android.app.Activity
87+
-keep public class * extends android.app.Application
88+
-keep public class * extends android.app.Service
89+
-keep public class * extends android.content.BroadcastReceiver
90+
-keep public class * extends android.content.ContentProvider
91+
-keep public class * extends android.app.backup.BackupAgentHelper
92+
-keep public class * extends android.preference.Preference
93+
-keep public class com.android.vending.licensing.ILicensingService
94+
95+
-keepclasseswithmembernames class * {
96+
native <methods>;
97+
}
98+
99+
-keepclasseswithmembernames class * {
100+
public <init>(android.content.Context, android.util.AttributeSet);
101+
}
102+
103+
-keepclasseswithmembernames class * {
104+
public <init>(android.content.Context, android.util.AttributeSet, int);
105+
}
106+
107+
-keepclassmembers enum * {
108+
public static **[] values();
109+
public static ** valueOf(java.lang.String);
110+
}
111+
112+
-keep class * implements android.os.Parcelable {
113+
public static final android.os.Parcelable$Creator *;
114+
}
115+
116+
117+
# ButterKnife
118+
# https://guides.codepath.com/android/Configuring-ProGuard#butterknife
119+
120+
-keep class butterknife.** { *; }
121+
-dontwarn butterknife.internal.**
122+
-keep class **$$ViewBinder { *; }
123+
124+
-keepclasseswithmembernames class * {
125+
@butterknife.* <fields>;
126+
}
127+
128+
-keepclasseswithmembernames class * {
129+
@butterknife.* <methods>;
130+
}
131+
132+
133+
# OkHttp3
134+
# https://guides.codepath.com/android/Configuring-ProGuard#okhttp3
135+
136+
-keepattributes Signature
137+
-keepattributes *Annotation*
138+
-keep class okhttp3.** { *; }
139+
-keep interface okhttp3.** { *; }
140+
-dontwarn okhttp3.**
141+
-dontnote okhttp3.**
142+
# Okio
143+
-keep class sun.misc.Unsafe { *; }
144+
-dontwarn java.nio.file.*
145+
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
146+
147+
148+
# Retrolambda
149+
# https://guides.codepath.com/android/Configuring-ProGuard#retrolambda
150+
151+
-dontwarn java.lang.invoke.*
152+
153+
154+
# EventBus
155+
# https://github.com/greenrobot/EventBus/blob/v2/HOWTO.md
156+
157+
-keepclassmembers class ** {
158+
public void onEvent*(***);
159+
}
160+
161+
162+
# Crashlytics
163+
# https://docs.fabric.io/android/crashlytics/dex-and-proguard.html
164+
165+
-keepattributes *Annotation*
166+
-keepattributes SourceFile,LineNumberTable
167+
-keep public class * extends java.lang.Exception
168+
169+
170+
# SLF4J
171+
# https://github.com/krschultz/android-proguard-snippets/blob/master/libraries/proguard-logback-android.pro
172+
173+
-keep class org.slf4j.** { *; }
174+
175+
176+
# Picasso
177+
# https://github.com/square/picasso
178+
179+
-dontwarn com.squareup.okhttp.**
180+
181+
182+
# greenDAO 2
183+
# http://greenrobot.org/greendao/documentation//technical-faq
184+
185+
-keepclassmembers class * extends de.greenrobot.dao.AbstractDao {
186+
public static java.lang.String TABLENAME;
187+
}
188+
-keep class **$Properties
189+
190+
191+
# Jsoup
192+
# https://github.com/krschultz/android-proguard-snippets/blob/master/libraries/proguard-jsoup.pro
193+
194+
-keeppackagenames org.jsoup.nodes
195+
196+
197+
# https://github.com/krschultz/android-proguard-snippets/blob/master/libraries/proguard-support-design.pro
198+
199+
-dontwarn android.support.design.**
200+
-keep class android.support.design.** { *; }
201+
-keep interface android.support.design.** { *; }
202+
-keep public class android.support.design.R$* { *; }
203+
204+
205+
# https://github.com/krschultz/android-proguard-snippets/blob/master/libraries/proguard-support-v7-appcompat.pro
206+
207+
-keep public class android.support.v7.widget.** { *; }
208+
-keep public class android.support.v7.internal.widget.** { *; }
209+
-keep public class android.support.v7.internal.view.menu.** { *; }
210+
211+
-keep public class * extends android.support.v4.view.ActionProvider {
212+
public <init>(android.content.Context);
213+
}
214+
215+
216+
#http://stackoverflow.com/questions/27986264/android-proguard-with-httpcore-and-httpmime-using-android-studio-and-gradle
217+
218+
-dontwarn org.apache.commons.**
219+
-keep class org.apache.http.** { *; }
220+
-dontwarn org.apache.http.**
221+
222+
223+
# Spullara Mustache
224+
# https://github.com/contentful/vault/issues/47
225+
226+
-dontwarn org.jruby.**
227+
228+
229+
# Configuration for Guava 18.0
230+
#
231+
# disagrees with instructions provided by Guava project: https://code.google.com/p/guava-libraries/wiki/UsingProGuardWithGuava
232+
233+
-keep class com.google.common.io.Resources {
234+
public static <methods>;
235+
}
236+
-keep class com.google.common.collect.Lists {
237+
public static ** reverse(**);
238+
}
239+
-keep class com.google.common.base.Charsets {
240+
public static <fields>;
241+
}
242+
243+
-keep class com.google.common.base.Joiner {
244+
public static com.google.common.base.Joiner on(java.lang.String);
245+
public ** join(...);
246+
}
247+
248+
-keep class com.google.common.collect.MapMakerInternalMap$ReferenceEntry
249+
-keep class com.google.common.cache.LocalCache$ReferenceEntry
250+
251+
# http://stackoverflow.com/questions/9120338/proguard-configuration-for-guava-with-obfuscation-and-optimization
252+
-dontwarn javax.annotation.**
253+
-dontwarn javax.inject.**
254+
-dontwarn sun.misc.Unsafe
255+
256+
# Guava 19.0
257+
-dontwarn java.lang.ClassValue
258+
-dontwarn com.google.j2objc.annotations.Weak
259+
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

app/src/main/AndroidManifest.xml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@
55
<uses-permission android:name="android.permission.INTERNET" />
66
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
77

8-
<!-- Удалено необязательное разрешение WAKE_LOCK из библиотеки Measurement для Google Analytics.
9-
При наличие Google Play на устройстве разрешение не нужно. -->
10-
<uses-permission android:name="android.permission.WAKE_LOCK" tools:node="remove" />
11-
128
<application
139
android:allowBackup="true"
1410
android:icon="@mipmap/ic_launcher"

build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ buildscript {
88

99
dependencies {
1010
classpath 'com.android.tools.build:gradle:2.2.2'
11-
classpath 'com.google.gms:google-services:1.5.0'
1211
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
1312
classpath 'io.fabric.tools:gradle:1.21.5'
1413
classpath 'me.tatarka:gradle-retrolambda:3.3.0'

0 commit comments

Comments
 (0)