安卓开发常用命令

安卓开发常用命令

一、工程编译命令

1) 全编译

$ source build/envsetup.sh

$ lunch

$ select one project 

$ make -j8

a)      单独编译system.img/boot.img/userdata.img/lk

$ make systemimage / make bootimage / make userdataimage/ make aboot

b)      单独打包system

$ makesnod

 

c)   编译sdk

$make sdk

d)      编译cts

$make cts

e)      清空编译

$ make installclean

$ make clean

2) 编译模块1

$ source build/envsetup.sh

$ lunch

$ select one project [如图1]

$ make [module name] -j8

[module name]: 请参考Android.mk中的Module Name

3) 编译模块2

$ source build/envsetup.sh

$ lunch

$ select one project [如图1]

$ mmm [module patch]

$ cd [module path] ; mm

[module patch]: 要编译模块Android.mk所在目录

二、Linux常用命令

命令

描述

举例

dmesg

输出内核的调试信息,作用和cat /proc/kmsg一样

grep

在*路径下查找字段"to find something"

grep -rn “to find something” *

在当前目录下查找"to find something"

grep -rn “to find something” ./

在当前目录下查找PeopleActivity 并显示

grep PeopleActivity . -rn --color

find

在当前目录下查找aaa.java文件

find ./ -name "aaa.java"

在./frameworks 目录下的java文件中查找 hello字符串

find ./frameworks/ -name "*.java" | xargs grep -rn "hello"

cd

进入目录test

cd test

后退一步

cd ..

回上一次所在的目录

cd -

回当前用户的宿主目录

cd ~ 或 cd

ls

显示当前目录下的文件

ls

列出包含隐藏文件

ls -a

列出当前目录下文件的详细信息

ls -l

gedit

打开文件a.txt查看内容

gedit a.txt

cat

查看文件内容--例如查看ubuntu 版本

cat /etc/issue

查看文件内容--例如查看 cpu 信息

cat /proc/cpuinfo

ps

查看当前有哪些进程

ps -A

top

查看CPU占用率最高的应用

top -m 10

kill

强制杀死一个进程

kill -9 进程号

chown

把 /home 的属主改成 root 用户

chown chown root /home

杀死一个进程

kill 进程号 或 killall 进程名

chgrp

把 /home 的属组改成 root 组

chgrp chgrp root /home

chmod

改权限--例如赋予超级权限

chmod 777 文件名

mkdir

创建文件夹test

mkdir test

cp

复制文件a.apk到当前目录下的apps文件夹里

cp a.apk ./apps/

复制文件夹a到root目录下

cp  -r  /tmp/a   /root/a

rm

强制删除a.log文件

rm -f a.log

强制删除文件夹A

rm -rf A

mv

在当前目录下改名

mv 文件名 新名称

移动相对路经下的文件到绝对路经下

mv 文件名 /路径/文件名

tar

解压a.tar.gz

tar -zxvf a.tar.gz

将A打包到a.tar.gz

tar -zcvf a.tar.gz A

zip

zip -mr [zipfile] srcfile

unzip

unzip [zipfile]

shutdown

电脑在100分钟后关机

sudo shutdown +100

apt-get install

安装软件samba

sudo apt-get install samba

nautilus

命令行中图形打开home目录

nautilus home

su

切换到root

passwd

为用户创建密码

passwd 用户名

删除用户密码也能登陆

passwd -d 用户名

uname

查看内核版本

uname -a

lsusb

查看 usb 设备

printenv

显示环境变量--例如查看HOSTNAME

printenv HOSTNAME

touch

已存在文件的时间标签更新为系统当前的时间

touch a

创建新的空文件

touch a

locate

查找文件name_file的路径

locate name_file

ssh

ssh连接到远程主机

ssh [email protected] -p 22

scp

用于Linux之间复制文件和目录,基于ssh的cp。需要根据权限输入密码

把本地文件复制到远程:

scp local_file remote_username@remote_ip:remote_folder

从远程复制文件到本地:

