有的时候 Google 会将其翻译成`现代安卓开发`,有的时候又翻译成`新式安卓开发`,个人觉得前者的翻译虽然激进、倒也贴切。下面按照 MAD 的构成要点逐步展开,帮助大家快速了解 MAD 的技术理念。如果大家对其中的语言... 【Android Studio】演示 Android 官方 IDE 的重要特性3. 【Android App Bundle】简要普及 Google 推崇的 App 新格式4. 【**Kotlin**】解读 Android 首推的开发语言的优点6. 【**Jetpack**】讲述 Android 持...
Android 自 08 年诞生之后的多年间 SDK 变化一直不大,开发方式较为固定。13 年起技术更新逐渐加速,特别是 17年之后, 随着 Kotlin 及 Jetpack 等新技术的出现 Android 开发方式发生了很大变化,去年推出的 Jetpack C... ()}```如上,我们使用 data class 定义 `UiState` 用在 ViewModel 中。 val 声明属性保证了 State 的不可变性。使用密封类定义 `Result` 有利于对各种请求结果进行枚举,简化逻辑。```kotlinprivate val _uiS...
Android OS- 12L- IoT- Kotlin- Jetpack- Jetpack Compose- Android Studio- AGP# Android OS## Material YouAndroid12 在10月进行了正式推送。Android12 的最大亮点就是基于 Material You 设计语言... override fun onCreate(savedInstanceState: Bundle?) { ... lifecycleScope.launch { repeatOnLifecycle(Lifecycle.State.STARTED) { viewModel.userMessages.c...
对外版本为 **Android 14**。一般来说,升级任务分为 ROM 角度和 App 角度,前者比较关心系统内部实现的变化,后者则更加关心对外的 **New Features** 和 **Behavior Changes**。本文主要聚焦在 App 角度,即作为 3r... override fun onCreate(savedInstanceState: Bundle?) { ... val greenPaint = Paint().apply { color = Color.GREEN } with(binding.textview1...
示例代码以下代码展示如何断点续传下载大对象。 java import android.os.Bundle;import android.util.Log;import androidx.appcompat.app.AppCompatActivity;import com.volcengine.tos.TOSV2;import com.volceng... import com.volcengine.tos.model.object.HeadObjectV2Input;public class DownloadFileExample extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { Stri...
示例代码以下代码展示如何使用断点续传接口上传文件。 java import android.os.Bundle;import android.util.Log;import androidx.appcompat.app.AppCompatActivity;import com.volcengine.tos.TOSV2;import com.v... import com.volcengine.tos.model.object.UploadFileV2Output;public class UploadFileExample extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { Strin...
import androidx.appcompat.app.AppCompatActivity;import com.volcengine.tos.TOSV2;import com.volcengine.tos.TOSV2ClientBuilder;import com.volcengine.tos.TosException;import com.volcengine.tos.model.ob... public class GetObjectInStringExample extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { String endpoint = "your endpoint"; String region ...
Android SDK 支持通过流式或者文件的方式上传一个对象到 TOS 服务端。本文介绍如何使用流式上传和文件上传方式上传您的数据。 上传说明流式上传:指使用文件流、网络流等流式数据或字符串、byte 数组作为 TOS 的数据... model.object.PutObjectOutput;import java.io.ByteArrayInputStream;public class PutObjectByteExample extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { ...
import com.volcengine.tos.model.object.ObjectMetaRequestOptions;import com.volcengine.tos.model.object.SetObjectMetaInput;import com.volcengine.tos.model.object.SetObjectMetaOutput;import java.io.By... super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_message); TOSV2 tos = new TOSV2ClientBuilder().build(region, endpoint, accessKey, secretKey, securi...
import com.volcengine.tos.model.object.CompleteMultipartUploadV2Input;import com.volcengine.tos.model.object.CompleteMultipartUploadV2Output;import com.volcengine.tos.model.object.CreateMultipartUpl... super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_message); TOSV2 tos = new TOSV2ClientBuilder().build(region, endpoint, accessKey, secretKey, securi...
Compose 不止能用于 Android 应用开发,借助其分层的架构设计以及 Kotlin 的跨平台优势,也是一个极具潜力的 Kotlin 跨平台框架。本文让我们从 Compose Runtime 的视角出发,看看 Compose 实现跨平台开发的基本原理。... 绘制等 UI 渲染工作- **Compose Foundation**: 提供用于布局的基础 Composable 组件,例如 `Column`,`Row` 等。- **Compose Material**:提供上层的面向 Material 设计风格的 Composable 组件。各层的职责明确,其...
正文开始前先统一一下文中的用语:- **compose-jb**:Compose Multiplatform 简称,包含下面三者- **compose-android**:Jetpack Compose- **compose-desktop**:Compose for Desktop- **compose-web**: Compose fo... var windowSize by remember { mutableStateOf(IntSize.Zero) } var windowLocation by remember { mutableStateOf(IntOffset.Zero) } AppWindowAmbient.current?.apply { events...
Android 13 的版本里 Android 就针对***返回导航***进行了大量更改,包括:1. 废弃原有的 `KEYCODE_BACK` KeyEvent2. 提供 Manifest 属性 `enableOnBackInvokedCallback` 以配置是否应用全新的 Back 导航特性3... override fun onCreate(savedInstanceState: Bundle?) { ... if (BuildCompat.isAtLeastT()) { onBackInvokedCallback = OnBackInvokedCallback { onBackEven...