adb命令
- adb push
命令格式: adb push file devicepath 说明: 把文件file推送到devicepath目录下 , file代表 要推送的文件及文件路径 devicepath代表系统的具体目录 例如: adb push d:\luchang_65\ui1\Launcher.apk system/app/Launcher/ // 把文件Launcher.apk 推送到机 system/app/Launcher/目录下
- adb pull
命令格式: adb pull devicefile pcpath 说明: 把机上的文件devicefile 推送到pcpat路径下 , devicefile 要推送的系统上的文件, pcpath 代表要保存的的电脑上的路径 例如: adb pull system/build.prop d:/ // 把机系统上 system/build.prop 文件 推送到电脑d盘根目录
-
命令格式: adb install -r apkfile 说明: 安装一个apk到机器上, 和用U盘拷贝apk ,然后 到机上文件管理里,点击安装apk一样 。apkfile代表要安装的apk文件及路径 例如: adb install d:\luchang_65\ui1\Launcher.apk // 把Launcher.apk 安装到车机上 -
命令格式: adb uninstall apkpackage 说明: 卸载机上的一个apk ,能卸载的apk必须是三方可卸载的apk,打在系统区的apk,这个命令卸载不掉。 apkpackage 代表要卸载的apk的包名 例如: adb install com.qihoo360.mobilesafe // 卸载360手机助手 -
命令格式: adb shell am start -n pkgname/class 说明: 启动一个apk,这个命令就和在机上点击图标打开一个apk一样。 pkgname 代表要启动的apk包名, class 代表要启动的apk类名 例如: adb shell am start -n com.acloud.stub.localmusic/com.acloud.stub.localmusic.QtActivity // 启动本地音乐 -
命令格式:adb shell am force-stop 说明:强行关闭apk运行。 packagename 代表要关闭的apk包名 例如: adb shell am force-stop com.acloud.stub.localmusic -
命令格式: adb shell am startservice -n pkgname/class 说明: 启动一个服务apk,这个命令就和在机上点击图标打开一个apk一样。 pkgname 代表要启动的apk包名, class 代表要启动的apk类名 -
命令格式: adb shell am broadcast -a action 说明: 模拟发动广播一个广播。 action 代表广播名字符串。发送广播可以带参数,具体根据广播参数说明可以输入 adb shell am 查看。 例如: adb shell am broadcast -a xy.android.acc.off // 发送 acc off 通知 -
命令格式: adb shell input keyevent 说明: 模拟按键输入。 keycode 代表要输入的按键值。 安卓系统有标准的按键值表。 例如: adb shell input keyevent 3 // 模拟按下home键 ,3 为home按键值 -
命令格式: adb shell logcat -v time > d:\log.log 说明: 抓取系统运行的log,并把log写入到本地电脑具体路径,pc上存储log的路径和文件可以任意命名。 例如: adb shell logcat -v time > d:\log.log // 抓取系统运行log到 电脑D盘log.log 文件。 -
命令格式: adb logcat -c adb shell dmesg 说明: 清除系统之前缓存的log 和查看内核log -
命令格式: adb shell top -m n 说明: 实时查看系统运行是CPU占用率 ,n代表要查看cpu占比最高的前n个进程 例如: adb shell top -m 5 // 查看系统运行时cpu占比最高的前5个进程 -
命令格式: adb shell dumpsys meminfo 说明:实时查看系统运行时各APP占用的内存使用情况,从高到低排列 。也可以查看特定app的使用内存。 例如: adb shell dumpsys meminfo
命令格式: adb shell pm list packages 说明:查看机系统中的所有的apk 包名 ,还可以分别 查看如下:
adb shell pm list packages -s // 只查看系统apk 包名 adb shell pm list packages -3 // 只查看三方apk包名
- 命令格式: adb devices
说明:查看连接到车机Usb 上的设备
命令格式: adb shell screencap -p picpath 说明:截取当前屏幕保存为图片,picpath代表保存图片的路径及文件名,文件名自定义,这个路径为车机上的存储路径 例如:adb shell screencap -p /sdcard/sc.png adb pull /sdcard/sc.png d:/sc.png // 截取屏幕保存为sc.png,并把图片导出到电脑d盘根目录
-
命令格式:adb shell monkey -p -v n 说明: 对apk压力测试,随机进行n个随机事件触发 例如: adb shell monkey -p com.acloud.stub.localmusic -v 500 // 对本地音乐进行随机500次事件触发测试 -
设备相关信息查询: adb shell ps // 查看系统运行的进程信息 adb shell wm density // 查看当前设备屏幕密度 adb shell wm size // 查看当前设备屏幕分辨率 adb shell cat /proc/cpuinfo // 查看当前设备CPU信息 adb shell cat /proc/meminfo // 查看当前设备物理内存大小 adb shell cat /sys/class/net/wlan0/address //查看当前设备蓝牙mac地址 adb shell dumpsys iphonesubinfo // 查看当前设备imei号 adb shell getprop ro.product.model // 查看当前设备型号
android系统
Android源码目录
abi Application Binary Interface : 应用程序二进制接口,abi相信同学们在SO库调用上遇到过,如果不支持该平台的话就说不ABI不支持。
art Android Runtime:安卓运行时。这个会提前把字节码编译成二进制机器码保存起来,执行的时候加载速度比较快。Dalvik虚拟机则是在加载以后再去编译的,所以速度上ART会比Dalvik快一点。牺牲空间来赢取时间。
bionic — 基础库,Android系统与Linux内核的桥梁。Bionic 音标为 bī??nik,翻译为"仿生"。
bootable — 系统启动引导相关程序
build — 用于构建Android系统的工具,也就是用于编译Android系统的
cts Compatibility Test Suite —兼容性测试
dalvik — dalvik虚拟机,用于解析执行dex文件的虚拟机
developers —开发者目录
developerment — 开发目录,比如说应用,application就在里面了,apps devices — 设备相关的配置信息,什么索尼、HTC、自己的产品,就可以定义在这个目录下了 docs — 文档 external — 开源模组相关文件 frameworks —系统架构,Android的核心了 hardware — hal层代码,硬件抽象层 libcore — 核心库 libnativehelper — native帮助库,实现JNI的相关文件 ndk native development kit out — 输出目录,编译以后生成的目录,相关的产出就在这里了 packages —应用程序包。一些系统的应用就在这里了,比如说蓝牙,Launcher,相机,拨号之类的。 pdk Plug-in Development Kit (PDK) is designed to help you build your own pattern projects platform_testing — 平台测试 prebuilts — x86/arm架构下预编译的文件 sdk software development kit system — 底层系统文件 toolchain —工具链 tools — 工具文件 Makefile — mk文件,用于控制编译
AOSP 编译说明:
AOSP APK Android.mk Android.mk解析 m 在源码树的根目录执行make; mm Build当前目录下的的模块; mmm Build指定目录下的模块 cgrep 在所有C/C文件执行grep;(Linux gerp命令—查找,匹配,搜索) jgrep 在所有java文件执行grep; resgrep 在所有res/*.xml文件执行grep; godir 转到包含某文件的目录路径;
source build/envsetup.sh
souce envsetup.sh就是把envsetup.sh里的命令载到当前的bash中,可以直接调用里面的命令。 env就是环境的意思,setup可以理解为设置,这个文件加载可以理解为编译准备 比如说里面有launch指令,有mm指令,有make指令…。如果你没有source的话,这些指令就不有
make -j40
make -j16
make 就是构建,可以理解根据make file编译内容了。-j是job,推荐使用cpu的线程数*4,比如说我的CPU是16核,32线程那么我就可以使用make -j128 全功率去编译。
在android源码里,make file,也就是make文件包括三大部分: 在build/core下的mk 在device目录下的各种mk 以及各app/jar/aar模块单独的mk 另外,除了make以外,还要留意一下mm命令和mmm命令,这个命令也挺好用的。 我们可以单独编译某些模块 然后通过 make snod 生成新的镜像即可刷机
|