scp remote_username@remote_ip:remote_file local_file

sed

处理文本文件工具

将文件转换为Unix格式:

$ sed 's/.$//' filename

export

设置或显示环境变量

列出当前环境变量

export -p

定义环境变量

export MYENV

pwd

输出当前工作目录

ftp

ftp客户端

连接ftp服务器

ftp ftp.picovr.com

crontab

计划任务

指定某用户的计划任务:

crontab -u pico file

free

显示系统当前内存的使用情况,包括已用内存、可用内存和交换内存的情况

按照GB显示

free -g

top

显示系统中占用资源最多的一些进程,默认以cpu占用率排序

显式某个特定用户的进程

top -u mysql

df

显示文件系统的磁盘的使用情况

人类可读方式显示本地磁盘使用情况:

df -hl

显示文件系统类型

df -T

killall

终止相关进程

killall httpd

mount

挂在一个文件系统

mkdir /u01

mount /dev/sdb1 /u01

ifconfig

显示网口配置

ifconfig -a

whereis

显示某个命令的位置

whereis ls

whatis

显示某个命令的描述

whatis ls

man

查看某命令的帮助

man crontab

tail

显示文件的最后若干行

显示文件的最后100行:

tail -n 100 a.conf

监视文件变化:

tail -f a.conf

less

不加载整个文件的前提下显示文件内容,一般用于查看大型日志文件

less system.log

yum

依赖软件源的包管理工具,自动解决依赖

安装httpd

yum install httpd

更新httpd

yum update httpd

卸载httpd

yum remove httpd

rpm

rpm包管理工具

使用rpm安装apache

rpm -ivh httpd-2.2.3-22.0.0.e15.i386.rpm

使用rpm更新apache

rpm -uvh httpd-2.2.3-22.0.0.e15.i386.rpm

卸载apache

rpm -ev httpd

date

查看和设置系统时间

查看系统时间

date

设置系统时间

date -s "04/06/2018 12:12:12"

wget

下载工具

wget http://picovr.com/index.html

curl

一种根据url的传输文件的工具,支持上传和下载

打开某资源:

curl http://www.picovr.com

保存资源到文件

curl -o index.html http://www.picovr.com

 

三、Adb/调试常用命令

1)     Eng或userdebug版本更改系统具备可写属性

$ adb root

$ adb disable-verity   -- 非必需

$ adb remount

2)     重启设备

$ adb reboot    --重启设备

$ adb reboot bootloader –进入fastboot下载模式

3)     和PC端互传文件

$ adb push [本地路径] [设备里的路径/文件名]

   $ adb pull [设备里的路径/文件名] [本地路径]

4)     安装或卸载应用

$ adb install -r [apk路径]

$ adb uninstall [包名] 或 adb shell rm -rf [设备里路径]

5)     登录设备shell

$ adb shell <command命令>

6)     抓取kernel log信息

$ adb shell dmesg

$ adb shell cat /proc/kmsg

7)     抓取logcat log信息

$ adb logcat -v time    --打印到控制端

$ adb logcat -v time > logcat.log --将log输出到文件中

$ adb logcat | grep "^..zhansan" --打印TAG为zhangsan的信息

$ adb logcat -v time -s zhansan --打印TAG为zhangsan的信息

$ adb logcat *:W  --打印所有优先级高于W的log

$ adb logcat -c  --清空已存在日志

8)     Monkey测试命令

$ adb shell monkey -p com.android.dialer -p com.android.contacts -v50000

--Monkey测试Dialer模块

9)     Am命令启动/关闭应用/服务或发广播

$ adb shell am start -n packname/activityname   --启动某个activity

$ adb shell am start -ncom.android.music/om.android.music.MusicBrowserActivity

--打开音乐播放器

$ adb shell am start -a android.intent.action.VIEW -d http://www.baidu.com 

--打开某个网页; 这里-a表示动作,-d表述传入的数据,还有-t表示传入的类型

$ adb shell am force-stop <packagename> --强制停止应用

