adb為 Android設備/模擬器 安裝app的ADB幾種命令行方式以及區別


前言

在Android實際開發中,經常會使用adb命令,安裝應用程序可以使用 adb push  或者 adb install 。(安卓手機使用adb工具安裝apk的方式最快)

下面就來講講這兩種安裝方式的區別。

區別

1、adb push 能夠指定安裝目錄。比如執行 adb push xxx.apk system/app 后,xxx.apk被安裝到了system/app目錄下,此目錄下的軟件為system application。(注意,system/app是只讀的,所以只有有root權限才能push apk進去,而且push進去的apk會把原本的apk覆蓋掉。)

adb push 本身的意思是將文件復制到系統中的某個文件夾下;但是將apk push到system/app下並重啟手機以后同時會成功注冊應用程序,即該方式成功安裝應用。

【注意】安卓手機的 /system/app 目錄大多數都是手機中的系統apk;adb push 沒有adb install保險,有失敗的可能;有時候因 /system/app 目錄是只讀的原因而導致在執行adb push 命令的時候出現  failed to copy '/home/SoundRecorder.apk' to '/system/app/SoundRecorder.apk': Read-only file system 錯誤,解決方法是只能放棄adb push,采用 adb install -r /home/SoundRecorder.apk 強制安裝apk

例如: adb push xxxx.apk /system/app 

解釋:/system/app目錄是安卓手機中的系統apk應用。(本實例安裝到 system/app目錄下,當然也可以安裝到/data/app目錄下,也是直接安裝的。但是有時會安裝不成功)

2、 adb install  用此命令安裝的軟件位於 data/app 目錄;成功安裝的應用為user application。

【注意】安卓手機的data/app目錄大多是手機中的非系統apk,即第三方下載安裝的app

例如: adb install xxxx.apk 

解釋:可以將PC端的apk安裝到手機的 data/app 目錄,xxx.apk 這里必須要使用絕對路徑,當然也將.apk文件可以直接拽到命令行中。

操作截圖:

adb install安裝apk的幾類參數:

 adb install -r xxxx.apk   強制覆蓋安裝(替換安卓手機上原有的apk或者已經安裝的apk即覆蓋安裝時使用)

 adb install -l xxxx.apk   鎖定該程序

 adb install -s xxxx.apk   安裝在SD卡內,而不是設備內部存儲

adb uninstall卸載apk的參數:

 adb uninstall xxxx(app包名)   卸載應用,需要指定包

 adb uninstall -k xxxx(app包名)   卸載app,但保留app的原始數據和緩存文件

清安卓手機指定app的緩存:

 adb shell pm clean xxxx(app包名)    可以清除安卓手機某個包apk的數據,就是相當於清除數據(清app緩存)

 adb shell pm clear xxxx(app包名)    可以清除安卓手機某個包apk的數據,就是相當於清除數據(清app緩存)

獲取安卓手機所有apk的包名:

  adb shell pm list packages   

獲取安卓手機種所有應用的包名中包含《指定內容》的應用包名:

Windows操作系統: adb shell pm list packages | findstr geely 

Linux操作系統: adb shell pm list packages | grep geely 

獲取安卓手機內《某一指定應用》的安裝位置(安裝目錄):

 adb shell pm list packages -f com.geely.consumer 

 adb shell pm path com.geely.consumer 

總結

adb install和adb push的安裝 apk 的方式主要區別有:

  push install
目錄 system/app data/app
權限 系統級(權限全開) 用戶級(沒全開)
卸載 root后刪除 可卸載
大小 無限制,自定義 有限制
安裝 pm重新注冊 不會重新弄注冊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM