Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What is going on with this article?
@kojimamasahiro

この前書いたProguard一覧

More than 3 years have passed since last update.

まあ、探せばいくらでも出てくるんですが、宣伝もかねて。
https://play.google.com/store/apps/details?id=com.collection.wather.weathertools
本当はもっといろいろ作っていたのだけれども、完成の日の目を見たいがために機能を削りまくってます。その結果、意味をなしていないProguardも備忘録を兼ねて記しておきます。

Glide

画像ライブラリ
Picassoと悩んだのですが、こちらの記事でGlideにしました。
http://qiita.com/rejasupotaro/items/ead90beaeaa2a6eace35

-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
    **[] $VALUES;
    public *;

Gson

パーサー
ここに書かれているものだけではだめで、デシリアライズしたデータを格納するクラスもkeepを忘れずにしないといけません。

-keep class com.google.gson.**
-keepattributes *Annotation*
-keepattributes Signature
-keep class sun.misc.Unsafe { *; }

OkHttp

通信ライブラリ
いわずもがな。

-dontwarn java.nio.file.*
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

Retrofit

通信ライブラリ
GsonとOkHttpと組み合わせて使ってます。

-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
-dontwarn com.google.appengine.api.urlfetch.*

Maps

グーグルマップ
地図を表示させたかったんです。

-keep class com.google.android.gms.maps.** { *; }
-keep interface com.google.android.gms.maps.** { *; }

Crashlitics

クラッシュ解析
いまならfirebaseの方がいいかも。

-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**

ButterKnife

View Injectionライブラリ
v7からか?これを使うとビルドがすこぶる遅くなったので速攻で消去しました。

-keep public class * implements butterknife.internal.ViewBinder { public <init>(); }
-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }
-keepclasseswithmembernames class * { @butterknife.* <methods>; }
-keepclasseswithmembernames class * { @butterknife.* <fields>; }

Twitter4J

Twitter非公式ライブラリ
楽になりますね。

-dontwarn twitter4j.management.**
-dontwarn twitter4j.TwitterAPIMonitor
-dontwarn twitter4j.internal.**
-dontwarn twitter4j.Annotation
-keep class twitter4j.** { *; }

おわりに

proguardの設定はデバックビルドだと気づけないので、意外とはまるポイントの1つですね。gradleでsyncしたときに自動で挿入されるようになるといいですね。

3
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
3
Help us understand the problem. What is going on with this article?