Files
MoGoEagleEye/app/proguard-rules.pro
chenfufeng 1e7b13f151 [Feat]新增支持多语言的TTS
[Feat]新增支持多语言的TTS
2023-02-24 15:44:33 +08:00

432 lines
16 KiB
Prolog
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
#
#-------------------------------------------基本不用动区域----------------------------------------------
#
#
# -----------------------------基本 -----------------------------
# 指定代码的压缩级别 0 - 7(指定代码进行迭代优化的次数在Android里面默认是5这条指令也只有在可以优化时起作用)
-optimizationpasses 5
# 混淆时不会产生形形色色的类名(混淆时不使用大小写混合类名)
-dontusemixedcaseclassnames
# 指定不去忽略非公共的库类(不跳过library中的非public的类)
-dontskipnonpubliclibraryclasses
# 指定不去忽略包可见的库类的成员
-dontskipnonpubliclibraryclassmembers
#不对 class 进行优化,默认是开启优化的由于优化会进行类合并内联等,使用热修复的应用,建议关闭优化
#-dontoptimize
# 不进行预校验,Android不需要,可加快混淆速度
-dontpreverify
# 屏蔽警告,暂不开启用于抛出异常
#-ignorewarnings
# 指定混淆是采用的算法,后面的参数是一个过滤器
# 这个过滤器是谷歌推荐的算法,一般不做更改
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
# 保护代码中的Annotation不被混淆
-keepattributes *Annotation*,InnerClasses,Signature,EnclosingMethod
# 避免混淆泛型, 这在JSON实体映射时非常重要
-keepattributes Signature
# 抛出异常时保留代码行号
-keepattributes SourceFile,LineNumberTable
#优化时允许访问并修改有修饰符的类和类的成员,这可以提高优化步骤的结果。
# 比如当内联一个公共的getter方法时这也可能需要外地公共访问。
# 虽然java二进制规范不需要这个要不然有的虚拟机处理这些代码会有问题。当有优化和使用-repackageclasses时才适用。
#指示语不能用这个指令处理库中的代码因为有的类和类成员没有设计成public ,而在api中可能变成public
-allowaccessmodification
# 混淆时记录日志(打印混淆的详细信息)
# 这句话能够使我们的项目混淆后产生映射文件
# 包含有类名->混淆后类名的映射关系
-verbose
# 保持测试相关的代码
-dontnote junit.framework.**
-dontnote junit.runner.**
-dontwarn android.test.**
-dontwarn android.support.test.**
-dontwarn org.junit.**
#
# ----------------------------- 默认保留 -----------------------------
#
#----------------------------------------------------
# 保持哪些类不被混淆
#继承activity,application,service,broadcastReceiver,contentprovider....不进行混淆
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Fragment
-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.app.backup.BackupAgentHelper
-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.**{*;}
-keep class androidx.appcompat.app.*{*;}
-keep class androidx.appcompat.app.AppCompatActivity{*;}
-keep class androidx.appcompat.app.AppCompatCallback{*;}
-keep class androidx.appcompat.app.AppCompatDelegate{*;}
-dontwarn androidx.**
-keep public class android.support.design.R$* { *; }
-keep class com.google.android.material.**{*;}
-dontwarn android.support.design.**
-dontwarn com.google.android.material.**
-keepclasseswithmembernames,allowshrinking class * {
native <methods>;
}
#这个主要是在layout 中写的onclick方法android:onclick="onClick",不进行混淆
#表示不混淆Activity中参数是View的方法
-keepclassmembers class * extends android.app.Activity{
public void *(android.view.View);
}
#表示不混淆枚举中的values()和valueOf()方法
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
#表示不混淆任何一个View中的setXxx()和getXxx()方法,
#因为属性动画需要有相应的setter和getter的方法实现混淆了就无法工作了。
-keep public class * extends android.view.View{
*** get*();
void set*(***);
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
}
#表示不混淆Parcelable
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable *;
}
# 这指定了继承Serizalizable的类的如下成员不被移除混淆
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
# 保留R下面的资源
-keep class **.R$* {
*;
}
#不混淆资源类下static的
-keepclassmembers class **.R$* {
public static <fields>;
}
# 对于带有回调函数的onXXEvent、**On*Listener的不能被混淆
-keepclassmembers class * {
void *(**On*Event);
void *(**On*Listener);
}
#可选避免Log打印输出
-assumenosideeffects class android.util.Log {
public static *** v(...);
public static *** d(...);
public static *** i(...);
public static *** w(...);
}
#kotlin
-keep class kotlin.* { *; }
-keepclassmembernames class kotlinx.*{
volatile <fields>;
}
-keep class kotlin.Metadata { *; }
-dontwarn kotlin.*
-dontwarn kotlin.**
-keepclassmembers class **$WhenMappings {
<fields>;
}
-keepclassmembers class kotlin.Metadata {
public <methods>;
}
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
}
-keepclassmembers class kotlin.Metadata { *; }
-keep @kotlin.Metadata class *
-keepclasseswithmembers @kotlin.Metadata class * { *; }
-keep class kotlinx.coroutines.android.** {*;}
# ServiceLoader support
-keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {}
-keepnames class kotlinx.coroutines.CoroutineExceptionHandler {}
-keepnames class kotlinx.coroutines.android.AndroidExceptionPreHandler {}
-keepnames class kotlinx.coroutines.android.AndroidDispatcherFactory {}
-keep class android.telephony.TelephonyManager{*;}
-keep class android.telephony.TelephonyManager$CellInfoCallback{*;}
-dontwarn android.telephony.TelephonyManager
-dontwarn org.apache.*.**
-dontwarn org.dom4j.*.**
-dontwarn com.pdager.*.**
-dontwarn com.*.**
-dontwarn javax.*.**
-dontwarn android.support.**
#----------------------------------------第三方库----------------------------------------------
#内置语音 V5.6.0之后
-keep class com.alibaba.mit.alitts.*{*;}
-keep class com.alibaba.mit.alitts.ICallback$TtsEvent{*;}
-keepclassmembers class com.alibaba.mit.alitts.ICallback$TtsEvent{*;}
-keepnames class com.alibaba.mit.alitts.ICallback$TtsEvent{*;}
-keepclassmembernames class com.alibaba.mit.alitts.ICallback$TtsEvent{*;}
#-----高德地图-----
#3D 地图 V5.0.0之后:
-keep class com.amap.api.maps.**{*;}
-keep class com.autonavi.**{*;}
-keep class com.amap.api.trace.**{*;}
#定位
-keep class com.loc.*{*;}
-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.col.n3.*{*;}
-keep class com.amap.api.navi.**{*;}
-keep class com.alibaba.idst.nls.**{*;}
-keep class com.nlspeech.nlscodec.NlsCodec2{*;}
-keep class com.google.**{*;}
#-----Gson-----
-dontwarn sun.misc.**
# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { <fields>; }
# 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 <fields>;
}
#-----ARouter-----
-keep class com.alibaba.android.arouter.routes.*{*;}
-keep class com.alibaba.android.arouter.facade.annotation.*{*;}
-keep class com.alibaba.android.arouter.facade.enums.*{*;}
-keep class com.alibaba.android.arouter.facade.model.*{*;}
-keep class com.alibaba.android.arouter.facade.template.IProvider{*;}
-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
-keep class * 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 {
<init>(...);
}
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
-keep class com.bumptech.glide.load.data.ParcelFileDescriptorRewinder$InternalRewinder {
*** rewind();
}
#如果你的 target API 低于 Android API 27请添加
-dontwarn com.bumptech.glide.load.resource.bitmap.VideoDecoder
#-----Okio-----
# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
-dontwarn org.codehaus.mojo.animal_sniffer.*
-dontwarn com.squareup.**
-dontwarn okio.**
#-----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.* <methods>;
}
# 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
-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.* <methods>; }
-keep,allowobfuscation interface <1>
#-----ProtoBuf-----
-keep class com.google.protobuf.** {*;}
#-----flexbox-----
-keepnames public class com.google.android.flexbox.FlexboxLayoutManager
#-----zxing-----
-dontwarn com.google.zxing.**
-keep class com.google.zxing.**{*;}
#-----GSYVideoPlayer-----
-keep class com.shuyu.gsyvideoplayer.video.** { *; }
-dontwarn com.shuyu.gsyvideoplayer.video.**
-keep class com.shuyu.gsyvideoplayer.video.base.** { *; }
-dontwarn com.shuyu.gsyvideoplayer.video.base.**
-keep class com.shuyu.gsyvideoplayer.utils.** { *; }
-dontwarn com.shuyu.gsyvideoplayer.utils.**
-keep class tv.danmaku.ijk.** { *; }
-dontwarn tv.danmaku.ijk.**
#-----EventBus-----
-keepattributes *Annotation*
-keepclassmembers class * {
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
# And if you use AsyncExecutor:
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
<init>(java.lang.Throwable);
}
#-----Netty-----
-keepattributes Signature,InnerClasses
-keep class io.netty.** {*;}
-keep class org.apache.** {*;}
-keep class org.apache.logging.**{*;}
-keepclasseswithmembers class io.netty.** {*;}
-keepclasseswithmembers class org.apache.logging.**{*;}
-keep class org.apache.http.**{*;}
-dontwarn io.netty.**
-dontwarn sun.**
#-----boostMultidex-----
-keep class com.bytedance.boost_multidex.*{*;}
-keep class com.bytedance.boost_multidex.BoostMultiDex{*;}
-keep class com.bytedance.boost_multidex.Result{*;}
#-----geohash-----
-keep class ch.hsr.geohash.**{*;}
#-----viewpagerIndicator-----
-keep class com.zhpan.indicator.annotation.*{*;}
#-----COS-----
-keep class com.tencent.cos.xml.common.*{*;}
-keep class com.tencent.cos.xml.model.**{*;}
-keep class com.tencent.cos.xml.transfer.TaskStateMonitor{*;}
-keep class com.tencent.cos.xml.transfer.TransferState{*;}
-keep class com.tencent.cos.xml.CosXmlSimpleService{*;}
-keep class com.tencent.cos.xml.LogServerProxy{*;}
-keep class com.tencent.cos.xml.MTAProxy{*;}
-keep class com.tencent.qcloud.core.auth.STSCredentialScope{*;}
-keep class com.tencent.qcloud.core.http.HttpLoggingInterceptor.Level{*;}
#-----WebSocket-----
-keep class org.java_websocket.enums.*{*;}
#-----ZhiDaoService-----
-keep class com.zhidao.adasconfig.**{*;}
-keep class com.zhidao.accountsdk.**{*;}
-keep class com.zhidao.account.sdk.**{*;}
-keep class com.zhidao.auto.platform.**{*;}
-keep class com.zhidao.auto.carcorder.**{*;}
-keep class com.zhidao.autopilotcore.*{*;}
-keep class com.zhidao.autopilot.support.**{*;}
-keep class com.zhidao.boot.**{*;}
-keep class com.zhidao.cosupload.**{*;}
-keep class com.zhidao.locupload.**{*;}
-keep class com.zhidao.ptech.**{*;}
-keep class com.zhidao.smartv2x.**{*;}
-keep class com.zhidao.support.adas.high.**{*;}
-keep class com.zhidao.socket.**{*;}
-keep class com.zhidao.socketsdk.**{*;}
-keep class com.zhidao.tcloginsdk.**{*;}
-keep class com.zhidao.utils.**{*;}
-keep class com.zhidao.voicesdk.**{*;}
-keep class com.zhidaohulian.**{*;}
-keep class com.elegant.**{*;}
-dontwarn com.elegant.network.**
-keep class net.jodah.typetools.TypeResolver{*;}
-keep class net.jodah.typetools.TypeDescriptor{*;}
-keep class com.bt.hd.link.*{*;}
-keep class com.nwd.kernel.aidl.*{*;}
-keep class com.nwd.radio.service.**{*;}
-keep class com.pvetec.carcordersdk.**{*;}
-keep class com.pvetec.ctrlcenter.resfocus.aidl.**{*;}
-keep class gnu.trove.**{*;}
-keep class org.eclipse.jetty.alpn.ALPN$ClientProvider{*;}
-keep class org.eclipse.jetty.npn.NextProtoNego$ClientProvider{*;}
-keep class org.eclipse.jetty.npn.NextProtoNego$ServerProvider{*;}
-keep class org.eclipse.jetty.alpn.ALPN$ServerProvider{*;}
-keep class org.jboss.marshalling.ByteOutput{*;}
-keep class org.jboss.marshalling.ByteInput{*;}
-keep class org.conscrypt.AllocatedBuffer{*;}
-keep class org.conscrypt.HandshakeListener{*;}
-keep class org.conscrypt.BufferAllocator{*;}
-keep class com.squareup.haha.guava.collect.*{*;}
-keep class **.zego.**{*;}
#-----科大讯飞语音合成-----
-keep class com.iflytek.**{*;}