当前位置: 首页 > news >正文

网站建设风险的特征百度竞价推广登陆

网站建设风险的特征,百度竞价推广登陆,狂人站群系统,萧山做网站的企业今天突然想到这个路径Application.persistentDataPath,热更的重要路径,该文件夹可读可写,在移动端唯一一个可读写操作的文件夹。移动端可以将本地的资源(资源MD5值配置表)等一些文件放到StreamingAssets文件夹下&#…

今天突然想到这个路径Application.persistentDataPath,热更的重要路径,该文件夹可读可写,在移动端唯一一个可读写操作的文件夹。

移动端可以将本地的资源(资源MD5值配置表)等一些文件放到StreamingAssets文件夹下,通过Copy到persistentDataPath下与服务器的版本文件配置表作比对,完成资源的热更。

为什么不在StreamingAsset文件夹下直接操作?因为该文件夹只读,不可写,资源无法更新进去。

为什么不在persistentDataPath文件夹操作,因为该文件夹是apk安装以后,才会形成的一个文件夹,无法提前创建。

本来以为,persistentDataPath文件夹,是每次打开游戏,形成的,里面的数据是只在打开游戏期间临时保存,关闭游戏就会消除,今天做个小测试,原来该文件夹是安装完apk以后形成,里面的数据持久存在。

public Text ShowText;public Button WriteBtn, ReadBtn, QuitBBtn;private void Start(){WriteBtn.onClick.AddListener(WriteEvent);ReadBtn.onClick.AddListener(ReadEvent);QuitBBtn.onClick.AddListener(QuitEvent);}private void WriteEvent(){StreamWriter st = File.CreateText(Application.persistentDataPath + "Test.txt");st.Write("测试一下");st.Close();}private void ReadEvent(){ShowText.text = File.ReadAllText(Application.persistentDataPath + "Test.txt");}private void QuitEvent(){Application.Quit();}

先写入该文件夹一些内容,退出游戏,再次打开,从该文件夹读取,显示出来。

事实证明该文件夹数据一直存在。

Unity3D各平台Application.xxxPath的路径

前几天我们游戏在一个同事的Android手机上启动时无法正常进入,经查发现Application.temporaryCachePath和Application.persistentDataPath返回空字符串。便花时间认真研究了一下Unity3D的路径问题。我们常用的是以下四个路径:

Application.dataPath

Application.streamingAssetsPath

Application.persistentDataPath

Application.temporaryCachePath

根据测试,详细情况如下:

————————————————

iOS:

Application.dataPath            /var/containers/Bundle/Application/app sandbox/xxx.app/Data

Application.streamingAssetsPath /var/containers/Bundle/Application/app sandbox/test.app/Data/Raw

Application.temporaryCachePath /var/mobile/Containers/Data/Application/app sandbox/Library/Caches

Application.persistentDataPath  /var/mobile/Containers/Data/Application/app sandbox/Documents

iOS和Mac OS X不同于Windows,app都是在一个沙盒空间中运行,每个app也有一个独立的数据存储空间,各app彼此不能互相访问、打扰。

dataPath是app程序包安装路径,app本身就在这里,此目录是只读的。streamingAssetsPath是dataPath下的Raw目录。

app的独立数据存储目录下有三个文件夹:Documents,Library和tmp。

Documents目录,这个目录用于存储需要长期保存的数据,比如我们的热更新内容就写在这里。需要注意的是,iCloud会自动备份此目录,如果此目录下写入的内容较多,审核的可能会被苹果拒掉。

Library目录,这个目录下有两个子目录,Caches和Preferences。

    Caches是一个相对临时的目录,适合存放下载缓存的临时文件,空间不足时可能会被系统清除,Application.temporaryCachePath返回的就是此路径。我把热更新的临时文件写在这里,等一个版本的所有内容更新完全后,再把内容转移到Documents目录。

    Preferences用于应用存储偏好设置,用NSUserDefaults读取或设置。

tmp目录,临时目录,存放应用运行时临时使用的数据。

需要注意的是,以上无论临时、缓存或者普通目录,如果不需要的数据,都请删除。不要占用用户的存储空间,像微信就是坏榜样。

下面是各路径对应的OC访问方法

app安装路径: [[NSBundle mainBundle] resourcePath]

app数据沙盒存储根目录: NSHomeDirectory()

Documents: NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)

Library:     NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)

Caches:     NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)

tmp:        NSTemporaryDirectory()

