工程配置

环境准备

Android studio 3.0

Android 手机系统4.0以上版本

工程配置

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "com.android.support:appcompat-v7:28.0.0"
    implementation(name: 'AndMuOpenSDK', ext: 'aar')
    implementation('org.simpleframework:simple-xml:2.7.1') {
        exclude module: 'stax'
        exclude module: 'xpp3'
        exclude module: 'stax-api'
    }
    implementation 'com.squareup.okhttp3:okhttp:3.14.2'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.6.0'
    implementation 'com.google.code.gson:gson:2.8.5'
    implementation('com.journeyapps:zxing-android-embedded:3.6.0') {
        exclude group: 'com.android.support'
    }

    implementation 'com.takisoft.fix:preference-v7-material:28.0.0.0'
    implementation 'com.jakewharton:butterknife:9.0.0'
    implementation 'com.github.bmelnychuk:atv:1.2.9'
    implementation 'com.github.bumptech.glide:glide:4.8.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
    implementation 'com.android.support:multidex:1.0.3'
    implementation ('com.github.bumptech.glide:okhttp3-integration:4.8.0') {
        transitive = false
    }
    implementation 'com.jaeger.statusbarutil:library:1.5.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0'

    implementation files('libs/quick_login_android_5.4.6.jar')
}
  • 权限配置  在AndroidManifest.xml文件中添加如下配置
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true"
        android:xlargeScreens="true" />

    <uses-feature
        android:name="android.hardware.audio.low_latency"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.microphone"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.screen.landscape"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.screen.portrait"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.telephony"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.faketouch"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.touchscreen"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.wifi"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.camera"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.autofocus"
        android:required="false" />
  • 混淆配置

-ignorewarnings
-dontshrink
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
-optimizationpasses 5
-keep interface * {
  <methods>;
  <fields>;
}

-keepclasseswithmembernames class * {
    native <methods>;
}

-dontwarn com.cmcc.**
-dontwarn com.v2.**
-dontwarn com.v3.**
-dontwarn com.tencent.**
-dontwarn com.cmmf.**
-dontwarn com.google.**
-dontwarn com.clplayer.**
-dontwarn org.apache.commons.**
-dontwarn com.ont.media.player.**

-dontnote com.v2.**
-dontnote com.v3.**
-dontnote com.google.**
-dontnote com.tencent.**
-dontnote com.cmmf.**
-dontnote com.cmcc.**
-dontnote com.clplayer.**
-dontnote com.arcsoft.**

-keep class * extends android.app.Activity
-keep class * implements java.io.Serializable{*;}
-keep class com.cmcc.andmuopensdk.AndMuOpen { *; }
-keep class com.cmcc.hemu.HeMu { *; }
-keep class com.cmcc.andmuopensdk.base.restapi.** { *; }
-keep class com.cmcc.andmuopensdk.base.utils.** {*;}
-keep class com.cmcc.andmuopensdk.camera.utils.** {*;}
-keep class com.cmcc.andmuopensdk.camera.devicestate.** {*;}
-keep class com.cmcc.andmuopensdk.camera.restapi.** {*;}
-keep class com.cmcc.andmuopensdk.camera.cache.bean.AMODevice{ *; }
-keep class com.cmcc.andmuopensdk.camera.closeli.restapi.** {*;}
-keep class com.cmcc.andmuopensdk.camera.session.** {*;}
-keep class com.cmcc.andmuopensdk.camera.AMOCamera {*;}
-keep class com.cmcc.andmuopensdk.base.config.AMOGlobal {*;}
-keep class com.cmcc.andmuopensdk.camera.player.** {*;}
-keep class com.cmcc.andmuopensdk.camera.downloadlocal.** {*;}
-keep class com.cmcc.andmuopensdk.camera.widget.** {*;}
-keep class com.cmcc.andmuopensdk.camera.closeli.** {*;}
-keep class com.cmcc.andmuopensdk.base.net.** {*;}
-keep interface com.ont.media.player.** {*;}
-keep class com.ont.media.player.** {*;}
-keep class com.v2.** {*;}
-keep class com.v3.** {*;}
-keep class com.clplayer.** {*;}
-keep class com.cmmf.** {*;}
-keep class com.closeli.** {*;}
-keep class com.onenet.** {*;}
-keep class com.arcsoft.** {*;}
-keep class com.tencent.** {*;}
-keep class org.simpleframework.** {*;}
-keep class com.cmcc.andmuopensdk.camera.cmiot.handler.** {*;}
-keep class com.cmcc.andmuopensdk.camera.onenet.** {*;}
-keep class com.google.a.a.** {*;}
-keep public class com.v2.settings.bean.** {
    <fields>;
    <methods>;
}