mirror of
https://github.com/Tencent/QMUI_Android.git
synced 2026-10-29 11:37:07 +08:00
feat: 1. use xcrash for release test case; 2. use proguard-android-optimize.txt for Compose laggy issue.
This commit is contained in:
@@ -14,7 +14,7 @@ object Dep {
|
||||
object QMUI {
|
||||
const val group = "com.qmuiteam"
|
||||
const val qmuiVer = "2.0.1"
|
||||
const val archVer = "2.0.1_f_14"
|
||||
const val archVer = "2.0.1"
|
||||
const val typeVer = "0.0.14"
|
||||
const val composeCoreVer = "0.0.1"
|
||||
const val composeVer = "0.0.1"
|
||||
|
||||
@@ -33,7 +33,7 @@ android {
|
||||
keyPassword = properties.getProperty("RELEASE_KEY_PASSWORD")
|
||||
storeFile = file("qmuidemo.keystore")
|
||||
storePassword = properties.getProperty("RELEASE_STORE_PASSWORD")
|
||||
enableV2Signing = false
|
||||
enableV2Signing = true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,11 +62,15 @@ android {
|
||||
targetSdk = Dep.targetSdk
|
||||
versionCode = gitVersion
|
||||
versionName = Dep.QMUI.qmuiVer
|
||||
|
||||
ndk {
|
||||
abiFilters.add("arm64-v8a")
|
||||
}
|
||||
}
|
||||
buildTypes {
|
||||
getByName("release") {
|
||||
isMinifyEnabled = true
|
||||
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
|
||||
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
||||
signingConfig = signingConfigs.getByName("release")
|
||||
}
|
||||
}
|
||||
@@ -90,4 +94,6 @@ dependencies {
|
||||
implementation(Dep.Flipper.flipper)
|
||||
kapt(project(":compiler"))
|
||||
kapt(project(":arch-compiler"))
|
||||
|
||||
implementation("com.iqiyi.xcrash:xcrash-android-lib:3.1.0")
|
||||
}
|
||||
|
||||
Vendored
+4
-1
@@ -23,4 +23,7 @@
|
||||
-keep class com.qmuiteam.qmui.arch.record.RecordIdClassMapImpl { *; }
|
||||
|
||||
-keep class com.qmuiteam.qmui.arch.scheme.SchemeMap {*;}
|
||||
-keep class com.qmuiteam.qmui.arch.scheme.SchemeMapImpl {*;}
|
||||
-keep class com.qmuiteam.qmui.arch.scheme.SchemeMapImpl {*;}
|
||||
|
||||
-keep class com.facebook.jni.**{*;}
|
||||
-keep class com.facebook.flipper.**{*;}
|
||||
@@ -17,8 +17,11 @@ package com.qmuiteam.qmuidemo
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Application
|
||||
import android.content.ContentValues
|
||||
import android.content.Context
|
||||
import android.content.res.Configuration
|
||||
import android.os.Environment
|
||||
import android.provider.MediaStore
|
||||
import android.util.Log
|
||||
import coil.ImageLoader
|
||||
import coil.ImageLoaderFactory
|
||||
@@ -32,12 +35,26 @@ import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager
|
||||
import com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler
|
||||
import com.qmuiteam.qmuidemo.manager.QDSkinManager
|
||||
import com.qmuiteam.qmuidemo.manager.QDUpgradeManager
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import xcrash.TombstoneManager
|
||||
import xcrash.XCrash
|
||||
import java.io.File
|
||||
|
||||
|
||||
/**
|
||||
* Demo 的 Application 入口。
|
||||
* Created by cgine on 16/3/22.
|
||||
*/
|
||||
class QDApplication : Application(), ImageLoaderFactory {
|
||||
|
||||
override fun attachBaseContext(base: Context?) {
|
||||
super.attachBaseContext(base)
|
||||
XCrash.init(this)
|
||||
}
|
||||
|
||||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
context = applicationContext
|
||||
@@ -64,10 +81,27 @@ class QDApplication : Application(), ImageLoaderFactory {
|
||||
QMUISwipeBackActivityManager.init(this)
|
||||
QMUIQQFaceCompiler.setDefaultQQFaceManager(QDQQFaceManager.getInstance())
|
||||
QDSkinManager.install(this)
|
||||
SoLoader.init(this, false)
|
||||
val client = AndroidFlipperClient.getInstance(this)
|
||||
client.addPlugin(InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()))
|
||||
client.start()
|
||||
if(BuildConfig.DEBUG){
|
||||
SoLoader.init(this, false)
|
||||
val client = AndroidFlipperClient.getInstance(this)
|
||||
client.addPlugin(InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()))
|
||||
client.start()
|
||||
}
|
||||
|
||||
GlobalScope.launch(Dispatchers.IO) {
|
||||
delay(5000)
|
||||
for (file in TombstoneManager.getAllTombstones()) {
|
||||
val contentValues = ContentValues()
|
||||
contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, file.name)
|
||||
contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "txt")
|
||||
val uri = contentResolver.insert(MediaStore.Files.getContentUri("external"), contentValues) ?: continue
|
||||
contentResolver.openOutputStream(uri)?.use { out ->
|
||||
file.inputStream().use { ins ->
|
||||
ins.copyTo(out)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onConfigurationChanged(newConfig: Configuration) {
|
||||
|
||||
Reference in New Issue
Block a user