调用root权限的应用:

  1. /**
  2. * 执行Command命令的函数
  3. *
  4. * @param command 命令
  5. * @return 执行结果
  6. */
  7. public static boolean runRootCommand(String command) {
  8. Process process = null;
  9. DataOutputStream os = null;
  10. try {
  11. process = Runtime.getRuntime().exec("su");
  12. os = new DataOutputStream(process.getOutputStream());
  13. os.writeBytes(command + "\n");
  14. os.writeBytes("exit\n");
  15. os.flush();
  16. process.waitFor();
  17. } catch (Exception e) {
  18. Log.d(TAG, "the device is not rooted, error message: " + e.getMessage());
  19. return false;
  20. } finally {
  21. try {
  22. if (os != null) {
  23. os.close();
  24. }
  25. if (process != null) {
  26. process.destroy();
  27. }
  28. } catch (Exception e) {
  29. e.printStackTrace();
  30. }
  31. }
  32. return true;
  33. }

获取安装了所有APP的信息:

  1. class PInfo {
  2. private String appname = "";
  3. private String pname = "";
  4. private String versionName = "";
  5. private int versionCode = 0;
  6. private Drawable icon;
  7.  
  8. private void prettyPrint() {
  9. Log.i("MainActivity", appname + "|\t" + pname + "|\t" + versionName + "|\t" + versionCode + "|\t");
  10. }
  11. }
  12.  
  13. private void listPackages() {
  14. // false = no system packages
  15. ArrayList<PInfo> apps = getInstalledApps(false);
  16. final int max = apps.size();
  17. for (int i = 0; i < max; i++) {
  18. apps.get(i).prettyPrint();
  19. }
  20. }
  21.  
  22. private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) {
  23. ArrayList<PInfo> res = new ArrayList<PInfo>();
  24. List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
  25. for (int i = 0; i < packs.size(); i++) {
  26. PackageInfo p = packs.get(i);
  27. if ((!getSysPackages) && (p.versionName == null)) {
  28. continue;
  29. }
  30. PInfo newInfo = new PInfo();
  31. newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();
  32. newInfo.pname = p.packageName;
  33. newInfo.versionName = p.versionName;
  34. newInfo.versionCode = p.versionCode;
  35. newInfo.icon = p.applicationInfo.loadIcon(getPackageManager());
  36. res.add(newInfo);
  37. }
  38. return res;
  39. }

==

android代码集锦的更多相关文章

  1. 下载最新Android代码的方法

    之前我是去Android官方网站下载最新Android代码,但是这种方法需要FQ,而且有时候FQ又不太方便,今天我发现一个不错的网站,是清华大学搞的,跟Android官方的代码基本保持同步,而且下载方 ...

  2. Android代码混淆官方实现方法

    首先查看一下 “project.properties” 这个文件: # This file is automatically generated by Android Tools.# Do not m ...

  3. jquery常用代码集锦

    1. 如何修改jquery默认编码(例如默认GB2312改成 UTF-8 ) 1 2 3 4 5 $.ajaxSetup({     ajaxSettings : {         contentT ...

  4. 编写高效的Android代码

    编写高效的Android代码 毫无疑问,基于Android平台的设备一定是嵌入式设备.现代的手持设备不仅仅是一部电话那么简单,它还是一个小型的手持电脑,但是,即使是最快的最高端的手持设备也远远比不上一 ...

  5. Android代码内存优化建议-OnTrimMemory优化

    原文  http://androidperformance.com/2015/07/20/Android代码内存优化建议-OnTrimMemory优化/ OnTrimMemory 回调是 Androi ...

  6. Android代码混淆和项目宣布步骤记录器

    原本放在一起Android项目与发布的文件相混淆.我突然想到,为什么不写博客,分享.有这篇文章的情况下,. Android代码混淆及项目公布步骤记录 一.清理代码中的调试信息,如Log.System. ...

  7. Android 代码混淆 混淆方案

    本篇文章:自己在混淆的时候整理出比较全面的混淆方法,比较实用,自己走过的坑,淌出来的路.请大家不要再走回头路,可能只要我们代码加混淆,一点不对就会导致项目运行崩溃等后果,有许多人发现没有打包运行好好地 ...

  8. 【Android】Android 代码判断当前设备是否为模拟器

    [Android]Android 代码判断当前设备是否为模拟器 方法比较简单,直接粘贴代码 //判断当前设备是否是模拟器.如果返回TRUE,则当前是模拟器,不是返回FALSE public stati ...

  9. 【Android】Android 代码判断是否获取ROOT权限(二)

    [Android]Android 代码判断是否获取ROOT权限 方法比较简单,直接粘贴代码 /** * 判断当前手机是否有ROOT权限 * @return */ public boolean isRo ...

随机推荐

  1. mock server相关解决方案

    前后端分离之后 前后端分离后, 大家从此进入了所谓的并行开发时代. 一旦完成前后端的(边界)分工, 大家就可以各司其职了. 前端在与后端交互时, 要想有效地提高工作效率, 后端的接口文档就是重中之重了 ...

  2. SQL SERVER 2005 请求失败或服务未及时响应

    出现的问题如图所示,在开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager中,打开 ...

  3. Ascll

    ascll - 概述 ASCII码(American Standard Code for Information Interchange, 美国标准信息交换码).   信息编码就是将表示信息的某种符号 ...

  4. outlook 2007 IMAP设置和配置

    以Outlook2007为例(Outlook2003操作基本类似).  1.依次点击“工具”>“帐户设置”. 2.在“帐户设置”页中点击“新建”> 不需要做任何选择,点击下一步. 3.填写 ...

  5. c#中override重写和new隐藏

    最近学习c#,昨晚看书看到多态.由于个人本身是从事java开发,于是拿来做对比便是自然的. 进入主题吧. c#中,子类要重写基类的方法,必须要基类声明中带有virtual关键字方法或者带有abstra ...

  6. MySQL计数器表的设计

    如果应用在表中保存计数器,则在更新计数器时可能碰到并发问题.计数器表在web应用中非常常见.可以用这个表缓存一个用户的朋友书.文件下载次数等.创建一张独立的表存储计数器是一种非常好的做法,这样可以使计 ...

  7. cocos2dx工程中接入支付宝sdk

    1. 首先去支付宝官网下载开发者文档 2. 然后按着开发者文档将支付宝的sdk导入到你的工程中,并关联到工程中,步骤入下图: (1)将从支付宝官方网站获得的支付宝的sdk的jar包拷贝到工程中的lib ...

  8. API例子:用Python驱动Firefox采集网页数据

    1,引言 本文讲解怎样用Python驱动Firefox浏览器写一个简易的网页数据采集器.开源Python即时网络爬虫项目将与Scrapy(基于twisted的异步网络框架)集成,所以本例将使用Scra ...

  9. Python学习笔记(六)Python的列表生成式、生成器

    列表生成式 List Comprehensions 列表生成式是Python内置的非常简单却强大的可以用来创建list的生成式. 简单的数值范围的list可以使用一下方式生成: >>> ...

  10. USB interrupt传输和isochronous传输的区别

    一直没理解USB的iso传输和interrupt传输的区别. 后来仔细看了下USB2.0 SPEC后才明白. interrupt传输和iso传输,都是等时的传输,也就是某个时间间隔发送一次. 区别在于 ...