1.取出 ANR log,分析问题
C:\Users\Administrator>adb shell
root@android:/ # cd data/ar
cd data/ar
/system/bin/sh: cd: /data/ar - No such file or directory
1|root@android:/ # cd data/anr
cd data/anr
root@android:/data/anr # ls
ls
traces.txt
导出traces.txt即可
C:\Users\Administrator>adb pull /data/anr/traces.txt  d:/
140 KB/s (56265 bytes in 0.390s)
导入:
C:\Users\Administrator>adb push dd.png  /sdcard/

2.日志过滤,根据pid
adb connect 
adb shelll
ps
adb logcat | busybox grep pid
3.删除系统应用
C:\Users\Administrator>adb shell
$ su   //付权限
su
# cd data/app  //第三方
cd data/app
# ls
ls
slideCount
com.wandoujia.phoenix2.usbproxy-2.apk
com.soufun.app-1.apk
com.noshufou.android.su-1.apk
com.sina.weibo-1.apk
sina.mobile.tianqitong-2.apk
net.sunniwell.app.swdmc-2.apk
com.wandoujia.phoenix2-1.apk
rm -rf  com.sina.weibo-1.apk  //删除apk
4.连接和断开远程终端
adb connect 192.168.5.220
adb disconnect 192.168.5.220
5.查看日志
查看多个TAG的日志
C:\Users\Administrator>adb logcat -s lixp:* li:*
查看一个TAG的日志
C:\Users\Administrator>adb logcat -s lixp:* 
//清理日志
C:\Users\Administrator>adb logcat -c
adb logcat -v time  //显示日志时间
adb logcat > c:\123.txt
6.用cygwin编so库
Administrator@lixp-PC ~
$ cd e:
//进入项目中lib所在目录
Administrator@lixp-PC /cygdrive/e
$ cd E:/svn_depository/Projector
Administrator@lixp-PC /cygdrive/e/svn_depository/Projector
//执行下面这行命令
$ $NDK/ndk-build
Cygwin         : Generating dependency file converter script
Compile thumb  : Httpdjni <= com_ysten_istouch_jni_httpd_HttpNative.c
jni/com_ysten_istouch_jni_httpd_HttpNative.c: In function 'Java_com_ysten_istouch_jni_httpd_HttpNative_startHttpd':
jni/com_ysten_istouch_jni_httpd_HttpNative.c:63: warning: assignment from incompatible pointer type
jni/com_ysten_istouch_jni_httpd_HttpNative.c:74: warning: incompatible implicit declaration of built-in function 'sprintf'
jni/com_ysten_istouch_jni_httpd_HttpNative.c:75: warning: passing argument 1 of 'mg_set_option' from incompatible pointer type
jni/Mongoose.h:103: note: expected 'struct mg_context *' but argument is of type 'struct mg_context1 *'
jni/com_ysten_istouch_jni_httpd_HttpNative.c:76: warning: passing argument 1 of 'mg_set_option' from incompatible pointer type
jni/Mongoose.h:103: note: expected 'struct mg_context *' but argument is of type 'struct mg_context1 *'
jni/com_ysten_istouch_jni_httpd_HttpNative.c:81: warning: passing argument 1 of 'mg_get_option' from incompatible pointer type
jni/Mongoose.h:88: note: expected 'const struct mg_context *' but argument is of type 'struct mg_context1 *'
jni/com_ysten_istouch_jni_httpd_HttpNative.c:82: warning: passing argument 1 of 'mg_get_option' from incompatible pointer type
jni/Mongoose.h:88: note: expected 'const struct mg_context *' but argument is of type 'struct mg_context1 *'
Compile thumb  : Httpdjni <= Mongoose.c
SharedLibrary  : libHttpdjni.so
Install        : libHttpdjni.so => libs/armeabi/libHttpdjni.so
Administrator@lixp-PC /cygdrive/e/svn_depository/Projector
7.查找手机内存中的数据库
C:\Users\Administrator>adb shell
$ su
su
# cd data
cd data
# ls
ls
com.tencent.mm
com.sec.android.app.selftestmode
com.adobe.flashplayer
com.gameloft.android.GAND.GloftA
# cd com.test
cd com.test
# ls
ls
lib
databases
# cd databases
cd databases
# ls
ls
mycity.db
#
这就找到了,应该需要root权限;
8.用命令行操作按键
C:\Users\Administrator>adb devices
List of devices attached
emulator-5554   device
C:\Users\Administrator>adb shell
root@android:/ #
root@android:/ # input
input
usage: input ...
       input text <string>
       input keyevent <key code number or name>
       input [touchscreen|touchpad] tap <x> <y>
       input [touchscreen|touchpad] swipe <x1> <y1> <x2> <
       input trackball press
       input trackball roll <dx> <dy>
