线程的优先级

线程的优先级用1-10之间的整数表示,数值越大优先级越高,默认的优先级为5。安卓的UI线程的优先级也为5,可以通过设置优先级来增加ui的流畅。

Thread thread = new Thread(new MyRunnable()); 
thread.setPriority(10);

导致内存泄漏的原因。

  1. 静态变量持有Activity的引用。
  2. 静态变量持有内部类。
  3. 后台工作的线程
  4. 非静态内部类 和 匿名类 都会潜在的引用它们所属的外部类,但是,静态内部类却不会。如果这个非静态内部类实例做了一些耗时的操作,就会造成外围对象不会被回收,从而导致内存泄漏。
  5. 注册系统的一些服务时会使服务持有Context的引用。比如Context.SENSOR_SERVICE,Context.INPUT_METHOD_SERVICE
  6. Adapter的view没有复用。

画面卡顿的优化:
1. 过度绘制
2. UI线程执行耗时任务
3. 频繁GC
大量的对象被创建又在短时间内马上被释放,造成内存抖动(Memory Churn).
瞬间产生大量的对象会严重占用Young Generation的内存区域, 当达到阀值, 剩余空间不够的时候, 也会触发GC.
4. 提高UI线程的优先级
5. 不可见的使用ViewStub进行懒加载。

.so的优化
教室的视频,音频。
listview的优化。

兼容性问题
1、从相册获取图片时,图片的uri和实际路径的转换问题
从Intent选择相册,返回后的uri,若要获取实际图片地址,会有各种问题。根据api的版本进行了修。

2、安卓19之后要可以设置statu bar设置成透明。

if (Build.VERSION.SDK_INT > 11) {
request.setNotificationVisibility(Request.VISIBILITY_VISIBLE
| Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
} else {
request.setShowRunningNotification(true);
}

3、

if (android.os.Build.VERSION.SDK_INT > 8) {
                mContext.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
            } else {
                mContext.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
            }

4、播放和录制音频设置采样率为22050时很多高端设备不兼容,所以播放和录制采用44100,传输时转换成22050节省带宽。

5、AlertDialog.Builder 的setView方法到版本21才有,请使用compat-v7包中的AlertDialog.Builder。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值