Ren*_*ele 5 android android-bottomnav android-jetpack-compose
我的 Jetpack Compose 活动加载速度太慢(大约 5 秒)。我有 3 个屏幕,带有 1 个惰性垂直网格和我的自定义底部导航。有人知道如何并行组成此屏幕或使加载活动更快吗?
我的代码:
@ExperimentalAnimationApi
@ExperimentalFoundationApi
@Composable
fun ComposeNavigation() {
val navController = rememberNavController()
ConstraintLayout(modifier = Modifier.fillMaxSize()) {
val (content, bottomSheet) = createRefs()
//Bottom is my custom bottom navigation
Bottom(navController, modifier = Modifier
.constrainAs(bottomSheet) {
start.linkTo(parent.start)
end.linkTo(parent.end)
bottom.linkTo(parent.bottom)
}
.fillMaxWidth())
Box(modifier = Modifier
.fillMaxWidth()
.constrainAs(content) {
start.linkTo(parent.start)
end.linkTo(parent.end)
}) {
NavHost(
navController = navController,
startDestination = "first_screen",
) {
composable("first_screen") {
FirstScreen(navController = navController)
}
composable("second_screen") {
SecondScreen(navController = navController)
}
composable("third_screen") {
ThirdScreen(navController = navController)
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
查找X屏幕视图中的渲染瓶颈。
我的错误之一是我用来模仿 neu 阴影的库https://github.com/CuriousNikhil/neumorphic-compose大大降低了渲染性能。消除所有这些影响后,该应用程序像火箭一样起飞。
只需使用 Android Studio 分析器运行您的应用程序https://developer.android.com/studio/profile/android-profiler(唯一可以帮助我找到瓶颈的东西)。
其他可能的混淆 - 如果您正在研究Debug构建变体的性能。尝试运行Release一个。这是我的Release配置(注意 Proguard(实际上是 R8)文件):
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android.txt"),
"proguard-rules.pro"
)
signingConfig = signingConfigs.getByName("release")
}
}
Run Code Online (Sandbox Code Playgroud)