1.                       Android 软件管理工具类Utils
  1. /**
  2. * Created by uilubo on 2015/9/30.
  3. * 工具类
  4. */
  5. public class Utils {
  6.  
  7. public static List<AppInfo> getAppList(Context context){
  8. // 返回值集合
  9. List<AppInfo> list = new ArrayList<AppInfo>();
  10.  
  11. // 实例化包管理器
  12. PackageManager pm = context.getPackageManager();
  13.  
  14. // 获取所有已经安装的应用信息
  15. List<PackageInfo> pList = pm.getInstalledPackages();
  16.  
  17. // 遍历集合
  18. for(int i = ; i<pList.size(); i++){
  19. // 拿到元素
  20. PackageInfo packageInfo = pList.get(i);
  21. //判断是否是第三方应用 同时 不包含当前的应用的包名
  22. if(isThirdPartyApp(packageInfo.applicationInfo) &&
  23. !packageInfo.packageName.equals(context.getPackageName())) {
  24. // 填充实体类
  25. AppInfo app = new AppInfo();
  26. // 获取应用名
  27. app.packageName = packageInfo.packageName;
  28. app.versionName = packageInfo.versionName;
  29. app.versionCode = packageInfo.versionCode;
  30. app.insTime = packageInfo.firstInstallTime;
  31. app.updTime = packageInfo.lastUpdateTime;
  32. app.appName = (String) packageInfo.applicationInfo.loadLabel(pm);
  33. // 获取图标
  34. app.icon = packageInfo.applicationInfo.loadIcon(pm);
  35. // 计算程序的大小
  36. String dir = packageInfo.applicationInfo.publicSourceDir;
  37. long byteSize = new File(dir).length();
  38. // 实际大小
  39. app.byteSize = byteSize;
  40. // 格式化好的大小
  41. app.size = getSize(byteSize);
  42. list.add(app);
  43. }
  44. }
  45. return list;
  46. }
  47.  
  48. /**
  49. * 判断应用是否是第三方应用
  50. * @param appInfo
  51. * @return
  52. */
  53. public static boolean isThirdPartyApp(ApplicationInfo appInfo) {
  54. boolean flag = false;
  55. if ((appInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != ) {
  56. // 可更新的系统应用
  57. flag = true;
  58. }
  59. else if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) == ) {
  60. // 非系统应用
  61. flag = true;
  62. }
  63. return flag;
  64. }
  65.  
  66. /*获取文件大小*/
  67. public static String getSize(long size){
  68. return new DecimalFormat("0.##").format(size * 1.0/(*));
  69. }
  70.  
  71. /*获取时间*/
  72. public static String getTime(long millis){
  73. Date date = new Date(millis);
  74. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  75. return sdf.format(date);
  76. }
  77.  
  78. /*
  79. *打开包文件
  80. */
  81. public static void openPackage(Context context, String packageName){
  82. Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName);
  83. intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  84. context.startActivity(intent);
  85. }
  86.  
  87. /*卸载APK安装包*/
  88. public static void uninstallApk(Activity context, String packageName, int requestCode){
  89. Uri uri= Uri.parse("package:"+packageName);
  90. Intent intent = new Intent(Intent.ACTION_DELETE,uri);
  91. context.startActivityForResult(intent,requestCode);
  92.  
  93. }
  94.  
  95. public static List<AppInfo> getSearchResult(List<AppInfo> list,String key){
  96. List<AppInfo> result = new ArrayList<AppInfo>();
  97. for (int i= ; i < list.size(); i++){
  98. AppInfo app = list.get(i);
  99. if (app.appName.toLowerCase().contains(key.toLowerCase())){
  100. result.add(app);
  101. }
  102. }
  103. return result;
  104. }
  105.  
  106. public static SpannableStringBuilder highLightText(String str, String key){
  107. int start = str.toLowerCase().indexOf(key.toLowerCase());// 不区分大小写
  108. int end = start + key.length();
  109.  
  110. SpannableStringBuilder sb = new SpannableStringBuilder(str);
  111. sb.setSpan(
  112. new ForegroundColorSpan(Color.RED), // 前景颜色
  113. start, // 起始坐标
  114. end, // 终止坐标
  115. Spannable.SPAN_EXCLUSIVE_INCLUSIVE
  116. );
  117.  
  118. return sb;
  119. }
  120.  
  121. }

