Android开发基础知识详解

课程代码

https://github.com/BellyBook/ChunxiangClassCode-Android

ComposeUI中的尾随闭包

ComposeUI中的尾随lambda是Kotlin的一个重要特性,可以让代码更简洁优雅。

  • Name
    基本概念
    Type
    concept
    Description
    • 函数的最后一个参数是lambda表达式
    • 可以在括号外编写lambda
    • 提高代码可读性
    • Compose UI广泛使用
  • Name
    使用场景
    Type
    usage
    Description
    • 界面组件定义
    • 点击事件处理
    • 状态管理
    • 布局组合

ComposeUI尾随闭包示例

// 普通的lambda写法
Button(
    onClick = { println("Clicked") }
) {
    Text("Click Me")
}

// 常见的Compose组件示例
Column {
    Text("Hello")
    Button(onClick = { /*处理点击*/ }) {
        Text("Click")
    }
}

// LaunchedEffect示例
LaunchedEffect(key1 = true) {
    // 协程作用域
    delay(1000L)
    println("延迟执行")
}

Android Manifest详解

AndroidManifest.xml是应用程序的配置文件。

  • Name
    重要配置
    Type
    config
    Description
    • 应用权限声明
    • 组件注册
    • 应用属性设置
    • 系统要求
  • Name
    常见元素
    Type
    elements
    Description
    • application
    • activity
    • service
    • receiver

AndroidManifest.xml示例

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp">
    
    <!-- 权限声明 -->
    <uses-permission android:name="android.permission.INTERNET" />
    
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.MyApp">
        
        <!-- 主Activity -->
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

res文件夹详解

res文件夹包含应用程序的所有资源文件。

  • Name
    常用目录
    Type
    directories
    Description
    • layout
    • drawable
    • values
    • mipmap
  • Name
    资源类型
    Type
    resources
    Description
    • 字符串资源
    • 颜色资源
    • 尺寸资源
    • 主题样式

res资源使用示例

// 在Compose中使用资源
@Composable
fun ResourceDemo() {
    Column {
        // 使用字符串资源
        Text(
            text = stringResource(R.string.hello_world),
            color = colorResource(R.color.primary)
        )
        
        // 使用尺寸资源
        Spacer(modifier = Modifier.height(
            dimensionResource(R.dimen.spacing_medium)
        ))
        
        // 使用图片资源
        Image(
            painter = painterResource(R.drawable.my_image),
            contentDescription = null
        )
    }
}

// res/values/strings.xml示例
// <?xml version="1.0" encoding="utf-8"?>
// <resources>
//     <string name="app_name">我的应用</string>
//     <string name="hello_world">你好,世界!</string>
// </resources>

// res/values/colors.xml示例
// <?xml version="1.0" encoding="utf-8"?>
// <resources>
//     <color name="primary">#FF6200EE</color>
//     <color name="secondary">#FF03DAC5</color>
// </resources>

这篇文章对你有用吗?