常用ADB指令
| 功能 | 指令 |
|---|---|
| 查看当前Activity | adb shell "dumpsys window | grep mCurrentFocus" |
| 添加代理 | adb shell settings put global http_proxy 172.23.141.52:8888 |
| 删除代理 | adb shell settings delete global http_proxy adb shell settings delete global global_http_proxy_host adb shell settings delete global global_http_proxy_port adb reboot |
| 查看手机IP地址 | adb shell netcfg |
| 查看安卓版本 | adb shell getprop ro.build.version.release |
| 查看安卓版本号 | adb shell getprop ro.build.version.sdk |
| 查看安卓版本号 | adb shell getprop ro.build.version.sdk |
| 输入文字 | adb shell input text "{query}" |
| 查看acitviy以及进程 | adb shell dumpsys activity top | grep ACTIVITY |
| 根据包名查看进程 | adb shell ps | grep 包名 |
| 查看进程具体内存信息 | adb shell dumpsys meminfo 包名/进程编号 |
ADB截图:
time=$(date "+%Y%m%d%H%M%S")
adb devices | tr -s '\n' | awk '{print $1}'| sed -n '2,$p'| while read line
do
echo 安卓设备id:$line
adb -s $line shell screencap -p /sdcard/$line+$time.png < /dev/null ;
adb -s $line pull /sdcard/$line+$time.png /文件路径/截图 < /dev/null ;
done
open /文件路径/截图
常用Git指令
| 功能 | 指令 |
|---|---|
| 提交CodeReview | git push origin HEAD:refs/for/release/xxx |
| Git设置代理 | git config --global http.proxy http://127.0.0.1:4780 git config --global https.proxy http://127.0.0.1:4780 |
| Git清除代理 | git config --global --unset http.proxy git config --global --unset https.proxy |
| 更新,合并到新版本 | git fetch |
| 强制回退版本 | git reset --hard version |
| 添加多个远程仓库(单工程多仓库联合开发) | git remote add [origin-name] https://github.com/xxx.git |
| 刷新远程分支 | git remote update origin -p |
| 强制推送更新(配合revert使用) | git push -f origin master |
| 查看所有远程分支 | git branch -a |
| 提取/合并某分支的部分文件 | git checkout [branch_name] [file_name] |
| 把某个commit id的提交合并到当前分支 | git cherry-pick commit id |
| 删除某一个分支 | git branch -d [branch_name] |
| 修改Git提交用户名 | git config --global user.name "BzCoder" |
| 修改Git提交邮箱(GitHub提交统计是按照邮箱标记的) | git config --global user.email "BzCoder" |
| 合并多个提交为一条 | git merge --squash branchname |
| Git设置为大小写敏感 | git config core.ignorecase false |
| 查看项目的成员提交情况(剔除merge) | git shortlog -sn --no-merges |
| 查看某一次提交属于哪个分支 | git branch -r --contains COMMIT_ID |
常用Gradle指令
| 功能 | 指令 |
|---|---|
| 修改Gradle缓存时间 | configurations.all { resolutionStrategy.cacheDynamicVersionsFor 1, 'seconds' } |
| 添加监听 | export GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" |
| 移除监听 | export GRADLE_OPTS="" |
AAR上传Kotlin源码
task androidSourcesJar(type: Jar) {
// 如果有Kotlin那么就需要打入dir : getSrcDirs
if (project.hasProperty("kotlin")) {
println '====> project kotlin'
from android.sourceSets.main.java.getSrcDirs()
} else if (project.hasProperty("android")) {
println '====> project java'
from android.sourceSets.main.java.sourceFiles
} else {
println '====> project java & kotlin'
from sourceSets.main.allSource
}
classifier = 'sources'
}
artifacts {
archives androidSourcesJar
}
常用npm指令
| 功能 | 指令 |
|---|---|
| 安装本地serve服务 | sudo npm i serve -g --save |
V8编译相关
| 功能 | 指令 |
|---|---|
| 导入depot_tools | export PATH=pwd/depot_tools:"$PATH" |
打包
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export PATH=`pwd`/depot_tools:$PATH
fetch v8
echo "target_os = ['android']" >> ./.gclient && gclient sync -j16 --nohooks
cd v8
tools/dev/v8gen.py android.arm.release
ninja -C out.gn/android.arm.release
常用ndk指令
| 功能 | 指令 |
|---|---|
| 查看so库依赖关系 | aarch64-linux-android-readelf -d xxxx.so |
| 堆栈转行号 | /ndk/21.4.7075529/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/aarch64-linux-android-addr2line -C -f -e xxxx.so 000110 |
| 得到文件中函数的符号表、偏移地址、段大小等等信息 | objdump -x file |
jadx命令
| 功能 | 指令 |
|---|---|
| 反编译 | jadx --show-bad-code xxx.apk |