android 开发中常用命令

news2024/9/25 7:22:42

1.反编译

命令:apktool d <test.apk> -o <folderdir>

其中:test.apk是待反编译文件的路径,folderdir是反编译后的文件的存储位置。

apktool d -f <test.apk> -o <folderdir>

注意:如果dir已经存在,会提示报错,此时加上参数-f会强行覆盖dir。

举例:apktool   d /Users/admin/test.apk -o /Users/admin/Desktop/folderdir

2.编回apk 重新打包

apktool b /Users/admin/Desktop/folderdir

3.重新签名,生成apk

jarsigner -verbose -keystore 你的签名文件 -storepass 签名文件密码 -signedjar 签名后的apk名称 -digestalg SHA1 -sigalg MD5withRSA 待签名的apk 签名文件别名

jarsigner -verbose -keystore /Users/admin/Desktop/test.keystore -storepass test -signedjar /Users/admin/Desktop/folderdir/dist/1test.apk -digestalg SHA1 -sigalg MD5withRSA /Users/admin/Desktop/folderdir/dist/1019033_gtyxsjtest2_37_fanshenghao_1688031872bPeBJZETdV.apk test

4.命令输入控制台log(有时候 as 控制台总是丢日志,用这个命令不会出现)

adb logcat ->/Users/admin/Desktop/jspanhskd.log

5.查看这个包名带 jp 的进程

adb shell ps | grep jp

6.杀死手机某个进程

adb shell am force-stop packagename

例子:adb shell am force-stop com.pm.tcl

7.查看activity的调用栈信息

adb shell dumpsys activity | grep "topActivity"

8.查看Activity组件信息

adb shell dumpsys activity activities

9.查看Service组件信息

adb shell dumpsys activity services

10.查看ContentProvider组件信息

adb shell dumpsys activity providers

11.查看BraodcastReceiver信息

adb shell dumpsys activity broadcasts

12.查看Intent信息

adb shell dumpsys activity intents

13.查看进程信息

adb shell dumpsys activity processes

14.查看设备abi,海思芯片是32位还是64位

adb shell getprop ro.product.cpu.abi

15.输出各阶段发生的动画与帧相关的信息

adb shell dumpsys gfxinfo <PackageName>

16.查看每个activity启动耗时 在Android Studio Logcat中过滤关键字“Displayed

17. 应用的启动时间

命令: adb shell am start -W com.jo.cl/com.jo.cl.SplashActivity

ThisTime

表示最后一个Activity启动耗时。

TotalTime

表示所有Activity启动耗时。

WaitTime

表示AMS启动Activity的总耗时。

一般来说,只需查看得到的TotalTime,即应用的启动时间,其包括 创建进程 + Application初始化 + Activity初始化到界面显示 的过程。

18.aab并不能直接安装到手机,因为apk是唯一的安装包格式,所以需要先将aab转成apks,我们需要借助bundletool工具,bundletool的使用见官网 ​​​​​​https://developer.android.com/studio/command-line/bundletool

  a. 通过 brew 安装bundletool   

     命令:brew install bundletool

  b. aab 生成 apks   

命令:bundletool build-apks --bundle=<test.aab> --output=<test.apks> --ks=<test.jks> --ks-pass=pass:<密码> --ks-key-alias=<别名> --key-pass=pass:<密码>

举例:bundletool build-apks --bundle=/Users/admin/Downloads/test.aab -- output=/Users/admin/Desktop/test/wscq.apks --ks=/Users/Project/test.jks --ks-pass=pass:android --ks-key-alias=test --key-pass=pass:android

   c.  安装 apks 到手机

命令: bundletool install-apks --apks trunk_release_signed.apks

19.获取apk 签名信息

命令:keytool -keystore <keystore文件> -list -v

举例:keytool -keystore /Users/Project/test/keystore/test.keystore -list -v

20.获取手机内apk包中的缓存文件

命令:adb pull <缓存文件路劲> <输出路劲>

例子:adb pull /sdcard/android/data/com.pm.test/files/test_logs/Log_2023_08_04.log /Users/admin/Desktop

