Meetrue

两种增量更新方案

在邮件/日历/SNS等客户端里,客户端数据要不断与服务端进行数据同步,在同步过程中,只拉取有修改的数据,称为增量更新,增量更新方案一般有两种,一是对比,二是日志。
对比
对比就是客户端请求服务端所有关键数据,跟本地已有的数据进行对比,筛选出增删改的数据进行更新。
用对比方法的好处是服务端什么都不用做,坏处是客户端逻辑复杂,耗网络流量。在这种方案里,数据的新增和删除很容易判断,根据客户端数据的id列表和服务端数据的id列表进行对比就行,若要判断哪个数据有修改则比较麻烦,需要取回数据进行对比,如果从服务端拉回所有对所有数据进行对比会很耗网络流量,有一个优化方式,就是对每个数据的修改进行标记。

Read More

pomelo2 so库生成(储备)

  • 环境:ubuntu 14
  • 软件:android ndk r10 for linux、pomelo2 源码、gyp

1、下载libpomelo2的代码

直接从github上下载就可以。

Read More

获取图片视频的URI处理(含KitKat+)

获取视频资源URL处理

问题现象:

在dzb项目中,发布活动—>添加视频或图片,有的手机上会报错,错误提示查找资源时取值出现问题Cursor

产生问题原因:

  • 前提1. KitKat之后版本中无法操作外置Sdcard,详细内容参考:外部存储权限
  • 前提2. SAF,Android4.4中引入了Storage Access Framework存储访问框架,简称(SAF)。该框架是为了符合前提1的权限控制实现的。通过各种DocumentProvider(ContentProvider的子类)来向外提供资源。详细内容参考:android存储访问框架Storage Access Framework

    有了以上两个前提,就可以判断出问题的原因:

因为有了documentProvider,所以有了和以前不一样的URI,格式如content://com.android.providers.media.documents/document/video%3A358817
而我们现有代码处理的URI还是默认为原contentProvider的uri,格式如content://media/external/video/media/263262
用同样的方式去找资源就会出错

解决方式:

拿到URI以后,判断到底是属于哪种类型的,根据不同类型采取不同的方法

以下是GIT上开源的一个例子,getpath()方法最终要实现的是拿到文件的路径,在其它项目中可以根据需要进行修改

 
 

示意图

iOS 应用架构

MVC经典设计模式在iOS中也体现的淋漓精致,通过Apple官方的文档也可以看出来。

场景分析:我们知道,一个移动设备的应用大多与网络有关,也就是说,我在移动设备上看到的数据,一般都是从Server上”拉“过来,显示在我们的移动设备上。用编程(开发)的思维看,就是定义什么实体(业务实体)、发送请求、解析数据。当然这也只是大体的过程。但从软件架构设计上讲,定义实体、发送请求、解析数据都是具有单独意义的模块。那我们怎么处理这些模块呢?

iOS开发中 所有的业务&UI其实都可以写在Controller中,这样虽然直观,但一旦需求有所改动,对日后的维护带来很多不便。为了解决这个问题,提出了分层的架构思想。
Read More

Pages:12