java 单例模式打包jar_Android ImageLoader 单例模式及关于打jar包的这点事

本篇博客主讲两部分,一,ImageLoader单例模式及初始化该如何做;二,如何打jar包。

先看第一个,ImageLoader是加载图片的,它不仅可以用来图片的异步加载,而且在加载的过程中有很多监听,跟进加载中的状态,方便我们做相应的处理,而且它本身有很好的缓存功能,能够有效的防止内存泄漏。用过listview的加载大量图片的朋友知道,内存泄漏是个很严重的问题。有了ImageLoader这个框架,内存泄漏的压力就会坚强很多。基于这两点,我觉得是ImageLoader被广泛使用的原因,也是它的成功之处。ImageLoader是一个单例模式,只能初始化一次,那么,到底该如何初始化呢?

新建1个类继承Application,重写OnCreate方法,把ImageLoader初始化的操作放到这个方法里面。因为Android整个项目Application是最早创建,而且只有1个,所以,它的onCreate方法里面写比较好,具体代码如下:

public class myApplication extends Application{

@Override

public void onCreate() {

// TODO Auto-generated method stub

super.onCreate();

String imgurl=Environment.getExternalStorageDirectory().getAbsolutePath()+"/Imageload/";

File cacheDir = new File(imgurl);

if (!cacheDir.exists()) {

cacheDir.mkdirs();

}

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(

this)

.memoryCacheExtraOptions(720, 1280)

// default = device screen dimensions

.threadPoolSize(3)

// default

.threadPriority(Thread.NORM_PRIORITY - 1)

// default

.tasksProcessingOrder(QueueProcessingType.FIFO)

// default

.denyCacheImageMultipleSizesInMemory()

.memoryCache(new WeakMemoryCache())

.memoryCacheSize(2 * 1024 * 1024)

.memoryCacheSizePercentage(13)

// default

.diskCache(new BaseDiskCache(cacheDir) {

})

// default

.diskCacheSize(50 * 1024 * 1024)

.diskCacheFileCount(100)

.diskCacheFileNameGenerator(new Md5FileNameGenerator())

// default

.imageDownloader(

new BaseImageDownloader(getApplicationContext())) // default

.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default

.writeDebugLogs()

.build();

ImageLoader.getInstance().init(config);

}

}上面这个初始化代码ImageLoader是有缓存机制的。内存缓存和SD卡缓存都有。

注意:你运行一下项目可能会看到

E/AndroidRuntime(25457): java.lang.RuntimeException: Unable to start activity , java.lang.IllegalStateException: ImageLoader must be init with configuration before using

相信只要英语稍微好一点的朋友会知道,错误原因这是在ImageLoader使用前没有初始化。为什么呢?我不是在OnCreate里面初始化了吗?我这个类也继承Application了,为什么呢?因为你这个application没有在配置文件里面写,一定一定要写在配置文件里面!!!

下面开始说第二部分,如何把android项目打成1个jar包呢?不打jar包的话,都要在eclipse里面引用才行,否则,应用跑不起来。但是1个应用,要引用那么多的项目,那eclipse不就满了吗?所以,最实用的办法是把项目打成jar包,放进libs目录下,就一劳永逸了。介绍一下具体打jar包的方法:

0818b9ca8b590ca3270a3433284dd417.png

图1

0818b9ca8b590ca3270a3433284dd417.png

图2

0818b9ca8b590ca3270a3433284dd417.png

图3

注意:在图3上这个步骤时,一定一定要确保上图的2个红色框里面只选了src文件夹!!!如果在选src文件夹的同时,也选择了其他的文件夹,那么会报下面这个错误

Error generating final archive: Found duplicate file for APK: AndroidManifes

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值