21.查看apk安装目录

命令: adb shell pm path packagename

22.mac 查看 jdk 安装路劲

命令:  /usr/libexec/java_home -V

23. android studio 查看依赖树

chmod +x gradlew

命令: ./gradlew :app:dependencies

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/854297.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年测试岗,软件测试面试题汇总-附答案,疯狂拿offer...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 介绍一下测试流程…

共享式以太网的争用期

在以太网中&#xff0c;必然会发生碰撞。   站点从发送帧开始&#xff0c;最多经过 2 τ 2\tau 2τ就会检测到碰撞&#xff0c;此时 2 τ 2\tau 2τ被称为争用期或碰撞窗口。   站点从发送帧开始&#xff0c;经过争用期 2 τ 2\tau 2τ这段时间还没有检测到碰撞&#xff0c…

不只是Axure,这5 个也能轻松画原型图!

在设计和开发过程中&#xff0c;原型图是一个至关重要的工具。它是将设计理念转化为可视化、交互式的形式&#xff0c;使团队成员和利益相关者更好地理解和评估产品的功能和用户体验。选择适合的软件工具对于画原型图至关重要&#xff0c;本文将介绍 5 种常用的画原型图软件&am…

创建Springboot+vue3项目

项目概述创建springboot项目加入mybatis-plus支持1.加入依赖代码2.创建数据库实例3.yml文件的配置4.编写测试代码5.测试结果 创建vue项目报错错误一错误二错误三 项目概述 后端&#xff1a;Springboot、mybatis-plus、java 前端&#xff1a;nodejs、vue脚手架、element-ui 数据…

互联网医院|线上医疗平台连接医者和患者的桥梁

近年来&#xff0c;随着互联网技术的飞速发展&#xff0c;互联网医院系统悄然崛起&#xff0c;引领着医疗行业的变革浪潮。这一系统以其出色的功能与服务&#xff0c;为广大患者带来了便捷、高效的医疗体验&#xff0c;将传统医疗模式推向了新的高度。 作为医疗界的新生力量&a…

计算机网络—IP

这里写目录标题 IP的基本认识网络层与数据链路层有什么关系IP地址基础知识IP 地址的分类什么是A、B、C类地址广播地址用来做什么什么是D、E类广播多播地址用于什么IP分类的优点IP分类的缺点 无分类地址CIDR如何划分网络号和主机号怎么进性子网划分 公有 IP 地址与私有 IP 地址公…

sentinel客户端和dashboard交互

回顾 在前面的章节中&#xff1a;通过阐述sentinel简单使用、滑动窗口、核心流程源码分析把sentinel限流、熔断等主要功能说明清楚了&#xff0c;但我们在实际使用的过程中&#xff0c;不可能通过硬编码的方式设置规则&#xff0c;且规则也没法直观的维护&#xff0c;为此肯定…

如何在 Cloudron 上部署 ONLYOFFICE 文档

使用 Cloudron 应用市场上的应用程序&#xff0c;只需点击几下即可在服务器上部署 ONLYOFFICE 文档。 什么是 ONLYOFFICE 文档 ONLYOFFICE 文档是一个在线办公套件&#xff0c;包括文本文档、电子表格和演示文稿的查看器和编辑器&#xff0c;与包括 .docx、.xlsx、.pptx 在内的…

八、复用(1)

本章概要 组合语法继承语法 初始化基类带参数的构造函数 委托 代码复用是面向对象编程&#xff08;OOP&#xff09;最具魅力的原因之一。 对于像 C 语言等面向过程语言来说&#xff0c;“复用”通常指的就是“复制代码”。任何语言都可通过简单复制来达到代码复用的目的&#…

Hive终端命令行打印很多日志时,如何设置日志级别

示例&#xff1a;use test; 切换到test数据库时&#xff0c;输出很多日志信息不方便看结果&#xff0c;如下图。 解决方法&#xff1a; 退出hive命令行界面&#xff08;ctrlC&#xff09;执行“vi /usr/local/apache-hive-3.1.2-bin/conf/log4j.properties”命令&#xff0c;创…

