安卓白盒测试发现问题分类 不涉及业务逻辑

1.异步网络请求的回调中更新UI,但未判断界面是否存在而导致空指针crash

2.Handler中的Callback导致的内存泄漏

3.静态对象保存Activity引用而导致的内存泄漏

4.Handler所在的类为内部类时,若不是静态内部类,默认保存外部类的引用而导致的内存泄漏

5.handler的postDelayed中更新UI,但可能执行时界面也不是当前界面,也会导致空指针crash

6.Fragment中没有默认空构造函数导致crash

7.进程内模块间通信,为了解耦使用广播,但未使用LocalBroadcastManager导致安全性以及性能问题

8.未复用对象,比如:

    • 用new Message而不用Message.obtain;
    • Adapter的getView中未复用;
    • 重写View的onDraw,在onDraw中创建Paint对象;

9.注册了回调接口,但是忘记注销,一个类保存回调接口时,若忘记注销,就会导致内存泄露,尤其是Activity相关

10.Bitmap处理,比如GridView中加载图片,使用LruCache以及DiskCache缓存图片;Bitmap大小未计算就使用,浪费内存还容易导致OOM

11.Timer不使用时,一定要cancel Timer,以防Timer泄露

12.异常处理,不要对大段代码捕获exception,而是要处理具体的异常,以便提高程序健壮性

13.容器类的使用,可以参照安卓推荐容器;当元素个数确定时,指定容器大小可以避免resize

来自为知笔记(Wiz)

时间: 2024-10-28 06:31:59

安卓白盒测试发现问题分类 不涉及业务逻辑的相关文章

发现 一个业务管理系统 解决了 orm 和 前端框架 剩下的 是 业务逻辑 了 。 哈

解决了 orm 和 前端框架 剩下的 是 业务逻辑 了 . 哈 还有 各种 aop 组件 呢 . 大家 high 来 准备 用 fluent data  和 mysql 写一个 wcf 的 接口呢. wcf 比 webservice 后出来吧 然后 在 用 web api 写一个 接口呢..

机房合作---业务逻辑在哪里?

前言:学习过程中,不要因为有遗留的问题而感到惭愧,在之后项目中,只要用心,就能解决遗留的问题. 谨以此文,记录我重新对UI.外观.BLL层中是否该有逻辑判断的一个思考推理过程. 验收机房重构的时候,我的UI层.外观层.BLL层代码是这样子写的:(以登录这条线为例) 先看BLL层: Public Class LoginManager '检查用户名是否存在 Public Function IsUserExists(ByVal user As Entity.UserInfo) As Boolean D

微软-创建业务逻辑层

https://msdn.microsoft.com/zh-cn/dd255899 简介 在教程一中创建的数据访问层 (DAL) 将数据访问逻辑与表示逻辑清晰地分离开来.然而,尽管 DAL 从表示层中清晰地分离出数据访问层细节,它却并没有实施任何可能采用的业务规则.例如,我们想让我们的应用程序在 Discontinued 字段设为 1 时禁止对 Products 表的 CategoryID 或 SupplierID 字段的修改,还有,我们可能想实施一些资历规则以便禁止发生这样的情况:雇员被其后入

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程 前言:前面几篇博客我们基本已经介绍完了搭建整个项目和数据库访问层以及一些业务逻辑层的实现,当然了,我们的数据库访问层这样还是可以在进行封装的,但是我到这里就行了吧,项目也不大,不需要那么麻烦的,那么我们今天开始介绍我们需要介绍的内容,那就是我

所思所想 业务逻辑

1.在一次的操作中不要涉及到过多的数据表,数据表过多---导致编码复杂,易出错,这样就是在一个方法中做了很多的事情 2.业务规则对应着业务方法 3.现在关注一下数据,我们在页面上看到的所有东西都是数据,那么如何将这些数据抽象成为你想要的对象呢? 4.尽情放开你的思想,你随便可以创造任何的对象,没有对错之分,在你的世界里你就是主宰,你想怎么操作就怎么操作所以请不要约束你的思想,尽情的构造你自己所认为的对象世界 5.要有一个概念”用户交互“”使用场景“”交互过程“,在这个分析互动的过程中可以看清楚很

从分享机制反观产品形态与业务逻辑

本文不是我写的,转载出处:http://www.woshipm.com/pd/273760.html “分享”是一个在App中特别常见的功能,从运营层面它满足了推广需求,从用户层面则满足了用户对外塑造自我形象.分享自我点滴.宣扬价值观等需求.这次我将分析五类常见应用(社交类.内容类.电商类.美化类.打车类)的分享机制,从中反推出不同产品的产品目标.业务逻辑对分享机制的影响:接着,从用户体验的角度分析几种分享机制下不同操作流程的优缺点. 一.每类产品分享的内容形式 不同种类的产品会因为不同的产品性

cell业务逻辑处理(时间格式化)

一.点击更多按钮 1.项目需求 点击更多按钮,从底部弹出一个框 2.怎么从底部弹出一个框? 两种方法: 一种用 UIActionSheet 另一种用 UIAlertController 2.1 使用UIActionSheet 好处: 不需要控制器,直接就能使用 缺点: 方法过期了,监听按钮的点击比较麻烦 源代码: // 以后只要发现有可变参数,最后一定要添加nil UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:nil de

减少存储过程封装业务逻辑-web开发与传统软件开发的思维模式不同

本篇文章讨论并不是:不要使用存储过程,因为有些事情还是要存储过程来完成,不可能不用.而是关于:"业务逻辑是不是要封装在存储过程中实现,这样子php.java等就是调用存储过程". 业务逻辑,通俗说就是:比如要取数据的操作,取出会员编号为x的数据,原来我们一般是封装成函数,或者直接编写sql语句查询.现在是交给数据库的存储过程去完成. +------------------------------------------------------------ 写这篇文章的缘由 +-----

WEB安全第七篇--终结篇考验逻辑思维:逻辑漏洞大汇总(越权、会话逻辑、业务逻辑、暴力破解)

零.前言 最近做专心web安全有一段时间了,但是目测后面的活会有些复杂,涉及到更多的中间件.底层安全.漏洞研究与安全建设等越来越复杂的东东,所以在这里想写一个系列关于web安全基础以及一些讨巧的payload技巧以便于备忘.不是大神.博客内容非常基础,如果真的有人看而且是大牛们,请不要喷我,欢迎指正我的错误(水平有限). 一.越权: 1.本质: 某账户拥有了超出它应有权限范围外的操作许可权. 2.分类: (1)水平越权:横向拥有了同等安全等级.密级等衡量标准账户的权限. (2)垂直越权:纵向拥有