常用命令
来源:互联网 发布:小米手机解锁软件 编辑:程序博客网 时间:2024/06/16 08:55
单独下载一个project
git clone http://myrepo.xxx.com/project/.git ,这样在当前目录下得到一个project子目录
例如下载alps/frameworks/av
<project name="mtk_N/alps/external/skia" path="alps/external/skia" />
对应的命令为:
git clone ssh://xxxx@myrepo.xxx.com:29418/mtk_N/alps/external/skia/.git alps/external/skiagit branch -a,列出所有分支名称如下:remotes/origin/devremotes/origin/releasegit checkout -b dev origin/dev,作用是checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支
下载整个代码库
repo init -u ssh://yourname@myrepo.xxx.com:29418/mtk_N/alps/manifest -b -m
这里-m和-b的含义是:
注意到manifest.git本身也是一个git project
-b指定的是使用这个git project的哪个branch
-m指定的是,下载该git project中的哪个文件(应该是首先切换了branch,然后再下载该文件)。
开始抓取代码
repo sync
选项:
-j : 多任务,一般8核心可以开到16任务,过多会起反作用
-c: 只下载当前分支代码
-d: 让工程回退到manifest指定的版本
-f: 如果某个工程同步失败,继续同步
批量创建本地分支
repo start [–all | …]
刚克隆下来的代码是没有分支的,repo start实际是对git checkout –b 命令的封装。为指定的项目或所有项目(若使用—all参数),以清单文件中为设定的分支,创建特性分支。这条指令与git checkout –b 还是有很大的区别的,git checkout –b 是在当前所在的分支的基础上创建特性分支,而repo start是在清单文件设定分支的基础上创建特性分支。
Example: repo start stable --all
查找包含字符串的文件
find . -name *.h -type f -print | xargs grep "libaudio_param_parser" --colorgrep -rn "libaudio_param_parser" *
查询当前磁盘容量
du -sh : 查看当前目录总共占的容量。而不单独列出各子项占用的容量 du -lh --max-depth=1 : 查看当前目录下一级子文件和子目录占用的磁盘容量。
动态开启framework日志
//必须是usedebug版本才可以adb shell setprop log.tag.AudioService.MOD Dadb shell setprop log.tag.AudioService.VOL Dadb shell setprop log.tag.AudioManager Dadb shell stopadb shell start
替换库文件调试脚本
#!/bin/shecho "mm"mmm vendor/mediatek/proprietary/hardware/audio/nxp/echo "root"adb rootadb remountecho "push"adb push out/target/product/tk6757_66_n1/system/lib/libtfa9891_interface.so /system/lib/adb push out/target/product/tk6757_66_n1/system/lib64/libtfa9891_interface.so /system/lib64/echo "reboot sleep"adb rebootsleep 30echo "root"adb rootadb remountecho "logcat"adb logcat | grep Tfa98xxx
按时间命名文件
#!/bin/shecho "mm"mmm speex/adb push out/target/product/tk6757_66_n1/system/bin/speextest /system/bin/adb push /mnt/hgfs/share_linux/采访功能/8k/echo.wav /sdcard/adb push /mnt/hgfs/share_linux/采访功能/8k/ref.wav /sdcard/adb shell rm /sdcard/out.pcmecho "bin"adb shell speextestadb pull /sdcard/out.pcm /mnt/hgfs/share_linux/采访功能/8K_out_$(date -d "today" +"%Y%m%d_%H%M%S").pcmecho "end"
修改编译的虚拟内存
alps/prebuilts/sdk/tools/jack_server_setup.mkifneq ($(ANDROID_JACK_VM_ARGS),)jack_vm_args := $(ANDROID_JACK_VM_ARGS) -Xmx4096melsejack_vm_args := -Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096mendifavailable_jack_jars := $(wildcard $(LOCAL_PATH)/jacks/jack-*.jar)
dump数据
void AudioTrackDump::dump(const char *filepath, void *buffer, int count, const char *property){ int ret; char value[256]; property_get(property, value, "0"); int bflag = atoi(value); if (bflag) { ret = checkPath(filepath); if (ret < 0) { ALOGE("dump fail!!!"); } else { FILE *fp = fopen(filepath, "ab+"); if (fp != NULL) { fwrite(buffer, 1, count, fp); fclose(fp); } else { ALOGE("dump %s fail", property); } } }}int AudioTrackDump::checkPath(const char *path){ char tmp[256]; int i = 0; while (*path) { tmp[i] = *path; if (*path == '/' && i) { tmp[i] = '\0'; if (access(tmp, F_OK) != 0) { if (mkdir(tmp, 0770) == -1) { ALOGE("mkdir error! %s",(char*)strerror(errno)); return -1; } } tmp[i] = '/'; } i++; path++; } return 0;}
堆栈打印
Linux Kernel
Kernel里最简单,直接有几现成的函数可以使用:
dump_stack() 这个函数打出当前堆栈和函数调用backtrace后接着运行WARN_ON(x) 这个函数跟dump_stack打出来。
打印出来的结果都在kernel log命令就可以看到了
Native C++
Android在新版(至少5.0, 6.0)里加入了CallStack类,这个类可以打出当前的backtrace。用法很简单:
1. 前面确保包含头文件 #include “utils/CallStack.h”;
2. Android.mk的库依赖列表(LOCAL_SHARED_LIBRARIES)里包含libutils,一般都已经包含了;
3. 然后在要打印堆栈处加入android::CallStack cs(“haha”);“haha”是在logcat输出的TAG,这里可以自己定义。
如果上下文已经在android namespace里,”android::”前缀就不必加了。Native C++的输出log可以在logcat里看到。
注意,在网上的一些文档里说要这么用:CallStack stack;stack.update();stack.dump();这样做已经不行了,在新版Android里编译不过。
Java
Java最详细,连文件名和行号都打出来了:
Exception e = new Exception(“haha”);
e.printStackTrace();
log里看以看到。
追踪出错地址
prebuilts/tools/gcc-sdk/addr2line -e out/target/product/z4dtg/obj/EXECUTABLES/xxxxx_intermediates/LINKED/xxxxxxxx 0x00007165
Ubuntu下安装最新OpenJdk1.8
1、sudo add-apt-repository ppa:openjdk-r/ppa2、sudo apt-get update3、sudo apt-get install openjdk-8-jdk4、执行:sudo update-alternatives –config java,选择java的版本5、执行:sudo update-alternatives –config javac,选择javac的版本
Fastboot烧鸡
adb reboot bootloaderfastboot devicesfastboot oem unlockfastboot oem unlock-gofastboot flash boot boot.imgfastboot flash system system.imgfastboot reboot
Ubuntu上ADB devices找不到设备
1. 用lsusb命令查询usb设备id,其中Device 027是我的手机设备,usb id为2717。2. 进入~/.android/目录,创建adb_usb.ini文件;3. 编辑adb_usb.ini文件,将设备的usb id添加到文件里 4. adb kill-server杀死adb服务;5. 最后,用adb devices重新查找设备,就可以找到了;
ubuntu配置adb环境变量
1、sudo gedit ~/.bashrc 2、将下面的两句加到上面打开的文件里 export ANDROID_HOME=/home/sdk文件路径 export PATH=$PATH:$ANDROID_HOME/platform-tools3、重启电脑,大功告成!!
Jack故障处理
//编译卡住./prebuilts/sdk/tools/jack-admin kill-server./prebuilts/sdk/tools/jack-admin stop-server./prebuilts/sdk/tools/jack-admin start-server//Out of memory修改文件jack_server_setup.mk under prebuilts\sdk\toolsANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g"./prebuilts/sdk/tools/jack-admin stop-server./prebuilts/sdk/tools/jack-admin start-server
拉取多媒体库
adb shell content query --uri content://media/external/file > external_file.txt
- 常用命令
- 常用命令
- 常用命令
- 常用命令
- 常用命令
- 常用命令
- 常用命令
- 常用命令
- 常用命令
- 常用命令
- 常用命令
- 常用命令
- 常用命令
- 常用命令
- 常用命令
- 常用命令
- 常用命令
- 常用命令
- Java中可变长参数的使用及注意事项
- Jmeter之Bean shell使用
- Navicat11全系列激活(注册机)
- 端到端车牌/验证码识别(tensorflow版)——(2)
- 文章标题
- 常用命令
- 【VBA研究】如何将Excel工作表的内容更新到数据库
- war项目远程自动部署工具
- spring boot(二):web综合开发
- Android 打包APK或运行时DexPathList[zip file"system"]的时候遇到解决办法
- 保存会话数据的两种技术:cookie和session
- ftp服务器连接伪代码
- java并发基础(一):线程封闭、加锁(原子变量)、可不比对象
- java中数据库操作