AI lightning学习

真的是没有mmlab的框架好理解&#xff0c;hook调用没问题&#xff0c;就是代码写的不整洁&#xff0c;hook放的到处都是&#xff0c;而且hook的名字和run的名字也不好对应。 又是捧mmengine的一天 &#x1f603;

《面试1v1》ElasticSearch 集群索引分片

&#x1f345; 作者简介&#xff1a;王哥&#xff0c;CSDN2022博客总榜Top100&#x1f3c6;、博客专家&#x1f4aa; &#x1f345; 技术交流&#xff1a;定期更新Java硬核干货&#xff0c;不定期送书活动 &#x1f345; 王哥多年工作总结&#xff1a;Java学习路线总结&#xf…

React中使用mobx管理状态数据使用样例

MobX 是一个身经百战的库&#xff0c;它通过运用透明的函数式响应编程&#xff08;Transparent Functional Reactive Programming&#xff0c;TFRP&#xff09;使状态管理变得简单和可扩展。官网地址&#xff1a;关于 MobX | MobX中文文档 | MobX中文网 安装依赖 mobx-react-…

共享式以太网的退避算法

在使用CSMA/CD协议的共享总线以太网中&#xff0c;正在发送顿的站点一边发送顿一边检测碰撞&#xff0c;当检测到碰撞时就立即停止发送&#xff0c;退避一段随机时间后再重新发送。   截断二进制指数退避算法&#xff1a;退避时间基本退避时间 2 τ 2\tau 2τ随机数r{ 0 , 1 …

Java笔记(三十二):MySQL(下)-- 事务、索引、引擎、视图、MySQL管理

七、事务transaction 1、引入 场景&#xff1a;学工部整个部门解散了&#xff0c;该部门及部门下的员工都需要删除了。 操作&#xff1a; -- 删除学工部 delete from dept where id 1; -- 删除成功-- 删除学工部的员工 delete from emp where dept_id 1; -- 删除失败&…

Java从入门到精通(四)· 面向对象

Java从入门到精通&#xff08;四&#xff09; 面向对象 一 静态关键字&#xff08;static&#xff09; static表示静态关键字&#xff0c;可以用来修饰成员变量和成员方法。 被 static修饰的成员变量&#xff0c;称之为静态成员变量或者类变量&#xff0c;同理可得&#xff…

前端性能优化介绍与常见方法(二)

这是一个没有套路的前端博主&#xff0c;热衷各种前端向的骚操作&#xff0c;经常想到哪就写到哪&#xff0c;如果有感兴趣的技术和前端效果可以留言&#xff5e;博主看到后会去代替大家踩坑的&#xff5e; 主页: oliver尹的主页 格言: 跌倒了爬起来就好&#xff5e; 目录 一、…

条件竞争漏洞Double Fetch

前言 Double Fetch(双取)是一种条件竞争的漏洞&#xff0c;相关的论文发表在USENIX&#xff0c;论文链接&#xff1a;https://www.usenix.org/system/files/conference/usenixsecurity17/sec17-wang.pdf Double Fetch Double Fetch是内核的一种漏洞类型&#xff0c;发生在内…

开发一个RISC-V上的操作系统(六)—— 中断(interrupt)和异常(exception)

目录 往期文章传送门 一、控制流 &#xff08;Control Flow&#xff09;和 Trap 二、Exceptions, Traps, and Interrupts Contained Trap Requested Trap Invisible Trap Fatal Trap 异常和中断的异同 三、RISC-V的异常处理 mtvec&#xff08;Machine Trap-Vector Ba…

【福利】免费白嫖Notability订阅版,无需越狱,支持无限笔记!

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 视频教程&#xff1a;【福利】免费白嫖Notability订阅版&#xff0c;无需越狱&#xff0c;支持无限笔记&#xff01;_哔哩哔哩_bilibili 下载爱思助手 连接iPad 搜索并安装12.1.8版本的notability iPad上打开软件…