0%

本篇博客主要分析Android架构组件的官方范例中的Basic Sample,主要介绍3个组件的使用:

  • Room
  • ViewModels
  • LiveData

整体架构

自上而下进行分析,APP参照下图架构。

请注意,每个组件仅依赖于其下一级的组件。例如,Activity 和 Fragment 仅依赖于视图模型。存储区是唯一依赖于其他多个类的类;在本例中,存储区依赖于持久性数据模型和远程后端数据源。
这种设计打造了一致且愉快的用户体验。无论用户上次使用应用是在几分钟前还是几天之前,现在回到应用时都会立即看到应用在本地保留的用户信息。如果此数据已过时,则应用的存储区模块将开始在后台更新数据。
官方文档链接

阅读全文 »

学Python,看到廖老师的文章,介绍了字符编码的问题,就按照文章的内容进行了测试,得到了不太一样的结果。

不过在看结果之前,先总结一下字符编码的历史背景,捋清楚最常见的三种字符编码ASCII,Unicode和Utf-8的差别。

字符编码发展

先看这张表:

字符	ASCII		Unicode			Utf-8
A 01000001 00000000 01000001 01000001
中 x 01001110 00101101 11100100 10111000 10101101

最开始的ASCII只能表示英文和基本的字符,中文是不支持的;

之后的Unicode做了统一处理,无论英文还是其他字符都用2个字节表示,即UCS-2方案,随着世界上各种国家更多字符需要表示,Unicode的2个字节如果无法满足需要,就将采用UCS-4方案,用4个字节表示;

Unicode的问题在于浪费空间,比如普通英文字符,最高8位全是0,鉴于此,产生了Utf-8。Utf-8是对Unicode编码通过一些算法和规则来转换得到的,是变长的编码,英文编码只用1个字节,汉字则是3个字节。

阅读全文 »

SSH

主要使用示例:

ssh user@172.16.80.12 # 远程登录
scp -r localdir/ user@172.16.80.12:/dir # 传输目录到远程机器
scp localfile user@172.16.80.12:/dir # 传输文件到远程机器

从远程机器传输文件到本地也一样,将两个目录倒置即可。

Tar

解压tar.xz文件,两步解压。

xz -d **.tar.xz # 将会将xz文件解压为tar
tar xvf **.tar # 将会将tar解压

其他查表操作

NULL

Conceptually, NULL means “a missing unknown value” and it is treated somewhat differently from other values.

To test for NULL, use the IS NULL and IS NOT NULL operators, as shown here:

SELECT 1 IS NULL, 1 IS NOT NULL;
+-----------+---------------+
| 1 IS NULL | 1 IS NOT NULL |
+-----------+---------------+
|
0 |
1 |
+-----------+---------------+

You cannot use arithmetic comparison operators such as =, <, or <> to test for NULL.

阅读全文 »

自定义从表中取回的信息

The SELECT statement is used to pull information from a table. The general form of the statement is:

SELECT what_to_select
FROM which_table
WHERE conditions_to_satisfy;
阅读全文 »

程序流程中常用的基本控制结构,包括顺序执行、比较和循环。本篇介绍Shell中的使用比较的方法。

比较与测试

主要使用if、ifelse和一些逻辑运算符进行比较,即:

if condition;
then
bye;
elif condition2;
then
bye2;
else
bye3;
fi

条件一般是由一对[ ]包裹或者一对[[ ]]包裹的部分,iffi组成一个完整的判断逻辑。

阅读全文 »

基本操作

列出和创建数据库

列出数据库

同样要先进MySQL的交互界面,执行:

Use the SHOW statement to find out what databases currently exist on the server:

SHOW DATABASES;
阅读全文 »

安装MySQL

检查本机是否安装了MySQL:

mysql --version

如果已经安装了,输出应该大致如下:

mysql  Ver 14.14 Distrib 5.5.37, for debian-linux-gnu (x86_64) using readline 6.2
阅读全文 »