• 腾讯优测-优社区干货精选 | android开发在路上:少去踩坑,多走捷径(下)


    文/腾讯公司 陈江峰

    优测小优有话说:

    android开发的坑自然是不少,不想掉坑快来优测优社区~
    

    6.Android APP开发中其它需要提醒的问题

    android4.4在UI线程无法进行网络操作。
    不单只android API版本不一定导致运行异常,有些机型还使用Java 1.5进行编译,使用某些Java 1.6的函数会Crash的。
    注意OOM问题,目前android手机已经有3G内存了,但并非一个应用就能使用全部内存。了解一下堆内存,一个软件至少一个进程,一个进程跑一个虚拟机,进程使用的堆内存大小,每部手机不一定一样。
    Show Dialog的问题,永远要判断Activity是否还在。
    使用了高版本的API函数,在低版本机器上挂了。
    非UI线程不能操作UI。
    可能有各种权限被禁的问题。
    没有浏览器、没有软件安装器、没有Email等发生ActivityNotFoundexception。
    超快速连续点击按钮可能触发跑多个线程的问题。
    Android4.4短信权限设置,原生系统带有新接口,第三方系统可能裁剪掉了。

    7.什么情况下发生OOM,如何避免?

    图片操作(图片缩放、bitmap生成等)、序列化反序列化数据等会消耗大量内存。合理使用数据结构(链表和数组),及时释放引用,使用弱引用等能降低OOM情况发生。

    8.出现ANR怎么办?

    如果Android程序某个操作执行等待超过5s,会出现ANR(Application Not Responding)的对话框,对于执行耗时的操作,譬如网络操作,就不能在主线程上进行了(Android 4.4不让你这样做了),这些任务应该跑在主线程外,譬如新建一个线程处理,或者自己写一个网络引擎对所有网络请求进行管理。

    9.如何跟踪研发质量?

    Coverity接入(RDM可以接入,还没接入的同学可以找huanling):代码缺陷扫描,不扫不知道,一扫吓一跳。满分推荐!
    Crash是无法避免的,我们能做的是尽量把Crash的情况减少。发出去的版本,用户发生Crash了,我们需要把Crash数据收集起来。所以软件需要做一个Crash上报,汇总整理。统计每个版本的Crash率,并把Crash进行修复。

    10.如果跟踪用户对产品的反馈?

    不管你写软件所用的技术有多么牛B,用户是不知道的,也不关心的。用户关心的是你的产品体验到底有多牛B。加上用户可以轻松反馈的反馈功能,你会发现有时用户的idea还不错的。
    做出来的产品好还是不好,需要有产品数据支撑,所以加插相关数据统计上报点,哪个功能热门,新增用户多少,活跃用户多少,一目了然。

    11.安全检查

    为避免异常情况的跳转或者恶意攻击,Android组件在启动时都需要判断传入的参数是否为空。
    敏感信息需要进行权限限制或者加密处理。
    能不暴露的组件就不暴露,在AndroidManifest中为组件加android:exported=”false”属性。
    需要暴露的组件通过自定义权限进行调用,添加自定义权限android:permission=”yourapp.permission.CALL”

    腾讯优测(utest.qq.com)是专业化的移动APP自动化测试工具,提供【兼容性测试】【云手机】【漏洞检测】【VIP定制化测试-优管家】等多维度测试服务,深受用户信赖。

    优测云服务平台是腾讯推出的一站式移动云测试服务平台,拥有十年终端测试服务经验,提供兼容性测试、自动化测试、云真机、设备分享等多种服务方式。
  • 相关阅读:
    五个知识体系之-Linux常用命令学习
    测试职业生涯中,五个知识体系
    英语:真正有效的英语学习心得,把英语当母语学习!(转载)
    侧滑面板(对viewGroup的自定义)
    安卓程序员要拿到5000和1w的薪资,分别需要掌握哪些技术?
    轻巧级记事本的开发
    web.xml 中的listener、 filter、servlet 加载顺序及其详解
    如何向android studio中导入第三方类库
    【NPR】卡通渲染
    线程池原理及其实现
  • 原文地址:https://www.cnblogs.com/utest/p/5681821.html
Copyright © 2020-2023  润新知