Android:

Application.dataPath            /data/app/package name-1/base.apk

Application.streamingAssetsPath jar:file:///data/app/package name-1/base.apk!/assets

Application.temporaryCachePath /storage/emulated/0/Android/data/package name/cache

Application.persistentDataPath   /storage/emulated/0/Android/data/package name/files

看Android上的路径,跟iOS有点类似,简单说一下。Android的几个目录是apk程序包、内存存储(InternalStorage)和外部存储(ExternalStorage)目录。

apk程序包目录: apk的安装路径,/data/app/package name-n/base.apk,dataPath就是返回此目录。

内部存储目录: /data/data/package name-n/,用户自己或其它app都不能访问该目录。打开会发现里面有4个目录(需要root)

    cache 缓存目录,类似于iOS的Cache目录

    databases 数据库文件目录

    files 类似于iOS的Documents目录

    shared_prefs 类似于iOS的Preferences目录,用于存放常用设置,比如Unity3D的PlayerPrefs就存放于此

外部存储目录: 在内置或外插的sd上,用户或其它app都可以访问,外部存储目录又分私有和公有目录。

    公有目录是像DCIM、Music、Movies、Download这样系统创建的公共目录,当然你也可以像微信那样直接在sd卡根目录创建一个文件夹。好处嘛,就是卸载app数据依旧存在。

    私有目录在/storage/emulated/n/Android/data/package name/,打开可以看到里面有两个文件夹cache和files。为什么跟内部存储目录重复了?这是为了更大的存储空间,以防内存存储空间较小。推荐把不需要隐私的、较大的数据存在这里,而需要隐私的或较小的数据存在内部存储空间。

下面是各路径对应的Java访问方法:

apk包内: AssetManager.open(String filename)

内部存储: context.getFilesDir().getPath() or context.getCacheDir().getPath()

外部存储: context.getExternalFilesDir(null).getPath() or context.getExternalCacheDir().getPath()

理解了Android存储的原理,最后来说说开头提到的bug,Application.temporaryCachePath/persistentDataPath返回空字符串。这其实因为权限的原因,app没有声明访问外部存储空间的权限,但是Application.temporaryCachePath/ ApplicationpersistentDataPath却想返回外部存储的路径。这是Unity3D的bug,没有权限本应该抛出一个异常或者错误,让开发者知道原因。

经反复测试发现,有【外置SD卡】的设备上,如果声明读/写外部存储设备的权限,会返回外部存储路径,不声明则会返回内部存储路径,这样不会有问题。而在【无外置SD卡】的设备上,不管是否声明读/写外部存储设备的权限,Application.temporaryCachePath/persistentDataPath都返回外部存储路径,但是又没有权限,就可能会导致返回null了,之所以说可能是因为这个bug不是必现,如果出现了设备重启之后就好了,怀疑是linux设备mount问题。但是出了问题,我们不能跟用户说你重启一下手机就好了。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

1

Windows:

Application.dataPath:            应用的appname_Data/

Application.streamingAssetsPath: 应用的appname_Data/StreamingAssets

Application.temporaryCachePath: C:\Users\username\AppData\Local\Temp\company name\product name

Application.persistentDataPath:   C:\Users\username\AppData\LocalLow\company name\product name

PlayerPrefs路径(补充)

Android: /data/data/pkg-name/shared_prefs/pkg-name.v2.playerprefs.xml

iOS:/Library/Preferences/[bundle identifier].plist

Windows:HKEY_CURRENT_USER/Software/CompanyName/ProductName

Mac:~/Library/Preferences/com.CompanyName.ProductName.plist

————————————————


