亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述APP怎样进行本地存储和图片缓存?相关的知识,希望能为你提供帮助。
数据的本地存储和图片缓存可以极大地提高 app 的用户体验、提高 UI 响应速度、减少网络使用。
1.uzStorage
uzStorage 比标准的 localStorage 更安全易用。
举个栗子: localStorage 有大小限制、异步会导致一些安全、不能存储对象等问题,但这些问题均在 uzStorage 中得到了解决。
2.偏好设置
3.文件
APICloud 提供了标准的文件操作接口,支持同步和异步的调用方式。使用下面的 API 操作文件:
api.readFile({?sync:false,// 是否同步,默认 false?path:"PathToFile"// 文件路径,支持绝对路径和文件路径协议如 fs://、widget:// 等
}, function(ret,err){
//ret = {status:true,data:""}
});
//err = {code:0,msg:""}
api.writeFile({?path:"PathToFile",// 文件路径,支持绝对路径和文件路径协议如 fs://、cache:// 等,不支持 widget:// 目录,
该目录只读?data:"data",// 文件内容
append:false// 是否以追加方式写入数据,默认 false,会清除之前文件内容 }, function(ret,err){
//ret = {status:true}
});
//err = {code:0,msg:""}
4.database
使用“db”模块操作数据库,“db”模块封装了手机常用数据库 sqlite 的增删改查语句,可实现数据的本地存储,极大地简化了数据持久化问题,并且支持同步接口。
5.存储容量
APICloud 提供了关于存储容量的 API,代码如下:
api.getFreeDiskSpace({?sync:false// 执行结果的返回方式。为 false 时通过 callback 返回,为 true 时直接返回,默认 false
}, function(ret,err){?//ret = {size:1024} 剩余存储空间大小,单位为Byte,数字类型。(-1:无存储设备、-2:正在准备USB存
储设备、-3 :无法访问存储设备) });
api.getTotalSpace({?sync:false //执行结果的返回方式。为false时通过callback返回,为true时直接返回,默认false
}, function(ret,err){?//ret = {size:1024} 总存储空间大小,单位为Byte,数字类型。(-1:无存储设备、-2:正在准备USB存储
设备、-3 :无法访问存储设备) });
api.getCacheSize({?sync:false// 执行结果的返回方式。为 false 时通过 callback 返回,为 true 时直接返回,默认 false
}, function(ret,err){?//ret = {size} 缓存大小,单位为Byte,数字类型。(-1:无存储设备、-2:正在准备USB存储设备、-3:无
法访问存储设备)
});
api.clearCache({ timeThreshold:10//(可选项)清除多少天前的缓存,默认 0
}, function(ret,err){ });
//清除完成
6.沙箱机制
在 android 和 ios 中均采用虚拟沙箱的机制来保障数据存储的安全和独立,App 只能访问 自己文件系统的沙箱区域。沙箱位置如下。
? Android 的默认沙箱位置:sdcard/UZMap/appId。 ?
? iOS 的默认沙箱位置:Documents/uzfs/appId。 ?
7.资源访问协议 ?
APICloud 资源被存放在 app 安装包(ipa 包或者 apk 包)中或应用沙箱中。沙箱分为 APICloud 应用虚拟沙箱和 Native 应用真实沙箱,真实沙箱是操作系统为 app 在设备内部存储上分配的空间,不可见,只允许 app 本身访问。
?8.图片缓存 ?
对于图片缓存,可使用如下代码:
? ? var img = $api.byId("myImg");
? api.imageCache({
? ? url:‘http://example.com/dir/file.png‘
? },function(ret,err){
? ? if(ret &
&
ret.status == true){
? } img.src = https://www.songbingjia.com/android/ret.url;
? ?else{?} //处理错误 ?});
?
上述代码首先在参数中指定了要缓存的远程图片路径(url),在之后的回调函数中判断是否缓存成功(if(ret &
&
ret.status == true){}),如果成功就可以使用 ret.url 来更新
标签。ret.url 是图片缓存到本地后的路径。
更多app资讯,请关注www.apicloud.com
提交app定制需求,了解报价和周期:
https://app.apicloud.com/index?uzchannel=500
【APP怎样进行本地存储和图片缓存?】
推荐阅读
- 调查android logcat进程退出原因
- APP模板开发APP的优势有哪些?
- Springboot Application 集成 OSGI 框架开发
- 张其中两周暴涨54倍的EOS内存,背后的Dapp是如何进行产品设计的()
- Android中渐变图片失真的解决方案
- Trapping Rain Water
- Android开发工程师文集-提示框,菜单,数据存储,组件篇
- Android开发工程师文集-layout_weight讲解
- Android开发工程师文集-相关控件的讲解,五大布局