root@android:/ # input keyevent 22
input keyevent 22
root@android:/ # input keyevent 22
input keyevent 22
root@android:/ # input keyevent 23
input keyevent 23
root@android:/ #
C:\Users\Administrator>
9.查看md5值
在cygwin里面用md5sum + apk路径; 查看应用的md5值
C:\Users\Administrator>adb kill-server
C:\Users\Administrator>adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
10.找不到R文件,很多与xml布局里面用到的包名有关,也要改掉!
11.删除系统apk
//先将只读的文件设置能够删除
C:\Users\lixp>adb remount
remount succeeded
tools>adb shell
#su
#cd system/sd/data //进入系统内指定文件夹
#ls //列表显示当前文件夹内容
#rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件
#rm xxx //删除文件xxx
#rmdir xxx //删除xxx的文件夹
12. cat      ps     busybox     grep
C:\Users\Administrator>adb push C:\Users\Administrator\Desktop\DeviceInfo.ini /system/etc/ini
1 KB/s (345 bytes in 0.204s)
C:\Users\Administrator>adb shell
root@android:/ # cat /etc/ini/DeviceInfo.ini   //一次显示所有文件
cat /etc/ini/DeviceInfo.ini
[DEVICE]
ItvManageBackupServer=http://tmsyst.is.ysten.net:8080/yst-tms
ItvManageServerIp=tmsyst.is.ysten.com
TermType=
QRCode=
PlatformType=
PlatformId=00000021201305021525593
NoticeInterval=600
Boot=http://bimsboot.ysten.com:9144/yst-bims-facade/stb/bootstrap.xml
BootIp=http://58.214.17.67:9144/yst-bims-facade/stb/bootstrap.xml
root@android:/ # ps | busybox grep Yst    //搜索和看进程
ps | busybox grep Yst
root      81    1     100576 97032 ffffffff 400cfc94 S /system/bin/YstLoginSrv
root      82    1     7904   1760  ffffffff 4000ec94 S /system/bin/YstCdnManager
root      83    1     5244   1184  ffffffff 400edc94 S /system/bin/YstQOSASS
root@android:/ # kill -9 81
kill -9 81
ps: 显示瞬间行程 (process) 的动态;
grep: Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来;
cat : 1.一次显示整个文件。          $ cat   filename
2.从键盘创建一个文件。              $ cat  >  filename   只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件。  $cat   file1   file2  > file
也可参考:http://www.cnblogs.com/hnrainll/archive/2012/05/31/2528860.html
13.源码编译:
1).进入到源码目录下;
2).输入命令:
#soure build/envsetup.sh
 #lunch 13 (即 apollo_newmi-eng)
3)进入到代码目录执行命令:#mm -B(重新编译)
14通过adb工具查看手机ip信息,可以通过netcfg命令。简单介绍两种具体方式:
1、进入adb目录,直接输入:adb shell netcfg
2、进入adb shell,输入netcfg
只adb中执行命令时,也许会提示你权限不够,这个时候用su ,提升为root哦!
15.开启应用
C:\Users\Administrator>adb  shell  am  start  -n  com.touch.server.window/.SetWindow
Starting: Intent { cmp=com.touch.server.window/.SetWindow }
16.查看进程
adb shell kill PIDNumber :死你想杀死的后台进程来模拟某种 bug 的复现条件。
adb shell ps :查看当前终端中的进程信息
pm install -r /storage/emulated/0/ysten/update/PublishPanel.apk  //强制安装-----------------------
root@ysten-e4-gw:/data/app # pm uninstall com.istv.launcher
pm uninstall com.istv.launcher
Success
17. money命令
http://blog.csdn.net/huangbiao86/article/details/8490743
18.用类型转换运算符 运算符形式是这样的 (类型),注意数值太大容易丢精度
例如 int a=5;
float b=(float)a ;
19 top 命令
adb shell top命令
执行Linux下的top、ps等命令,这些命令你也通过adb可以执行查看效果。
adb shell
$ top -h
top -h
Usage: top [-m max_procs] [-n iterations] [-d delay] [-s sort_column] [-t] [-h]
 -m num Maximum number of processes to display. // 最多显示多少个进程
 -n num Updates to show before exiting. // 刷新次数
 -d num Seconds to wait between updates. // 刷新间隔时间(默认5秒)
 -s col Column to sort by <cpu,vss,rss,thr> // 按哪列排序
 -t   Show threads instead of processes. // 显示线程信息而不是进程
 -h   Display this help screen. // 显示帮助文档
$ top -n 1
top -n 1
User 35%, System 13%, IOW 0%, IRQ 0% // CPU占用率
User 109 + Nice 0 + Sys 40 + Idle 156 + IOW 0 + IRQ 0 + SIRQ 1 = 306 // CPU使用情况
PID CPU% S #THR VSS RSS PCY UID Name // 进程属性
xx xx% x  xx xx xx xx xx  xx
CPU占用率:
User   用户进程
System 系统进程
IOW IO等待时间
IRQ 硬中断时间
CPU使用情况(指一个最小时间片内所占时间,单位jiffies。或者指所占进程数):
User   处于用户态的运行时间,不包含优先值为负进程
Nice  优先值为负的进程所占用的CPU时间
Sys 处于核心态的运行时间
Idle  除IO等待时间以外的其它等待时间
IOW IO等待时间
IRQ 硬中断时间
SIRQ  软中断时间
进程属性:
PID 进程在系统中的ID
20. 删除一个目录下所有的文件
root@ysten-e4-gw:/data/data/com.istv.launcher/files # busybox rm -fr *
busybox rm -fr *
21.重启adb server进程
adb kill-server  
adb start-server 
22.每秒更新,筛选tag
1|shell@cancro:/ $ top -d 1 | grep mediaserver
top -d 1 | grep mediaserver
23.

