加载太慢 activity Jetpack Compose
Too slow loading activity Jetpack Compose
我的 activity 使用 Jetpack Compose 加载速度太慢(大约 5 秒)。我有 3 个屏幕,其中有 1 个 Lazy Vertical Grid 和我的自定义底部导航。有人知道如何并行编写此屏幕或使加载速度 activity 更快吗?
我的代码:
@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)
}
}
}
}
}
在您的 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")
}
}
- 最后一个要注意的是,当您的应用程序作为捆绑包从 Play 商店安装时,ART 进一步改进了这一点。
我的 activity 使用 Jetpack Compose 加载速度太慢(大约 5 秒)。我有 3 个屏幕,其中有 1 个 Lazy Vertical Grid 和我的自定义底部导航。有人知道如何并行编写此屏幕或使加载速度 activity 更快吗?
我的代码:
@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)
}
}
}
}
}
在您的 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")
}
}
- 最后一个要注意的是,当您的应用程序作为捆绑包从 Play 商店安装时,ART 进一步改进了这一点。