android系统信息和应用信息

来源:互联网 发布:数据库系统课程设计 编辑:程序博客网 时间:2024/06/05 20:16

一.android安全信息的获取
1.系统信息
要获取系统的配置信息可以通过两个方面来获取:
类android.os.Build
SystemProperty(get方法)
用法如下:

 Log.d(tag, Build.HOST); Log.d(tag,Build.USER); Log.d(tag,System.getProperty("os.version"));

注:这些信息的来源在哪里?
可以通过adb在/system/build.prop和/proc里面找到。
2.应用信息
如果说系统信息是GDP那么应用信息就是个人经济了。
和应用有关的有两个强大的指令集PM(PackageManager)和AM(ActivityManager)
PM:应用的包管理
AM:应用的活动管理
1)PM
首先看manifest文件

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.mooc.prac">    <application        android:name=".application.BaseApplication"        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:supportsRtl="true"        android:theme="@style/AppTheme">        <activity android:name=".MainActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest>

由activity 标签包裹的代表了整个activity的信息,由activityInfo类进行封装
由manifest标签包裹的代表了manifest标签里的所有信息,系统提供PackageInfo进行封装。
1.一些常用的系统封装信息:
ActivityInfo: 封装了acitivity和receive之间的信息
ProviderInfo: 封装了provider之内的信息
ServiceInfo: 封装了service之间的信息
ApplicationInfo :封装了application之间的信息
PackageInfo: 封装了manifest节点之内的信息。
ResolveInfo: 这个比较特殊,他封装的是指定intent的上一层信息,可以是activity,service,contentprovider,broadCast等,一般在查找符合相关intent的组件时候使用。
2.PM的上述属性都可以通过相关方法查看,常用的有:

    getApplicationInfo    getApplicationIcon    resolveActivity//返回符合intent的Activity    resolveService//    getInstalledApplications//返回以ApplicationInfo形式安装的应用    getInstalledPackages//返回以PackageInfo形式安装的应用。

注意:可以用ApplictionInfo的flags属性判断应用类型,具体大家可以百度
2)ActivityManager
ActivityManager.MemoryInfo:系统内存信息
Debug.MemoryInfo:进程内存信息
RunningAppProgressInfo:正在运行的进程信息
RuningServiceInfo:正在运行的服务信息。

原创粉丝点击