迄今为止,Android系统的手机已经在整个手机市场中占有很大的比重。其中小米手机更是因为它的性价比和销售模式普遍的出现在了人们的日长生活中。
废话不多说,进入正题。作为一个Android的开发者,避免不了对各种手机进行适配,小米手机的MIUI系统不巧也在这个行列之中。
在进行适配的过程中,因为MIUI系统的各种功能的封装,对我们产生了很大的困扰。今天就来说一下小米的自启动问题。
做一款开机自启的软件,在其他的手机上很容易就实现了,结果在小米手机上却怎么也启动不起来。最后发现在小米的安全中心里有个授权管理。里面可以设置小米可以自启的软件,如果想要开机启动自己的程序,就需要用户手动将自己的程序在里面设置。不然的话是不会自启的。
事已至此对于小米的系统已经不抱任何希望了,但是我们更想探究一下微信、QQ等应用是怎么在小米系统上实现自启动的。
为了验证这个原因,我先把QQ从测试机上卸载了,发现自启动列表中同时也没有了QQ的选项。随后马上又安装了一个QQ,再去查看自启动列表。结果QQ又出现在了这个列表里。
同样的操作又在自己做的程序里,结果发现自己的程序没有出现在自启动列表里。
结果表明,要么是QQ有自己的处理添加到了这个列表里。这个处理实在是无从考证。要么是MIUI系统对QQ的特殊照顾。我们决定测试一下第二个想法。
我们把一个带自启动的程序包名改成了QQ的包名,然后安装到了MIUI的系统下,然后奇迹就发生了。
我们发现我们的自启动例子程序的图标自己变成了QQ的图标。然后在自启动列表中发现了自己的例子的身影,名字是我们的名字,图标却是QQ的图标!我和我的小伙伴们都惊呆了。。。。
结果表明,MIUI系统中是存在一个程序列表的,这个列表里缓存着一些拥有MIUI特权的程序。这让我们这些程序员情何以堪!