鸿少爷的城

code and poem


  • 首页

  • 归档

  • 关于

  • 搜索

Android性能优化(四)之启动速度优化

发表于 2017-07-08

一、前言

一款好的产品应该集界面美观、操作流畅、功能稳定于一身,但是随着App功能的增多,App的性能问题会逐渐暴露出来,比如卡顿、闪退等现象。这些性能问题极大的影响了用户体验。因此,在APP的开发维护中,预防和解决性能问题显得尤为重要。日常工作和学习中,我也比较重视这一块的实战和总结,但性能优化是个大话题,我将用一个专题来记录,作为今后开发的Check List。

APP的启动速度是用户体验的第一扇门,所以第一篇文章就从应用的启动优化开始,优化APP的启动速度。

阅读全文 »

Android性能优化(三)之读书笔记

发表于 2017-07-05

Android性能优化主要几个方面:

  • 布局优化
  • 绘制优化
  • 内存泄漏优化
  • 响应速度优化
  • ListView, Bitmap, 线程优化
    阅读全文 »

Android性能优化(二)之Monkey性能测试

发表于 2017-06-29

一、Monkey简介

Android的SDK 里面,Monkey的tools是一个命令行工具,当连接Android设备时,只要在命令行里输入相应命令就能运行tools;

Monkey test是一项压力测试,可以在规定的次数范围内做任何随机的操作,随机操作包括点击、滑动、Application切换、横竖屏、应用关闭等等,用户能做的操作统统可以模拟;

Monkey test跑出来crash的bug等级永远为1,版本release前,Monkey跑出的结果中crash要为0。
业内标准:final release前,Monkey跑完的总次数应为25W次,其结果里不允许有nullPointException出现.

阅读全文 »

Android性能优化(一)之常用工具

发表于 2017-06-22

 Android性能优化相关的开发工具有很多很多种,这里对如下六个工具做个简单的使用介绍,主要有:

  • Android开发者选项
  • 分析具体耗时的Trace view
  • 布局复杂度工具Hierarchy View
  • 应用启动时间
  • Memory、CPU、Network分析
  • 静态代码检查工具Lint
  • 程序稳定性monkey
    阅读全文 »

Android源码阅读系列(五)之View绘制流程

发表于 2017-06-18

一、引言

通过Android官方文档可以知道,View的绘制有三个主要的流程,也就是measure、layout和draw。那View绘制为什么要走这三个流程呢?源码中有答案。

阅读全文 »

Android多线程实现方式对比

发表于 2017-06-17

一、前言

Android中线程分为主线程(UI线程)和子线程,主线程主要处理和界面相关的事情,而子线程则用于执行耗时操作。如果在主线程中执行耗时操作,比如网络请求操作,则会报NetworkOnMainThreadException;如果是其他耗时操作,界面卡顿时间超过5秒则会导致程序无法及时响应(ANR)。因此耗时操作必须在子线程去执行。Android提供了五种常用的线程实现方式,分别是:

  1. Thread
  2. AsyncTask
  3. HandlerThread
  4. IntentService
  5. ThreadPoolExecutor
    阅读全文 »

Android源码阅读系列(四)之Android中的线程

发表于 2017-06-13

一、引用

Android中线程分为主线程和子线程,主线程主要处理和UI相关的操作,而主线程中则往往用于执行耗时操作,比如网络请求和I/O操作。除了Thread之外,Android中还有一些可以用来作为线程使用的类,如AsyncTask、HandlerThread 和 IntentService。经管他们的表现形式都和Thread有区别,但是本质上依然是线程。

阅读全文 »

Android源码阅读系列(三)之Android消息机制

发表于 2017-06-11

一、引言

Android开发中经常需要在子线程和主线程间切换,通常我们会在子线程中做一些耗时的操作,比如网络请求或者I/O操作,当耗时操作完成后可能需要在UI上做一些更新,由于Android开发不能在子线程中操作UI控件(UI控件不是线程安全的),这个时候就需要通过Handler将更新UI的操作切换到主线程中执行。Android的消息机制主要就是指Handler的运行机制,所以,研究Android消息机制,其实就是研究Handler的运行机制。

阅读全文 »

Android源码阅读系列(二)之Toast显示原理

发表于 2017-06-07

一、引言

在Android中Toast使用频率是相当高的,可以用来做用户提示,也可以在测试的时候方便的显示测试结果,关键是它使用方法非常简单,一行代码就搞定了

Toast.makeText(this, msg , Toast.LENGTH_SHORT).show();

但是使用久了就有个疑问,Toast.LENGTH_SHORT和Toast.LENGTH_LONG是用于设置Toast显示时长的,但是这两个时长到底是多少呢?

阅读全文 »

Android源码阅读系列(一)之SharedPreferences

发表于 2017-06-04

一、引言

SharedPreferences使用方法非常简单,是Android开发中使用频率非常高的轻量级存储方式,经常被用来存放一些键值对数据,比如配置信息等,得到了很多很多开发者的青睐。但是SharedPreferences并不是万能的,如果使用不当,会造成严重的后果,下面记录一个工作中遇到的实例。

阅读全文 »
12
chicxiaomu

chicxiaomu

Android,PHP,Google,Github,技术博客

19 日志
3 标签
GitHub
© 2017 chicxiaomu
Powered by Hexo
Theme by - NexT.Mist