Android 开发优化 知识点
来源:互联网 发布:php如何检测usbkey 编辑:程序博客网 时间:2024/05/29 20:00
1. Android 中的4种引用
①
② Java的引用StrongReference、 SoftReference、 WeakReference 、PhantomReference
③ 硬引用 LruCache: Android DiskLruCache完全解析,硬盘缓存的最佳方案
DiskLruCache
原理-- 获取进程最大运行内存,给缓存设置一个最大占用内存值,超过这个内存则把最少使用的图片移除掉。
实现:
写入
① 文件保存路径
/sdcard/Android/data/<application package>/cache 或者是 /data/data/<application package>/cache
② 保存缓存文件的文件名 Url对应的MD5值
③ 得到 DiskLruCache 对象,通过
DiskLruCache.open(File directory, int appVersion, int valueCount, long maxSize)返回
④ 以文件名为参数得到Editor 对象 mDiskLruCache.edit(key);
⑤ 以 editor.newOutputStream(0) 得到输出流,以imageUrl、outputStream为参数 通过Http下载图片写入到缓存中。在子线程中进行
读取
① 通过 url 得到MD5值,通过mDiskLruCache.get(key) 得到 Snapshot 对象,通过snapShot.getInputStream(0);得到输入流,然后的事情就是 转换成 Bitmap 显示。
移除缓存: mDiskLruCache.remove(key);
2. 优化工具
① Android代码优化——使用Android lint工具
在Android Studio要运行Lint工具:“Analyze”菜单中选择“Inspect Code…”。
3. Android性能优化之布局优化篇
4. Android学习系列(36)--App调试内存泄露之Context篇(上)
5. Android App定位和规避内存泄露方法研究
如何定位和解决Andorid的内存溢出问题(大总结)
①
[Android] Android开发优化之——使用软引用和弱引用
② Java的引用StrongReference、 SoftReference、 WeakReference 、PhantomReference
③ 硬引用 LruCache: Android DiskLruCache完全解析,硬盘缓存的最佳方案
DiskLruCache
原理-- 获取进程最大运行内存,给缓存设置一个最大占用内存值,超过这个内存则把最少使用的图片移除掉。
实现:
写入
① 文件保存路径
/sdcard/Android/data/<application package>/cache 或者是 /data/data/<application package>/cache
② 保存缓存文件的文件名 Url对应的MD5值
③ 得到 DiskLruCache 对象,通过
DiskLruCache.open(File directory, int appVersion, int valueCount, long maxSize)返回
④ 以文件名为参数得到Editor 对象 mDiskLruCache.edit(key);
⑤ 以 editor.newOutputStream(0) 得到输出流,以imageUrl、outputStream为参数 通过Http下载图片写入到缓存中。在子线程中进行
读取
① 通过 url 得到MD5值,通过mDiskLruCache.get(key) 得到 Snapshot 对象,通过snapShot.getInputStream(0);得到输入流,然后的事情就是 转换成 Bitmap 显示。
移除缓存: mDiskLruCache.remove(key);
2. 优化工具
① Android代码优化——使用Android lint工具
在Android Studio要运行Lint工具:“Analyze”菜单中选择“Inspect Code…”。
3. Android性能优化之布局优化篇
4. Android学习系列(36)--App调试内存泄露之Context篇(上)
5. Android App定位和规避内存泄露方法研究
如何定位和解决Andorid的内存溢出问题(大总结)
0 0
- Android 开发优化 知识点
- android优化以及相关知识点
- Android 常见优化知识点总结
- Android中其他优化知识点
- Android开发知识点总结
- Android开发知识点集锦
- Android开发知识点总结
- Android开发小知识点
- android开发知识点
- android开发知识点
- android开发小知识点
- android 开发入门知识点
- Android开发小知识点
- Android开发小知识点
- android开发知识点备注
- Android开发 学习知识点
- android开发基本知识点
- android开发小知识点
- Unable to resolve target 'Google Inc.:Google APIs和Open the Java build path property page of project
- HDU 1789:Doing Homework again
- maven pom编写
- 装饰者设计模式
- KMP算法和KMP算法中next数组的讲解
- Android 开发优化 知识点
- adb 常用命令使用+adb 无线调试
- 读书笔记MoreEffectiveC++(21)
- UVA 514 Rails(栈)
- Tree's a Crowd
- linux内核__get_free_page,kmalloc,vmalloc的区别,内核对内存的管理
- HDU 1236 排名
- vtk 使用静态版本出现no override found for vtkpolydatamapper
- 暑假- Trie树-(A - Shortest Prefixes)