android-andorid40 执行以下多次循环后,效率急速下降,求解。

问题描述

andorid40 执行以下多次循环后,效率急速下降,求解。

以下玩法

    String _sss = "一个有300个以上字符的字符串。。。";
    Paint _paint = new Paint();
    Rect _rect = new Rect();

    long ti = System.currentTimeMillis();
    for(int i =1;i<249;i++){
        _paint.getTextBounds(_sss, 0, i, _rect);
    }
    System.out.println("time "  + (System.currentTimeMillis() - ti));

通过这种方式获取执行总时间。

现象:
1 执行240次时效率很高,大概总耗时20ms。执行250次以上的时候,骤升到大概200ms。
2 android2.x系统都没问题,android4.0系统就有这个问题。
3 把循环的内容换成诸如
String _s = _sss.substring(0, i);
_paint.measureText(_s);
也同样有此问题。
4 不知道为什么,以及如何解决。
5 解决后请客海底捞。

时间: 2024-10-05 21:56:34

android-andorid40 执行以下多次循环后,效率急速下降,求解。的相关文章

在android系统执行ota升级后,能否将自动重启改为手动重启

问题描述 在android系统执行ota升级后,能否将自动重启改为手动重启 在android系统执行ota升级后,能否将自动重启改为手动重启,如何修改bootable/recovery中的代码:在应用层能否通过编写android程序控制系统的重启????? 解决方案 我只能回答一个问题,应用层不可以直接控制系统的重启,因为权限不够. 如果系统root过,可以尝试用java调用reboot命令的方式.

c++-C++循环体中的局部变量怎样在每次循环后内存清零,进行下次循环的时候再重新赋值

问题描述 C++循环体中的局部变量怎样在每次循环后内存清零,进行下次循环的时候再重新赋值 在做一道题 依次输入每个人的名字然后输入成绩,每个名字后面都跟着每个人的成绩,不是把人名输完再输成绩. 然后要求统计每个人几次成绩的和,依次输出每个人姓名以及他们的总成绩.这个怎么做? #include #include #include using namespace std; int main() { int r; vector name; cout<<"人数:"; cin>

unix-shell脚本执行异常,一直循环

问题描述 shell脚本执行异常,一直循环 脚本目的,分析脚本执行结果,将有问题的项目附加到结果后面. #!/bin/bash function analyse_report() { abnormal_item=$1 IP=$2 case "$abnormal_item" in 3) echo "hostname of $IP">>Linux_1410221605.txt cat ../result/1410231618/result_192.168.5

java 排列组合-求大神帮我看看这段代码,打印完“12345”结束for循环后为什么还能继续运行?新手没金币,抱歉!

问题描述 求大神帮我看看这段代码,打印完"12345"结束for循环后为什么还能继续运行?新手没金币,抱歉! public class Test { public static void main(String[] args) { prints(0 0 0 0 0);}public static void prints(int k1int k2int k3int k4int k5){ if(k5!=0){ System.out.println(k1*10000+k2*1000+k3*1

android 关于用属性动画平移layout后其中button不能响应的问题

问题描述 android 关于用属性动画平移layout后其中button不能响应的问题 如题,为什么在layout中的button不能响应了? ObjectAnimator animator=ObjectAnimator.ofFloat(hiddenLayout,"translationY",0); animator.setDuration(100); animator.start(); Log输出属性动画执行前后layout的getY()未改变,这是为什么? 解决方案 原来是处理G

Android实现Banner界面广告图片循环轮播(包括实现手动滑动循环)_Android

 前言:经常会看到有一些app的banner界面可以实现循环播放多个广告图片和手动滑动循环.本以为单纯的ViewPager就可以实现这些功能.但是蛋疼的事情来了,ViewPager并不支持循环翻页.所以要实现循环还得需要自己去动手.自己在网上也找了些例子,本博文的Demo是结合自己找到的一些相关例子的基础上去改造,也希望对读者有用. Demo实现的效果图如下: Demo代码: 工程目录如下图: 废话不多说,上代码. 1.主Activity代码如下: package com.stevenhu.an

Android中执行java命令的方法及java代码执行并解析shell命令_Android

android中执行java命令的方法大家都晓得吗,下面一段内容给大家带来了具体解析. android的程序基于java开发,当我们接上调试器,执行adb shell,就可以执行linux命令,但是却并不能执行java命令. 那么在android的shell中是否就不能执行java程序了呢. 答案是否定的.我们可以通过app_process来执行java程序. 写一个hello world吧,就是刚开始学java的时候 写得那个hello world,这次要在android上运行. 用记事本新建

Android 线程之自定义带消息循环Looper的实例

Android 线程之自定义带消息循环Looper的实例 Android系统的UI线程是一种带消息循环(Looper)机制的线程,同时Android也提供了封装有消息循环(Looper)的HandlerThread类,这种线程,可以绑定Handler()对象,并通过Handler的sendMessage()函数向线程发送消息,通过handleMessage()函数,处理线程接收到的消息.这么说比较抽象,那么,本文就利用基础的Java类库,实现一个带消息循环(Looper)的线程,以帮助初学者理解

Android中执行java命令的方法及java代码执行并解析shell命令

android中执行java命令的方法大家都晓得吗,下面一段内容给大家带来了具体解析. android的程序基于java开发,当我们接上调试器,执行adb shell,就可以执行linux命令,但是却并不能执行java命令. 那么在android的shell中是否就不能执行java程序了呢. 答案是否定的.我们可以通过app_process来执行java程序. 写一个hello world吧,就是刚开始学java的时候 写得那个hello world,这次要在android上运行. 用记事本新建