adb,aapt等命令使用

2021-07-24 19:38:46 字數 3516 閱讀 4797

install/uninstall:安裝/解除安裝手機中的應用。

devices:檢視當前連線到電腦中的裝置。

首先執行adb shell,此時游標前面會變成$。

ls:列出當前目錄下的所有檔案和資料夾。

mkdir:建立資料夾,make directory的縮寫。

pwd:列出當前所在的目錄。

cd:進入到某乙個目錄,change directory的縮寫。定義檔案路徑時:..代表當前目錄的上一級目錄,可以多次使用;.[點]代表當前目錄。因此,cd ..是退回上級目錄。

rmdir:刪除某個資料夾,remove directory的縮寫。它不能刪除非空資料夾。

rm:刪除指定的檔案,是remove的縮寫。使用rm -r用於刪除非空資料夾。也就是說:rm刪除檔案,不刪除資料夾;rmdir刪除空資料夾,不刪除檔案;rm -r刪除非空資料夾,也可用於刪除檔案。

mv src dst:移動,move的縮寫。src與dst在同一目錄下時,可以用來重新命名檔案。即可用來操作檔案,也可用來操作資料夾(空或非空都行)。

cp src dst:將src指定的檔案複製到dst中,copy的縮寫。cp用於複製單個檔案,cp -r用於複製資料夾(無論為空還是不為空),也可用來複製檔案。

-r:命令後跟-r,表示在指定的目錄中遞迴地進行操作——對目錄下的所有檔案或資料夾進行相同的操作。

cat:將指定的檔案的內容輸出的螢幕上。

grep 「string" file:在指定的檔案中查詢string。後跟-i表示忽略大小寫。後跟-r表示在當前指定目錄的檔案中遞迴查詢指定的string。

gzip:將指定的檔案(不能是資料夾)壓縮成gz檔案。如gz qq.txt會將qq.txt檔案壓縮成qq.txt.gz。

gzip -d:對指定的gz檔案進行解壓。

ping:與win上命令含義一樣。

df:檢視磁碟使用情況。

exit

:退出adb shell互動。

dumpsys

:檢視當前系統中任務棧以及棧內各activity的資訊等。可以使用重定義(>)功能將輸出的資訊匯出到指定的檔案中。

screencap -p ***.png:截圖儲存到指定位置。在cmd中執行不需要許可權。

ps

:檢視當前系統中的所有程序。後可跟|grep package_name來檢視指定包名的應用的程序。如:

android打包成可執行的apk檔案分為以下幾個過程:

1,使用dx將.class編譯成.dex檔案。

2,使用aapt將工程中的資源檔案打包成.apk。

3,使用aapt將.dex檔案新增到.apk檔案中。

4,使用aapt將.so新增.apk檔案中

5,使用apksigner對生成的apk檔案進行簽名。

全稱是android asset packaging tool——android資源打包工具。參考。其作用有二:1,將資源檔案生成apk檔案;2,將.dex,.so檔案新增到生成的apk檔案中,從而形成乙個完整的apk檔案。

該命令主要用於將資源打包成apk檔案。如下:

/res -i d:\android\sdk\platforms\android-25\android.jar -f test.apk --auto-add-overlay

-m指主應用的清單檔案,第乙個-s指主應用的res檔案,後面-s是library工程的res檔案,-i指android.jar的所在路徑,-f指apk檔案的輸出路徑。

該命令會將所有資源打包成乙個apk檔案,但該檔案只包含res目錄下手資源以及相應的清單檔案。

如果主工程與lib工程有同名的資源檔案,則以-s在前的為主。

-s指向的是新增res目錄下的資源,也可以通過-a指定新增assets目錄下的資源——assets資源的覆蓋規律與res是一樣的。

add可以向指定的apk檔案中新增檔案(如dex檔案或者.so檔案等),remove可以從指定的apk檔案中移除檔案。例如上面的先將資源生成apk檔案後,可以通過add命令將dex檔案新增到apk中。如:

'classes.dex'...

第一行是向apk檔案中新增dex檔案,第二行是從apk中移除xx.dex檔案。

新增.so檔案:

要注意:被add到apk檔案中的檔案,一定不能帶字首,否則就會在apk中建立同名的檔案。如上面新增dex檔案時,如果寫成./dex,那麼在apk中首先會建立乙個檔名為.的資料夾,然後將classes.dex檔案放到該目錄下。

乙個apk完整的情況是:dex檔案在最上級,不需要目錄;lib也在最上級,不需要目錄,lib下的所有檔案就跟開發時lib資料夾中一樣;res也在最上級,res也在最上級,其下的目錄也與開發時目錄一致。所以上面新增so檔案時,不需要在前面加上./[代表當前目錄]。

可使用apksigner對apk進行簽名。可參考官網文件。示例如下:

d:\android\sdk\build-tools\25.0.2>apksigner sign --ks c:/users/xx/desktop/c

ompany/test.jks --out c:\users\xx\desktop\diyidian2.apk diyidian.apk

第乙個apk檔案(即--out後指定的值)是簽名後生成的檔案的位置,第二個apk是要被簽名的檔案。如果沒有指定--out,則簽名之後的apk會覆蓋掉未簽名的apk。

--ks指的是簽名檔案所在的位置。

dx:用於將.class檔案轉成.dex檔案(或者是.jar,.zip檔案)。如:

dx --dex [--output=] [.class | . | ]
--output後跟的是目標路徑。最後是class檔案的路徑或者zip,jar,apk檔案路徑。

dexdump:用於獲取dex檔案中dalvik位元組碼。如dexdump -d將dex檔案還原成dalvik位元組碼。

結合反編譯以及打包、簽名,就可以將乙個apk進行反編譯後再進行安裝了。

1,首先反編譯,拿到smali檔案與資源檔案。

2,通過aapt package將資源檔案打包成apk檔案。

3,修改smali檔案,並打包成dex檔案。

4,通過aapt add將dex檔案匯入到apk檔案中——如果有lib,也需要將lib匯入。

5,將apk檔案進行簽名。

Linux獲取幫助等基礎命令的使用

使用命令 本節學習以下命令 type 說明怎樣解釋乙個命令名 which 顯示會執行哪個可執行程式 man 顯示命令手冊頁 apropos 顯示一系列適合的命令 info 顯示命令 info whatis 顯示乙個命令的簡潔描述 alias 建立命令別名 命令可以是下面四種形式之一 1 是乙個可執行...

Linux磁碟管理 df du等命令的使用

df disk free 磁碟可用量 du disk usage 磁碟使用 df引數 a 列出所有的檔案系統,包括系統特有的 proc等檔案系統 k 以kb的容量顯示各檔案系統 m 以mb的容量顯示各檔案系統 h 以m 1000k替代m 1024k的進製方式 t 連同該分割槽的檔案系統名稱 例如ex...

linux tar rar zip等命令詳解

linux tar命令詳解 tar命令 tar能為檔案和目錄建立檔案。利用tar,使用者能為某一特定檔案建立檔案 備份檔案 也能在檔案中改動檔案,或向檔案中加入新的檔案。tar最初被用來在磁帶上建立檔案,目前,使用者能在所有裝置上建立檔案,如軟盤。利用tar命令,能把一大堆的檔案和目錄全部打包成乙個...