adb,aapt等命令使用
adb
adb shell
打包过程
android打包成可执行的apk文件分为以下几个过程:
1,使用dx将.class编译成.dex文件。
2,使用aapt将工程中的资源文件打包成.apk。
3,使用aapt将.dex文件添加到.apk文件中。
4,使用aapt将.so添加.apk文件中
5,使用apksigner对生成的apk文件进行签名。
aapt
package
- aapt package -f -M ./app/src/main/AndroidManifest.xml -S ./app/src/main/res -S ./lib1/src/main/res -S ./lib2/src/main
- /res -I D:\android\sdk\platforms\android-25\android.jar -F test.apk --auto-add-overlay
-M指主应用的清单文件,第一个-S指主应用的res文件,后面-S是library工程的res文件,-I指android.jar的所在路径,-F指apk文件的输出路径。
add与remove
- C:\Users\xx\Desktop\app-release>aapt add test.apk classes.dex
- 'classes.dex'...
- C:\Users\xx\Desktop\app-release>aapt remove test.apk xx.dex
第一行是向apk文件中添加dex文件,第二行是从apk中移除xx.dex文件。
- C:\Users\hufeng7\Desktop\app-release>aapt add test.apk lib/x86_64/libnative-lib.so
要注意:被add到apk文件中的文件,一定不能带前缀,否则就会在apk中创建同名的文件。如上面添加dex文件时,如果写成./dex,那么在apk中首先会创建一个文件名为.的文件夹,然后将classes.dex文件放到该目录下。
签名apksigner
- D:\android\sdk\build-tools\25.0.2>apksigner sign --ks C:/Users/xx/Desktop/c
- ompany/test.jks --out C:\Users\xx\Desktop\diyidian2.apk diyidian.apk
第一个apk文件(即--out后指定的值)是签名后生成的文件的位置,第二个apk是要被签名的文件。如果没有指定--out,则签名之后的apk会覆盖掉未签名的apk。
--ks指的是签名文件所在的位置。
dx与dexdump
dx:用于将.class文件转成.dex文件(或者是.jar,.zip文件)。如:
- dx --dex [--output=<file>] [<file>.class | <file>.{zip,jar,apk} | <directory>]
--output后跟的是目标路径。最后是class文件的路径或者zip,jar,apk文件路径。
dexdump:用于获取dex文件中dalvik字节码。如dexdump -d将dex文件还原成dalvik字节码。
总结
adb,aapt等命令使用的更多相关文章
- ADB简单基础命令
1.查看设备 adb devices 这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示 2.安装软件 adb install adb install :这个命令将 ...
- 2.SDK目录结构和adb工具及命令介绍
安卓开发学习笔记 1.安卓开发之环境搭建 2.SDK目录结构和adb工具及命令介绍 1.SDK目录介绍: ******************************** add-ons:Androi ...
- adb 卸载APP命令和杀死APP命令
使用adb 卸载APP命令 在cmd命令行下,直接 输入 adb uninstall 包名 比如 adb uninstall com.ghstudio.BootStartDemo 杀死APP命令 先用 ...
- win7 cmd终端连接android手机运行adb shell脚本命令
win7 cmd终端连接android手机运行adb shell脚本命令 (2013-03-22 20:13:57) 转载▼ 标签: android it shell 连接 linux 分类: 嵌入式 ...
- adb的常用命令及如何查看被占用的端口
adb是什么?:adb的全称为Android Debug Bridge,就是起到调试桥的作用.通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具.a ...
- adb shell am命令
adb shell am命令是在cmd命令行可以通过命令来启动Activity,Boradcast,Service等,更多使用可以参考下面附件. 比如在cmd串口我们发送广播,广播action是&qu ...
- 移动测试基础—adb、monkey命令
最近打算把移动测试相关的知识总结一下,先从基础开始吧,总结一下adb.monkey命令 adb常用命令总结 adb / adb -help 使用帮助 adb devices 查看连接到电脑的设备 ad ...
- adb的常见命令和异常报错操作
adb连接状态 adb devices , 获取设备列表及设备状态 设备的状态有 3 种 device , 设备连接正常 offline , 设备离线,连接出现异常 unauthorized 设备为进 ...
- ADB常用的命令
ADB常用的命令: 1)adb devices---获取设备列表及设备状态 2)adb get-state---获取设备的状态 设备的状态有 3 钟,device.offline.unknown. d ...
随机推荐
- 原生ajax 请求
什么是ajax AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新. 这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新, ...
- sqlserver表值函数调用方式
Connection conn = sqlServerManage.sqlServerConn(); Statement stmt; ResultSet rs; // 组装sql StringBuff ...
- 40 final、finally、finalize的区别
1.final 用于声明属性.方法.类.分别表示属性不可被改变,方法不可被覆盖,类不可被继承. (1)一个类不能既被声明为abstract的,又被声明为final的. (2)被声明为final的变量必 ...
- JVM基础——面试、笔试
1.java内存与内存溢出 1.1 JVM分为哪些区,每一个区干嘛的?(见java虚拟机38页) (1)程序计数器(线程私有) 当前线程执行字节码的信号指示器.(每个线程都会在程序计数器中存储其指令, ...
- JavaWeb面试篇(6)
51.说一说Servlet的生命周期? Servlet有良好的生存期的定义,包括加载和实例化.初始化.处理请求以及服务结束.这个生存期由javax.servlet.Servlet接口的init(),s ...
- html b标签 语法
html b标签 语法 标签b是什么意思? b的意思是bold,b标签主要用于html中规定粗体文本,该标签内的字符将被设为粗体.B标签所传达的意思只是加粗,没有任何其它的作用. 作用:规定粗体文本. ...
- codevs 1020 孪生蜘蛛 x
题目描述 Description 在G城保卫战中,超级孪生蜘蛛Phantom001和Phantom002作为第三层防卫被派往守护内城南端一带极为隐秘的通道. 根据防护中心的消息,敌方已经有一只特种飞蛾 ...
- sh_05_偶数求和
sh_05_偶数求和 # 计算 0 ~ 100 之间 所有 偶数 的累计求和结果 # 开发步骤 # # 1. 编写循环 确认 要计算的数字 # 2. 添加 结果 变量,在循环内部 处理计算结果 # 1 ...
- 装RAC跑脚本报错
在执行第二个脚本的时候报错 原因是在改服务器找不到该包 解决方法: 挂载iso镜像,安装这个包
- android intent调用系统camera
利用android的camera通常有两种方式:利用intent调用系统的camera,或者结合surfaceview实现自己定制的camera.先分别对这两种方法说明如下: 一.使用系统自配的cam ...