一.解决思路 通过监听ContentObserver监听下载路径content://downloads 二.具体步骤 1 设置监听器 context.getContentResolver() .registerContentObserver(Uri.parse("content://downloads"), true, new ContentObserver() { @Override public void onChange(boolean selfChange, Uri uri)…
一.使用aapt(Android Asset Packaging Tool)工具获取: 1.配置Android环境: a.添加build-tools/android路径到系统环境变量的中Path中,注意需要用分号隔开: b.添加platform-tools路径到系统环境变量中的Path中,(platform-tools在SKD中): c. 将SDK文件目录复制配置到环境变量Path中 d.验证配置是否成功:cmd-输入命令:aapt 按回车,提示:Android Asset Packaging…
环境配置成功后,我们就可以进行第一个自动化测试了.用真机则不需要安装安卓模拟器.以一个简单的打开APP为例. 一.获取包名和activtity      启动一个app,我们需要知道它的平台.版本号.包名.activity等信息,其中两个比较难找的是包名和activtiy,其他的直接在手机或者用Itools都可以看到. 1)在之前配置的安卓SDK文件夹中找到sdkmanager.exe并启动,勾选一个版本的build-tools并下载. 2)下载成功后,找到appt.exe,并将这个路径加到 环…
获取包名的方式: 1.有源码:查看AndroidManifest.xml 2.只有apk: 2.1 aapt dump xmltree ColaBox.apk AndroidManifest.xml 2.2 aapt dump badging ColaBox.apk |findstr "package" 3.没有apk,但是已经安装了应用 adb shell dumpsys window w | findstr \/ | findstr name=先打开需要查找的apk后,再敲入以上命…
Android 获取包名,版本信息及VersionName名称     <span style="font-size: 14px;">private String getAppInfo() { try { String pkName = this.getPackageName(); String versionName = this.getPackageManager().getPackageInfo( pkName, 0).versionName; int version…
在进行手机APP测试的时候经常要获取包名.那么何为包名呢?简单来说其实就是手机APP的安装apk文件的名称,每个手机APP(软件)的包名都是唯一的. 那么我们怎样来获取包名以及包名的入口呢? 方法一:通过cmd命令,前提是先打开手机中你要获取包名的APP 1.adb shell 2.dumpsys activity | grep mFocusedActivity 方法二:通过反编译来获取包名及入口 aapt dump badging c:\software\taobao.apk 建议大家还是使用…
本文档主要记录“获取包名和 Activity 的方法”,用于自动化测试时启动APP.以下方法主要来源于网络和社区同学的贡献,特此感谢! 1. 方法一: pm list package查看包名 adb shell pm list package -f 将获取手机内所有apk对应的包名和路径   adb shell pm list package -3 -f #获取第三方apk的包   2. 方法二:dumpsys window(本人最常用) 先打开需要查找的apk后,再敲入以上命令 adb she…
获取包名的两种方法: 一.通过aapt获取 1.进入aapt.exe所在路径 2.在地址栏输入cmd回车,打开dos命令窗口. 3.在命令窗口输入 aapt dump badging 拖入apk 回车 4.找到package:name=' XXXX',name后面的就是包名  二.通过adb 命令获取 1.在设备上运行apk 2.连接设备,输入命令 adb shell dumpsys activity | find "mFocusedActivity" 回车 3.mFocusedAct…
在monkey命令中,包名常作为一个参数.但我们经常知道apk文件,却不知道包名. 如何获取包名呢? 方法一:AAPT 在SDK的build-tools目录下,aapt工具可以查看,创建,更新zip格式的文件附件. 在cmd命令窗口,切换到aapt.exe所在的目录下 在上面的目录下,执行aapt dump badging +apk文件路径,获取到"package:name=com.XXX.xx",此为包名. 方法二:通过adb shell ”logcat| grep START&qu…
简洁:不超过5个java文件 依赖:仅依赖aapt.exe 支持:仅限windows 功能:用纯java获取apk文集里的包名,版本号,图标文件[可获取到流直接保存到文件系统] 原理:比较上一篇文章里通过反编译然后解析AndroidManifest.xml的方式,此种方式更加简单,通过模拟执行aapt截取cmd输出并整理获取信息. 附件为源码,test/demo 为演示,output下为编译后的jar文件. 参考开源项目: http://code.google.com/p/cfuture09-a…
1.android sdk的环境安装好了之后,在build-tools\** 的目录下找到aapt.exe,将这个路径设置环境变量,添加到path下 2.在cmdl里面输入:aapt,出现以下内容就是成功了 3.获取apk包名:aapt dump badging D:\apk\yuedan.apk     (需要测试的包放在D:\apk 目录下) 4.获取actibity,滑到中间一点就可以看到 5.写脚本 1platformName:这里是android的apk 2.deviceName:手机…
依赖:仅依赖aapt.exe 支持:仅限windows 功能:用纯java获取apk文集里的包名,版本号,图标文件[可获取到流直接保存到文件系统] 原理:比较上一篇文章里通过反编译然后解析AndroidManifest.xml的方式,此种方式更加简单,通过模拟执行aapt截取cmd输出并整理获取信息. public static void main(String[] args) { try { String apkpath = "D:\\DefaultApkTempSaveFolder\\3G安…
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/zhusongziye/article/details/77856259 使用 Appium,每次换设备换 APP 测试时要在脚本修改很多东西,很麻烦,要自动获取可以通过指令获得的信息,使用该起来也方便. 最终效果是每次只需要修改测试的包的路径和包名就可以自动删除旧的安装包,并获得 Android 设备 id 和包名等 Appium 需要的…
1.aapt dump badging   指定的路径 +包名      ======= adb logcat|findstr START 2.顶部和尾部有包名和activity…
情况1: 安装包未安装到手机 准备前提条件: 1 Android SDK管理工具目录 2 PC端有apk包 使用方法: 1 打开终端,当前路径移动到sdk管理工具目录tools或build-tools目录下(有aatp工具的目录) 2 aapt dump badging +apk路径\apk名字 | findstr package (查看apk包名) 3 aapt dump badging +apk路径\apk名字 | findstr activity(查看activity名) 情况2: 安装包…
背景: 每次海外游戏上架都需要符合google的上架规则,其中适配方面tagetSdkversion有硬性要求,比如需要适配安卓q就需要tagetSdkversion达到28,水平太渣的我每次调用aapt工具都需要在cmd中输入大量指令,且aapt dump baging指令会返回大量相关以及无关信息,为了方便过滤相应信息,编写代码直接获取相关信息,排除无关信息 以剑网3指尖江湖的安装包为例 若直接使用aapt工具,返回信息如下图所示 思路: re模块使用正则表达式过滤无关信息,os模块调用环境…
this.axios({           method: "post",           url: url,           data: data,           responseType: "blob"          })           .then(res => {             const data = res.data             let r = new FileReader()             …
import android.app.Activity; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.res.Resources; import android.graphics.dra…
LogUtil.i("getPackageName()=" + getPackageName()); //Context类 LogUtil.i("getClass().getName()=" + getClass().getName());//Class类 LogUtil.i("getClass().getSimpleName()=" + getClass().getSimpleName());//Class类   控制台打印结果: (L:175…
命令代码 adb shell dumpsys window |findstr mFocusedApp…
主要是读apk中manifest.xml中的信息. 读单一apk信息:见“文件”中“apkInfo.xml”.实际运行时,需要将后缀由“.xml”改为“.py". 批量自动获取apk软件信息,可参考https://github.com/poorevil/GetAPKDetails中src下的GetApkDetails.py. 由于manifest.xml是xml格式,所以按行读会破坏其格式,尤其是在读intent信息的时候无法读到.所以,可通过导入读xml格式的包(如DOM)实现.具体方法会在今…
本文链接 下载文件是一个比较常见的需求.给定一个url,我们可以使用URLConnection下载文件. 使用OkHttp也可以通过流来下载文件. 给OkHttp中添加拦截器,即可实现下载进度的监听功能. 使用流来实现下载文件 代码可以参考:https://github.com/RustFisher/android-Basic4/tree/master/appdowloadsample 获取并使用字节流,需要注意两个要点,一个是服务接口方法的 @Streaming 注解,另一个是获取到Respo…
http://www.loongwind.com/archives/290.html 上一篇文章介绍了用Retrofit实现文件的上传与下载,但是我们发现没办法监听上传下载的进度,毕竟我们在做开发的时候经常是要显示上传或者下载的进度了.虽然Retrofit没有给我们提供现成的api来监听进度,但是Retrofit很灵活,它底层网络访问是用的okhttp实现的,当然我们也可以设置其他第三方网络请求库,因为Retrofit可以设置client,我们可以由此来扩展下载上传的进度监听. 本文使用okht…
最近在做一个较简单的项目:通过一个webview来显示一个网页的App 这个网页有下载的功能,关于这一功能需要用到两个知识点: 1.webview监听网页的下载链接.(webview默认情况下是没有开启,在这个情况下,你会发现,在浏览器上可以正常下载的网页里的某个点击.在你的webview里面,点击是没有反应的): 2.使用系统的DownloadManager进行下载. 提前说下,在这两个小知识点遇到的坑: 1.第一个坑,就是前面说的,需要Webview开启下载监听,否则,你会发现,点击下载,没…
Android实训案例(六)--四大组件之一BroadcastReceiver的基本使用,拨号,短信,SD卡,开机,应用安装卸载监听 Android中四大组件的使用时重中之重,我这个阶段也不奢望能把他所有的原理搞懂,但是最起码的,我要把他的各种使用方法了如指掌才行 BroadcastReceiver 接收系统的广播,比如电话,短信之类的 1.IP拨号器 我们在拨打电话的时候,我们系统也会事先发送一个广播,所以我们可以用广播接收者来接收到这个广播拨打电话的时候在电话号码前面加上一些优惠的长途短号,…
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 记录自定义EditText控件实现监听软键盘隐藏事件的功能.基本上和参考资料相同. 效果图    代码分析 自定义EditText子类,然后重写onKeyPreIme方法 @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() =…
[功能说明] tcpdump命令是一个截获网络数据包的包分析工具.tcpdump可以将网络中传送的数据包的“头”完全截获下来以提供分析.它支持针对网络层.协议.主机.端口等的过滤,并支持与.或.非逻辑语句协助过滤有效信息. tcpdump命令工作时要先把网卡的工作模式切换到混杂模式(promiscuous mode).因为要修改网络接口的工作模式,所以tcpdump命令需要以root的身份运行. [语法格式] tcpdump [option] [expression]  tcpdump [选项]…
事件监听机制组成: 事件源:(awt包或者swing包中的那些图形界面组件)(被打的那个人,被点击的组件,可以承受某些事件,但不是所有事件都能承受) 事件:每个事件源都有自己特有的对应事件和共性事件(动作,比如打,点击) 监听器:将可以触发某一个事件的动作(不止一个动作)都已经封装到了监听器中(保镖) 处理方式 上面的三个在java中都已经定义好了,直接获取其对象来用就可以了 我们要做的就是对产生的动作进行处理 import java.awt.Button; import java.awt.Fl…
1. 场景设计 场景设计的原则:忠于用户实际操作,组合用户的各种操作到场景中来. JMeter场景主要通过线程组设置来完成的,对于复杂场景还需要与逻辑控制器配合完成. 2.场景设置 JMeter线程组实际上是建立一个线程池,JMeter根据用户的设置进行线程池的初始化,在运行时做各种异常的处理. 参数说明: √ 名称:可以随意设置,最好有业务意义 √ 注释:可以随意设置,可以为空 √ 在取样器错误后要执行的动作:也就是其中的某一个请求出错后的异常处理方式. (1)继续:请求(Sampler元件模…
转载请注明出处:http://blog.csdn.net/fengyuzhengfan/article/details/46461253 当耳机的媒体按键被单击后.Android系统会发出一个广播.该广播的携带者一个Action名为MEDIA_BUTTON的Intent.监听该广播便能够获取手机的耳机媒体按键的单击事件. 在Android中有个AudioManager类,该类会维护MEDIA_BUTTON广播的分发.所以要实现耳机按键监听须要向AudioManager注冊一个用于接收耳机按键单击…