今天怎样注册有缘网网上面机器人多,一个女的问几百个男的问题,和几百个男的聊天优胜劣汰,垃圾,这些不能信了

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
能提出这个问题的,应该都了解它们的共同点:它们会被原封不动的拷贝到APK中,而不会像其它资源文件那样被编译成二进制的形式。要说区别,当然最直观的就是获取它们的InputStream的API不一样了。assets:InputStream assets = getAssets().open("xxxx");raw:InputStream raw = getResources().openRawResource(R.raw.xxxx)有人可能会有疑问,既然它们都是被原封不动的拷贝到APK中,而assets可以创建目录结构,又能够动态的列出assets中的所有资源getAssets().list(String path);,这些raw都做不到,那raw还有什么用呢?下面我们来说说它们主要的区别:由
于raw是Resources
(res)的子目录,Android会自动的为这目录中的所有资源文件生成一个ID,这个ID会被存储在R类当中,作为一个文件的引用。这意味着这个资源
文件可以很容易的被Android的类和方法访问到,甚至在Android
XML文件中你也可以@raw/的形式引用到它。在Android中,使用ID是访问一个文件最快捷的方式。MP3和Ogg文件放在这个目录下是比较合适
的。assets目录更像一个附录类型的目录,Android不会为这个目录中的文件生成ID并保存在R类当中,因此它与
Android中的一些类和方法兼容度更低。同时,由于你需要一个字符串路径来获取这个目录下的文件描述符,访问的速度会更慢。但是把一些文件放在这个目
录下会使一些操作更加方便,比方说拷贝一个数据库文件到系统内存中。要注意的是,你无法在Android
XML文件中引用到assets目录下的文件,只能通过AssetManager来访问这些文件。数据库文件和游戏数据等放在这个目录下是比较合适的。另
外,网上关于assets和raw的资料都千篇一律了,因此关于这两者中单个文件大小不能超过1M的**错误**描述也在传播,即如果读取超过1M的文件
会报"Data exceeds UNCOMPRESS_DATA_MAX (1314625 vs
1048576)"的IOException,还引申出种种解决方案。个人认为不应该有这样的限制,为了验证这个说法写了个Demo,发现将近5M的压缩
包在assets和raw中都能正常访问,因此在这里纠正一下,理论上只要打包不超过Android APK
50M大小的限制都是没有问题的。当然了,不排除是Android很早期的时候因为设备硬件原因aapt在编译的时候对这两个文件夹大小做出了限制,如果
是这样,较新版的ADT应该不会出现这种情况。更新:为了验证我最后一段的描述,避免导致结果误
导,晚上写了几个小Demo验证之后又花了点时间查阅了一些资料,最后找到这篇文章/blog/2010/03
/26/dealing-with-asset-compression-in-android-apps/
,文章比较简单清晰,我就不翻译了。这篇文章应该还蛮有说服力的,从根本上说明了当时Android2.3以前产生资源文件单个文件大小不能超过1M的原
因和部分解决方法。不过由于限制是当时的aapt决定的,现在已经更新了多个版本的aapt已经不存在这种问题了,也印证了我最后一段的猜想。原文作者: futurexiong原文地址: /futurexiong/archive/5350.html
阅读(2339)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'Android中assets目录和res/raw目录的异同和使用场景',
blogAbstract:'今天看到有人问Android中assets目录和raw目录的区别和使用情况。能提出这个问题的,应该都了解它们的共同点:它们会被原封不动的拷贝到APK中,而不会像其它资源文件那样被编译成二进制的形式。要说区别,当然最直观的就是获取它们的InputStream的API不一样了。assets:InputStream assets = getAssets().open(\"xxxx\");raw:InputStream raw = getResources().openRawResource(R.raw.xxxx)',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:4,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'-1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}Android中asset文件夹和raw文件夹 - 博客频道 - CSDN.NET
robert的专栏
Android开发,java编程
分类:android
res/raw和assets的相同点:
两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。
assets和res/raw工程目录下都可以放一些小于1M的文件(2.3版本以前要求,否则将不能读出数据。),这些文件将被打包到APK中应用使用。assets目录下的文件将不做任何处理被打包,,如果你的资源很大,例如视频等等,应该单独存储在文件系统中。
res/raw和assets的不同点:
1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。
2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹
读取文件资源方法:
1.读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作
InputStream is = getResources().openRawResource(R.id.filename);
2.读取assets下的文件资源,通过以下方式获取输入流来进行写操作
AssetManager am =
am = getAssets();
InputStream is = am.open(&filename&);
3.通过URI访问raw资源
Uri uri = Uri.parse(&android.resource://package_name/raw/sample.png&);
欢迎扫描二维码,关注公众账号
排名:第4811名
我的微信公共账号
关注我的微信公众号,第一时间获得博客的更新提醒,更有很多其它的技术信息分享给大家,扫一扫下方二维码或搜索微信号le_coding即可关注
(5)(27)(13)(74)(18)Android中资源文件夹res/raw和assets的使用 - android-string-layoutencodingxml -
Android中资源文件夹res/raw和assets的使用
相关推荐:
在建立项目中一般会默认建立assets文件,当然我们还可以在res文件下面建立raw文件夹,这里面都可以存放一些图片,音频或者文本信息,可以供我
*res/raw和assets的相同点:1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。*res/raw和assets的不同点:1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹 *读取文件资源:1.读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作view plainInputStream is = getResources().openRawResource(R.id.filename);2.读取assets下的文件资源,通过以下方式获取输入流来进行写操作view plainAssetManager am =am = getAssets();InputStream is = am.open(&filename&);补充一下:在未知目录下有哪些文件,该去和获取这些文件的名称并把文件拷贝到目标目录中呢?(用于内置文件但不知道文件名称,需要筛选出想要的文件然后拷贝到目标目录中,推荐内置在assets文件夹中)1.res/raw目录:通过反射的方式得到R.java里面raw内部类里面所有的资源ID的名称,然后通过名称获取资源ID的值来读取我们想要的文件。(这个方法我没试过,有用过的同学麻烦发一段代码看看)。2.assets目录:getAssets().list(&&);来获取assets目录下所有文件夹和文件的名称,再通过这些名称再读取我们想要的文件。assets:用于储藏必需打包到利用过程的静态文件,以便安排到装备中。与res/raw不同点在于,ASSETS扶持任意深度的子目录。这些文件不会生成任何资源ID,定然利用/assets开始(不包括它)的相对路径名。res:用于储藏利用过程的资源(如图标、GUI格局等),将被打包到编译后的Java中。不扶持深度子目录res/menu:储藏基于XML的菜单描写;res/raw:储藏通用的文件, 该文件夹内的文件将不会被编译成二进制文件,按原样复制到装备上。res/values:储藏字符串、尺寸值。res/xml: 储藏通用的XML文件三个特异的资源目录 /res/xml /res/raw 和 /assets在android开发中,我们离不开资源文件的利用,从drawable到string,再到layout,这些资源都为我们的开发供给了极大的方便,不过我们平时大局部工夫接触的资源目录等闲都是下面这三个。/res/drawable/res/values/res/layout但android的资源文件并何止这些,下面就为大家推荐一下另外三个资源目录/res/xml/res/raw/assets率先是/res/xml ,这个目录中大家可能偶尔用到过,这里能够用来存储xml款式的文件,并且和其他资源文件一样,这里的资源是会被编译成二进制款式放到最后的安装包里的, 我们也能够穿越R类来拜会这里的文件,并且解析里面的内容,例如我们在这里储藏了一个名为data.xml的文件:&?xml version=xilie.org&1.0& encoding=&utf-8&?& &root& &title&!&/title& &/root& 随后,我们就能够穿越资源ID来拜会并解析这个文件了XmlResourceParser xml = getResources().getXml(R.xml.data); xml.next(); int eventType = xml.getEventType(); boolean inTitle = while(eventType != XmlPullParser.END_DOCUMENT) { //到达title节点时符号一下 if(eventType == XmlPullParser.START_TAG) { if(xml.getName().equals(&title&)) { inTitle = } } //如过到及格记的节点则取出内容 if(eventType == XmlPullParser.TEXT && inTitle) { ((TextView)findViewById(R.id.txXml)).setText( xml.getText() ); } xml.next(); eventType = xml.getEventType(); } 在这里,我们用资源类的getXml措施,归来了一个xml解析器,这个解析器的工作原理和SAX措施差不多, 要当心的是,这里的xml文件,最后是会被编译成二进制形式的,万一大家想让文件原样存储的话,那么即将用到下一个目录啦,那即便/res/raw目录这个目录的单一差异即便,这里的文件会原封不动的存储到装备上,不会被编译为二进制形式,拜会的措施也是穿越R类,下面是一个例子:((TextView)findViewById(R.id.txRaw)).setText( readStream(getResources().openRawResource(R.raw.rawtext)) ); private String readStream(InputStream is) { try { ByteArrayOutputStream bo = new ByteArrayOutputStream(); int i = is.read(); while(i !欧珀莱= -1) {bo.write(i); i = is.read(); } return bo.toString(); } catch (IOException e) { return &&; } } 这次利用资源类中的措施,openRawResource,归来给我们一个输入流,这么我们就能够任意读取文件中的内容了,例如上面例子中那样,原样输出文本文件中的内容。当然,万一你必需更高的自由度,尽量不受android平台的局限,那么/assets这个目录即便你的首选了~这个目录中的文件除非不会被编译成二进制形式之外,另外一点即便,拜会措施是穿越文件名,而不是资源ID。并且还有更重要的一点即便,大家能够在这 里任意的发生子目录,而/res目录中的资源文件是不能自行发生子目录的。万一必需这种灵便的资源存储措施,那么就看看下面这个例子:AssetManager assets = getAssets(); ((TextView)findViewById(R.id.txAssets)).setText( readStream(assets.open(&data.txt&)) ); 在context上下文中,调用getAssets归来一个AssetManager,然后利用open措施就能够拜会必需的资源了,这里open措施是以assets目录为根的。因而上面这段代码拜会的是assets目录中名为data.txt的资源文件~,*res/raw和assets的相同点:1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。*res/raw和assets的不同点:1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹 *读取文件资源:1.读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作view plainInputStream is = getResources().openRawResource(R.id.filename);2.读取assets下的文件资源,通过以下方式获取输入流来进行写操作view plainAssetManager am =am = getAssets();InputStream is = am.open(&filename&);补充一下:在未知目录下有哪些文件,该去和获取这些文件的名称并把文件拷贝到目标目录中呢?(用于内置文件但不知道文件名称,需要筛选出想要的文件然后拷贝到目标目录中,推荐内置在assets文件夹中)1.res/raw目录:通过反射的方式得到R.java里面raw内部类里面所有的资源ID的名称,然后通过名称获取资源ID的值来读取我们想要的文件。(这个方法我没试过,有用过的同学麻烦发一段代码看看)。2.assets目录:getAssets().list(&&);来获取assets目录下所有文件夹和文件的名称,再通过这些名称再读取我们想要的文件。
相关推荐:*res/raw和assets的相同点:1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。*res/raw和assets的不同点:1.res
*res/raw和assets的相同点:1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。*res/raw和assets的不同点:1.res/raw中的文件会被映射到R.java文件中,访问的...
相关阅读排行
相关内容推荐
请激活账号
为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。
您的注册邮箱:
如果您没有收到激活邮件,请注意检查垃圾箱。帐号:密码:下次自动登录{url:/nForum/slist.json?uid=guest&root=list-section}{url:/nForum/nlist.json?uid=guest&root=list-section}
贴数:2&分页:enjoy tennis发信人: apkstore (enjoy tennis), 信区: MobileDev
标&&题: Android assets或res/raw等目录下的某文件Uri要怎么写?
发信站: 水木社区 (Wed May 16 17:49:18 2012), 站内 && 比如 res/raw 里面有个文件 test.mp3 && 有什么方法把这个 test.mp3 变成 Uri . &&&&&& 补充一下, 笨办法就是用 && InputStream is=getResources().openRawResource(R.raw.test); && 然后再把is 写成文件,再用 Uri.fromFile( )&&, && 但这也太绕了,有什么更好的办法。 &&&& --
※ 修改:·apkstore 于 May 16 17:56:29 2012 修改本文·[FROM: 119.255.38.*]
※ 来源:·水木社区 ·[FROM: 119.255.38.*]
enjoy tennis发信人: apkstore (enjoy tennis), 信区: MobileDev
标&&题: Re: Android assets或res/raw等目录下的某文件Uri要怎么写?
发信站: 水木社区 (Wed May 16 17:59:23 2012), 站内 && OK, 多谢!&& -- && ※ 来源:·水木社区 ·[FROM: 119.255.38.*]
文章数:2&分页:}

我要回帖

更多关于 有缘网注册 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信