安卓開發常用命令

安卓開發常用命令

一、工程編譯命令

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     保存退出

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章