Android 常用命令行和 源码编译相关推荐

  1. 【Android】Android.bp 实例之源码编译动态库

    背景说明 首先需要下载对应的版本的Android源代码(ASOP) 如何下载Android源码 在下载完ASOP后,需要搭建Android的编译环境. 那在Android下如何进行源码代码的编译呢? ...

  2. android源码编译 简书,android学习笔记之源码编译

    编译环境 1.需要Ubuntu 64bit,建议Ubuntu14.04 64-bit 2.安装openJDK7 $ sudo apt-get update $ sudo apt-get install ...

  3. Android 常用开源框架源码解析 系列 (九)dagger2 呆哥兔 依赖注入库

    一.前言 依赖注入定义 目标类中所依赖的其他的类的初始化过程,不是通过手动编码的方式创建的. 是将其他的类已经初始化好的实例自动注入的目标类中. "依赖注入"也是面向对象编程的 设 ...

  4. Android 常用开源框架源码解析 系列 (四)Glide

    一.定义  Glide 一个被google所推荐的图片加载库,作者是bumptech.对Android SDk 最低要求是 API 10  与之功能类似的是Square公司的picasso  二.基本 ...

  5. android 8.0.0-r1 源码编译遇到的问题build/core/main.mk:21: recipe for target 'run_soong_ui' failed 解决

    好处:使用studio查看源码的时候,如果不生成.ipr .iml文件,查看的Java文件是无法索引到其他的文件的,需要一个一个的搜索,很不方便,而.ipr .iml文件就可以解决这部分问题,而且它还 ...

  6. Redis 入门和 RedisTemplate 常用方法(常用命令 + 案例源码)

    Redis 入门 内容 一.Redis 概念 二.Redis 优缺点 1. 优点 2. 缺点 三.应用场景 四.Redis 安装 五.常用命令 1. Redis 字符串(String) 1.1 概念 ...

  7. ubuntu16.04 下 android 4.4.4 源码编译

    文章目录 环境依赖 编译过程 问题 1.MODULE.TARGET.SHARED_LIBRARIES.xxx already defined by xxx 2.make: **** No Rule t ...

  8. android 栈溢出 检查,安卓源码编译完成后打包时出现栈溢出,求大家解决

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 [root@s7win android]# pack copying tools file copying configs file copying bo ...

  9. Android 源码编译详解【合集篇】

    Android 源码编译详解[一]:服务器硬件配置及机型推荐 做 Android系统开发多年,开发环境都是入职就搭建好了,入职时拿个账号密码就直接开始搞开发了,年初换了新公司,所有的项目都是刚起步,一 ...

最新文章

  1. sihpostreboot 权限_记一次使用post请求重启TP-LINK TL-WDR7661路由
  2. vtk鼠标不交互_vtk 各种不同的鼠标交互方式
  3. [6]Windows内核情景分析 --APC
  4. 开场 Live,分享点干货——「深入了解 Node.js 包与模块机制」
  5. 黑魔法(method-swizzling)解决第三方库引发的问题
  6. java打印两个小人_[原创]Java画小人与阶梯问题的解答
  7. 【系统设计】发现类的方法
  8. 信息学奥赛一本通 提高篇 第6章 平衡树Treap
  9. ssis 列转换_SSIS中的术语提取转换
  10. 拒绝低效办公,9个超实用职场必备国产软件推荐
  11. 适合Java新手练手的小项目!
  12. NAT技术与代理服务器的区别
  13. SAPAS91导入期初固定资产数据往年购置与当年购置的区别
  14. 电脑屏幕上有个白色线条移动,怎么关掉?
  15. 《Effective C++》读书笔记 条款40:明智而审慎地使用多重继承
  16. 安卓点击图片跳转界面_详解拳头注册 + 安卓LOL试玩教程
  17. [css] 积累(old)
  18. 毕设必看——Python ttkbootstrap 制作账户注册信息界面
  19. qpsk相点 matlab,QPSK误码率和星座图MATLAB仿真
  20. 合同诈骗案立案标准是怎样的

热门文章

  1. windows画图工具入口
  2. miui12和鸿蒙系统,鸿蒙2.0和miui12对比_鸿蒙2.0和miui12使用对比
  3. 在计算机英语中input的意思,input是什么意思
  4. Opencv中,椭圆拟合后,得到该椭圆方程系数。
  5. 【渝粤题库】广东开放大学 建筑力学与结构 形成性考核
  6. 本周XR新闻:吴德周成立AR硬件公司,SideQuest支持PICO、Magic Leap
  7. 中国叶酒市场趋势报告、技术动态创新及市场预测
  8. 计算机错误651是什么故障,宽带连接错误651是什么意思?
  9. 噩梦射手(SurvivalShooter)教程(十一)
  10. shell数组 IFS