最近小编经常受到失眠的困扰,因为在编写一个安卓体能评定的软件,同时又在构思一个桌面管理应用,不管是构想还是操作上都遇到了很多难题,所以寄希望于小编手机上的一款软件,因为版权问题,就不说出它叫啥名字了。这个软件功能棒棒哒,有专门治疗失眠的栏目,可是必须联网在线听。有时候夜里睡前是会把手机调成飞行模式的,这样就听不了那些音乐了,而听那些音乐,又常常会有加班的同事打进电话来,搞的我很烦恼。为什么不把这些音乐下载下来呢?说的好听,做起来难!现把我白瞟下来的步骤记录下来,期间会略去关键信息,仅用于技术参考,其他概不负责

一、准备工具

adb、安卓手机、RAR解压软件和浏览器(推荐谷歌)。

  1. 调试好adb在系统变量path中的路径,以便可以直接启动adb命令行。
  2. 安卓手机连接电脑,并启动开发者模式。

二、adb命令行

(一)确认设备是否正常连接

adb shell get-state获取设备连接状态。

只有设备正常连接才能进行后续操作,设备连接不成功有好多原因,比如手机USB驱动没有安装、数据线不稳定、手机调试模式没有打开等等。

(二)查找目标app包名及存储路径并拉取

  1. 在命令行中输入adb logcat | findstr START记录运行程序并在其中找到刚刚启动的程序,你会看到诸如
START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]
flg=0x10200000 cmp=XXX.XXX.XXX/XXXActivity} from pid 1461

之类的东西,其中XXX.XXX.XXX就是要找的包名,再继续点进我要找的音乐那个界面,发现它是WebViewActivity,这就好办了,包里肯定有相关网址信息,然后按CTRL^C退出adb logcat。

  1. 按照这个思路再输入adb shell am start -W -n XXX.XXX.XXX/XXXActivity启动软件,以确认它就是目标软件主界面。
  2. 输入adb shell am force-stop XXX.XXX.XXX强制关闭app。
  3. 输入adb shell pm path mtn.plaust.penewstd获取APP安装路径package:/data/app/XXX.apk
  4. 输入adb pull /data/app/XXX.apk拉取apk到电脑当前目录。

我的理解是am = Activity Manager, pm = Package Manager,-W是-Wait即等待Activity启动 -n是指定Activity名。

三、查看apk信息

用RAR软件查看apk,在assets/sleep/文件夹下找到CoreXXXXXXNew.txt,打开一看,是json格式的,在其中找到了我要的信息:

{
"name": "XXXXX",
"img": "XXX.png",
"imgSquare": "XXX.jpg",
"url": "https://www.XXXXXXX.com/XXXXXX/#/voice/146",
"description": "XXX",
"type": "music",
"style": "入睡困难",
"model": "0"
}

四、使用浏览器调试

  1. 打开浏览器按F12,并输入地址访问,在Network查看找到一条记录,如图所示:,也可以使用正则表达式过滤.*\.mp3搜索mp3格式的文件。
  2. 查看headers信息,找到资源文件URL地址,复制链接,然后使用浏览器就下载下来了。

五、其他方法的尝试

