对讲机软件

通讯录、未接来电等的结构为什么采用链表?

链表的好处、插入、删除方便。
查询会采用顺序查找。

通讯录、未接来电等的存储地址是否交叉?

不交叉,独立地址空间。

比如老版本的手机,通讯录只能存200条。SIM卡通讯录只能存固定条数。

新版手机呢?地址空间是否会交叉?

通讯录、未接来电等的是怎样存储的?

以文件的形式存在flash上。不同的通讯录用偏移量表示。

  • 面临的挑战:插入和删除会造成大量数据的移位,较多写操作。
  • 解决办法是:在内存中插入和删除,然后统一写入flash上

貌似这个办法写操作更多吧??

之前没有缓存机制,整个链表在内存中构建好。用户从中间删除。

存储占用空间是否是固定的?如果是固定的为什么不采用数组的方式存储?

加载

对讲机开机时会加载。

每个链表有自己的id。比如通讯录链表的id=1,未接来电的id=3。
如果内存中找不到该id,就会重新加载。