From 9756233206e404a872a8ecb34517f10de3977513 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 16 Jul 2020 19:10:45 +0800 Subject: [PATCH 1/4] add some proguard --- app/proguard-rules.pro | 138 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 2d147e84da..336140b797 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -79,8 +79,14 @@ -keep public class * extends android.preference.Preference -keep public class * extends android.view.View +-keep public class androidx.*{*;} +-keep public class * extends androidx.*{*;} +-keep interface androidx.* {*;} +-dontwarn androidx.** + -dontwarn android.support.design.** -keep public class android.support.design.R$* { *; } +-keep class com.google.android.material.* {*;} -keepclasseswithmembernames class * { native ; @@ -149,3 +155,135 @@ public static *** i(...); public static *** w(...); } + +#----------------------------------------第三方库---------------------------------------------- +#-----高德地图----- +#3D 地图 V5.0.0之后: +-keep class com.amap.api.maps.*{*;} +-keep class com.autonavi.*{*;} +-keep class com.amap.api.trace.*{*;} +#定位 +-keep class com.amap.api.location.*{*;} +-keep class com.amap.api.fence.*{*;} +-keep class com.autonavi.aps.amapapi.model.*{*;} +#搜索 +-keep class com.amap.api.services.*{*;} +#导航 +-keep class com.amap.api.navi.*{*;} +-keep class com.autonavi.*{*;} + +#-----Gson----- +-dontwarn sun.misc.** +# Application classes that will be serialized/deserialized over Gson +-keep class com.google.gson.examples.android.model.* { ; } +# Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory, +# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter) +-keep class * extends com.google.gson.TypeAdapter +-keep class * implements com.google.gson.TypeAdapterFactory +-keep class * implements com.google.gson.JsonSerializer +-keep class * implements com.google.gson.JsonDeserializer +# Prevent R8 from leaving Data object members always null +-keepclassmembers,allowobfuscation class * { + @com.google.gson.annotations.SerializedName ; +} + +#-----ARouter----- +-keep public class com.alibaba.android.arouter.routes.*{*;} +-keep public class com.alibaba.android.arouter.facade.*{*;} +-keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;} +# If you use the byType method to obtain Service, add the following rules to protect the interface: +-keep interface * implements com.alibaba.android.arouter.facade.template.IProvider +# If single-type injection is used, that is, no interface is defined to implement IProvider, the following rules need to be added to protect the implementation +# -keep class * implements com.alibaba.android.arouter.facade.template.IProvider + +#-----Glide----- +-keep public class * implements com.bumptech.glide.module.GlideModule +-keep public class * extends com.bumptech.glide.module.AppGlideModule +-keep public enum com.bumptech.glide.load.ImageHeaderParser$** { + **[] $VALUES; + public *; +} +#如果你的 target API 低于 Android API 27,请添加: +-dontwarn com.bumptech.glide.load.resource.bitmap.VideoDecoder + +#-----Fresco----- +-keep,allowobfuscation interface com.facebook.common.internal.DoNotStrip +-keep @com.facebook.common.internal.DoNotStrip class * +-keepclassmembers class * { + @com.facebook.common.internal.DoNotStrip *; +} +-keepclassmembers class * { + native ; +} +-dontwarn okio.** +-dontwarn com.squareup.okhttp.** +-dontwarn okhttp3.** +-dontwarn javax.annotation.** +-dontwarn com.android.volley.toolbox.** +-dontwarn com.facebook.infer.** + +#-----Okio----- +# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java. +-dontwarn org.codehaus.mojo.animal_sniffer.* + +#-----OkHttp----- +# JSR 305 annotations are for embedding nullability information. +-dontwarn javax.annotation.** +# A resource is loaded with a relative path so the package of this class must be preserved. +-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase +# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java. +-dontwarn org.codehaus.mojo.animal_sniffer.* +# OkHttp platform used only on JVM and when Conscrypt dependency is available. +-dontwarn okhttp3.internal.platform.ConscryptPlatform + +#-----Retrofit----- +# Retrofit does reflection on method and parameter annotations. +-keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations +# Retain service method parameters when optimizing. +-keepclassmembers,allowshrinking,allowobfuscation interface * { + @retrofit2.http.* ; +} +# Ignore annotation used for build tooling. +-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement +# Ignore JSR 305 annotations for embedding nullability information. +-dontwarn javax.annotation.** +# Guarded by a NoClassDefFoundError try/catch and only used when on the classpath. +-dontwarn kotlin.Unit +# Top-level functions that can only be used by Kotlin. +-dontwarn retrofit2.KotlinExtensions.* +# With R8 full mode, it sees no subtypes of Retrofit interfaces since they are created with a Proxy +# and replaces all potential values with null. Explicitly keeping the interfaces prevents this. +-if interface * { @retrofit2.http.* ; } +-keep,allowobfuscation interface <1> + +#-----ProtoBuf----- +-keep class com.google.protobuf.*{*;} + +#-----GSYVideoPlayer----- +-keep class tv.danmaku.ijk.* { *; } +-dontwarn tv.danmaku.ijk.** +-keep class com.shuyu.gsyvideoplayer.* { *; } +-dontwarn com.shuyu.gsyvideoplayer.** + +#-----EventBus----- +-keepattributes *Annotation* +-keepclassmembers class * { + @org.greenrobot.eventbus.Subscribe ; +} +-keep enum org.greenrobot.eventbus.ThreadMode { *; } +# And if you use AsyncExecutor: +-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent { + (java.lang.Throwable); +} + +#-----ZhiDaoService----- +-keep class com.zhidao.auto.*{*;} +-keep class com.zhidaohulian.*{*;} +-keep class com.elegant.analytics.*{*;} +-keep class com.zhidao.socketsdk.*{*;} +-keep class com.zhidao.ptech.*{*;} +-keep class com.zhidao.autopilot.support.*{*;} + + + + From 054d44a4e7582fdf9c135d7e17c0b6baa858b152 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Thu, 16 Jul 2020 20:41:04 +0800 Subject: [PATCH 2/4] implementation base service: location, socket, passport --- .idea/gradle.xml | 3 +- app/build.gradle | 2 + app/functions/README.md | 1 + app/functions/baseservices.gradle | 26 ++ .../com/mogo/launcher/MogoApplication.java | 91 ++++--- config.gradle | 16 +- foudations/mogo-base-services-apk/.gitignore | 1 + foudations/mogo-base-services-apk/README.md | 7 + .../mogo-base-services-apk/build.gradle | 51 ++++ .../mogo-base-services-apk/consumer-rules.pro | 0 .../mogo-base-services-apk/gradle.properties | 3 + .../mogo-base-services-apk/proguard-rules.pro | 21 ++ .../services/apk/ExampleInstrumentedTest.java | 26 ++ .../src/main/AndroidManifest.xml | 5 + .../MogoLocationInfoServices.java | 63 +++++ .../services/passport/PassportManager.java | 80 ++++++ .../base/services/socket/SocketManager.java | 221 ++++++++++++++++ .../base/services/apk/ExampleUnitTest.java | 17 ++ foudations/mogo-base-services-sdk/.gitignore | 1 + foudations/mogo-base-services-sdk/README.md | 3 + .../mogo-base-services-sdk/build.gradle | 53 ++++ .../mogo-base-services-sdk/consumer-rules.pro | 0 .../mogo-base-services-sdk/gradle.properties | 3 + .../mogo-base-services-sdk/proguard-rules.pro | 21 ++ .../services/ExampleInstrumentedTest.java | 26 ++ .../src/main/AndroidManifest.xml | 5 + .../MogoLocationInfoServices.java | 94 +++++++ .../locationinfo/MogoLocationSource.java | 133 ++++++++++ .../services/passport/PassportManager.java | 94 +++++++ .../base/services/socket/SocketManager.java | 237 ++++++++++++++++++ .../mogo/base/services/ExampleUnitTest.java | 17 ++ .../com/mogo/commons/AbsMogoApplication.java | 62 +++-- .../com/mogo/connection/socket/MsgBody.java | 76 ------ gradle.properties | 6 +- modules/mogo-module-main/build.gradle | 2 - .../com/mogo/service/IMogoServiceApis.java | 21 ++ .../com/mogo/service/MogoServicePaths.java | 12 + .../IMogoLocationInfoService.java | 25 ++ .../passport/IMogoPassportManager.java | 15 ++ .../service/passport/IMogoTicketCallback.java | 15 ++ services/mogo-service/build.gradle | 2 - .../mogo/service/impl/MogoServiceApis.java | 23 +- .../impl/connection/MogoSocketManager.java | 15 +- .../locationinfo/MogoLocationInfoService.java | 64 +++++ .../impl/passport/MogoPassportManager.java | 49 ++++ settings.gradle | 4 +- upload.sh | 3 +- 47 files changed, 1549 insertions(+), 166 deletions(-) create mode 100644 app/functions/README.md create mode 100644 app/functions/baseservices.gradle create mode 100644 foudations/mogo-base-services-apk/.gitignore create mode 100644 foudations/mogo-base-services-apk/README.md create mode 100644 foudations/mogo-base-services-apk/build.gradle create mode 100644 foudations/mogo-base-services-apk/consumer-rules.pro create mode 100644 foudations/mogo-base-services-apk/gradle.properties create mode 100644 foudations/mogo-base-services-apk/proguard-rules.pro create mode 100644 foudations/mogo-base-services-apk/src/androidTest/java/com/mogo/base/services/apk/ExampleInstrumentedTest.java create mode 100644 foudations/mogo-base-services-apk/src/main/AndroidManifest.xml create mode 100644 foudations/mogo-base-services-apk/src/main/java/com/mogo/base/services/locationinfo/MogoLocationInfoServices.java create mode 100644 foudations/mogo-base-services-apk/src/main/java/com/mogo/base/services/passport/PassportManager.java create mode 100644 foudations/mogo-base-services-apk/src/main/java/com/mogo/base/services/socket/SocketManager.java create mode 100644 foudations/mogo-base-services-apk/src/test/java/com/mogo/base/services/apk/ExampleUnitTest.java create mode 100644 foudations/mogo-base-services-sdk/.gitignore create mode 100644 foudations/mogo-base-services-sdk/README.md create mode 100644 foudations/mogo-base-services-sdk/build.gradle create mode 100644 foudations/mogo-base-services-sdk/consumer-rules.pro create mode 100644 foudations/mogo-base-services-sdk/gradle.properties create mode 100644 foudations/mogo-base-services-sdk/proguard-rules.pro create mode 100644 foudations/mogo-base-services-sdk/src/androidTest/java/com/mogo/base/services/ExampleInstrumentedTest.java create mode 100644 foudations/mogo-base-services-sdk/src/main/AndroidManifest.xml create mode 100644 foudations/mogo-base-services-sdk/src/main/java/com/mogo/base/services/locationinfo/MogoLocationInfoServices.java create mode 100644 foudations/mogo-base-services-sdk/src/main/java/com/mogo/base/services/locationinfo/MogoLocationSource.java create mode 100644 foudations/mogo-base-services-sdk/src/main/java/com/mogo/base/services/passport/PassportManager.java create mode 100644 foudations/mogo-base-services-sdk/src/main/java/com/mogo/base/services/socket/SocketManager.java create mode 100644 foudations/mogo-base-services-sdk/src/test/java/com/mogo/base/services/ExampleUnitTest.java delete mode 100644 foudations/mogo-connection/src/main/java/com/mogo/connection/socket/MsgBody.java create mode 100644 services/mogo-service-api/src/main/java/com/mogo/service/locationinfo/IMogoLocationInfoService.java create mode 100644 services/mogo-service-api/src/main/java/com/mogo/service/passport/IMogoPassportManager.java create mode 100644 services/mogo-service-api/src/main/java/com/mogo/service/passport/IMogoTicketCallback.java create mode 100644 services/mogo-service/src/main/java/com/mogo/service/impl/locationinfo/MogoLocationInfoService.java create mode 100644 services/mogo-service/src/main/java/com/mogo/service/impl/passport/MogoPassportManager.java diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 97996e66c3..6ed5579ca9 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -12,8 +12,9 @@