response标准格式:

{
"isError":false,
"errorType": 0,
"errorMessage": "网络异常",
"result": ""
}
{
"errorMessage" : "网络异常",
"errorType" : 0,
"isError" : false,
"result" : {
"cinemaID" : 1,
"cinemaName" : "星美"
}
}
 
 
AnsyTask的缺点:
  1. 不能灵活控制其内部的线程池。
  2. 没有暴露取消请求的方法,导致任务队列阻塞。
 
使用线程池+Runnable+Handler的方式:
将成功失败的回调放在基类里面,对公用的处理进行封装,其实常用的网络框架比如Volley,okHttp,Ansy_http_client都可以这样去处理。如果有特殊情况,则可以通过重写基类里面的回调来进行特殊处理。还有就是加载网络数据的对话框等也可以在基类通过方法来进行显示,隐藏控制,比如在onBefore()里面显示,在onError()或者onFinish()以及onResponse()里面讲对话框进行隐藏。
 
App数据缓存:
  1. 这方面这本书应该讲的是接口优化和网络优化这方面的知识:
  2. 一个APP页面的数据通过一个接口来进行返回,没必要设置多个接口来进行获取。
  3. 进行返回数据的缓存处理(只针对[get]获取的数据,不针对[post]修改数据)。当然在做缓存之前要考虑是否当前业务适合缓存,比如有些即时行要求比较高的操作或者页面展示。
  4. 缓存地址一般选择为sd卡缓存。
  5. 底层封装的时候根据url作为key来判断缓存是否存在,如果存在,返回缓存数据,否则根据url去进行请求。
 
App自动登录功能实现:
  1. 不要本地保存用户名,密码,或者如果要保存,一定要进行加密来处理。
  2. 利用cookie(token)来作为用户唯一性的标示。(我们项目就是这么干的)。
    1. 用户相关的,用cookie,无关的,服务器可以控制无需校验cookie。
    2. 注销功能,清除本地cookie(token)。
    3. cookie过期处理,进入登录界面,返回前面的页面重新操作。(还是需要在底层回调的地方进行处理)
 
防止黑客刷库:
利用验证码来进行防刷,如果同一IP频繁访问同一接口,在登录界面有输入验证码,或者弹出输入验证码的浮窗。
 
时间校准 ,开启Gzip压缩:
更新本地时间和服务器时间差的方法:
https://github.com/icodeu/AppProgrammingSource/blob/master/2.5.2%20%E6%97%B6%E9%97%B4%E6%A0%A1%E5%87%86/AndroidLib/src/com/infrastructure/net/HttpRequest.java
 

第二章App框架设计与重构的更多相关文章

  1. jQuery系列 第二章 jQuery框架使用准备

    第二章 jQuery框架使用准备 2.1 jQuery框架和JavaScript加载模式对比 jQuery框架的加载模式 <script> window.onload = function ...

  2. Spring学习指南-第二章-Spring框架基础(完)

    第二章 Spring框架基础 面向接口编程的设计方法 ​ 在上一章中,我们看到了一个依赖于其他类的POJO类包含了对其依赖项的具体类的引用.例如,FixedDepositController 类包含 ...

  3. 第二章 Rest框架 Nancy

    正如你看到的,Nancy有两个主要用途. 其中第一项是作为一种通用的基于 REST 框架,可替代 ASP.NET Web API 或其他Rest工具包. 默认情况下,Nancy提供一流的路由和内容协商 ...

  4. [Learn AF3]第二章 App Framework 3.0的组件View——AF3的驱动引擎

    View:af3中的驱动引擎   组件名称:View     使用说明:按照官方的说法,view组件是af3的“驱动引擎(driving force)”,view是af3应用的基础,一个app中可以包 ...

  5. NancyFX 第二章 Rest框架

    正如你看到的,Nancy有两个主要用途. 其中第一项是作为一种通用的基于 REST 框架,可替代 ASP.NET Web API 或其他Rest工具包. 默认情况下,Nancy提供一流的路由和内容协商 ...

  6. 第二章 jQuery框架使用准备

    window常用属性: History:有关客户访问过的URL的信息 Location: 有关当前url的信息 常用方法: Confirm()将弹出一个确认对话框 open()在页面上弹出一个新的浏览 ...

  7. [翻译]Spring框架参考文档(V4.3.3)-第二章Spring框架介绍 2.1 2.2 翻译--2.3待继续

    英文链接:http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/overview.ht ...

  8. 深入浅出ExtJS 第二章 Ext框架基础

    2.1 面向对象的基础架构(对象模型) 2.1.1 创建类 >.定义一个类: Ext.define('demo.Demo',{ name:'Lingo', hello:function () { ...

  9. [Learn AF3]第三章 App Framework 3组件之Panel:afui的核心

    Panel,afui的核心组件 组件名称:Panel     使用说明:按照官方的说法,panel组件是af3的“核心(heart of the ui)”,panel用于构造应用中独立的内容展示区域, ...

随机推荐

  1. asp.net MVC 模拟实现与源码分析

    前言 本文流程#1: 从一个空项目->模拟实现一个从/Home/Test形式的URL敲入->后台逻辑处理->传入后台model参数->调用razor引擎->前台展示 涉及 ...

  2. Git安装使用

    转载:http://www.open-open.com/lib/view/open1414396787325.html 1.window版地址 https://git-for-windows.gith ...

  3. windows 上搭建 sftp 服务器 --freesshd

    Linux 下 sftp 默认都会安装的, Windows 就没有了.网上搜的资料发现比较好用的是 freesshd,免费版中最好用的. 1,下载:http://www.freesshd.com/?c ...

  4. sql 查询表共多少列

    1.oracle: select count(*) from user_tab_cols where table_name='表名';--表名含英文的话应为英文大写字母 2.mysql: select ...

  5. Labeling Balls(变种拓扑)

    Labeling Balls Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Tot ...

  6. 视频和字幕演示APK, 欢迎下载

    视频和字幕合成的演示APK 移动视频处理, 小咖秀-美拍-秒拍需要的字幕合成功能 我们推出这个demo, 视频格式支持MP4,字幕支持SRT/ASS/LRC,字幕文件编码为UTF8格式. 欢迎定制视频 ...

  7. November 12th 2016 Week 46th Saturday

    Never love anyone who treats you like you are ordinary. 请爱那些爱你的人. Don't waste your limited energy on ...

  8. nyoj 523 双向广搜

    题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=523 #include<iostream> #include<cstd ...

  9. 初始化git

    git config --global user.name "Firstname Lastname" git config --global user.email "yo ...

  10. @classmethod及@staticmethod方法浅析【python】

    目前对于python中@classmethod 类方法和@staticmethod静态方法的有了一定的认识,之后有进一步的认识后继续记录. @classmethod :是和一个class类相关的方法, ...