列出系统中所有的app程序信息

列出系统中所有的app程序,如下图。不多说,直接上代码,很简单的一个小程序。

布局文件代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

     <GridView
        android:id="@+id/apps_list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numColumns="4"
        >
    </GridView>  

</RelativeLayout>

MainActivity代码:

/**
 * 列出系统中所有的app.
 * @author 路国强.
 *
 */
public class MainActivity extends ActionBarActivity {  

	// 系统中所有的app信息
	private List<ResolveInfo> apps;

	// 用九宫格视图呈现所有app
	private GridView apps_list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        apps_list = (GridView) findViewById(R.id.apps_list);
        loadApps();
    }

    private void loadApps() {
    	// 获取系统所有app信息
    	Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        new ImageView(MainActivity.this);
        apps = getPackageManager().queryIntentActivities(mainIntent, 0);
        // 把信息设置到适配器中
        apps_list.setAdapter(new AppsAdapter());
    }  

    public class AppsAdapter extends BaseAdapter {  

    	public AppsAdapter(){  

        } 

        @Override
        public int getCount() {
            return apps.size();
        }  

        @Override
        public Object getItem(int i) {
            return apps.get(i);
        }  

        @Override
        public long getItemId(int i) {
            return i;
        }  

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            ImageView iv;
            if(view == null){
                iv = new ImageView(MainActivity.this);
                iv.setScaleType(ImageView.ScaleType.FIT_CENTER);
                iv.setLayoutParams(new GridView.LayoutParams(50, 50));
            } else {
                iv = (ImageView) view;
            }
            ResolveInfo info = apps.get(i);
            iv.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));
            return iv;
        }
    }
}

配置清单文件无需修改。

时间: 2024-10-13 08:11:26

列出系统中所有的app程序信息的相关文章

使用pango-Cairo列出系统中的有效字体

使用pango-Cairo列出系统中的有效字体,代码来源于gtk-app-devel-list fonts list using pango #include <glib.h> #include <pango/pangocairo.h> static void list_fonts () { int i; PangoFontFamily ** families; int n_families; PangoFontMap * fontmap; fontmap = pango_cair

在Ubuntu的系统中如何将应用程序添加到开始菜单中

/*********************************************************************  * Author  : Samson  * Date    : 07/03/2014  * Test platform:  *              3.11.0.11-generic #19-Ubuntu  *              GNU bash, version 4.2.45  * ****************************

在Linux CentOS6系统中安装开源CMS程序OpenCart的教程

OpenCart是一个开放源码的店面,旨在为您提供灵活和细粒度的在线店面管理.在开始之前,您应该已经在您的Linode上设置了一个LAMP堆栈.您还应该设置主机名. PHP设置 为了使用OpenCart,您需要确保正确地配置了PHP.确保下面的设置与你/etc/php.ini 文件中的值相匹配: /etc/php.ini register_globals = Off magic_quotes_gpc = Off file_uploads = 1 session_auto_start = 0 此外

Linux Shell: 统计系统中占用Swap 的程序PID和占用大小

#!/bin/bash  SUM=0 OVERALL=0 for DIR in `find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"` do     PID=`echo $DIR | cut -d / -f 3`     PROGNAME=`ps -p $PID -o comm --no-headers`     for SWAP in `grep Swap $DIR/smaps 2>/dev/null | awk '{ 

Linux系统中cgroup功能介绍

1  Cgroups简介 1.1 What are cgroups ? Cgroups(控制组)是Linux内核的一个功能,用来限制.统计和分离一个进程组的资源(CPU.内存.磁盘输入输出等).换句话说就是,如果一个进程加入了某一个控制组,该控制组对Linux的系统资源都有严格的限制,进程在使用这些资源时,不能超过其最大的限制数,例如:memory资源,如果加入控制组的进程使用的memory大于其限制,可能会出现OOM错误(关于OOM错误可参看Linux内核OOM机制分析).cgroup本身提供

LINUX系统中,软/硬链接和inode的一些关系。

前言:众所周知硬盘是计算机不可缺少的一部分,不管这个计算机上运行着的是什么系统,但是存储设备,都是必不可少的,而inode则是磁盘存储时无法替代的一部分.所以我想谈一下在linux系统中关于inode和软/硬链接的一些个人见解. 目录: 什么是inode 什么是硬链接 什么是软链接 软/硬链接在linux上的基本使用方法 软/硬链接和inode的联系 一,什么是inode 理解inode,要从文件储存说起.文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存5

Linux系统中查看进程和计划任务管理

? 各位小伙伴们大家好,本次给大家带来的是Linux操作系统中的进程和计划任务的管理,首先大家都知道程序是保存在外部存储介质(如硬盘.光盘)中的可执行机器代码和数据的静态集合,而进程是在CPU及内存中处于动态执行状态的计算机程序,在Linux系统中,每个程序启动后可以创建一个或多个进程.例如:提供Web服务的httpd程序当有大量用户同时访问Web页面时,httpd程序可能会创建多个进程来提供服务.那么接下来我将会从以下几点来告诉大家在Linux的CentOS 7系统中是如何查看进程信息和控制进

如何在Linux系统上获取命令的帮助信息

在Linux系统中,获取命令帮助信息分为内部命令帮助获取和外部命令帮助两种: 使用help命令用于显示shell内部命令的帮助信息:help命令只能显示shell内部的命令帮助信息. 而对于外部命令的帮助信息只能使用man或者info命令查看. 内部命令帮助获取: 使用内建命令help+命令即可获取 命令格式:# help COMMAND例如使用 help cd 可以获得命令的cd命令的使用格式,详细功用描述,作用法则,常用选项,退出状态码等相关信息. 示例: [[email protected

快速获取Windows系统上的国家和地区信息

Windows系统上包含了200多个国家和地区的数据,有时候编程需要这些资料.以下代码可以帮助你快速获取这些信息.将Console语句注释掉,可以更快的完成分析. 1 static void Main(string[] args) { 2 Console.WriteLine("Start!"); 3 // 这里可以修改文件路径和文件名称. 4 var sw = new StreamWriter(new FileStream("RegionInfo.txt", Fil