`

判断应用是系统程序还是用户程序?

 
阅读更多
if((context.getPackageManager().getPackageInfo(包名,0).applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) !=0)

如果值为true,说明是系统程序。
如果值为false,说明是用户程序。


原理解析

ApplicationInfo.FLAG_SYSTEM=public static final int FLAG_SYSTEM = 1<<0;用二进制表示:0000 0000 0000 0000 0000 0000 0000 0001
且每个Flag状态都不一样,会往左<<一个或几个,即
0000 0000 0000 0000 0000 0000 0000 0001、
0000 0000 0000 0000 0000 0000 0000 0010、
0000 0000 0000 0000 0000 0010 0000 0000。
聪明的你发现症节所在了吧,因为Flag,都是向左移动一个1,所以两个Flag相与,只能是等于0和不等于0。
等于0:两个Flag不相等
不等于0:两个Flag相等
为什么安卓要这样设计呢,好像是可以让代码更简洁,且提升一点性能。

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    4.如何判断应用程序是否有相同实例存在?(Visual C++编程 源代码)

    4.如何判断应用程序是否有相同实例存在?(Visual C++编程 源代码)4.如何判断应用程序是否有相同实例存在?(Visual C++编程 源代码)4.如何判断应用程序是否有相同实例存在?(Visual C++编程 源代码)4.如何判断...

    java实验:编写一个java应用程序,用户从键盘输入一个1-99999的数,程序将判断这个数是几位数,并判断这个数是.pdf

    3. **比较和反馈**:在循环内部,`if (gussnum )`和`if (gussnum &gt; num)`用来判断用户猜的数字是偏小还是偏大,并给出提示。 4. **用户交互**:`System.out.println()`用于输出提示信息,`scan.nextInt();`用于获取...

    编写一个java应用程序。用户从键盘输入一个1-9999之间的数

    编写一个java应用程序。用户从键盘输入一个1-9999之间的数,程序将判断这个数是几位数,并判断这个数是否回文数。回文数是指将数含有的数字逆序排列后得到的数和原数相同,例如12121,4224,6778776等都是回文数。 1)...

    编写一个判断回文数java应用程序。

    编写一个java应用程序。用户从键盘输入一个1-9999之间的数,程序将判断这个数是几位数,并判断这个数是否回文数。回文数是指将数含有的数字逆序排列后得到的数和原数相同,例如12121,4224,6778776等都是回文数。 ...

    android 判断应用程序在前台还是在后台运行

    在Android系统中,判断应用程序是处于前台运行状态还是后台运行状态是开发者经常需要处理的问题,尤其是在优化应用性能、实现特定功能或管理应用生命周期时。以下将详细介绍如何在Android中进行这种判断。 首先,...

    判断三角形形状程序 判断三角形形状程序

    在给定的代码片段中,我们可以看到一个用Java编写的简单程序,其目的是判断由用户输入的三个边长能否构成一个三角形,以及如果能构成,那么它是什么类型的三角形。下面我们将深入解析这个程序的核心概念、逻辑流程...

    判断应用程序是否仍在运行并设置焦点...

    ### 判断应用程序是否仍在运行 #### 实现原理 在Windows操作系统中,每个应用程序都有一个或多个窗口句柄(HWND),这些窗口句柄是Windows用于标识和操作窗口的唯一标识符。当一个应用程序运行时,它会创建一个或...

    ABAQUS用户材料子程序开发及应用_杨曼娟_abaqus子程序_ABAQUS;umat_

    《ABAQUS用户材料子程序开发及应用》是由杨曼娟编写的,主要涉及ABAQUS软件中的用户自定义材料模型——umat子程序。ABAQUS是一款强大的非线性有限元分析软件,其用户材料子程序功能允许用户根据特定的需求编写自己的...

    易语言判断程序是否手动启动

    在编程领域,有时候我们需要判断一个程序是通过用户手动执行还是由其他程序自动启动的。在易语言这个中国本土的编程环境中,实现这个功能同样非常重要,因为它可以帮助我们更好地控制程序的行为。易语言,全称...

    判断Windows可执行程序是32位还是64位

    本程序能够判断可执行程序是Win32的还是AMD64的, 其原理是读取二进制,判断其中几个字节的数据

    可以在应用程序中启动、关闭其他的应用程序、判断是否

    综上所述,"可以在应用程序中启动、关闭其他的应用程序、判断是否运行的用户对象"这一功能涵盖了操作系统级别的进程控制技术,涉及启动、终止、查询进程状态等多个方面。在实际开发中,理解并熟练运用这些技术对于...

    HarmonyOS第一课 应用程序框架-闯关习题及答案.docx

    在 HarmonyOS 的应用程序框架中,UIAbility 是构建用户界面的关键组件,它负责处理与用户交互相关的逻辑。本篇将围绕 HarmonyOS 第一课中的应用程序框架进行深入探讨,并解答相关的习题。 首先,我们来看一下判断题...

    编写一个java应用程序

    编写一个java应用程序。用户从键盘输入一个1-9999之间的数,程序将判断这个数是几位数,并判断这个数是否回文数。回文数是指将数含有的数字逆序排列后得到的数和原数相同,例如12121,4224,6778776等都是回文数。 1)...

    应用程序只能运行一次

    此时,应用程序需要考虑用户上下文来判断是否是单实例。 - **进程恢复**:如果原实例意外关闭,需要有机制让新启动的实例能够接管,而不是简单阻止启动。 总的来说,"应用程序只能运行一次"是一种常见的设计策略,...

    应用程序自动更新程序

    自动更新程序通过对比本地应用程序文件与服务器上的更新文件的时间戳来判断是否需要更新。文件修改时间是检查更新的关键指标,如果服务器上的文件时间戳晚于本地文件,那么就表明有新的更新可用。这种机制使得程序...

    易语言判断程序段是否运行结束

    易语言是一种专为中国人设计的编程语言,它以简明直观的中文语法,使得编程更加亲民。...通过熟练掌握易语言的控制结构和系统命令,可以轻松地判断程序段是否运行结束,从而实现更复杂的程序逻辑。

    编译原理 判断闰年程序

    用户可以通过编译这个源代码文件生成`Ifleap.exe`可执行程序,然后在命令行中运行这个程序并输入年份进行判断。 总结来说,编译原理是理解计算机如何处理高级语言的关键,而“判断闰年程序”则是一个简单的示例,...

    判断程序是否为WIN32程序

    而WIN32程序则是在Windows 32位操作系统下运行的,它们利用了Windows API(应用程序接口),这是一个32位的应用层,使得程序能够与操作系统进行更为复杂的交互。 判断程序类型的核心在于解析文件头。在DOS程序中,...

    vb.net关闭应用程序的代码

    在VB.NET编程环境中,关闭应用程序是一项常见的操作,无论是退出整个应用程序还是关闭单个窗口。本文将深入探讨如何在VB.NET中实现这一功能,并提供具体的代码示例,以关闭指定的应用程序,例如QQ。同时,我们将讨论...

Global site tag (gtag.js) - Google Analytics