【Android】ViewModel
1.简介 ViewModel是一种状态数据容器,用于将状态公开给UI(如activity或fragment)以及封装相关的业务逻辑。其主要优点是: 能够在配置变更(如旋转屏幕)时保持状态数据,使得UI重建后无需重新获取数据。 将UI与业务逻辑分离,从而更好地遵循单一职责原则。 官方文档:https://developer.android.google.cn/topic...
1.简介 ViewModel是一种状态数据容器,用于将状态公开给UI(如activity或fragment)以及封装相关的业务逻辑。其主要优点是: 能够在配置变更(如旋转屏幕)时保持状态数据,使得UI重建后无需重新获取数据。 将UI与业务逻辑分离,从而更好地遵循单一职责原则。 官方文档:https://developer.android.google.cn/topic...
1.简介 Fragment表示应用界面中可重复使用的部分,通过将界面划分为独立的块从而实现模块化和可重用性。Fragment定义并管理自己的布局,具有自己的生命周期。但fragment不能独立存在,必须由activity或其他fragment托管。 官方文档:https://developer.android.google.cn/guide/fragments API文档:http...
DCAF: A Dynamic Computation Allocation Framework for Online Serving System 论文链接:https://arxiv.org/pdf/2006.09684.pdf 1.引言 现代大型系统(如推荐系统和在线广告系统)基于计算密集型架构,流量增长导致系统压力巨大。此外,请求波动也给在线服务系统带来了严峻挑战(例如双十一购物节...
本章首先回顾网络相关的基本概念,然后编写连接到网络服务的Java程序,并展示网络客户端和服务器是如何实现的。最后将介绍如何用Java程序发送E-mail,以及如何从Web服务器获取信息。 4.1 连接到服务器 4.1.1使用Telnet Telnet程序是一个很好的网络编程调试工具,可以在命令行中输入telnet启动它。 注释:在Windows中,需要手动开启Telnet。打开控制面板→...
1.简介 Gradle是一个基于Groovy或Kotlin DSL的构建自动化工具,主要用于Java、Kotlin、Android等项目的构建、依赖管理和任务自动化。 官方网站:https://gradle.org/ 官方文档:https://docs.gradle.org/current/userguide/userguide.html 2.安装 https://gradle...
1.简介 Maven是一个软件项目管理工具,主要用于Java项目的自动构建和依赖管理。 官方网站:https://maven.apache.org/ 官方文档:https://maven.apache.org/guides/index.html 2.安装 https://maven.apache.org/install.html 首先,确保已经安装了JDK 8+。 ...
Android Studio默认将模拟器(AVD)数据存储在$HOME/.android/avd目录中,在Windows系统中会占用大量的C盘空间。可以通过设置环境变量指定存储目录,从而节省C盘空间。 环境变量 Android Studio最常用的环境变量如下表所示。 环境变量 描述 默认值 旧版本 ...
1.参数包 参数包(parameter pack)是C++11引入的模板特性,允许模板接受可变数量的参数,用语法...表示。参数包有两种形式: 模板参数包(template parameter pack)是接受零个或多个模板实参的模板形参,可以出现在类模板和函数模板的形参列表中。 函数参数包(function parameter pack)是接受零个或多个函数实参的函数形参,只能出...
本章将介绍用于输入和输出的Java API。你将学习如何访问文件和目录,以及如何以二进制和文本格式来读写数据。本章还会介绍对象序列化机制。最后将讨论正则表达式。 2.1 输入/输出流 在Java API中,可以从其中读取字节序列的对象称为输入流(input stream),可以向其中写入字节序列的对象称为输出流(output stream)。这些字节序列的来源和目的地可以是文件、网络连接,...
在实际中,通常会使用IDE(如IntelliJ IDEA或Eclipse)和构建工具(如Maven或Gradle)来构建Java项目。本文将介绍如何使用命令行构建,以便了解IDE和构建工具的底层实现原理。 1.单个源文件 首先考虑最简单的单个源文件场景。假设有一个源文件HelloWorld.java: public class HelloWorld { public static...