ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

media.extractor媒体扫描耗电的彻底解决办法(转载)

2021-04-11 20:34:43  阅读:554  来源: 互联网

标签:extractor 这个 文件 nomedia 扫描 耗电 文件夹 media


转载出处:https://www.cnblogs.com/quejuwen/p/7364163.html

 研究换4.1.2也有段时间了,4.1.2各方面功能均让我挺满意的,用着也蛮顺手的。偶尔上论坛,看到有人说,4.1.2存在媒体扫描耗电的bug,当时我还不以为然,也庆幸自己的这个版本没有问题,直到有一天,这个bug爆发了。。。
  那天,下了一个叫百词斩背单词的软件,进入软件后,就点了数据包离线下载,下了一段时间后,全部数据下载完毕,噩梦就开始。手机严重发热,1小时掉电20%都不在话下。开始以为是百词斩应用捣的鬼,卸载后耗电依旧。看电池使用情况,发现是一个叫“媒体”的系统应用耗电严重,远超过屏幕耗电。无奈之下,双清,进入系统后,却发现耗电依旧。这回我没办法了。。。
  于是乎,我便开始研究起这个耗电的应用程序了,发现这个表面叫媒体的应用程序,实际上是MediaProvider.apk中的一个叫做MediaScannnerService的服务一致在后台运行。禁用服务了此服务,耗电立即中止。但重启后,发现图片,视频,声音都浏览不了了,甚至连相机也无法拍照了。Google了一下,得知,这个服务,实际上是为安卓准备媒体的,估计应该是后台扫描媒体文件,提供给看图程序,播放程序的。那为什么以前这个服务并不耗电,现在就如此耗电了?感觉问题还是出在百词斩上,于是我认真查看了sd存储卡,这才发现百词斩在我sd卡上下载了大量文件(位置在sdcard0\baicizhan),大小倒是不怎么大,也就几百兆,不过文件数量太多了,能有上万个。于是,问题找到了,就是媒体扫描sd卡的时候,由于文件过多,导致扫描阻塞,占用资源,导致发热。
  
  原因找到了,问题也随之而来。这个服务既然不能停,那sd卡上又免不了拷贝很多文件。能不能在扫描时排除用户不想扫描的文件或文件夹呢?问了度娘,拜了谷哥,虽找到些线索,但多半也是语焉不详,最终也无法解决。于是,自己就开始摸索,经过无数次的修改和重启,终于发现了两个办法可以彻底解决此问题:
  
  第一个就是网友们所说的.nomedia方法。即:在不想让系统扫描的文件夹下,创建一个叫.nomedia文件。关于这个文件,网上有两种说法,一种就是创建.nomedia空文件,另一种说法是创建.nomedia文件夹。个人认为,创建.nomedia空文件就可以了,因为,系统就是用这样的方式来规避查找数据文件的。我们不妨来看一下,打开这个目录\sdcard0\Android\Data,发现里面争好有一个.nomedia空文件。由于这个文件是.开头的,安卓会视为隐藏文件,需要使用re管理器才能看到。我们可以直接拷贝这个文件,也可以自己创建一个空文件,改成这个名字。那么也有网友反应,说即使在文件夹下创建了这个文件,系统依然会扫描这个文件夹,那么接下来就事要做重要的两步了。
  由于之前系统已经对文件夹执行过扫描,这个文件夹已经存在了数据库,因此,即使有这个.nomedia文件,系统依然会进行扫描。解决的办法是:到应用程序管理器中,找到媒体存储的应用,点击清空缓存,这样,所有扫描过的数据文件都被清除了,这回重启就不会扫描了。
  
  下面说第二个方法:这个方法只适用于4.1以上的机型并且是已经root,通过修改/system/csc/feature.xml文件来实现。
  修改:<CscFeature_MediaScanner_SkipFolder4>/storage/sdcard0/autonavidata50/,/storage/sdcard0/DioDict3B/</CscFeature_MediaScanner_SkipFolder4>
  这个元素,我们可以看到,安卓系统也正是通过这个配置,来禁止扫描导航数据和词典数据来提升系统性能的。那么,我们也来模仿,比如说,我们不想让系统扫描sdcard0上的baicizhan目录,那么就添加或改写一项。
  <CscFeature_MediaScanner_SkipFolder4>/storage/sdcard0/baicizhan/,/storage/sdcard0/DioDict3B/</CscFeature_MediaScanner_SkipFolder4>
  因为我没用三星自带的导航,所以,这里我是改写的。注意,目录一定要写对。同样,修改完之后,需要到应用程序管理器中,清空媒体存储的缓存,重启。
  这回开机再看看开机后,媒体扫描的时间是多少?是不是较以前大大改善了,如果不确定媒体是否扫描了这个文件夹,那么可以往这个文件夹里拷贝几张图片,看看我们设置排除的文件夹里的图片是否被加载到了图库。
  以上两种方法,本人均已测试成功,要说两种方法有什么区别,个人认为,创建.nomedia的方法较为简单,而且也有专门的管理工具,例如:小熊.nomedia管理工具等,googlplay上搜索nomedia,有很多的。那么这个方法的弊端是,媒体必须扫描到这个文件夹里的.nomedia文件,才会跳出对这个文件夹的扫描。相比之下,第二个方法,便是真正的跳过扫描,只是设置起来比较繁琐。两个方法都需要清空媒体存储的缓存,并重启。

标签:extractor,这个,文件,nomedia,扫描,耗电,文件夹,media
来源: https://www.cnblogs.com/huaxiaguyuan/p/14645293.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有