天天看點

使用Sophix熱修複注意事項使用Sophix熱修複說明

使用Sophix熱修複說明

1.      軟體必須以管理者身份運作;

2.      電腦必須安裝配置JDK 1.8及以上,不能有低于1.8的jdk版本存在;

3.      Android6.0以上必須要動态申請讀寫權限【該權限僅用于測試】

private staticfinal int REQUEST_EXTERNAL_STORAGE= 1;

private static String[] PERMISSIONS_STORAGE = {

        "android.permission.READ_EXTERNAL_STORAGE",

        "android.permission.WRITE_EXTERNAL_STORAGE" };

public static void verifyStoragePermissions(Activity activity) {

    //版本大于6.0的情況

    if (Build.VERSION.SDK_INT >= 23) {

        try {

            //檢測是否有寫的權限

            int permission =   ActivityCompat.checkSelfPermission(activity, "android.permission.WRITE_EXTERNAL_STORAGE");

            if (permission != PackageManager.PERMISSION_GRANTED) {

                // 沒有寫的權限,去申請寫的權限,會彈出對話框

                ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE);

            }

        } catch (Exceptione) {

            e.printStackTrace();

        }

    }

}

4.      配置APP Moudle的Gradle:

(1)庫檔案配置:特别要加上flatDir{dirs‘libs’}

repositories {
    maven {
        url "http://maven.aliyun.com/nexus/content/repositories/releases"
    }
    flatDir{
        dirs 'libs'
    }
}      

(2) 依賴檔案配置

compile 'com.aliyun.ams:alicloud-android-hotfix:3.1.9'      

(3)混淆檔案配置

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro’
    }
    debug {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
           }
}      

(4)穩健接入 proguard-rules.pro檔案配置

-keepclassmembers class com.example.tangdekun.sophixdemo.SophixApplication {
    public <init>();
}

#基線包使用,生成mapping.txt
-printmapping mapping.txt
#生成的mapping.txt在app/buidl/outputs/mapping/release路徑下,移動到/app路徑下
#修複後的項目使用,保證混淆結果一緻
#-applymapping mapping.txt

#hotfix
-keep class com.taobao.sophix.**{*;}
-keep class com.ta.utdid2.device.**{*;}
#防止inline
-dontoptimize      

5.      對比APK要在簽名加強之前

6.      我們APK自帶加密機制,不需要代碼混淆,也可以不混淆

7.      版本号隻可以是數字和”.”,不可以包含字母,否則更新更新檔不成功;

8.      熱更新的更新檔最高為5M,超過5M之後需要重新釋出版本;