此blog不写API的使用方法仅仅分析此參数的知识点。



今天学习安卓突然学习到了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,

以上均为个人看法。

关于getinstalledpackages參数的分析。的更多相关文章

  1. springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定

    springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定 标签: springmvc springmvc学习笔记12-springmvc注解开发之包装类型參数绑定 需求 实现方 ...

  2. linux kernel的cmdline參数解析原理分析

    利用工作之便,今天研究了kernel下cmdline參数解析过程.记录在此.与大家共享.转载请注明出处.谢谢. Kernel 版本:3.4.55 Kernel启动时会解析cmdline,然后依据这些參 ...

  3. RPM安装包-Spec文件參数具体解释与演示样例分析

    spec文件是整个RPM包建立过程的中心,它的作用就如同编译程序时的Makefile文件. 1.Spec文件參数 spec文件包括建立一个RPM包必需的信息,包括哪些文件是包的一部分以及它们安装在哪个 ...

  4. 动态游标(比如表名作为參数)以及动态SQL分析

    表名作为參数的动态游标 DECLARE v_table_name VARCHAR2(30) := 'CUX_MES_WIP_BARCODE_MAP'; --l_rec SYS_REFCURSOR; T ...

  5. java參数传递机制浅析

    欢迎转载,转载请声明出处! ----------------------------------------- 前言: java语言中,參数的传递仅仅有一种机制.那就是值传递. 举例: 以下将通过几个 ...

  6. 【web开发学习笔记】Structs2 Result学习笔记(三)带參数的结果集

    Result学习笔记(三)带參数的结果集 第一部分:代码 //前端 <head> <meta http-equiv="Content-Type" content= ...

  7. Java參数传递方式

    原文:http://blog.sina.com.cn/s/blog_59ca2c2a0100qhjx.html,我作了些改动并添加了一个实例,添加对照 本文通过内存模型的方式来讨论一下Java中的參数 ...

  8. 命令行參数选项处理:getopt()及getopt_long()函数使用

         在执行某个程序的时候,我们通常使用命令行參数来进行配置其行为.命令行选项和參数控制 UNIX 程序,告知它们怎样动作. 当 gcc的程序启动代码调用我们的入口函数 main(int argc ...

  9. 【JAVA学习】“-Xmx1024m -Xms1024m -Xmn512m -Xss256k”——Java执行參数(转)

    年轻代 年老代概念 http://jefferent.iteye.com/blog/1123677 JVM的堆的内存, 是通过以下面两个參数控制的  -Xms 最小堆的大小, 也就是当你的虚拟机启动后 ...

随机推荐

  1. Unity 内置Shader变量、辅助函数等

    一:标准库里的常用.cginc文件 HLSLSupport.cginc - (automatically included) Helper macros and definitions for cro ...

  2. poj_2187求凸包直径

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #i ...

  3. html5播放m3u8视频,web端看直播

    https://github.com/jiqing9006/hLive <!DOCTYPE html> <html> <head> <meta charset ...

  4. BZOJ 1336&1337最小圆覆盖

    思路: http://blog.csdn.net/commonc/article/details/52291822 (照着算法步骤写--) 已知三点共圆 求圆心的时候 就设一下圆心坐标(x,y) 解个 ...

  5. 搭建Hadoop的全分布模式

    此教程仅供参考 注意:此文档目的是为了本人方便以后复习,不适合当教程,以免误导萌新... 1.安装三台Linux2.在每台机器上安装JDK3.配置每台机器的免密码登录 (*) 生成每台机器的公钥和私钥 ...

  6. python3.x学习笔记3(基础知识)

    1.集合集合是一个无序的,不重复的数据组合,作用如下: >>去重,把一个列表变成集合,就自动去重 >>关系测试,测试两组数据之前的交集.差集.并集等关系 2.关系运算 交集: ...

  7. Andoid 更好的Android多线程下载框架

    概述 为什么是更好的Android多线程下载框架呢,原因你懂的,广告法嘛! 本篇我们我们就来聊聊多线程下载框架,先聊聊我们框架的特点: 多线程 多任务 断点续传 支持大文件 可以自定义下载数据库 高度 ...

  8. css常用的阴影

    一.box-shadow: 0 2px 15px 0 rgba(0,0,0,.15)!important 二. box-shadow: 0 2px 6px 0 rgba(0,0,0,.4); 三. . ...

  9. vue computed自动计算

    <!DOCTYPE html> <html> <head> <title>vue</title> <meta charset=&quo ...

  10. 首家5G体验厅在深圳建成

    日前,深圳移动卓越时代营业厅推出5G全方位体验活动,让市民亲身感受5G时代到来.据悉,十大5G展示项目生动展现移动5G带来的生活巨变与产业升级,为5G发展汇聚各界力量加速创新落地. 现场有市民表示,5 ...