Fresco一种超强图片加载组件初体验
来源:互联网 发布:司法拍卖淘宝网房产 编辑:程序博客网 时间:2024/04/30 15:52
Fresco来自Facebook开源的一个超强图片加载组件,项目体验地址:https://github.com/facebook/fresco
在公司开发应用的时候由于应用中肯定会涉及到图片加载,我们就要考虑到OOM以及内存占用问题,所以我们基本上都是用来自第三方开源的图片下载库:Universalimageloader,picasso,glide,volley等优秀的开源库,苦于自己无力写出更优秀的所以我一直在寻找一种更优秀的库,直到我遇到了Fresco。所以这里记录一些我是如何在AndroidStudio上体验Fresco,并且我准备熟悉之后将运用在自己的应用上替换我应用上的UIL,我的体验环境是MAC OS 10.10.2 +androioid studio 1.3+android-ndk-r10e
第一步,配置NDK环境
解压下载好的NDK.bin
1.chmod a+x android-ndk-r10c-darwin-x86_64.bin
后面为文件存放路径 。
2.执行/android-ndk-r10c-darwin-x86_64.bin将NDK解压出来。
第二步,在local.properties配置ndk路径
ndk.dir=../Applications/Android-NDK/android-ndk-r10e
第三步,把下载好的Frescro.Demo导入到As中来
demo地址:https://github.com/liaohuqiu/fresco-demo-for-gradle
运行起来就能看到画面了:
体验过程中发现Fresco占用的内存比UIL等第三方库在内存占有少了许多,我的手机上体验少了10M左右,很好的减少了由于图片的原因占了太多的内存。
关于NDK使用以及介绍可以参考http://fresco-cn.org/docs/index.html#_介绍的非常详细,这绝对是目前最好的图片加载库了,熟悉之后马上替换掉项目中正在用的UIL。
在使用过程中经常发现问题,在不断的搜索中找到一个坑,希望能减少被踩到的人:当你项目中有so文件的时候,如果没有针对64位的手机做适配那么该so文件是不会被调用到,因为Fresco中会生成一个arm64-v8a这种64位的目录,那么系统就会只去找寻这个目录下的so,所以就会报如下错误
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.pba.cosmetics-2/base.apk"],nativeLibraryDirectories=[/data/app/com.pba.cosmetics-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "xxxxxxx.so"
所以解决办法是去掉arm64这个目录、新增64位的so文件、最坏的打算就是不使用Fresco,以下是AndroidStudio中在gradle中配置以便去掉生成的arm64目录
splits { abi { enable true reset() include 'x86', 'x86_64', 'armeabi-v7a', 'armeabi' universalApk false } } sourceSets.main { jni.srcDirs = [] } tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn ndkLibsToJar } task ndkLibsToJar(type: Zip, description: 'Create a JAR of the native libs') { destinationDir new File(buildDir, 'libs') baseName 'ndk-libs' extension 'jar' from(new File(buildDir, 'libs')) { include '**/*.so' } into 'lib/' }
ps: 以上配置只有在vivo x5Pro上测试可以使用,像有些so文件是第三方的且没有64位的 我们只能忍痛割爱不用Fresco了。
- Fresco一种超强图片加载组件初体验
- Fresco图片加载组件
- Fresco,一个强大的图片加载组件
- Fresco强大的图片加载组件
- android Fresco框架使用与介绍(图片加载组件)
- Fresco 加载本地图片
- 图片加载Fresco
- 使用Fresco加载图片
- 图片加载利器--Fresco
- Fresco图片加载工具
- 图片加载库Fresco
- fresco加载本地图片
- 使用Fresco加载图片
- Fresco图片加载
- Fresco图片加载框架
- 使用Fresco加载图片
- 图片加载框架-Fresco
- Fresco图片加载
- poj 2763 Housewife Wind 【LCA or 树链剖分】
- TTS-零基础入门之语音模板化
- 轻松搞定面试中的链表题目
- MyEclipse中new菜单选项问题
- java并发(二) volatile关键字解析
- Fresco一种超强图片加载组件初体验
- return和exit
- 利用Bootstrap制作一个流行的网页
- BZOJ 3884(上帝与集合的正确用法-欧拉函数递推找极限)[Template:数论 V2]
- IntelliJ IDEA怎么删除Module
- Chromium多进程架构简要介绍和学习计划
- HDU 5366 The mook jong(DP)
- [LeetCode]Delete Node in a Linked List
- 带有输入输出参数的存储过程