开源项目Universal Image Loader for Android 说明文档 (1) 简介

When developing applications for Android, one often facesthe problem of displaying some graphical content from the Internet. So, youshould provide image loading from the Web in an Android app, their processingand displaying with limited memory again and again. And despite the problemhomogeneity, each new project imposes its own specific requirements on thetask.

You may need to organize caching of downloaded images; ifimages are rather large, it is necessary to ensure effective working with thememory to prevent the disastrous mistake OutOfMemoryError . It is also possiblethat an image-stub has to be showed during the image loading; and maybe thesame image should be displayed in different size variations, etc.

As a result, time and resources are wasted for codeadaptation to specific needs. It is this problem what urged me on creating alibrary with open source code - Universal Image Loader for image loading in anAndroid app. Its aim is solution universalization of the above describedproblem in a flexible and configurable tool.

Currently, the library can be used everywhere, where youhave to download and display (and possibly even to cache) an image from theInternet or from the file system of your smartphone. Classic examples forpossibility of ImageLoader using are various lists, tables, galleries, whereyou need to display images from the Web.

上面一大堆话,是说作者为什么做这个项目

现在这个类库可以用在任意地方,例如,你需要从网络上下载和显示图片,或者从手机本地读取。ImageLoader可以用的地方包括各种lists,tables,galleries

 

The main features of the ImageLoader for Android are:

主要特性包括:

asynchronous loading and displaying images from the Internet or the SD-card;

从网络或SD卡异步加载和显示图片

ability ofcaching loaded images in memory and / or the device's file system;

在本地或内存中缓存图片

ability tomonitor the loading process by means of "listeners"

通过“listener”监视加载的过程

effectiveworking with the memory while caching images in the memory;

缓存图片至内存时,更加高效的工作

wideopportunities to customize the tool to fit it to your needs.

高度可定制化

 

ImageLoader的可选设置项

What can be configured in the ImageLoader?

全局设置:

themaximum size of images cached in the memory;

在内存中缓存的图片最大尺寸

timeoutfor connection establishing and image loading;

连接超时时间和图片加载超时时间

themaximum number of simultaneously working threads for images loading;

加载图片时使用的同时工作线程数量

threadspriority during downloading and displaying images;

下载和显示图片时的线程优先级

implementation of disk cache (you can choose from ready-made implementations orcreate your own);

使用已定义本地缓存或自定义

implementation of cache in the memory (you can choose from ready-madeimplementations or create your own);

使用已定义内存缓存或自定义

• default options of image downloading

图片下载的默认选项

Image loading options (applied to each individual callImageLoader.displayImage(...)) provide the ability to specify:

图片加载选项可以进行以下设置:

whether todisplay the image-stub in the ImageView, while the real image is being loaded(if yes, then you need to specify this "stub");

当真实图片加载成功以后,是否显示image-stub。(如果是,需要制定stub)

Whether tocache the downloaded image in the memory.

在内存中是否缓存已下载图片

Whether tocache the downloaded image in the file system.

在本地是否缓存已下载图片

Type ofimage decoding (the fastest or the most economical for the memory).

图片解码方式(快速/经济)

As already mentioned, you can implement your own version ofthe disk cache and the cache in memory. But most likely, you will be quitesatisfied with ready solutions, most of which are caches, limited by someparameter (size, number of files) and having their own logic of self-cleaningby limit excess (FIFO, the oldest object, the largest object, the most seldomused).

如上所述,你可以实现你自己的本地缓存和内存缓存方法,但是通常Jar包中已实现的方法已经可以满足你的需求。例如。。。。。。

 

There are enough configuration options, but this is not thecase as "the main principle of UNIX": "u can configureEVERYTHING. And you WILL configure everything." :) In theImageLoader case, you can customize everything, but it is not necessary at all:​​the default configuration is always available and suitable in the most cases.

尽管UIL已经提供了很多设置,但是距离“UNIX的核心精神:你可以配置任何选项,你能够配置任何选项”仍有差距。在UIL中,你可以自定义任何选项,但这并不是必须的,因为通常已经有了默认设置,而且这些设置在大多数情况下都是适用的。

Implementationpeculiarities

特定需求的实现

Few words about the project structure. Each task for image loadingand displaying (and that is, looking ahead, the call ImageLoader.displayImage(imageView, imageUrl)) is performed in a separate thread, except if the pictureis in cache in the memory - then it is just immediately displayed.here is a separate threads queue where tasks get if theneeded image is cached on the file system. If you do not have the rightimage in the cache, then the task-thread gets in the thread pool. Therefore,there are no obstacles for a fast displaying of cached images.

