[Android] 关于getinstalledpackages参数的分析
reference to : http://blog.csdn.net/luojiusan520/article/details/47696891
getinstalledpackages()的方法获取到安装应用信息 ,他接收一个int flags的值,然后在网上查询资料全是 将Int 值 设置为0 即比如
PackageManager manager = context.getPackageManager();// 得到包的管理者
List<PackageInfo> installedPackages = manager.getInstalledPackages(0);
本想查看源代码看看0是什么参数。结果就出现了问题,参数如下
public static final int GET_ACTIVITIES = 0x00000001;
public static final int GET_RECEIVERS = 0x00000002;
public static final int GET_SERVICES = 0x00000004;
public static final int GET_PROVIDERS = 0x00000008;
...0x00000010;
0x00000020;
0x00000040;
0x00000040;
0x00000080;
0x00000100;
0x00000200;
0x00000400;
0x00000800;
0x00001000;
0x00002000;
0x00004000;
每个flag参数的意思,见名思意是用来获取相应的包信息,全部是16进制表示的int的数。但是疑惑没有0,网上查询没有相应的信息,于此思考许久留下笔记留下印象。
通过观察源代码帮组我分析的信息如下:
(1)观察源代码注释flags Additional option flags. Use any combination of ....flag
方法前后文英文大意:额外信息通过flag获得,使用flag的任何组合。
看到这条源代码组合(combination )二字其实问题就解决一半了。 意思是可以用来组合 任意的flag ,添加任何flag到参数中;
(2)通过观察其他 参数 既static final int 的值
比如:
public static final int COMPONENT_ENABLED_STATE_ENABLED = 1;
public static final int COMPONENT_ENABLED_STATE_DISABLED = 2;
public static final int COMPONENT_ENABLED_STATE_DISABLED_USER = 3;
为何都是设置的 10进制的值,,看到这里我想我已经解决了问题,
(3)分析方法参数的值,换算为2进制;
依次为:00000001 00000010 00000100 00001000 ................... 这样设置的好处就是 任意组合的特征码都是唯一的。不会参生混淆
比如 16+8 = 24 24只能由参数中此两个数而得到。
32+2=34 同理
64 +8=72 同理
如果flag采用 十进制1 ,2,3,4,5,6,7的方式进行 处理的话 当方法中数为 特定的数时候可能出现不同的组合,所以就不能使用此方式,因为计算机是不会智能处理人的需求的。
得出我的结论如下:
参数0 是 表示不接受任何flag信息,当然也能够返回得到一些基本的包信息!,但是如 PERMISSIONS ,RECEIVERS 等等就返回不了,如果flag值不匹配 而方法中强行获取相对应的值,返回值为Null,已经做过测试
延伸: PackageManager.GET_ACTIVITIES+ PackageManager.GET_RECEIVERS 等于 3; 参数中填入3则得到这两个的flag对应的信息。
注意点 :PackageManager.GET_ACTIVITIES|
PackageManager.GET_ACTIVITIES 和上为一样的效果。 因为相或的话 同位只要有一个1则为1,
[Android] 关于getinstalledpackages参数的分析的更多相关文章
- [Android]Android系统启动流程源码分析
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5013863.html Android系统启动流程源码分析 首先 ...
- Android PopupWindow的使用和分析
Android PopupWindow的使用和分析 PopupWindow使用 PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activi ...
- android关于AndroidManifest.xml详细分析
http://my.eoe.cn/1087692/archive/5927.html 一.关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必 ...
- Gradle之Android Gradle Plugin 主要 Task 分析(三)
[Android 修炼手册]Gradle 篇 -- Android Gradle Plugin 主要 Task 分析 预备知识 理解 gradle 的基本开发 了解 gradle task 和 plu ...
- Android中Scroller类的分析
今天看了一下项目中用到的ViewFlow控件,想弄明白其工作原理.从头开始分析,卡在"滚动"这儿了. 做android也快两年了,连最基本的滚动都不熟悉,真是惭愧...遂网上找资料 ...
- 阿里早期Android加固代码的实现分析
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78320445 看雪上有作者(寒号鸟二代)将阿里移动早期的Android加固进行了逆 ...
- 1.Android 视图及View绘制分析笔记之setContentView
自从1983年第一台图形用户界面的个人电脑问世以来,几乎所有的PC操作系统都支持可视化操作,Android也不例外.对于所有Android Developer来说,我们接触最多的控件就是View.通常 ...
- (转)Android 系统 root 破解原理分析
现在Android系统的root破解基本上成为大家的必备技能!网上也有很多中一键破解的软件,使root破解越来越容易.但是你思考过root破解的 原理吗?root破解的本质是什么呢?难道是利用了Lin ...
- 列表页url参数格式分析【求指教】
运营对列表页url制定静态化模式,与区区观点相悖.遂请大家指教点解. 动态参数包含6个,分别是: 1认证(有机),2品类(水果),3地区(丰台),4状态(众筹中),5排序(评分),6分页 使用状态非常 ...
随机推荐
- 【C语言入门教程】2.4 浮点型数据
浮点型数据又称实型数据,是一个以十进制表示的符号实数.符号实数的值包括整数部分.尾数部分和指数部分. 2.4.1 浮点型常量 一些较大的数值,或者有小数位.指数位的数值都需要用浮点型常量表示.浮点型常 ...
- InnoDB锁机制分析
InnoDB锁机制常常困扰大家,不同的条件下往往表现出不同的锁竞争,在实际工作中经常要分析各种锁超时.死锁的问题.本文通过不同条件下的实验,利用InnoDB系统给出的各种信息,分析了锁的工作机制.通过 ...
- IDEA之google style配置(IDEA)
一.window下IDEA配置谷歌编码规范xml 1.首先下载文件:intellij-java-google-style.xml(文件详细内容见附件) 2.找到该路径(C:\Users\自己的登录名 ...
- PHP Closure类Bind与BindTo方法
Closure类为闭包类,PHP中闭包都是Closure的实例: 1 $func = function(){}; 2 var_dump($func instanceof Closure); 输出 bo ...
- Lvs原理及部署之ARP协议
1.什么使ARP协议 ARP协议,全称"Address Resolution Protocol" ,中文名是地址解析协议,使用ARP协议可实现通过IP地址获得对应的物理地址(MAC ...
- canvas对象arc函数的使用-遁地龙卷风
(-1)写在前面 我用的是chrome49 <canvas id="lol" height="300"></canvas> (1)详细介 ...
- Opencv混合高斯模型前景分离
#include "stdio.h" #include "string.h" #include "iostream" #include &q ...
- git 教程(10)--添加远程库
现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举 ...
- Caffe学习系列(14):Caffe代码阅读
知乎上这位博主画的caffe的整体结构:https://zhuanlan.zhihu.com/p/21796890?refer=hsmyy Caffe 做train时的流程图,来自http://caf ...
- innerHtml innerText textContent兼容性问题
innerHtml,innerText,textContentinnerHtml获取元素带标签的内容:innerText只获取元素的文本:火狐不支持innerText,支持textContent: / ...