restartPackage && sharedUserId="android.uid.shared”

我们的任务管理器去关闭一个task,用到的方法是  android.app.ActivityManager.restartPackage 。但是这里有一个不完善的地方就是,launcher和contacts都具有 android:sharedUserId="android.uid.shared” 属性。restartPackage 方法它会关掉与这个ap关联(同ID)的所有ap。

这里我去关掉cantacts,在log里可以看到,andorid会同时关掉launcher,输入法,还有acore进程:

 DEBUG/ActivityManager(53): Force removing process ProcessRecord{438a46d0 104:android.process.acore/10001} (android.process.acore/10001)
DEBUG/ActivityManager(53): Force removing process ProcessRecord{43897660 192:com.android.inputmethod.latin/10001} (com.android.inputmethod.latin/10001)

INFO/WindowManager(53): WIN DEATH: Window{43910d90com.android.contacts/com.android.contacts.DialtactsContactsEntryActivity paused=false}
INFO/WindowManager(53): WIN DEATH: Window{4379ea98com.android.launcher/com.android.launcher.Launcher paused=false}
INFO/Process(53): Sending signal. PID: 192 SIG: 9
DEBUG/ActivityManager(53):   Force finishing activitycom.android.contacts/.DialtactsContactsEntryActivity

 

 

我去看了一个写得比较好的类似软件,它在关contact的时候,lancher也是会被关掉的。但是我们不用去担心用户自己安装的程序也具有android:sharedUserId="android.uid.shared”属性,因为这样的程序只能在build整个系统时放进去(就是系统软件),手动安装是没有权限的。提示错误:

ERROR/PackageManager(53): Package XXXX has no signatures that match those in shared user android.uid.system; ignoring!

 

 

 

另外的关进程的方法,要去获得它的pid,再调用android.os.Process.killProcess(),但是killProcess里明确说明了:packages sharing a common UID will also be able to kill each other's processes.

android.process.acore 應該是一些基本功能的載入程序.
從 Source code 看來, 它應包含以下項目.
1. 聯絡人
2. Google search
3. Global search (不太明瞭它的功能)
4. 程式啟動列表 (就是主畫面下方可往上拉起的來的那鍋)
5. 應用程式清單資料庫處理元件 (Applications Provider)
6. 聯絡人資料庫處理元件 (Contact Provider)
7. Google 聯絡人資料庫處理元件 (Google Contact Provider)
8. 使用者自定詞彙資料庫處理元件 (User Dictionary Provider)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值