当前位置:首页 > 手机 > 正文内容

解决Android关机后SD卡上的程序图标消失

lonhowe13年前 (2011-09-23)手机569

 说实话,这不能不算是Android的一个弊端,也怪Android最初考虑apk安装的时候考虑的不够充分完全。解决方法的前提是机子要有root权限,并且能用命令行(或者你在电脑上用adb工具也可以),我们要做的就是重启桌面。

 

  进入命令行,使用su获得root权限,然后执行ps命令,可以看到如下:

root      4451  1     101520 27376 ffffffff 00000000 S zygote
system    4458  4451  226680 37284 ffffffff 00000000 S system_server
app_48    4535  4451  137596 24608 ffffffff 00000000 S com.lge.android.cime
radio     4540  4451  147660 24908 ffffffff 00000000 S com.android.phone
app_54    4543  4451  167056 31740 ffffffff 00000000 S android.process.lghome
system    4545  4451  133820 20352 ffffffff 00000000 S com.android.settings

  但是桌面程序是哪个呢?这就真的依赖机子本身了,譬如我这个测试机是LG P503,对应的桌面程序是android.process.lghome,所以通过上面的ps命令结果可以看到它的进程号是4543(红色标出,当前行的第一个数字,记住,是第一个数字4543而不是第二个数字4451),于是执行:

#kill –9 4543

  此时不会重启机子,只用重新再去桌面就OK了。另外记住:上面如果kill过system_server的话,要重新执行ps命令获取桌面的进程号,因为重启后这些进程号都变了。

  如果你不是LG P503机器,你也可以查查看你的桌面程序是什么,如果是原生的系统,会有launcher的关键字,找找看,再或者找找其它看起来像的,就找进程号大于system_server的,如本例中,system_server的进程号是4458(红色标出),那么找所有第一个数字大于4458的kill看看,不用害怕,最多也就是重启一下手机,不会破坏手机的。成功后,记住后面的名字(如本例中的android.process.lghome),以后用得着的,说不定就这次就用得着,因为你在寻找过程中,可能kill掉了不该kill的进程,那么你再次重启后,直接kill这个桌面程序就OK。

  如果你实在难以找到桌面程序的进程(其实按照上面的方法每一个都试试,一定能找到的,我在考虑是不是写个简单的apk供大家简单使用呢?不过想必这个东西用过linux的都会,所以我就不卖弄了)。也可以尝试找出system_server的进程号(如果你能确定你的桌面程序,直接跳过这一步往下看),第一个数字4458就是,然后再执行kill命令:

#kill –9 4458

  然后就可以看到你的机子重启了,等启动完之后,如果图标都回来了,那就万事OK了。如果没有完全回来,那就只能用上面的方法了。

总结:

  方法其实很简单:获得桌面程序的进程号,杀掉它(它会自动重启),就得到了完整的图标。

原理分析

  android为了把应用程序装到sdcard上面,对每个安装在上面的应用都挂载了对应的目录。但是我们在手机启动之后,这些都还没完全挂载上,所以桌面根本访问不到它们,既然访问不到,自然图标就没有了(说到这里,如果android不仅把程序列表存起来,也把图标对应存起来估计就少了一些麻烦了,虽然存在程序删掉了但是图标没删的问题,但有什么问题呢?)。所以上面的动作就是为了让桌面程序重启一次。重启system_server的原因是因为桌面程序在每个机子上都不同,难以找到,而system_server都一样,如果能找到桌面程序的进程直接kill掉那是最好的了。因为此时sdcard已经挂载上了,那些应用程序也相继在挂载,但如果应用程序多,就不一定挂载完了,毕竟有一个过程的。

  至于网上说的是因为sd卡读写速度慢造成图标读不出来,那是浮云~~sd卡读写速度虽然慢,但不是造成这个问题的关键。祝各位能顺利解决问题。

  写这篇文章纯粹是因为博客太久没更新了,所以写写。

补充:

  如果你看到这个地方了,你估计要吐血了。。。因为经过继续摸索,发现一个更简单的方法:那就是利用任务管理器,将所有的应用程序关掉,那么这里面的应用程序就必定包括了桌面程序,从而达到了上面要关掉桌面程序的目的。这样你就不必自己去寻找桌面程序的进程号再去关掉它了。这里我用的是安卓优化大师,不过我想任何一个任务管理器或者程序管理器都能做到这一点吧,甚至Android自带的应用程序管理如果你愿意一个个试着关掉的话,也是可以办到的。

扫描二维码推送至手机访问。

版权声明:本文由IT之家发布,如需转载请注明出处。

本文链接:https://www.it678.com/post/110.html

分享给朋友:

“解决Android关机后SD卡上的程序图标消失” 的相关文章

搭载Tango系统,微软明年出WP7低端手机

 不久之前美国ZDNet博客作者玛丽-乔-弗利(Mary Jo Foley)称微软将推出一款名叫Windows Phone Tango系统,该系统介于Mango和Apollo之间。如今这一消息得到了进一步证实,微软在香港的MSDN Seminar栏目上确定将推出廉价版的操作系统,名字就叫Tango。...

微软Mango应用程序达3万,9月发布正式版SDK

8月24日消息,据国外媒体报道,目前已有约30000个手机应用程序可用于微软最新的 Windows Phone,这是继微软3月份宣布11500个可用应用程序以来的又一次迅速增长,但距离行业的领头羊位置尚有差距。对比其他手机平台,iOS平台目前拥有约425000个应用程序,Android平台目前拥有约...

Symbian Anna和Symbian Belle 你知道吗?

Symbian Anna 为诺基亚(Nokia)于2011年4月12日最新发布的手机操作系统 诺基亚 Symbian Anna,但Symbian Anna仅仅是Symbian^3的升级固件。Symbian Anna 加入了更加人性化的输入界面,并且使用了全新的浏览器,速度更快。支持更新升级到Sym...

A2SD+后,转移内部存储安装程序及数据文件到EXT3分区的方法,完全解决空间不足的问题!

HD2直刷的安卓内置空间对于喜欢安装各种各样应用程序的朋友来说实在是不够用,安装不了多少软件就会出现内存紧张的情况。好在有A2SD+这样的技术来解决空间不足的问题。A2SD+比起DATA2SD的方法(即在SD卡上做一个data2sd\data.img文件虚拟为手机存储空间)更稳定、更快速。比如:A2...

APP2SD (App2fat、app2ext) data2ext CM包两种方式三种方法扩大存储容量的教程与比较

一、App2sd:就是把用户程序装到sd卡中,减少对机器内存占用,从而达到多装软件的目的。Me600刷完CM包后给用户可以使用机器内存是224M,即使不装大型游戏软件也相当吃紧,比如Documents TO GO,占用内存是10.71M,UCv8是14.0M,淘宝是8.88M,如果再装一到两个大型游...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。