第二章App框架设计与重构

简介: response标准格式: { "isError":false, "errorType": 0, "errorMessage": "网络异常", "result": "" }   { "errorMessage" : "网络异常...

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
 
相关文章
|
1月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
112 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
1月前
|
监控 安全 开发者
山东布谷科技:关于直播源码|语音源码|一对一直播源码提交App Store的流程及重构经验
分享提交直播源码,一对一直播源码,语音源码到Appstore的重构经验!
|
3月前
|
开发框架 JavaScript 前端开发
uni-app x 跨平台开发框架
uni-app x 是一个强大的跨平台开发框架 uni-app x 是一个庞大的工程,它包括uts语言、uvue渲染引擎、uni的组件和API、以及扩展机制。
106 1
|
6月前
|
开发框架 移动开发 JavaScript
SpringCloud微服务实战——搭建企业级开发框架(四十七):【移动开发】整合uni-app搭建移动端快速开发框架-添加Axios并实现登录功能
在uni-app中,使用axios实现网络请求和登录功能涉及以下几个关键步骤: 1. **安装axios和axios-auth-refresh**: 在项目的`package.json`中添加axios和axios-auth-refresh依赖,可以通过HBuilderX的终端窗口运行`yarn add axios axios-auth-refresh`命令来安装。 2. **配置自定义常量**: 创建`project.config.js`文件,配置全局常量,如API基础URL、TenantId、APP_CLIENT_ID和APP_CLIENT_SECRET等。
254 60
|
4月前
|
Python Windows 内存技术
【Azure 应用服务】Azure App Service (Windows) 使用Flask框架部署Python应用,如何在代码中访问静态文件呢?如何设置文件路径?是相对路径还是绝对路径呢?
【Azure 应用服务】Azure App Service (Windows) 使用Flask框架部署Python应用,如何在代码中访问静态文件呢?如何设置文件路径?是相对路径还是绝对路径呢?
|
6月前
|
开发框架 小程序 前端开发
uni-app前端应用开发框架
uni-app对做移动端开发的来说应该无人不知、无人不晓了吧?!从名字就能看出来这个框架要干啥,unify app——没错,就是统一前端应用开发,不管你是小程序、app、还是H5、公众号,用这个框架都能做。uni-app让开发者编写一套代码,就可以编译为安卓app、ios app、微信小程序、抖音小程序、支付宝小程序等十几个平台,而且马上支持纯血鸿蒙了,这简直是个人、开发工作室、小型开发公司的福音,开发一些常规的app、小程序,用这个框架足够了。
74 7
|
6月前
|
安全 测试技术 网络安全
APP攻防-资产收集篇&反证书检验&XP框架&反代理VPN&数据转发&反模拟器
APP攻防-资产收集篇&反证书检验&XP框架&反代理VPN&数据转发&反模拟器
|
6月前
|
安全 JavaScript 前端开发
kotlin开发安卓app,JetPack Compose框架,给webview新增一个按钮,点击刷新网页
在Kotlin中开发Android应用,使用Jetpack Compose框架时,可以通过添加一个按钮到TopAppBar来实现WebView页面的刷新功能。按钮位于右上角,点击后调用`webViewState?.reload()`来刷新网页内容。以下是代码摘要:
|
6月前
|
缓存 Android开发 Kotlin
【安卓app开发】kotlin Jetpack Compose框架 | 先用OKhttp下载远程音频文件再使用ExoPlayer播放
使用 Kotlin 的 Jetpack Compose 开发安卓应用时,可以结合 OkHttp 下载远程音频文件和 ExoPlayer 进行播放。在 `build.gradle` 添加相关依赖后,示例代码展示了如何下载音频并用 ExoPlayer 播放。代码包括添加依赖、下载文件、播放文件及简单的 Compose UI。注意,示例未包含完整错误处理和资源释放,实际应用需补充这些内容。
|
7月前
|
Web App开发 Rust 前端开发
【一起学Rust | 框架篇 | Tauri2.0框架】Tauri App开启远程调试功能
【一起学Rust | 框架篇 | Tauri2.0框架】Tauri App开启远程调试功能
618 0