Android tips(五)-->android系统设置中的应用详情

转载请标明出处:一片枫叶的专栏

开发过Android的童鞋相比都知道 设置-》应用管理-》应用详情页面,这是android系统自身的应用“设置”的管理系统安装应用显示应用详情的页面,不同的手机该页面显示的内容不太一样,但也都是大同小异,这里简单介绍一下各个标签的不同含义。

这里暂定以小米3手机的应用详情页面为参考:
这里写图片描述
这里写图片描述

  • 第一部分标题
    主要显示App的Icon,名称版本号等信息;

顺带说一下android系统中获取应用名称和Icon的方式

/**
     * 获取应用名称
     * @param mContext
     * @return
     */
    public static String getApplicationName(final Activity mContext) {
        PackageManager packageManager = null;
        ApplicationInfo applicationInfo = null;
        try {
            packageManager = mContext.getApplicationContext().getPackageManager();
            applicationInfo = packageManager.getApplicationInfo(mContext.getPackageName(), 0);
        } catch (PackageManager.NameNotFoundException e) {
            applicationInfo = null;
        }
        String applicationName = (String) packageManager.getApplicationLabel(applicationInfo);
        return applicationName;
    }
/**
     * 获取应用的Icon
     * @param mContext
     * @return
     */
    public static PackageInfo[] getAppInfoByPackage(Activity mContext) {
        PackageInfo[] mPackageInfo = new PackageInfo[2];
        List<PackageInfo> packages = mContext.getPackageManager().getInstalledPackages(0);
        L.i("packages Size:" + packages.size());
        for (int i = 0; i < packages.size(); i ++) {
            // L.i("执行:" + i);
            if (packages.get(i).packageName.equals(BAIDU_PACKAGE)) {
                L.i("执行:" + i + "  获取百度地图应用信息...");
                mPackageInfo[0] = packages.get(i);
                Drawable icon1 = mPackageInfo[0].applicationInfo.loadIcon(mContext.getPackageManager());
            } else if (packages.get(i).packageName.equals(GAODE_PACKAGE)) {
                L.i("执行:" + i + "  获取高德地图应用信息...");
                mPackageInfo[1] = packages.get(i);
                Drawable icon2 = mPackageInfo[1].applicationInfo.loadIcon(mContext.getPackageManager());
            }

            if (mPackageInfo[0] != null && mPackageInfo[1] != null) {
                return mPackageInfo;
            }
        }

        return mPackageInfo;
    }
  • 主要是通知栏和悬浮框的设置
    小米3中有两个通知类的设置,分别是自定义通知和显示悬浮框;

  • 存储
    1)总计 = 手机存储代码大小 + 手机存储数据大小 + SD卡存储代码大小 + SD卡存储数据大小
    2)引用 = 手机储存代码大小 + SD卡存储代码大小
    3)USB存储(应用) = SD卡存储的代码大小
    4)数据 = 手机存储数据大小 + SD卡存储数据大小
    5)USB存储(数据)= SD卡存储的数据大小
    6)清除数据 = 清除SD卡存储中的数据 + 清除手机存储中的数据

对应目录参考:
1 、 codeSize : //apk 的大小,对应 apk 所在的目录。
2 、 dataSize; // 内部数据。 /data/data/
3 、 cacheSize; // 内部缓冲数据。 /data/data//cache
4 、 externalCodeSize; // 外部代码大小。对应 apk 所在的外部的目录。
5 、 externalDataSize; // 外部数据大小。
6 、 externalCacheSize; // 外部缓冲数据大小。如果此目录是 externalDataSize 的子目录,则此大小包含在 externalDataSize 中。

详细信息科参考:http://blog.csdn.net/qq_23547831/article/details/50517384

  • 缓存
    缓存大小 = cacheSize + externalCacheSize 。

  • 权限

1)查看权限详情:主要为App运行过程中需要哪些权限,可以分为:安全相关权限,隐私相关权限,其他相关权限等等

2)权限管理:可以手动更高App的权限,比如App安装时已经授权了可以使用定位权限,这里可以手动禁止改App拥有定位权限(但是一般不推荐这样操作,禁用相关权限可能会使App中一些相关的功能无法使用)

  • 其他操作

1)结束运行:强制结束App的运行,退出App;
2)卸载:卸载app

其他问题:

打开手机设置-》应用管理-》某一应用-》清除数据,这个操作是清除某一个App的数据,那么到底会清除那些数据呢?

这里新建一个项目com.chao.ttext,我们在项目数据目录:data/data/com.chao.ttext目录下创建缓存数据目录

data/data/com.chao.ttext # ls
lib 存放使用的包
files 存放应用程序自己保存的文件
databases 存放数据库数据
shared_prefs SP文件
cache 存放缓存数据
app_appcache H5缓存
app_databases webview缓存
app_geolocation 定位缓存

然后我们为每个目录添加一个新的空文件用于判断清除数据的结果:

/data/data/com.chao.ttext # touch lib/temp.txt
/data/data/com.chao.ttext # touch files/temp.txt
/data/data/com.chao.ttext # touch databases/temp.txt
/data/data/com.chao.ttext # touch shared_prefs/temp.txt
/data/data/com.chao.ttext # touch cache/temp.txt
/data/data/com.chao.ttext # touch app_appcache/temp.txt
/data/data/com.chao.ttext # touch app_databases/temp.txt
/data/data/com.chao.ttext # touch app_geolocation/temp.txt

打开设置-》应用管理-》ttext-》清除数据

然后在查看ttext数据目录下的数据情况:

/data/data/com.chao.ttext # ls
lib

然后进入lib目录查看temp.txt文件是否还存在,结果还是存在的。

结论:清除数据会清除App数据目录下除lib文件以外的所有文件和目录。

参考:http://droidyue.com/blog/2014/06/15/what-will-be-removed-if-you-click-clear-data-button-in-system-application-item/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值