首页 > 代码库 > APP研发录笔记

APP研发录笔记

一、消灭全局变量

  在内存不足时,系统会回收一部分闲置的资源,由于App被切换到后台,所以之前存放的全局变量很容易被回收,这时再切换到前台继续使用,会报空指针崩溃。想彻底解决这个问题,就要使用序列化。

  1.把数据作为intent的参数传递

  使用intent进行页面间数据的传递,即使activity被摧毁,intent上的数据依然存在,所以intent是保存数据的好地方,比本地文件靠谱。

  但是intent能传递的数据类型也必须支持序列化,像JSONObject这样的数据类型,是传不过去的。

  intent上携带的数据量过大,也会发生崩溃。

  2.把全局变量序列化到本地

  我们在每次修改全局变量时,都要把值序列化到本地文件中,我们再次使用全局变量时,如果为空,就从本地文件中再反序列化到内存中。这不是长远之计。

  序列化的缺点:①每次设置全局变量的值都要强制执行一次序列化的操作,容易造成ANR。

  ②序列化生成的文件,会因为内存不够而丢失。

 

 

二、App数据缓存设计

  App缓存只能针对GET类型的接口,对POST不适用。因为GET是获取数据,而POST是修改数据。

  可以添加一个强制更新按钮,暴露一个boolean类型的参数,用于判断是否遵循APP端缓存策略,如果是将缓存时间设置为0这样就不会执行缓存策略了。

 

 

三、MockService(自己编写数据)

  

 

四、用户登录场景

  贯穿App的,应该有一个User全局变量,在每次登陆成功后,会将isLogin属性设置为true,在退出登录后,则将该属性设置为false。这个User全局变量要支持序列化到本地,这样数据才不会因为内存回收而丢失。

  

 

APP研发录笔记