【Android 学习笔记】
Android 是一款开源的操作系统,主要用于移动设备,如智能手机和平板电脑。对于初学者来说,理解其基本概念和组件是至关重要的。这篇笔记将涵盖一些核心的 Android 开发知识点,帮助你从零开始构建你的 Android 应用。
1. **编码与字符串操作**
- Android 默认编码格式通常是 UTF-8,但此处提到了 GBK 编码,这是中国常用的简体中文编码方式。
- `str.lastIndexOf(‘/’)`:返回字符串中指定字符(这里是'/')最后一次出现的索引。
- `str.subString(5)`:从字符串的第5个字符开始截取子字符串。
2. **布局管理**
- `TableLayout` 是一种布局方式,允许你创建表格格式的界面。
- `android.layout_weight` 属性用于分配控件在父容器中的空间占比。
- `GridView` 是一个可滚动的网格视图,通常用于显示大量的数据项。
- `setBackgroundResource(int)` 设置背景资源,`setNumColumns(5)` 设置每行的列数,`setGravity(Gravity.CENTER)` 设置显示位置,`setVerticalSpacing(10)` 和 `setHorizontalSpacing(10)` 分别设置垂直和水平间隔,`setAdapter(adapter)` 用于加载数据到 GridView。
3. **Adapter** 是 Android 中的关键组件,它作为数据源和视图之间的桥梁,使得数据能在界面中展示。
4. **单元测试**
- 要进行单元测试,需要在 `AndroidManifest.xml` 中配置 `<uses-library>` 和 `<instrumentation>` 标签,并指定测试运行器。
- `Assert.assertEquals(a, b)` 用于验证 a 和 b 是否相等,是测试框架中的基础断言方法。
5. **Android 异步交互**
- 主线程(UI 线程)不应执行耗时操作,否则会导致应用无响应。通过 `Handler` 和 `Message` 可实现在后台线程与主线程间的通信。
- 创建一个 `Handler` 对象,发送和接收消息,如 `msg.getData().getInt("key")` 用于获取数据。
6. **数据存储**
- 使用 `context.openFileOutput(filename, Context.MODE_PRIVATE)` 可以打开一个文件输出流,以私有模式写入数据。`MODE_PRIVATE` 确保只有应用本身能访问。
- `outStream.write(content.getBytes())` 写入字节数据到文件。
- `this.getFilesDir()` 返回应用的内部文件目录,`this.getCacheDir()` 返回缓存目录。
- 数据存储的四种模式:
- `Context.MODE_PRIVATE`:默认模式,私有,仅应用可访问。
- `Context.MODE_APPEND`:如果文件存在,追加内容,不存在则创建。
- `Context.WORLD_READABLE`:其他应用可读取。
- `Context.WORLD_WRITEABLE`:其他应用可写入。
7. **SDCard 访问**
- `Environment.getExternalStorageDirectory()` 获取 SD 卡的根目录。
- `Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)` 检查 SD 卡是否已挂载可用。
8. **异常处理**
- 在 Model 层中,异常应该抛出,以便 Controller 层捕获并进行相应处理,这样更符合 MVC 模式,使得 Model 层保持简洁。
以上是 Android 入门的一些关键知识点,通过这些内容,你可以开始构建简单的 Android 应用,并逐步深入学习更多高级特性。记住,实践是最好的老师,尝试编写实际的代码项目将加速你的学习过程。