$ adb shell am startservice <服务名称>  --启动某个服务

$ adb shell am startservice -ncom.android.music/com.android.music.MediaPlaybackService (这里-n表示组件)

$  adb shell am startservice -a com.smz.myservice (这里-a表示动作,就是你在Androidmanifest里定义的)

$ adb shell am broadcast -a <广播动作> --发送一个广播

$ adb shell am broadcast -a com.smz.mybroadcast

$ adb shell am kill package     --杀死进程

10)  网络抓包命令

$ adb shell tcpdump -i usb0 -s0 -w /data/local/tmp/`date"+%Y%m%d%H%M%S"`.pcap

$ adb shell tcpdump -i usb0 -s0 -vv tcp port 80 and host hostname

11)svc命令 -- 控制电源、数据流量、wifiusb的开关状态

$ adb shell svc wifi enable --打开wifi

12)发送HOME/BACK按键事件(其他事件雷同)

$ adb shell input keyevent HOME

$ adb shell input keyevent BACK 或$ adb shell input keyevent 4

13)  设置/获取系统属性

$ adb shell setprop [prop name] [prop name]

$ adb shell getprop [prop name]

14)  监听系统属性的改变当系统属性发生改变时输出改变的系统属性

$ adb shell watchprops

15)   start启动服务 或 stop停止服务

$ adb shell setprop ctl.start <service>

$ adb shell setprop ctl.stop <service>

16)  内存阈值与应用内存使用状况

$ adb shell cat /sys/module/lowmemorykiller/parameters/minfree

$ adb shell procmem <process_pid> 

$ adb shell dumpsys meminfo <process_pid> 

$ adb shell cat /proc/<process_pid>/smaps 

$ adb shell dumpsys procstats <process_pid> 

$ adb shell procrank

17)  dumpsys命令

$ adb shell dumpsys -l    --当前运行的服务列表

$ adb shell dumpsys <service>  --调用对应service的dump函数

$ adb shell dumpsyspackage -m [packagename] --查看包信息

$ adb shell dumpsys activity activities --查看activity的堆栈信息

$ adb shell dumpsys SurfaceFlinger

--查看SurfaceFlinger状态,获取显示屏信息,当前显示的应用等

$ adb shell dumpsys cpuinfo

$ adb shell dumpsys meminfo --查看内存状态

18)  screencap 截屏 / screenrecord 录屏

$ adb shell screencap -p /mnt/sdcard/screen.png

$ adb shell screenrecord --time-limit 10 --bit-rate 6000000/sdcard/demo.mp4

19)  strace 用于跟踪系统调用

$ adb shell strace -f -p <pid>

20)  debuggerd  用于输出进程的native堆栈

$ adb shell debuggerd -b <pid>

21)  查看连接的终端列表

$ adb devices

$ adb -s [指定设备] [cmd]

22)  adb连接终端(远程/ Wifi调试真机)

$ adb tcpip 5555

$ adb connect 192.168.16.222

$ adb connect 192.168.16.222:5555

23)  命令方式开关屏

$ adb shell echo mem>/sys/power/state

$ adb shellecho on>/sys/power/state

24)  串口方式重新挂在/system目录获取读写权限

$ mount -oremount,rw /system

25)  获取设备Mac地址

$ adb shell cat /sys/class/net/wlan0/address

26)  wm命令

$ adb shell wm size --获取设备屏幕分辨率

$ adb shell wm size 720x1080 --设置分辨率为720x1080

$ adb shell wm size reset--恢复屏幕尺寸

$ adb shell wm density --获取设备密度

$ adb shell wm density 200 --设置设备密度为200

$ adb shell wm density reset --恢复设备密度

$ adb shell wm overscan 200,300,400,500

--让界面在靠左200, 靠上300,靠右400 , 靠下500的显示区域显示

27)  pm包管理

$ adb shell pm list packages --列出所有app的包名

$ adb shell pm path <packageName> --获取指定包名的存储路径

$ adb shell pm clear <packagename> --清除数据与缓存

