adb之am、pm命令
来源:互联网 发布:微信公众平台跳转淘宝 编辑:程序博客网 时间:2024/05/17 08:49
PM命令
pm即package manager,使用pm命令可以去模拟android行为或者查询设备上的应用信息等
1、命令格式:
pm
2、命令列表:
例如:
1、获取手机app列表信息
adb shell pm list packages
2、输出安装包的APK路径
adb shell pm path com.android.launcher3
3、删除与包相关的所有数据:清除数据和缓存
adb shell pm clear com.android.launcher3
AM命令
am即activity manager,可以使用am命令去模拟各种系统的行为,例如去启动一个activity,强制停止进程,发送广播等
一、常用命令
作为一名开发者,相信对adb指令一定不会陌生。那么在手机连接adb后,可通过am命令做很多操作:
(1) 拨打电话10086
adb shell am start -a android.intent.action.CALL -d tel:10086
(2) 打开网站www.gityuan.com
adb shell am start -a android.intent.action.VIEW -d http://gityuan.com
(3) 启动Activity
启动包名为com.yuanhh.app,主Activity为.MainActivity,且extra数据以”website”为key, “yuanh.com”为value。通过java代码要完成该功能虽然不复杂,但至少需要一个android环境,而通过adb的方式,只需要在adb窗口,输入如下命令便可完成:
am start -n com.yuanhh.app/.MainActivity -es website gityuan.com
am命令还可以启动Service、Broadcast,杀进程,监控等功能,这些功能都非常便捷调试程序,接下来讲述关于am更多更详细的功能。
4、杀死进程
adb shell am force-stop com.android.fmradio
二、 Options
主要是启动Activity命令am start [options] 使用options参数,接下来列举Activity命令的[options]参数:
-D: 允许调试功能
-W: 等待app启动完成
-R : 重复启动Activity COUNT次
-S: 启动activity之前,先调用forceStopPackage()方法强制停止app.
–opengl-trace: 运行获取OpenGL函数的trace
–user | current:
指定用户来运行App,默认为当前用户。
–start-profiler : 启动profiler,并将结果发送到 ;
-P : 类似
–start-profiler,不同的是当app进入idle状态,则停止profiling
–sampling INTERVAL: 设置profiler
取样时间间隔,单位ms;
启动Activity的实现原理: 存在-W参数则调用startActivityAndWait()方法来运行,否则startActivityAsUser()。
三、启动应用特例
启动应用的方法一般是packageName/className,但是如果只知道应用的包名,而不知道启动activity的名字,该怎么启动呢?
public static void startAppWithPackageName(Activity context, String packagename) { // 通过包名获取此APP详细信息,包括Activities、services、versioncode、name等等 PackageInfo packageinfo = null; try { packageinfo = context.getPackageManager().getPackageInfo(packagename, 0); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } if (packageinfo == null) { return; } // 创建一个类别为CATEGORY_LAUNCHER的该包名的Intent Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null); resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER); resolveIntent.setPackage(packageinfo.packageName); // 通过getPackageManager()的queryIntentActivities方法遍历 List<ResolveInfo> resolveinfoList = context.getPackageManager() .queryIntentActivities(resolveIntent, 0); Log.i(TAG, "resolveinfoList.size=" + resolveinfoList.size()); if (resolveinfoList.size() == 0) { return; } ResolveInfo resolveinfo = resolveinfoList.iterator().next(); if (resolveinfo != null) { // packagename = 参数packname String packageName = resolveinfo.activityInfo.packageName; // 这个就是我们要找的该APP的LAUNCHER的Activity[组织形式:packagename.mainActivityname] String className = resolveinfo.activityInfo.name; // LAUNCHER Intent Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); // 设置ComponentName参数1:packagename参数2:MainActivity路径 ComponentName cn = new ComponentName(packageName, className); intent.setComponent(cn); context.startActivity(intent); } }
- adb之am、pm命令
- adb shell am/pm命令
- adb shell am broadcast 手动发送广播及adb shell am/pm其他命令
- android am pm命令
- android am pm命令
- android am pm命令
- ---------------android am pm命令
- Android am & pm 命令
- am,pm命令
- android adb shell am pm
- adb、adb shell am、adb shell pm命令的详细使用说明
- adb shell命令整理之pm
- adb命令之pm hide 与 disable
- adb shell命令整理之am
- Android am/pm命令用法
- Android am/pm命令用法
- Android adb shell am/pm使用
- adb、pm命令、root
- 如何避免网站更换服务器带来的影响?
- 【Scikit-Learn 中文文档】优化估计器的超参数
- V-SLAM应做事项(Ⅰ)
- (实验3-3) 构造函数的调用
- Hibernate之全面认识
- adb之am、pm命令
- Docker应用--搭建Docker镜像的本地仓库
- lock-step技术
- 【Scikit-Learn 中文文档】模型评估: 量化预测的质量
- Scanner
- Qt5.7 + VS2015 环境搭建
- 魔法数学阅读笔记(Ⅰ)
- JAVA CAS深度分析
- 年薪30万-50万,站在风口上的大数据面临150万的人才紧缺