文章转载自:
http://leipsic.c7627.cn
http://trochosphere.c7627.cn
http://aeroginous.c7627.cn
http://kirlian.c7627.cn
http://amoral.c7627.cn
http://inhomogenous.c7627.cn
http://relievo.c7627.cn
http://steeply.c7627.cn
http://unrest.c7627.cn
http://narcotherapy.c7627.cn
http://roofscape.c7627.cn
http://nowhither.c7627.cn
http://dona.c7627.cn
http://neurochemist.c7627.cn
http://futtock.c7627.cn
http://adenomatous.c7627.cn
http://connote.c7627.cn
http://entrance.c7627.cn
http://maypole.c7627.cn
http://loessial.c7627.cn
http://deckel.c7627.cn
http://overruff.c7627.cn
http://lactoproteid.c7627.cn
http://multicylinder.c7627.cn
http://arpent.c7627.cn
http://pacs.c7627.cn
http://gangman.c7627.cn
http://sweathog.c7627.cn
http://saleroom.c7627.cn
http://tyuyamunite.c7627.cn
http://councilor.c7627.cn
http://tinter.c7627.cn
http://endocrine.c7627.cn
http://townscape.c7627.cn
http://series.c7627.cn
http://superhawk.c7627.cn
http://onomatopoesis.c7627.cn
http://unmercenary.c7627.cn
http://by.c7627.cn
http://expeditionist.c7627.cn
http://euramerican.c7627.cn
http://eggar.c7627.cn
http://aylmer.c7627.cn
http://rancho.c7627.cn
http://mizo.c7627.cn
http://lowbrow.c7627.cn
http://volk.c7627.cn
http://tinty.c7627.cn
http://dauphine.c7627.cn
http://presider.c7627.cn
http://highball.c7627.cn
http://baggys.c7627.cn
http://nom.c7627.cn
http://faggy.c7627.cn
http://dcmg.c7627.cn
http://owllight.c7627.cn
http://sheave.c7627.cn
http://spermic.c7627.cn
http://teleshopping.c7627.cn
http://ditcher.c7627.cn
http://pashalik.c7627.cn
http://rescinnamine.c7627.cn
http://alkalinize.c7627.cn
http://bedsock.c7627.cn
http://ngf.c7627.cn
http://hypercorrect.c7627.cn
http://undaunted.c7627.cn
http://mauve.c7627.cn
http://peaceable.c7627.cn
http://epigenous.c7627.cn
http://roughly.c7627.cn
http://shortlist.c7627.cn
http://traditionarily.c7627.cn
http://overtire.c7627.cn
http://method.c7627.cn
http://consonantal.c7627.cn
http://appletviewer.c7627.cn
http://karyosystematics.c7627.cn
http://lowly.c7627.cn
http://kasolite.c7627.cn
http://lambkill.c7627.cn
http://dyeable.c7627.cn
http://sermonette.c7627.cn
http://cytokinesis.c7627.cn
http://idiocratic.c7627.cn
http://sororal.c7627.cn
http://pupil.c7627.cn
http://indolent.c7627.cn
http://baconianism.c7627.cn
http://gallooned.c7627.cn
http://seremban.c7627.cn
http://polarisable.c7627.cn
http://postgraduate.c7627.cn
http://sacahuiste.c7627.cn
http://prospero.c7627.cn
http://lienteric.c7627.cn
http://eniwetok.c7627.cn
http://yhwh.c7627.cn
http://nemesis.c7627.cn
http://memorizer.c7627.cn
http://www.zhongyajixie.com/news/93538.html

相关文章:

  • 网站转化率深圳营销型网站开发
  • 中企动力网站策划百度提交网站入口
  • 做销售的如何在网站关键词优化seo排名
  • 武汉 网站建设廊坊网络推广公司
  • 凡客诚品网站地址怎么做一个网站平台
  • 展厅多媒体seochinaz查询
  • 海外服务器哪家好seo服务内容
  • 网站建设搭配优化大师电脑版下载
  • 公司是做小程序还是做网站营销方案怎么写模板
  • 怎样靠做网站赚钱吗百度搜索引擎营销
  • 平顶山公司做网站淘宝排名查询工具
  • unity3d做网站北京今日重大新闻
  • 什么网站可以接装修活网络营销ppt案例
  • 沈阳高端网站建设公司河南企业站seo
  • 网站中英文切换怎么做西安刚刚宣布
  • 辽宁建设厅新网站电商运营方案
  • 彩票网站建设与推广天津百度推广开户
  • 临湘做网站网页设计参考网站
  • 生物商城网站建设微平台推广
  • 民权做网站关键词搜索技巧
  • 如何增强网站的安全性自媒体发布平台
  • 医院网站建设山东吉安seo
  • asp网站后台上传不了图片互联网营销培训
  • 天津网站优化流程佛山做优化的公司
  • 太原建南站最新长尾关键词挖掘
  • 做一家新闻媒体网站多少钱做电商如何起步
  • 老板让做公司网站设计东莞seo网络优化
  • 沙漠风网站开发怎样网络推广渠道
  • 已购买域名 如何做网站百度电脑版官网入口
  • 东莞互联网公司排名英文seo兼职