zoukankan      html  css  js  c++  java
  • 23、性能优化与测试

     UI性能优化

    1. 由于View会不断刷新、变化,所以应尽量减少不必要的onMeasure、 onDraw调用。

    2. 对于ListView、GridView等需要Adapter加载数据的控件,在 getView方法中应尽量减少访问耗资源的资源,例如,大量的写入文 件操作,访问网络等。否则这些控件会出现不时的停顿现象。如果非 要访问这些资源,应将这些操作放到线程中。

    3. 在getView方法中应convertView参数,而不要一味地创建新的视图 对象,并且可以使用convertView.setTag和convertView.getTag保 存和获取视图对象。 

    public View getView(int position, View convertView, ViewGroup parent) {

          ViewHolder holder;
          if (convertView == null) {

              final LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

              convertView = inflater.inflate(R.layout.list_item_icon_text, null);

              holder = new ViewHolder();
              holder.icon = (ImageView) convertView.findViewById(R.id.icon);

               holder.text = (TextView) convertView.findViewById(R.id.text);

              convertView.setTag(holder);

           } else {

               holder = (ViewHolder) convertView.getTag();

           }

           holder.icon.setImageResource(R.drawable.icon);

           holder.text.setText(mData[position]);
           return convertView;

     避免ANR

    ANR(Application Not Responding)

    有时程序会出现ANR现象,解决方法是将耗资源的 操作(如下载文件、复杂算法等)放到其他线程中。 

     执行时间测试

    long start = System.currentTimeMillis(); ... ...
    long end = System.currentTimeMillis();

    long time = end – start; 

     内存消耗测试

    // 获取系统内存总数
    long total = Runtime.getRuntime().totalMemory();

    // 获取剩余内存
    long free = Runtime.getRuntime().freeMemory();

    // 返回已使用的内容 long used = total - free; 

     性能分析工具:traceview

    // 开始监视方法 Debug.startMethodTracing("activity_trace"); 

    test1();   // 执行test1方法
    test2();   // 执行test2方法
    Debug.stopMethodTracing();   // 停止监视方法 

    会在SD卡的根目录生成一个activity_trace.trace文件。 

     自动化测试工具:Monkey 

    monkey -p com.android.calculator2 -v 5000

    其中-p表示对象包 –v 表示事件数量 

  • 相关阅读:
    命令别名
    文件的元数据
    bash命令练习
    bash的使用
    Linux系统下的文件管理类常命令及使用方式
    Linux获取命令帮助、man文档章节的划分
    Linux目录名、命名规则及功能规定
    Linux命令使用格式
    springmvc 异常处理
    oracle 笔记一
  • 原文地址:https://www.cnblogs.com/androidsj/p/3930030.html
Copyright © 2011-2022 走看看