android - Jetpack Compose 加载活动太慢
问题描述
使用 Jetpack Compose(大约 5 秒)时,我的活动加载速度太慢。我有 3 个屏幕,带有 1 个 Lazy Vertical Grid 和我的自定义底部导航。有人知道如何并行组合此屏幕或使加载活动更快吗?
我的代码:
@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
在屏幕视图中寻找渲染瓶颈。
我的一个错误是,我用来模仿神经阴影的库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 进一步改进了这件事。
推荐阅读
- reactjs - 滚动到组件功能的底部仅在按下输入时才起作用,而不是在单击按钮时起作用
- selenium - 脚本有时会出现 TimeOutException。有时工作正常
- angular - 声明类型既不是“void”也不是“any”的函数必须返回一个值。角度数据表
- python - Scikit-learn - 如何在新数据上使用 MinMaxScaler
- javascript - 反转数组,让新数组中的元素与原始数组元素等长 - JavaScript
- python - 嵌套 - 字典中的列表和来自同一索引的值
- python - python代码类似于Get-AzureRmResourceGroupDeployment power shell命令
- python - Tkinter 类中的“Self.Label 不可调用”
- html - 引导导航栏上方的图标
- javascript - jQuery Click 事件重新加载页面