Android小知识点(三)

1. Java 9新特性

2. ThreadLocal

  • 解决多线程不需要相互依赖的成员变量问题
  • 最常见的ThreadLocal使用场景为 用来解决 数据库连接、Session管理等

3. Android 性能优化之String篇

  • 重用的StringBuilder
  • 在拼接动态字符串时,尽量用 StringBuffer(同步) 或 StringBuilder的 append,来减少过多临时 String 对象
    • 初始合适的长度
  • 慎用String的contact(效率不高),intern方法(过多得使用 intern()将导致 PermGen 过度增长而最后返回 OutOfMemoryError)
  • 关于截取字符串方法的性能比较
    •对于从大文本中截取少量字符串的应用,String.substring()将会导致内存的过度浪费。
    •对于从一般文本中截取一定数量的字符串,截取的字符串长度总和与原始文本长度相差不大,现有的 String.substring()设计恰好可以共享原始文本从而达到节省内存的目的。

4. Loader

  • Loader

    • Android的装载器(loader)是从Android 3.0新引入的API , 主要完成单线程耗时数据异步装载功能,并在数据有更新自动通知UI刷新的作用。业内也叫加载器,装载机。
    • Loader一般用在Activity和fragment异步加载数据,无需重新启动一个线程来执行数据加载,异步加载可以用asyncTask, 但是loader自带数据结果监听机制,可以方便优雅的进行UI更新
    • 由于整个Activity和Fragment主动管理了Loader
    • 当Activity/Fragment处于stopped状态时,所有的Loader也会被置于stopped状态
    • Loader在package android.support.v4.content下,实现有下面的两个:

      这里写图片描述

  • AsyncTaskLoader 默认线程池核心线程5个,而且没有超时。
    • 同一个ID,最新设置的call back会覆盖前一个call back
    • 内部LoadTask extends ModernAsyncTask(仿AsyncTask,有其中部分code)
  • CursorAdapter

参考资料

5. 构建和运行您的应用

Android App 构建流程分析

6. 硬件渲染HWUI

RenderThread学习笔记

HWUI(硬件加速绘制UI)简介

7. MatrixCursor

可定制的Cursor–MatrixCursor

8. ListView复用

  • convertView重用
  • ViewHolder的子View复用
  • 使用RecycleView代替ListView (RecyclerView默认不支持CursorAdapter, 可以使用[三方库LiGux/ExRecyclerView](https://github.com/LiGux/ExRecyclerView

参考资料

9. swapCursor vs changeCursor

please use swapCursor, it will not close old cursor to avoid crash

swapCursor vs changeCursor, what’s the difference?

10. Android Butterknife 使用方法总结

Butterknife Github

使用总结

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值