小编zac*_*ack的帖子

任务管理器中的ActivityManager.forceStopPackage()

这是我第一次在这里发帖.我不确定这是否是提出这个问题的正确位置,但我似乎没有找到其他更合适的地方.不管怎样,这是我的问题.

我知道API ActivityManager.forceStopPackage()是内部API ,只能从系统进程调用.但是,让我感到困惑的是com.motorola.PerformanceManager,我的motorola atrix手机上的内置任务管理器应用程序(包名称)可以直接调用它而不需要系统进程.我验证了两件事.

首先,它是来自ps命令的非系统进程:

app_64 13681 1379 170788 29820 ffffffff 00000000 S com.motorola.PerformanceManager
Run Code Online (Sandbox Code Playgroud)

其次,它确实ActivityManager.forceStopPackage()从其odex文件调用API(反编译为smali,然后转换为dex,然后转换为java).从smali代码中可以清楚地看到它调用了这个API.

我还检查了它对AndroidManifest.xml我来说没什么特别的文件(论坛错误地将内容识别为URL并阻止我发布它们).

清单文件确实包含android.permission.FORCE_STOP_PACKAGES应该是系统权限的权限.即使有此权限,非系统应用仍会获得权限拒绝错误.我尝试使用反射来获取android.permission.FORCE_STOP_PACKAGES权限,但仍然会收到运行时错误.

现在,内置的任务管理器应用程序如何在不作为系统进程的情况下调用内部API.一种可能性是应用程序使用相同的平台私钥进行签名.但是,我不确定如何验证这一点.此外,它仍然应该是清单文件中具有附加描述的系统进程.

希望有人能回答我的问题.谢谢.

android

5
推荐指数
1
解决办法
7505
查看次数

如何用任何连续数的唯一和构造一个正整数序列?

例如:1,2,4,5有以下总和:

1,2,4,5

3,6,9

7,11

12

每一笔钱都是独一无二的.

现在,1,2,3有以下总和:

1,2,3

3,5

6

并且显然不是每一笔钱都是独一无二的.

是否有任何有效的方法来生成与第一个示例类似的序列,目标是尽可能小地选择每个数字(不仅仅是1,2,4,8,16 ......)?我知道我可以编写一个程序来强制执行这个程序,但我只是好奇它能以更好的方式完成.

algorithm numbers sum sequence

4
推荐指数
1
解决办法
2898
查看次数

如何在Mac OS X(和iOS)中实现"窗口合成器"(WindowServer Process)?

如果我错了,请纠正我.我的理解是Mac OS X有一个WindowServer进程,它可以合成来自所有应用程序的窗口并在屏幕上绘制最终的合成图像.接下来的问题是WindowServer进程获取其他应用程序的"windows数据"(以某种形式,如位图).它是通过应用程序和WindowServer进程之间的共享内存机制实现的吗?任何关于此的信息或指针/文档都会有所帮助!

另外,iOS是否在这方面实现了类似的?

谢谢!

macos window-managers shared-memory quartz-graphics

2
推荐指数
1
解决办法
1009
查看次数