[教程] 【原创】媒体扫描耗电的完全解决办法(申精)

http://bbs.gfan.com/android-6740350-1-1.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文件,才会跳出对这个文件夹的扫描。相比之下,第二个方法,即是真正的跳过扫描,只是设置起来比较繁琐。两个方法都须要清空媒体存储的缓存,并重启。
  全部文字均手打原创,转载请带上个人名字Niky吧,为帮助更多人,不设置回复可见了,你们评良心回复吧。html

相关文章
相关标签/搜索