首先我们来看一下PackageItemInfo,它是包含了一些信息的基类,它的直接子类有:ApplicationInfo、ComponentInfo、InstrumentationInfo、PermissionGroupInfo、PermissionInfo。
它的间接子类有:ActivityInfo、ProviderInfo、ServiceInfo。这个类包含的信息对于所有包中项目是平等的。这些Package items是被Package manager所持有的。这个类提供了属性的非常普通的基本设置:label、icon和meta-data。这个类的意图不是被自己调用。它在这只是简单地分享被package manager返回的所有items之间的普通定义。比如,它自己并不实现Parcelable接口,但却帮助实现了Parcelable的子类提供了方便的方法。
ApplicationInfo是从一个特定的应用得到的信息。这些信息是从相对应的Androdimanifest.xml的< application>标签中收集到的。
ResolveInfo这个类是通过解析一个与IntentFilter相对应的intent得到的信息。它部分地对应于从AndroidManifest.xml的< intent>标签收集到的信息。
PackageManager这个类是用来返回各种的关联了当前已装入设备了的应用的包的信息。你可以通过getPacageManager来得到这个类。
ApplicationInfo与ResolveInfo比较:前者能够得到Icon、Label、meta-data、description。后者只能得到Icon、Label。
下面讲一下这几个类综合在一起的具体应用:
通过调用PackageManager的方法可以得到两种不同的信息:
首先要得到manager:
PackageManager manager = getPackageManager();
Java代码:
List< ApplicationInfo> appList = manager.getInstalledApplications(PackageManager.GET.UNINSTALLED_PAKAGES);它是通过解析AndroidManifest.xml的< application>标签中得到的,所以它能得到所有的app。
Java代码:
Intent intent = new Intent(Intent.A CTION_MAIN,null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List< ResolveInfo> appList = manager.queryIntentActivities(intent,0);
//它是通过解析< Intent-filter>标签得到有
< action android:name=”android.intent.action.MAIN”/>
< action android:name=”android.intent.category.LAUNCHER”/>
//这样的app,所以得到的要比第一种方法少(前者比它多那种service、previder等app)。
分享到:
相关推荐
这些辅助类都是开发者们在实际开发中总结的经验结晶,它们不仅可以提高代码复用性,还能让开发者更加专注于业务逻辑,而非基础功能的实现。通过熟练掌握和运用这些辅助类,可以极大地提升开发效率,缩短项目周期,...
在Android开发中,基本控件是构建用户界面的基础,它们提供了与用户交互的各种方式。本文将对Android的一些常见控件及其对应的事件进行总结,帮助开发者更好地理解和应用这些控件。 首先,Button(按钮)是最常见的...
总结起来,实时获取logcat日志信息是Android开发中的一个重要技能,这需要理解和利用`android.util.Log`类以及Android系统的shell命令。通过自定义日志标签、设置日志级别,开发者可以更有效地进行问题排查和性能...
总结来说,"Android离线webview调试工具"是专为解决国内开发者在使用`chrome://inspect`时遇到的网络问题而生的利器。它提供了离线调试、跨机型兼容、实时更新等多种实用功能,让H5混合应用的开发变得更加便捷高效。...
本篇将详细介绍两个常用的Android开发工具类:日志工具类(Log.java)和Toast统一管理类(Tost.java)。 一、日志工具类(Log.java) 在Android开发中,日志(Log)用于调试和跟踪应用程序运行时的信息,是开发者...
在Android开发过程中,使用OpenGL ES进行图形渲染是一项常见的任务。然而,在实际开发中经常会遇到贴图无法正常显示的情况,这可能由多种因素引起。本文将针对这一问题进行深入分析,并给出相应的解决方案。 ##### ...
总结来说,"Android-EasyCommonUtils"是一个强大的工具库,它将常见的开发任务进行了高度封装,大大降低了开发复杂度,提高了开发效率。开发者可以根据自己的项目需求选择性地使用其中的功能,使得代码更加简洁、可...
“JsonUtil”这个工具类简化了Android开发中的对象与JSON之间的转换过程,使得开发者无需关注具体的转换细节,而是专注于业务逻辑。通过引入Gson库,我们能够高效、灵活地处理JSON数据,提升了开发效率。在实际项目...
在Android开发中,获取手机内存信息是常见的需求,这有助于优化应用性能,了解设备资源状况。本文将详细讲解如何获取Android手机的总内存和可用内存。 首先,Android系统提供了两种主要的方式来获取内存信息: 1. ...
总结起来,获取Android网络连接信息是Android开发中一个基础但关键的部分。通过`ConnectivityManager`和`NetworkInfo`类,开发者能够全面了解设备的网络状况,从而更好地控制和优化应用程序的网络行为。在实际开发中...
### Android开发学习笔记第二季知识点总结 #### 一、改变TextView中字体颜色的方法 1. **全局设置**:在XML布局文件中直接使用`android:textColor`属性来更改整个`TextView`内文字的颜色。例如: ```xml ...
在Android开发中,日志(Log)是调试和分析应用行为的重要工具。它可以帮助开发者追踪程序运行过程中的问题,理解代码执行流程。本篇将详细讲解一个简单的Android工具类,用于打印并保存日志到本地。 一、Android...
总结来说,ALog库是Android开发中的一个实用工具,它提高了日志记录的效率和用户体验,同时提供了丰富的功能和高度的灵活性。通过对ALog的使用和源码学习,开发者不仅可以优化调试过程,还能提升自己的编程技巧。
### Android开发新浪微博客户端知识点梳理 #### 一、项目概述与准备 - **开发背景与目的**:本项目旨在为Android初学者提供一个实践案例——开发一个新浪微博客户端,以加深对Android开发的理解,并通过实战掌握...
在Android开发中,日志工具类是调试和分析应用程序不可或缺的一部分。本文将深入探讨"Android日志工具类二",重点关注如何通过优化日志输出,提高代码效率和日志的可读性,使开发者能够更好地理解和解决问题。 首先...
Android 调试是 Android 应用程序开发过程中的一项重要步骤,涉及到查看错误信息、使用 Log 类、使用命令等多个方面。 一、查看错误信息 在 Android 中,有两种方式可以查看错误信息:使用 Debug 和使用 Log 。 1...
在Android开发中,使用Android Studio结合NDK进行开发是许多应用开发者的需要。NDK全称为Native Development Kit,是Android提供的一个开发工具集,允许开发者编写一些性能要求较高或者需要复用C/C++代码的部分功能...
总结,Android中的网络状态管理和检测是通过BroadcastReceiver监听网络变化,ConnectivityManager查询网络连接类型,以及TelephonyManager获取网络制式来实现的。NetUtil工具类的引入则为开发者提供了一种简洁的接口...
### Android开发技巧详解 在Android应用开发过程中,掌握一定的技巧对于提高开发效率、优化用户体验具有重要作用。本文将根据提供的文件信息中的几个关键知识点进行详细解析,包括:如何检测网络连接状态、实现全屏...
在Android开发过程中,日志工具是开发者不可或缺的调试利器。Android系统自带的日志系统Logcat,可以输出应用程序运行过程中的各种信息,包括错误、警告、信息等不同级别的日志。然而,仅依赖Logcat有时并不能满足...