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

顺德网站建设教程/seo咨询师招聘

顺德网站建设教程,seo咨询师招聘,江西网站制作,网站建设思维导图模版Android外置存储备忘本文是我和大牛同事的聊天记录,只是备忘。各位看官可能会觉得前言不搭后语,如果看不懂请勿喷。本人工作忙,没有时间仔细整理。 A : 为什么android的外置存储这块搞那么复杂 /data/media挂到/mnt/runtime/(de…

Android外置存储备忘

本文是我和大牛同事的聊天记录,只是备忘。各位看官可能会觉得前言不搭后语,如果看不懂请勿喷。本人工作忙,没有时间仔细整理。



A :

为什么android的外置存储这块搞那么复杂

/data/media挂到/mnt/runtime/(default,read,write)/emulated上,然后在进程创建的时候,/mnt/runtime/(default,read,write)又mount到/storage 。还要考虑primary和secondary。把之前的fuse换成sdcardfs。搞这一套只是为了权限控制吗?

B:

权限控制是主要的,sdcardfs纯粹是为了提升效率,fuse毕竟一个进程服务所有app的读写请求,I/O效率太低


A:

他是怎么控制权限的呢? 我看了下,/mnt/runtime/(default,read,write)的权限都是rwxr-xr-x

在这里插入图片描述


B:

不同的挂载视图,everybody组的mask不一样,通过mask来屏蔽用户组的读写权限


A:

我也发现了,/data/media向/mnt/runtime/(default,read,write)/emulated挂载的时候,mask是不一样的。我还是内核里看了sdcardfs的源码,没看懂


B:

fs的代码就不管了,主要还是那堆fuse的逻辑挪到kernel里边了


A :

每个进程在访问sdcardfs的时候,都是判断的everybody组吗? 那sdcard_rw/sdcard_r组还有用么。


B:

嗯;

sdcard_rw只对default挂载模式有意义


A:

在zygote fork进程的时候,每个进程根据申请的sd卡权限不同,会创建自己的mount namespace。你说的不同的挂载视图是指的这个吧?

WRITE_MEDIA_STORAGE这个权限主要是控制可插拔的外置sd卡吗? 我之前都不知道还有这个权限。谷歌为什么限制应用访问外置sd卡呢


B:

挂载视图是google的说法,就是default read write这三个挂载点,因其权限不同但实际都指向同一存储位置,所以用视图这个说法比较准确

大家都随地大小便,谁给搽屁股?关键也不知道谁拉的,不能乱搽


A :

那它把外置sd卡和internal sd卡一样对待不就完了么? 还搞出个WRITE_MEDIA_STORAGE,感觉有点多余。再说通过document provider来访问,它就能记录里面的文件是谁创建的?


B :

Write media storage是高级特权,不是谁都能做用的,不能滥用。主要防止第三方在里边乱搞就可以了,请求外置卡存储过程中用户是可以看到的

A:

奥,那明白了,用户在docuemnt ui里面点了文件,调用方才会被赋予permission。我感觉从android 2.x的版本到现在的9.x,变动最大的就是存储这一块,简直是反人类

B:

App默认是可以直接读写externalSD/Android/data/com.package目录的,谷哥一直是建议app把自己的数据放到自己目录下的

安卓的历史,一路都是存储的坑,都丢给厂家了,因为亲儿子从来不支持外置存储


A :

那这两天邮件里的那个问题,我们系统签名的应用申请了WRITE_MEDIA_STORAGE,但是写不了外置存储。到底是什么原因?

这个邮件我看了好几次没看明白


B :

谷哥对这种特权的app不再给其挂载default视图了,且把sdcard_rw组权限也去掉了。外置存储不像内置,本身不可以全局可写,所以所有app都无法通过sdcardfs来写,但这种特权的app可以绕过sdcardfs,直接写/mnt/…这种底层fs路径


A:

那么按谷歌建议的做法,就要通过document provider来写外置存储。为什么document provider能写呢?


B :

上边不是说了,默认可以往android/data/pkg下边写,不用特权就可以,你非得要往其他目录下写吗?


A :

我的意思是,既然app不能随便写外置sd卡,那为什么document provider可以呢? 系统是怎么给他放行的?


B :

手机输入好麻烦,我换电脑。有些App有这个需求

系统就搞了个externalstorageprovider,有write media st特权,有谁有这个需求,就来通过documentui来请求它,它代而为之、


A :

也就是说externalstorageprovider也是通过/mnt/这种底层路径来读写的?


B :




A:

那我就明白了


B :

那你可以跟其他人讲一下


A:

你看这些东西是直接看的源码? 还是看的文档? 我感觉我看代码有点费劲啊,都是些和文件系统相关的底层的概念


B :

只有TNND的source code,RTFSC

A:

我先在我们组里说一下吧。还有,你咋不做技术分享了?可以每个月讲一次,有不少同事挺愿意学习的

我看代码容易钻牛角尖,尤其是看内核代码

上次搞个内核单步调试还没搞好,单步执行老是跳乱


B :

就前几天有人说这个,我也刚看了一通这块


A :

其实android上很多设计理念都很不错,比如sdcardfs,作为一个wrap fs, 把底层的文件系统包装起来,很像代理设计模式。设计的很好,但是当体现到源码上,就有很多细节,比较复杂,如果对文件系统源码不熟,很难分析下来


B:

看个大概,知道大致原理就够了,你又不维护它


A :

所以我看代码有时候钻牛角尖,这个毛病得克服一下。老是想完全搞明白,其实不太实际


B :

android、linuxkernel太多代码了,就是有心思深入,也难免太深入栈溢出了,看到底层都忘了怎么调过来了。。。好读书不求甚解。你现在生活自由无羁绊,是可以随性深入的


A:

生活自由无羁绊,不存在的!!!哈哈哈

http://www.jmfq.cn/news/4796119.html

相关文章:

  • 哪家网站建设服务好/百度竞价推广代理
  • 做内衣的网站/网站优化排名怎么做
  • 网页设计 网站/郑州千锋教育培训机构怎么样
  • 上海高端网站建设定制/网站收录怎么做
  • 哪个网站做攻略比较好/seo 优化 工具
  • asp与php做网站哪个好/网站制作流程图
  • 舟山网站建设设计/杭州百度seo
  • wordpress 域名分离/关键词优化公司哪家好
  • 做网页的素材网站/查询域名网站
  • 网站建设推荐公司/sem和seo
  • 找外包做网站要多久/老哥们给个关键词
  • 昆明seocn整站优化/青岛网站建设培训学校
  • 企业信用信息查询公示系统北京/长沙网站seo优化排名
  • 网站建设公司怎么寻找客户呢/临沂seo公司
  • 做地方网站需要什么部门批准/排名点击工具
  • 专门做尿不湿的网站/直播发布会
  • 免费空间asp网站/奶茶软文案例300字
  • 做网站和服务器的大小有关吗/百度指数官方网站
  • 查询网站怎么做/百度关键词指数排行
  • 郑州富士康事件真相/搜索引擎优化师
  • 平湖市规划建设局网站/浏览器地址栏怎么打开
  • 石家庄做网站排名公司/企业宣传册
  • b2b电子商务网站网址/怎么做网络营销推广
  • 静态网站用什么做最快/sem推广计划
  • 浙江公司网站建设制作/武汉百度推广电话
  • 百度新疆网站建设/seo黑帽技术
  • 免费建立个人网站/青岛网站建设方案服务
  • 百度快照 如何抓取网站/百度认证营销推广师
  • 给网站做路由/外链链接平台
  • 连云港网站制作公司哪家好/国家重大新闻