$ adb shell pm disable [packagename] --禁用应用

$ adb shell pm enable [packagename] --启用应用

28)  ADB Forward

$ adb forward tcp:6100 tcp:7100

--设备和PC端之间直接使用Socket进行通信

29)  settings命令 --查看、更改SettingsProvider数据库的值

$ adb shell settings get global airplane_mode_on --获取飞行模式状态

$ adb shell settings put global captive_portal_server neo.picovr.com

--设置captive..值

30)  content命令 --对contentprovider数据集进行增删改查操作

$ adb shell content query --uri content://media/external/images/media

--查看系统media数据库里存放的图片记录

31)  aapt命令 (SDK下的build-tools目录里)

查看一个apk包含的资源类信息,比如版本号,权限等

32)  高通平台“开关bcl”

$ adb shell echo -n disable > /sys/devices/soc/soc:qcom,bcl/mode

$ adb shell echo -n enable > /sys/devices/soc/soc:qcom,bcl/mode

33)  Pico自有“更新user版本system分区内容(例如高通配置文件)”

$ adb shell setprop picovr.factorytest.cmd "remount /system"

$ adb shell setprop picovr.factorytest.cmd "cp/sdcard/svrapi_config.txt /system/vendor/etc/qvr/svrapi_config.txt"

34)  查看高通QVRService的信息(6Dof 版本等)

$ adb shell "qvrservicetest -u P

35)  高通平台CPU/GPU信息查看

adb shell "cat/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies" 查看CPU0可运行的频率值

adb shell "cat/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq"             查看CPU0运行频率的最小值

adb shell "cat/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq"             查看CPU0运行频率的最大值

adb shell "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"             查看CPU0当前使用的调节器

adb shell "echo 300000 >/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq"    设置CPU0运行频率的最小值

adb shell "echo 1593600 >/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq"   设置CPU0运行频率的最大值

adb shell "echo 'performance'>/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor" 修改CPU0的调节器,默认为interactive,performance就是运行在允许频率范围的最大

adb shell "cat/sys/class/kgsl/kgsl-3d0/devfreq/available_frequencies" 查看GPU的可运行频率值

adb shell "cat /sys/class/kgsl/kgsl-3d0/devfreq/max_freq"             查看GPU运行频率的最大值

adb shell "cat/sys/class/kgsl/kgsl-3d0/devfreq/min_freq"             查看GPU运行频率的最小值

adb shell "cat/sys/class/kgsl/kgsl-3d0/devfreq/governor"             查看GPU当前使用的调节器

adb shell "echo 624000000 > /sys/class/kgsl/kgsl-3d0/devfreq/max_freq"设置GPU运行频率的最大值

adb shell "echo 180000000 >/sys/class/kgsl/kgsl-3d0/devfreq/min_freq" 设置GPU运行频率的最小值

adb shell "echo 'performance'>/sys/class/kgsl/kgsl-3d0/devfreq/governor" 设置GPU当前使用的调节器

以下为8998平台不停打印cpu0~cpu7的频率和温度的脚本,不同平台需要修改后才能用,主要是温度节点有区别

adb shell "while true;do echo cpu0;cat/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq;cat/sys/class/thermal/thermal_zone8/temp;echo cpu1;cat/sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq;cat/sys/class/thermal/thermal_zone9/temp;echo cpu2;cat/sys/devices/system/cpu/cpu2/cpufreq/scaling_cur_freq;cat/sys/class/thermal/thermal_zone10/temp;echo cpu3;cat/sys/devices/system/cpu/cpu3/cpufreq/scaling_cur_freq;cat/sys/class/thermal/thermal_zone11/temp;echo cpu4;cat /sys/devices/system/cpu/cpu4/cpufreq/scaling_cur_freq;cat/sys/class/thermal/thermal_zone12/temp;echo cpu5;cat/sys/devices/system/cpu/cpu5/cpufreq/scaling_cur_freq;cat/sys/class/thermal/thermal_zone13/temp;echo cpu6;cat/sys/devices/system/cpu/cpu6/cpufreq/scaling_cur_freq;cat /sys/class/thermal/thermal_zone14/temp;echocpu7;cat /sys/devices/system/cpu/cpu7/cpufreq/scaling_cur_freq;cat/sys/class/thermal/thermal_zone15/temp;echo gpu;cat/sys/class/kgsl/kgsl-3d0/devfreq/cur_freq;cat/sys/class/thermal/thermal_zone18/temp;echo HW Status 0;cat/sys/class/thermal/cooling_device0/cur_state;echo HW Status 1;cat/sys/class/thermal/cooling_device1/cur_state;echo PowerCore;cat/d/clk/pwrcl_clk/measure;echo PerformaceCore;cat /d/clk/perfcl_clk/measure;echomem;cat /sys/kernel/debug/clk/bimc_clk/measure;sleep 1;echo =====;done"

