Commit 625eabe6 authored by dsq's avatar dsq

崩溃

parent 7dbef7e8
package com.dong.demo013 package com.dong.demo013
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.* import androidx.compose.material.*
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import com.dong.demo013.demos.Log.TestLogDemo import com.dong.demo013.Log.HighLogDemo
import com.dong.demo013.navigation.ComponentDemo import com.dong.demo013.navigation.ComponentDemo
import com.dong.demo013.navigation.ComposeGroup import com.dong.demo013.navigation.ComposeGroup
import com.dong.demo013.navigation.Page import com.dong.demo013.navigation.Page
import com.dong.maxhap.demos.FaultLogDemo
@Composable @Composable
internal fun App() { internal fun App() {
...@@ -56,7 +55,7 @@ internal fun HomeScreen( ...@@ -56,7 +55,7 @@ internal fun HomeScreen(
.padding(16.dp) .padding(16.dp)
) { ) {
Text( Text(
text = "嵌套页面", text = "debug测试",
style = MaterialTheme.typography.h6, style = MaterialTheme.typography.h6,
modifier = Modifier.padding(bottom = 12.dp) modifier = Modifier.padding(bottom = 12.dp)
) )
...@@ -67,11 +66,8 @@ internal fun HomeScreen( ...@@ -67,11 +66,8 @@ internal fun HomeScreen(
modifier = Modifier.fillMaxWidth() modifier = Modifier.fillMaxWidth()
) { ) {
Column(modifier = Modifier.padding(12.dp)) { Column(modifier = Modifier.padding(12.dp)) {
Text("这是一个嵌套页面示例", style = MaterialTheme.typography.body1) Text("还在施工中........", style = MaterialTheme.typography.body1)
Spacer(Modifier.height(8.dp)) Spacer(Modifier.height(8.dp))
Text("可以展示一些基础的UI组件和交互效果",
style = MaterialTheme.typography.caption,
color = MaterialTheme.colors.onSurface.copy(alpha = 0.7f))
} }
} }
} }
...@@ -103,7 +99,7 @@ internal fun HomeScreen( ...@@ -103,7 +99,7 @@ internal fun HomeScreen(
onClick = { onClick = {
val logDemo = ComponentDemo( val logDemo = ComponentDemo(
id = "log_test_demo", id = "log_test_demo",
title = "日志测试演示", title = "日志测试演示(持续产生)",
group = ComposeGroup.Foundation group = ComposeGroup.Foundation
) )
onSelect(logDemo) onSelect(logDemo)
...@@ -114,34 +110,29 @@ internal fun HomeScreen( ...@@ -114,34 +110,29 @@ internal fun HomeScreen(
} }
} }
} Column(
} modifier = Modifier.fillMaxWidth(),
verticalArrangement = Arrangement.spacedBy(8.dp)
) {
Button(
onClick = {
val logDemo = ComponentDemo(
id = "log_fault_demo",
title = "Fault日志",
group = ComposeGroup.Foundation
)
onSelect(logDemo)
},
modifier = Modifier.fillMaxWidth()
) {
Text("进入Fault日志测试")
}
// 第三个模块:大体积包 }
Card(
modifier = Modifier.fillMaxWidth(),
elevation = 8.dp,
shape = RoundedCornerShape(12.dp)
) {
Column(
modifier = Modifier
.fillMaxWidth()
.padding(16.dp)
) {
Text(
text = "大体积包",
style = MaterialTheme.typography.h6,
modifier = Modifier.padding(bottom = 12.dp)
)
// 占位内容
Text(
text = "大体积包内容区域",
style = MaterialTheme.typography.body1,
color = MaterialTheme.colors.onSurface.copy(alpha = 0.6f)
)
} }
} }
} }
} }
...@@ -166,7 +157,10 @@ internal fun DemoScreen( ...@@ -166,7 +157,10 @@ internal fun DemoScreen(
// 根据 demo.id 显示对应的内容 // 根据 demo.id 显示对应的内容
when (demo.id) { when (demo.id) {
"log_test_demo" -> { "log_test_demo" -> {
TestLogDemo() HighLogDemo()
}
"log_fault_demo" -> {
FaultLogDemo()
} }
else -> { else -> {
Text( Text(
......
package com.dong.maxhap.demos
import androidx.compose.foundation.layout.*
import androidx.compose.material.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
@Composable
internal fun FaultLogDemo() {
Column(
modifier = Modifier.fillMaxSize().padding(16.dp),
verticalArrangement = Arrangement.spacedBy(16.dp)
) {
// 1. 最简单的StackOverflow
Button(
onClick = {
// 无限递归 - 栈溢出
fun infinite(): Int = infinite() + 1
infinite() // 触发 StackOverflowError
},
) {
Text("触发Fault 1: 栈溢出", color = Color.White)
}
}
}
\ No newline at end of file
package com.dong.demo013.demos.Log package com.dong.demo013.Log
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.text.KeyboardOptions
...@@ -16,7 +16,7 @@ import kotlinx.coroutines.delay ...@@ -16,7 +16,7 @@ import kotlinx.coroutines.delay
@OptIn(ExperimentalLayoutApi::class) @OptIn(ExperimentalLayoutApi::class)
@Composable @Composable
internal fun TestLogDemo() { internal fun HighLogDemo() {
// 日志参数状态 // 日志参数状态
var logSpeed by remember { mutableStateOf("100") } var logSpeed by remember { mutableStateOf("100") }
var logCount by remember { mutableStateOf(0) } var logCount by remember { mutableStateOf(0) }
......
// NativeFault.kt
package com.dong.maxhap.demos
import androidx.compose.foundation.layout.*
import androidx.compose.material.Button
import androidx.compose.material.ButtonDefaults
import androidx.compose.material.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
@Composable
internal fun SimpleFaultTrigger() {
var trigger by remember { mutableStateOf(false) }
Column(
modifier = Modifier
.fillMaxSize()
.padding(16.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Button(
onClick = {
val list = listOf("A", "B", "C")
// 直接越界访问 - 立即崩溃
val item = list[5] // ArrayIndexOutOfBoundsException
println(item)
},
modifier = Modifier
.fillMaxWidth()
.height(50.dp),
colors = ButtonDefaults.buttonColors(
backgroundColor = Color(0xFF4CAF50)
)
) {
Text(
text = "点击触发越界",
fontSize = 18.sp,
fontWeight = FontWeight.Medium,
color = Color.White
)
}
Spacer(modifier = Modifier.height(20.dp))
}
}
package com.dong.demo013.debug
class debug {
}
\ No newline at end of file
...@@ -11,48 +11,10 @@ data class ComponentDemo( ...@@ -11,48 +11,10 @@ data class ComponentDemo(
) )
val componentDemos: List<ComponentDemo> = listOf( val componentDemos: List<ComponentDemo> = listOf(
// ui // Log
ComponentDemo("ui_box", "Box", ComposeGroup.Ui),
// foundation
ComponentDemo("foundation_basic_text", "BasicText", ComposeGroup.Foundation),
ComponentDemo("foundation_lazy_column", "LazyColumn", ComposeGroup.Foundation),
// log
ComponentDemo("log_test_demo", "日志测试演示", ComposeGroup.Foundation), ComponentDemo("log_test_demo", "日志测试演示", ComposeGroup.Foundation),
// material 组:新增完整清单 ComponentDemo("log_fault_demo", "fault日志测试", ComposeGroup.Foundation),
ComponentDemo("material_alert_dialog", "AlertDialogSample", ComposeGroup.Material),
ComponentDemo("material_app_bar", "AppBarSamples", ComposeGroup.Material),
ComponentDemo("material_backdrop_scaffold", "BackdropScaffoldSamples", ComposeGroup.Material),
ComponentDemo("material_badge", "BadgeSamples", ComposeGroup.Material),
ComponentDemo("material_bottom_navigation", "BottomNavigationSamples", ComposeGroup.Material),
ComponentDemo("material_bottom_sheet_scaffold", "BottomSheetScaffoldSamples", ComposeGroup.Material),
ComponentDemo("material_button_samples", "ButtonSamples", ComposeGroup.Material),
ComponentDemo("material_card_samples", "CardSamples", ComposeGroup.Material),
ComponentDemo("material_chip_samples", "ChipSamples", ComposeGroup.Material),
ComponentDemo("material_content_alpha", "ContentAlphaSamples", ComposeGroup.Material),
ComponentDemo("material_drawer_samples", "DrawerSamples", ComposeGroup.Material),
ComponentDemo("material_elevation_samples", "ElevationSamples", ComposeGroup.Material),
ComponentDemo("material_exposed_dropdown_menu", "ExposedDropdownMenuSamples", ComposeGroup.Material),
ComponentDemo("material_fab_samples", "FloatingActionButtonSamples", ComposeGroup.Material),
ComponentDemo("material_icon_button_samples", "IconButtonSamples", ComposeGroup.Material),
ComponentDemo("material_list_samples", "ListSamples", ComposeGroup.Material),
ComponentDemo("material_menu_samples", "MenuSamples", ComposeGroup.Material),
ComponentDemo("material_modal_bottom_sheet", "ModalBottomSheetSamples", ComposeGroup.Material),
ComponentDemo("material_navigation_rail", "NavigationRailSample", ComposeGroup.Material),
ComponentDemo("material_progress_indicator", "ProgressIndicatorSamples", ComposeGroup.Material),
ComponentDemo("material_pull_refresh", "PullRefreshSamples", ComposeGroup.Material),
ComponentDemo("material_scaffold_samples", "ScaffoldSamples", ComposeGroup.Material),
ComponentDemo("material_selection_controls", "SelectionControlsSamples", ComposeGroup.Material),
ComponentDemo("material_slider_sample", "SliderSample", ComposeGroup.Material),
ComponentDemo("material_surface_samples", "SurfaceSamples", ComposeGroup.Material),
ComponentDemo("material_swipeable_samples", "SwipeableSamples", ComposeGroup.Material),
ComponentDemo("material_swipe_to_dismiss", "SwipeToDismissSamples", ComposeGroup.Material),
ComponentDemo("material_tab_samples", "TabSamples", ComposeGroup.Material),
ComponentDemo("material_text_field_samples", "TextFieldSamples", ComposeGroup.Material),
ComponentDemo("material_text_samples", "TextSamples", ComposeGroup.Material),
ComponentDemo("material_theme_samples", "ThemeSamples", ComposeGroup.Material),
// benchmark
ComponentDemo("benchmark_1500_text", "1500 Text", ComposeGroup.Benchmark),
ComponentDemo("benchmark_1500_view", "1500 View", ComposeGroup.Benchmark),
) )
val groupTitles: Map<ComposeGroup, String> = mapOf( val groupTitles: Map<ComposeGroup, String> = mapOf(
......
...@@ -75,6 +75,9 @@ typedef struct { ...@@ -75,6 +75,9 @@ typedef struct {
typedef struct { typedef struct {
libkn_KNativePtr pinned; libkn_KNativePtr pinned;
} libkn_kref_com_dong_demo013_LogController; } libkn_kref_com_dong_demo013_LogController;
typedef struct {
libkn_KNativePtr pinned;
} libkn_kref_com_dong_demo013_debug_debug;
typedef struct { typedef struct {
libkn_KNativePtr pinned; libkn_KNativePtr pinned;
} libkn_kref_kotlin_collections_List; } libkn_kref_kotlin_collections_List;
...@@ -199,6 +202,13 @@ typedef struct { ...@@ -199,6 +202,13 @@ typedef struct {
struct { struct {
struct { struct {
struct { struct {
struct {
struct {
libkn_KType* (*_type)(void);
libkn_kref_com_dong_demo013_debug_debug (*debug)();
} debug;
libkn_KInt (*com_dong_demo013_debug_debug$stableprop_getter)();
} debug;
struct { struct {
struct { struct {
struct { struct {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment