3.24

安卓架构组件(Jetpack Architecture Components)深度解析​
Jetpack 架构组件是一套帮助开发者构建高质量安卓应用的库,包括 ViewModel、LiveData、Room 等,它们可以有效分离应用的业务逻辑和 UI,提升代码的可维护性和可测试性。​

  1. ViewModel​
    ViewModel 用于存储与 UI 相关的数据,并负责处理业务逻辑。它的生命周期独立于 Activity 和 Fragment,避免了因配置变化(如屏幕旋转)导致的数据丢失。​

    class MainViewModel : ViewModel() {​
    private val _count = MutableLiveData()​
    val count: LiveData = _count​

    init {​
    _count.value = 0​
    }​

    fun increment() {​
    _count.value = _count.value?.plus(1)​
    }​
    }​

    在 Activity 中使用 ViewModel:​

    class MainActivity : AppCompatActivity() {​
    private lateinit var viewModel: MainViewModel​
    override fun onCreate(savedInstanceState: Bundle?) {​
    super.onCreate(savedInstanceState)​
    viewModel = ViewModelProvider(this).get(MainViewModel::class.java)​
    viewModel.count.observe(this, Observer { value ->​
    textView.text = "Count: $value"​
    })​
    button.setOnClickListener {​
    viewModel.increment()​
    }​
    }​
    }​
  2. LiveData​
    LiveData 是一种可观察的数据持有者类,具有生命周期感知能力,只有在相关组件处于活跃状态时才会更新数据,避免了内存泄漏和不必要的更新。​
  3. Room​
    Room 是安卓的 ORM(对象关系映射)库,用于简化 SQLite 数据库操作。定义一个数据实体类和 DAO(数据访问对象):​

    @Entity(tableName = "users")​
    data class User(​
    @PrimaryKey(autoGenerate = true)​
    val id: Int = 0,​
    val name: String,​
    val age: Int​
    )​

    @Dao​
    interface UserDao {​
    @Insert​
    suspend fun insert(user: User)​
    @Query("SELECT * FROM users")​
    fun getAll(): LiveData<List>​
    }​

    通过使用这些架构组件,可以构建出结构清晰、易于维护的安卓应用架构。
posted @ 2025-03-24 21:52  Echosssss  阅读(6)  评论(0)    收藏  举报