四、Git操作命令

克隆服务器项目 
git clone …. 
查看某項目的當前分支 
git branch 
查看某項目的所有分支 
git branch -a 
切換某個到分支 
git checkout ca03(分支名) 
提交代码到服务器 
git push origin master:master(主分支名:分支名)} 
//提交代码到服务器 

gitk 比较修改前,后的代码 
git add . 把代码到本地 
git commit -a 提交到本地的git库 
进入编辑界面之后按i进入编辑模式 
编辑完成之后按ESC退出编辑模式 
i 进入编辑模式,编写此次提交的内容 
:wq 保存并退出编辑模式 
git fetch origin 下载服务器最新代码 
git rebase -i origin/ca03(分支名) 更新服务器代码到本地合并 
:wq 保存退出 
假设合并出错,修改android工程后 
git add . 
git rebase –continue 
:wq 
提交合并后的代码到服务器 
git push origin ca03:ca03(主分支名:分支名) 

将android工程与git关联 
cd到项目根目录 
git init 
git status 
git add . 
git commit -m “初始化仓库”

git commit --amend --如果需要重新修改提交信息时才用
gitk

五、SVN操作命令

SVN一般安装“TortoiseSVN”图形工具使用比较方便

1)     下载主线上的代码:
svn co svn://192.168.1.122/mtk6572_18   mtkbaseline_6572

svn co svn://192.168.1.122/mt6582_trunk_v16   mtkbaseline_6582

2)     添加新文件 ,后面还是需要commit命令把文件上传
svn  add  test_add.java

svn commit -m "add file  test_add.java" test_add.java

3)     提交文件

svn commit -m “提交当前目录下的全部在版本控制下的文件“ * 
svn commit -m “提交我的测试用test.php“ test.php

4)     更新文件

svn update
svn update -r 修正版本 文件名
svn update 文件名
 

svn update <- 后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本
 

svn update -r 200 test.cpp <- 将版本库中的文件 test.cpp 还原到修正版本(revision)200
 

svn update test.php <- 更新与版本库同步。 提交的时候提示过期冲突,需要先 update 修改文件, 然后清                                      除svn resolved,最后再提交commit

5)     删除文件

svn delete test.php 
svn ci -m “删除测试文件test.php”

6)     如何自动添加目录下的所有文件,并上传添加和修改后的所有文件:

svn add * --force
svn commit -m "xxxxxxxxxxxxx"

 

六、VI常用命令

1)     进入vi的命令
vi filename           //打开或新建文件,并将光标置于第一行首
vi +n filename     //打开文件,并将光标置于第n行首

2)     屏幕翻滚类命令 

Ctrl+u:向文件首翻半屏 
Ctrl+d:向文件尾翻半屏 
Ctrl+f:向文件尾翻一屏 
Ctrl+b;向文件首翻一屏 

3)     最后行方式命令
:w :     保存当前文件
:e filename:      打开文件filename进行编辑
:x:    保存当前文件并退出
:q:    退出vi
:q!:   不保存文件并退出vi
:wq     保存退出

猜你喜欢

转载自blog.csdn.net/csdnfastfly/article/details/79923894