Android之lrucache原理以及获取系统应用和启动系统应用
来源:互联网 发布:mysql并发insert死锁 编辑:程序博客网 时间:2024/06/04 19:43
Lru的全称是Least Recently Used ,近期最少使用的!LruCache 的实现原理:把近期最少使用的数据从缓存中移除,保留使用最频繁的数据
private ArrayList<AppInfo> getAppInfo() { ArrayList<AppInfo> appList = new ArrayList<>();//存储应用信息 List<PackageInfo> packageInfos = getPackageManager().getInstalledPackages(0); for (int i = 0; i < packageInfos.size(); i++) { PackageInfo packageInfo = packageInfos.get(i); AppInfo appInfo = new AppInfo(); appInfo.appName = packageInfo.applicationInfo.loadLabel(getPackageManager()).toString(); appInfo.packageName = packageInfo.packageName; appInfo.versionCode = packageInfo.versionCode; appInfo.appIcon = packageInfo.applicationInfo.loadIcon(getPackageManager()); //非系统应用 if((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) appList.add(appInfo); }
// 桌面应用的启动在INTENT中需要包含ACTION_MAIN 和CATEGORY_HOME. ArrayList<AppInfo> appList = new ArrayList<>();//存储应用信息 Intent intent = new Intent(); intent.addCategory(Intent.CATEGORY_LAUNCHER); intent.setAction(Intent.ACTION_MAIN); PackageManager manager = getPackageManager(); List<ResolveInfo> list = manager.queryIntentActivities(intent, 0); // List<PackageInfo> packageInfos = manager.getInstalledPackages(0); for (int i = 0; i < list.size(); i++) { AppInfo appInfo = new AppInfo(); ResolveInfo resolveInfo = list.get(i); appInfo.appName = resolveInfo.loadLabel(manager).toString(); appInfo.packageName = resolveInfo.activityInfo.packageName.toString(); appInfo.mBitmapBytes = BitmapDrawableExchange.drawableToBytes(resolveInfo.loadIcon(manager)); // appInfo.appIcon = (BitmapDrawable) resolveInfo.loadIcon(manager); if (!appInfo.packageName.equals("com.example.myapplication")) { boolean flag = true; if (addedList.size() != 0) { for (int j = 0; j < addedList.size(); j++) { if (appInfo.packageName.equals(addedList.get(j).packageName)) { flag = false; } } } if (flag) appList.add(appInfo); }
public void startApp(String packageName) { Intent intent = MainActivity.this.getPackageManager() .getLaunchIntentForPackage(packageName); // 已安装包 直接启动 if (intent != null) { startActivity(intent); } }
0 0
- Android之lrucache原理以及获取系统应用和启动系统应用
- 获取Android系统应用的包名以及应用名!
- android 获取系统应用
- 获取android系统应用
- android 应用如何获取系统权限 以及root系统方法
- Android系统应用及原理
- Android 获取系统应用信息
- Android 获取系统应用信息
- Android应用获取系统属性
- android 应用获取系统权限
- android 应用获取系统权限
- Android 获取系统的应用
- android 系统级应用和服务的启动流程
- (备忘)Android app中调用启动其他应用(系统应用和第三方应用)
- Android初学------系统设置之获取所有安装应用大小
- Android学习之获取系统应用信息列表的实现
- Android之调用系统应用
- Android系统信息和Apk应用信息获取
- centos6.x安装mycat(简单的安装)
- LA 7456 Least Crucial Node
- 19-小学生考试系统
- Spring通过factory配置bean
- 使用js替换符号
- Android之lrucache原理以及获取系统应用和启动系统应用
- CWnd类总结
- 短信验证码按钮60秒倒计时
- MySql日期和时间戳与格式化函数
- 基于AChartEngine绘制股票走势图----K线图一(绘制阴线阳线)
- android studio中使用ndk实例
- 冒泡排序
- Android ToolBar使用入门
- strlen放置在for循环条件判断中容易导致死循环