简单描述一下这个项目的结构。每一个图片的加载和显示任务都运行在独立的线程中,除非这个图片缓存在内存中,这种情况下图片会立即显示。如果需要的图片缓存在本地,他们会开启一个独立的线程队列。如果在缓存中没有正确的图片,任务线程会从线程池中获取,因此,快速显示缓存图片时不会有明显的障碍。

he algorithm of the taskprocessing is epresented on the scheme:

处理的规则用下图进行简单的描述:

 

 

The main actors of the project can relatively be divided:

UIL的主要功能可以分为以下及部分

the above mentionedqueue and pool of threads;

上面提到的线程队列和线程池

cache in thememory;

缓存至内存

disk cache;

缓存至本地

Image decoder,which decodes image files into Bitmap objects.

图片解析,将图片解析为Bitmap对象

The main class ImageLoader manages it all; the maininteraction with the user is performed through it.

最重要的类ImageLoader管理了所有的操作,和用户的交互也主要通过该类。

电动汽车数据集:2025年3K+记录 真实电动汽车数据:特斯拉、宝马、日产车型,含2025年电池规格和销售数据 关于数据集 电动汽车数据集 这个合成数据集包含许多品牌和年份的电动汽车和插电式车型的记录,捕捉技术规格、性能、定价、制造来源、销售和安全相关属性。每一行代表由vehicle_ID标识的唯一车辆列表。 关键特性 覆盖范围:全球制造商和车型组合,包括纯电动汽车和插电式混合动力汽车。 范围:电池化学成分、容量、续航里程、充电标准和速度、价格、产地、自主水平、排放、安全等级、销售和保修。 时间跨度:模型跨度多年(包括传统和即将推出的)。 数据质量说明: 某些行可能缺少某些字段(空白)。 几个分类字段包含不同的、特定于供应商的值(例如,Charging_Type、Battery_Type)。 各列中的单位混合在一起;注意kWh、km、hr、USD、g/km和额定值。 列 列类型描述示例 Vehicle_ID整数每个车辆记录的唯一标识符。1 制造商分类汽车品牌或OEM。特斯拉 型号类别特定型号名称/变体。型号Y 与记录关联的年份整数模型。2024 电池_类型分类使用的电池化学/技术。磷酸铁锂 Battery_Capacity_kWh浮充电池标称容量,单位为千瓦时。75.0 Range_km整数表示充满电后的行驶里程(公里)。505 充电类型主要充电接口或功能。CCS、NACS、CHAdeMO、DCFC、V2G、V2H、V2L Charge_Time_hr浮动充电的大致时间(小时),上下文因充电方法而异。7.5 价格_USD浮动参考车辆价格(美元).85000.00 颜色类别主要外观颜色或饰面。午夜黑 制造国_制造类别车辆制造/组装的国家。美国 Autonomous_Level浮点自动化能力级别(例如0-5),可能包括子级别的小
内容概要:本文详细介绍了IEEE论文《Predefined-Time Sensorless Admittance Tracking Control for Teleoperation Systems With Error Constraint and Personalized Compliant Performance》的复现与分析。论文提出了一种预定义时间的无传感器导纳跟踪控制方案,适用于存在模型不确定性的遥操作系统。该方案通过具有可调刚度参数的导纳结构和预定义时间观测器(PTO),结合非奇异预定义时间终端滑模流形和预定义时间性能函数,实现了快速准确的导纳轨迹跟踪,并确保误差约束。文中详细展示了系统参数定义、EMG信号处理、预定义时间观测器、预定义时间控制器、可调刚度导纳模型及主仿真系统的代码实现。此外,还增加了动态刚度调节器、改进的广义动量观测器和安全约束模块,以增强系统的鲁棒性和安全性。 适合人群:具备一定自动化控制理论基础和编程能力的研究人员、工程师,尤其是从事机器人遥操作、人机交互等领域工作的专业人士。 使用场景及目标:①理解预定义时间控制理论及其在遥操作系统中的应用;②掌握无传感器力观测技术,减少系统复杂度;③学习如何利用肌电信号实现个性化顺应性能调整;④探索如何在保证误差约束的前提下提高系统的响应速度和精度。 阅读建议:本文内容涉及较多的数学推导和技术细节,建议读者先熟悉基本的控制理论和Python编程,重点理解各个模块的功能和相互关系。同时,可以通过运行提供的代码示例,加深对理论概念的理解,并根据自身需求调整参数进行实验验证。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值