Android 软件管理工具类Utils的更多相关文章

  1. android的Log日志打印管理工具类(一)

    android的Log日志的打印管理工具类: package com.gzcivil.utils; import android.util.Log; /** * 日志打印管理 * * @author ...

  2. LogCook 一个简单实用的Android日志管理工具

    众所周知,日志的管理是软件系统很重要的一部分,千万不可忽略其重要性.完整的日志将会在系统维护中起着异常重要的作用,就好像磨刀不误砍柴工一样,日志就像对系统进行分析的工具,工具便捷了,对系统分析起来就能 ...

  3. (转载)实例详解Android快速开发工具类总结

    实例详解Android快速开发工具类总结 作者:LiJinlun 字体:[增加 减小] 类型:转载 时间:2016-01-24我要评论 这篇文章主要介绍了实例详解Android快速开发工具类总结的相关 ...

  4. 一个使用命令行编译Android项目的工具类

    一个使用命令行编译Android项目的工具类 简单介绍 编译apk项目须要使用的几个工具,基本都在sdk中,它们各自是(Windows系统): 1.aapt.exe 资源打包工具 2.android. ...

  5. 阶段3 2.Spring_07.银行转账案例_4 编写事务管理工具类并分析连接和线程解绑

    事务管理工具类 首先需要有connection.并且是当前线程上的connection.声明connectionUtils.提供set方法等着spring来注入 有异常需要放在事务里面 close关闭 ...

  6. ubuntu软件管理工具的使用——dpkg和apt

    deb.rpm.tar.gz三种Linux软件包的区别在哪里呢,这种区别可能使安装进行不下去,那么我们应该下载什么格式的包呢?下面具体讲解一下. rpm包是在Redhat.Suse和Fedora可以直 ...

  7. android开发Tost工具类管理(一)

    Tost工具类管理: package com.gzcivil.utils; import android.content.Context; import android.widget.Toast; / ...

  8. Android log 管理工具

    1.logger 项目地址: https://github.com/orhanobut/logger 2.KLog 项目地址:https://github.com/ZhaoKaiQiang/KLog ...

  9. Android常用的工具类

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils. Prefe ...

随机推荐

  1. 手动卸载CAD 删除残留文件 清理遗留的文件

    手动卸载基于 AutoCAD 产品的文件,从而删除所有残留文件. 清理安装失败所遗留的文件. 一.解决方案: 通过"控制面板"卸载该程序. 删除以下位置残留的 AutoCAD 文件 ...

  2. 经典算法二分查找循环实现Java版

    二分查找 定义 二分查找(Binary Search)又称折半查找,它是一种效率较高的查找方法. 要求 (1)必须采用顺序存储结构 (2)必须按关键字大小有序排列 查找思路 首先将给定值K,与表中中间 ...

  3. 理解Linux系统负荷load average

    理解Linux系统负荷   一.查看系统负荷 如果你的电脑很慢,你或许想查看一下,它的工作量是否太大了. 在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行).(另外,它们在 ...

  4. REST framwork之分页器,路由器,响应器

    一 REST framwork分页器: from rest_framework.pagination import PageNumberPagination,LimitOffsetPagination ...

  5. [mysql,2018-02-28] bat安装、启动mysql,并创建数据库、表

    @echo off f: cd F:\mysql-win32 @echo off&setlocal enabledelayedexpansion cd bin echo ###### 停止当前 ...

  6. Openface 入门

    Openface 简单入门 背景 Openface是一个开源的人脸识别框架,同类软件产品还有 seetaface ,DeepID等,当然,如果算上商业的产品,那就更多了. Openface人脸比对结果 ...

  7. python至winreg模块

    _winreg模块在python3中已经改名了 https://blog.csdn.net/zhangxiaoyang0/article/details/72236305?fps=1&loca ...

  8. Laravel数据库操作 Eloquent ORM

    模型首先在App目录下建立student的文件夹 里面放上 Student.php 且需要继承基类Model //允许批量赋值的字段// protected $fillable = ['name',' ...

  9. leetcode234

    /** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNo ...

  10. LNMP 目录限制

    php.ini 未设置open_basedir和user_ini.filename,但user_ini.filename默认为.user.ini,所以会使用网站根目录下的.user.ini文件来控制 ...