有的时候又翻译成`新式安卓开发`,个人觉得前者的翻译虽然激进、倒也贴切。下面按照 MAD 的构成要点逐步展开,帮助大家快速了解 MAD 的技术理念。如果大家对其中的语言、工具包或框架产生了兴趣,一定要在日后的开发中尝试和掌握。## 内容前瞻1. 【Modern Android Development】讲述 Android 全新开发技术的由来和构成2. 【Android Studio】演示 Android 官方 IDE 的重要特性3. 【Android App Bundle】简要普及 Google 推...
MAD 的全称是 Modern Android Development , 它是一系列技术栈和工具链的集合,涵盖了从编程语言到开发框架等各个环节。![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/816cd653f4984adf87697... Bundle().apply { putInt("layoutId", layoutId()) })}.let { fragment -> supportFragmentManager.beginTransaction() .apply { if (needAdd) add(R.id.fragment_container, fragm...
开发者会通过监听存放截屏文件的媒体目录的变化来迂回实现,这往往需要 Runtime 级别的读写权限,而且稍有不慎还可能牵扯到隐私问题。那么 Android 14 为了规范这种开发需求,推出了专用 API,即 `ScreenShotCallbac... override fun onCreate(savedInstanceState: Bundle?) { ... val greenPaint = Paint().apply { color = Color.GREEN } with(binding.textview1...
Android 13 的版本里 Android 就针对***返回导航***进行了大量更改,包括:1. 废弃原有的 `KEYCODE_BACK` KeyEvent2. 提供 Manifest 属性 `enableOnBackInvokedCallback` 以配置是否应用全新的 Back 导航特性3... override fun onCreate(savedInstanceState: Bundle?) { ... if (BuildCompat.isAtLeastT()) { onBackInvokedCallback = OnBackInvokedCallback { onBackEven...
范围下载指的是仅下载对象数据的一部分,可以在 getObject 接口中设置 range 参数来指定下载对象的范围。 示例代码以下代码展示如何下载对象的一部分。 java import android.os.Bundle;import android.util.Log;imp... // 需要确保下载的数据已存在 String objectKey = "your object key"; String filePath = "your file path"; super.onCreate(savedInstanceState); setContentView(R.layout....
用来储存对象数据。如下代码展示如何创建一个新的桶。 java import android.os.Bundle;import android.util.Log;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.bucket.CreateBucketV2Input;import com.volcengine.tos.model.bucket.CreateBucketV2Output;public cla...
示例代码以下代码展示如何断点续传下载大对象。 java import android.os.Bundle;import android.util.Log;import androidx.appcompat.app.AppCompatActivity;import com.volcengine.tos.TOSV2;import com.volceng... 确保路径下不存在文件,否则会将其覆盖。 // 如果 objectKey 以 "/"(linux 或 macOS 系统) 或 "\"(Windows 系统)结尾,将在本地生成对应空文件夹 String downloadFilePath = "the path of file to dow...
可以列举桶内的多版本对象信息,每次最大返回 1000 个多版本对象。 参数说明参数 描述 prefix 本次查询结果的前缀。 delimiter 进行对象名称分组的字符。 keyMarker 此次列举对象的起点。 encodingType 返回 Key 编码类型。默认值: None maxKeys 最大返回数。 versionIdMarker 版本号分页标识。 列举所有多版本对象以下代码展示如何分页列举所有多版本对象。 java import android.os.Bundle;import android.util.L...
对象被覆盖且对象类型由 Appendable 变为 Normal。反之通过 putObject 上传的对象不支持追加写操作。 appendObject 创建的对象不支持拷贝。 如果您的存储桶处于开启或者暂停多版本功能的状态下,或存储桶的类型为低频存储,则无法使用appendObject 接口追加对象。 示例代码以下代码展示如何追加写对象到目标桶中。 java import android.os.Bundle;import android.util.Log;import androidx.appcompat.app.AppCompatActivity;impor...
普通下载指的是通过 SDK 的 getObject 从指定桶中下载完整对象。在使用此接口之前,请确保您拥有对此对象的读访问权限。 示例代码以下代码展示如何下载一个对象。 java import android.os.Bundle;import android.ut... { // 下载不存在的对象会返回404 Log.e("TosException", "the object you want to download is not found"); } else { ...
对象小于 1GiB 时,您可以使用普通拷贝。本文介绍普通拷贝的示例代码。 示例代码以下代码用于通过 copyObject 拷贝 srcBucketName 桶中 srcObjectKey 对象到 bucketName 桶中,并设置对象名为 objectKey。 java import android.os.Bundle;import android.util.Log;import androidx.appcompat.app.AppCompatActivity;import com.volcengine.tos.TOSV2;import com.volcengine.tos.TOSV2ClientBuilder;import com.volcengine.tos.TosE...
设置对象元数据以下代码展示如何通过 setObjectMeta 接口设置对象的 Content-Type,以及设置对象的自定义元数据,用于标识对象的用途或属性等。 java import android.os.Bundle;import android.util.Log;import and... 存储类型 options.setStorageClass(StorageClassType.STORAGE_CLASS_STANDARD); // SDK 默认会根据 objectKey 后缀识别 Content-Type,也可以自定义设置 ...
每次最大返回 1000 个对象,列举结果默认返回桶的 Owner 信息。 参数说明参数 描述 prefix 本次查询结果的前缀。 delimiter 进行对象名称分组的字符,默认为 /。 marker 此次列举对象的起点。 encodingType 返回 Key 编码类型。 maxKeys 最大返回数,最大值为 1000,即一次列举最多返回 1000 个对象。 列举所有对象以下代码展示如何列举指定桶中的所有对象。 java import android.os.Bundle;import android.util.Log;im...