根据在简书上参考的一篇文章[使用adb查看别人家的app数据][https://www.jianshu.com/p/d25bb146ef36],我又在第二大步骤的基础上进行了以下尝试:

  1. 备份
//备份 -nosystem不备份系统 -all所有数据 -noshared除了手机存储空间 -f data.ab输出结果
adb backup -nosystem -all -noapk -noshared -f data.ab
  1. 使用abe.jar解包

    java -jar abe.jar unpack data.ab data.rar 备份密码

但是结果报错,反正我的目的已经达到了,就不求甚解吧。

利用ADB获取APP资源的更多相关文章

  1. 利用json获取天气信息

    天气预报信息获取是利用json获取的,网上有非常多资源,源码.因为上面涉及到非常多天气信息,包含湿度,出行建议等,以及加入了全部城市代码的资源包.为了练手了解json的原理.我仅获取诚笃城市的最高温, ...

  2. adb获取Android性能数据

    环境:Android测试环境 搭建Android测试环境: 1.下载AndroidSDK: 2.配置环境变量: (1).ANDROID_HOME (2).ANDROID_HOME-TOOLS (3). ...

  3. 获取APP应用的包名信息

    语言: python 3.7 需求:获取APP的包名和程序入口信息,以便在 Appium 脚本中配置 appPackage 和 appActivity 参数. 场景一 资源:已有APP应用的apk安装 ...

  4. Appium+Python自动化 3 -获取 app 包名和 activity

    方法一: ①手机通过USB连接电脑 ②打开手机上被测app ③在电脑上 dos命令窗口,输入命令 adb shell dumpsys window w | findstr \/ | findstr n ...

  5. 使用Fidder从安卓模拟器获取APP内H5游戏网址

    大家都知道H5游戏其实是网页,但是有些APP或者微端不显示网址链接.这里给大家介绍介绍一种,利用Fiddler进行抓包,获取APP打开的网址的方法.有人说何必多此一举呢,直接用模拟器玩游戏就好了.的确 ...

  6. 快速获取APP对应的appPackage和appActivity

    appPackage和appActivity 进行appium自动化测试非常重要的两个参数,我们所测试的APP不同,这两个参数肯定也是不一样的. 介绍两种方法可快速获取APP的这两个参数: 方法一 1 ...

  7. (转载)Mac系统下利用ADB命令连接android手机并进行文件操作

    Mac系统下利用ADB命令连接android手机并进行文件操作 标签: Mac adb android 2016-03-14 10:09 5470人阅读 评论(1) 收藏 举报  分类: Androi ...

  8. appium---Android app资源监控

    我们在做app测试的过程中,都会对app内存,cpu这些做一个简单的测试,今天简单的写下如何通过python监控app这些资源变化 实现原理 1.通过adb命令查看app资源内存 2.通过python ...

  9. (转)利用libcurl获取新浪股票接口, ubuntu和openwrt实验成功(三)

    1.  利用 CURLOPT_WRITEFUNCTION 设置回调函数, 利用 CURLOPT_WRITEDATA 获取数据指针 官网文档如下 CALLBACK OPTIONS CURLOPT_WRI ...

  10. iOS获取app图标和启动图片名字(AppIcon and LaunchImage's name)

    在某种场景下,可能我们需要获取app的图标名称和启动图片的名称.比如说app在前台时,收到了远程通知但是通知栏是不会有通知提醒的,这时我想做个模拟通知提示,需要用到icon名称:再比如在加载某个控制器 ...

随机推荐

  1. CF1857B Maximum Rounding 题解

    题目描述 给定一个自然数 \(n\),可以对任意一位进行四舍五入,可以进行任意次,求能得到的最大数.(这里的 \(n\) 没有前导零) 思路 首先我们发现,如果我们将其中一位进位了,那后面的所有位都会 ...

  2. 汽车之家:基于 Flink + Iceberg 的湖仓一体架构实践

    简介: 由汽车之家实时计算平台负责人邸星星在 4 月 17 日上海站 Meetup 分享的,基于 Flink + Iceberg 的湖仓一体架构实践. 内容简要: 一.数据仓库架构升级的背景 二.基于 ...

  3. C语言程序设计-笔记7-指针

    C语言程序设计-笔记7-指针 例8-1  利用指针模拟密码开锁游戏. #include<stdio.h> int main(void) { int x=5342;          //变 ...

  4. Surge多配置文件聚合配置方法

    目录 摘要 1. Surge配置原理 2. Surge托管配置 3. Surge多配置文件聚合配置 (1)找到配置文件 (2)编辑配置文件 参考 摘要 Surge 是一个在 macOS 和iOS 平台 ...

  5. 《Modern C++ Design》之上篇

    如下内容是在看侯捷老师翻译的<Modern C++ Design>书籍时,整理的code和摘要,用于不断地温故知新. 第一章 1. 运用 Template Template 参数实作 Po ...

  6. Splashtop 教育行业用户增加700%

    ​ 由于新冠肺炎大流行继续限制对大学.学院和K-12学校的计算机实验室的物理访问,Splashtop的销售数据表明,越来越多的学校开始使用远程访问软件作为使用计算机实验室资源的替代方法. 在6月到8月 ...

  7. EAV模型(实体-属性-值)的设计和低代码的处理方案(1)

    一般我们在开发的时候,习惯上使用常规的关系型数据库来设计数据库表,对于一些业务表的字段比较固定的场景,是一种非常不错的选择,而且查询的时候,由于是基于固定的表字段进行查询,性能基本上是最优的.不过有一 ...

  8. 网络安全—SSL安全访问应用

    文章目录 网络拓扑 部署CA服务器颁发证书 开启Web服务 安装IIS服务 修改Web默认网页 申请Web证书 前提准备 申请文件生成 申请web证书 开始安装web证书 客户机访问web默认网站 使 ...

  9. AIRIOT物联网低代码平台如何配置MQTT驱动?

    MQTT驱动配置简介 MQTT全称为消息队列遥测传输(英语:Message Queuing Telemetry Transport),是ISO 标准(ISO/IEC PRF 20922)下基于发布 ( ...

  10. linux cd命令的重要用法:cd -,cd ~

    cd命令的作用:进入磁盘的某个目录下. [root@node5 ~]# cd /etc/sysconfig/network-scripts/ [root@node5 network-scripts]# ...