第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

Android Studio 編輯器教程

Android SDK 工具介紹

從本小節(jié)開始我們將介紹 Android SDK 中包含的眾多命令行工具,包括 SDK 工具、構(gòu)建工具、平臺工具、模擬器工具、分析工具。本小節(jié)我們學(xué)習(xí) SDK 工具。

1. 概述

Android SDK 工具位于以下位置:android_sdk/tools/bin/

主要的命令行工具有如下這些:

  • apkanalyzer
    用于在構(gòu)建過程完成后深入分析我們的 APK 組成。

  • avdmanager
    可讓我們從命令行創(chuàng)建和管理 Android 虛擬設(shè)備 (AVD)。

  • sdkmanager
    可讓我們查看、安裝、更新和卸載 Android SDK 的軟件包。

  • jobb
    可以讓我們構(gòu)建不透明二進(jìn)制 Blob (OBB) 格式的已加密和未加密 APK 擴(kuò)展文件。

2. apkanalyzer

使用 APK 分析器的命令行版本,我們可以在構(gòu)建流程完成后立即了解 APK 的組成,并且可以比較兩個 APK 之間的差異。使用 APK 分析器可以減少調(diào)試應(yīng)用中的 DEX 文件和資源相關(guān)問題所花費的時間,并減小 APK 的大小。

2.1 語法

apkanalyzer [global-options] subject verb [options] apk-file [apk-file2]

subject 是我們要查詢的內(nèi)容,可以是整個 APK,也可以是 APK 的一部分。subject 可以是以下任意一項。

  • apk:分析 APK 文件屬性,如應(yīng)用 ID、版本代碼和版本名稱。

  • files:分析 APK 文件內(nèi)的文件。

  • manifest:分析 APK 文件內(nèi)的清單的內(nèi)容。

  • dex:分析 APK 文件內(nèi)的 DEX 文件。

  • resources:查看文本、圖片和字符串資源。

以下示例會分析 apk (subject) 以獲取其 file-size (verb),然后以簡單易懂的格式(-h 選項)輸出文件大?。?/p>

apkanalyzer -h apk file-size myapk.apk

2.2 全局選項

選項 說明
–human-readable 以簡單易懂的格式輸出大小。

2.3 命令選項

以下命令說明按 subject 整理,并列出了每個 subject 適用的 verb 和選項組合。

  • 查看 APK 文件屬性
命令選項 說明
apk summary 輸出應(yīng)用 ID、版本代碼和版本名稱。
apk file-size 輸出 APK 的總文件大小。
apk download-size 輸出 APK 的下載大小估計值。
apk features 輸出 APK 用來觸發(fā) Play 商店過濾的功能。
apk compare 比較 apk-file 和 apk-file2 的大小。
--different-only:輸出存在差異的目錄和文件。
--files-only:不輸出目錄條目。
--patch-size:顯示逐個文件的補丁程序大小估計值,而不是原始差異。
  • **查看 APK 文件系統(tǒng) **
命令選項 說明
files list 列出 APK 中的所有文件。
files cat --file 輸出文件內(nèi)容。必須使用 --file path 選項指定 APK 內(nèi)的路徑。
  • 查看清單中的信息
命令選項 說明
manifest print 以 XML 格式輸出 APK 清單。
manifest application-id 輸出應(yīng)用 ID 值。
manifest version-name 輸出版本名稱值。
manifest version-code 輸出版本代碼值。
manifest min-sdk 輸出最低 SDK 版本。
manifest target-sdk 輸出目標(biāo) SDK 版本。
manifest permissions 輸出權(quán)限列表。
manifest debuggable 輸出應(yīng)用是否可調(diào)試。
  • 訪問 DEX 文件信息
命令選項 說明
dex list 輸出 APK 中的 DEX 文件列表。
dex references 輸出指定 DEX 文件中的方法引用數(shù)。
dex packages 輸出 DEX 中的類樹。在輸出中,P、C、M 和 F 分別表示軟件包、類、方法和字段。–defined-only:在輸出中僅包含 APK 中定義的類。
–files:指定要包含的 DEX 文件名。默認(rèn):所有 DEX 文件。
–proguard-folder file:指定用于搜索映射的 Proguard 輸出文件夾。
–proguard-mappings file:指定 Proguard 映射文件。
–proguard-seeds file:指定 Proguard 種子文件。
–proguard-usages file:指定 Proguard 用法文件。
dex code --class 以 smali 格式輸出類或方法的字節(jié)碼。輸出中必須包含類名,并且要輸出完全限定類名以進(jìn)行反編譯。
  • 看存儲在 APK 的資源
命令選項 說明
resources packages 輸出資源表中定義的軟件包列表。
resources configs --type 輸出指定 type 的配置列表。type 是資源類型,如 string。
resources value --config --name --type 輸出由 config、name 和 type 指定的資源的值。
resources names --config --type 輸出屬于某種配置和類型的資源名稱列表。
resources xml --file 以簡單易懂的形式輸出 XML 二進(jìn)制文件。

3. avdmanager

avdmanager 是一個命令行工具,可讓我們從命令行創(chuàng)建和管理 Android 虛擬設(shè)備 (AVD)。借助 AVD,我們可以定義要在 Android 模擬器中模擬的 Android 手機、Wear OS 手表或 Android TV 設(shè)備的特性。

3.1 語法

avdmanager [global options] command [command options]

3.2 全局選項

選項 說明
-s 靜默模式:僅輸出錯誤。
-h 使用幫助。
-v 詳細(xì)模式:輸出錯誤、警告和參考性消息。

3.3 命令選項

命令選項 說明
create avd -n name -k “sdk_id” [-c] [-f] [-p] 創(chuàng)建一個新的 AVD。必須為該 AVD 提供一個名稱,并使用加引號的 sdk_id 指定要用于該 AVD 的 SDK 軟件包的 ID。
-c:此 AVD 的 SD 卡映像的路徑,或要為此 AVD 創(chuàng)建的新 SD 卡映像的大小。
-f:強制創(chuàng)建 AVD。
-p:將從中創(chuàng)建此 AVD 的文件的目錄所在位置的路徑。
delete avd -n 刪除一個 AVD。必須使用 name 指定該 AVD。
move avd -n name [-p] [-r] 移動和/或重命名一個 AVD。必須使用 name 指定該 AVD。
-p:用于接收此 AVD 的文件的目錄所在位置的絕對路徑。
-r:AVD 的新名稱。
list 列出所有可用的目標(biāo)、設(shè)備定義或 AVD。

4. sdkmanager

sdkmanager 是一個命令行工具,我們可以用它來查看、安裝、更新和卸載 Android SDK 的軟件包。

4.1 語法

  • 列出已安裝和可用的軟件包
sdkmanager --list [options]
  • 安裝軟件包
sdkmanager packages [options]

packages 參數(shù)是 --list 命令列出的 SDK 式的路徑,這些路徑括在引號中(例如 “build-tools;29.0.2” 或 “platforms;android-28”)。
例如,下面展示了如何安裝最新的平臺工具(包括 adb 和 fastboot)以及適用于 API 級別 28 的 SDK 工具:

sdkmanager "platform-tools" "platforms;android-28"
  • 更新所有已安裝的軟件包
sdkmanager --update [options]

4.2 命令選項

命令選項 說明
–sdk_root 使用指定的 SDK 路徑而不是包含此工具的 SDK。
–channel 包含從 channel_0 到 channel_id 所有渠道中的軟件包。
可用的渠道包括:0(穩(wěn)定版)、1(測試版)、2(開發(fā)版)和 3(Canary 版)。
–include_obsolete 在列出或更新軟件包時納入那些已過時的軟件包。
–no_https 強制所有連接使用 HTTP 而不是 HTTPS。
–verbose 詳細(xì)輸出模式。該模式會輸出錯誤、警告和參考性消息。
–proxy 通過給定類型的代理建立連接:用 http 指定一個高層級協(xié)議(如 HTTP 或 FTP)的代理,或用 socks 指定一個 SOCKS(V4 或 V5)代理。
–proxy_host 要使用的代理的 IP 或 DNS 地址。
–proxy_port 要連接到的代理端口號。

5. jobb

借助 jobb 工具,我們可以構(gòu)建不透明二進(jìn)制 Blob (OBB) 格式的已加密和未加密 APK 擴(kuò)展文件。我們可以在搭載 Android 2.3(API 級別 9)或更高版本的設(shè)備上使用 StorageManager 在應(yīng)用中下載和裝載這些擴(kuò)展文件。OBB 文件用于為 Android 應(yīng)用提供額外文件資源(例如圖形、音頻和視頻),這些文件資源與應(yīng)用的 APK 文件是分開的。

5.1 語法

jobb [-d <directory>][-o <filename>][-pn <package>][-pv <version>] \
     [-k <key>][-ov][-dump <filename>][-v][-about]

以下示例命令會從源文件創(chuàng)建 OBB 文件:

jobb -d /temp/assets/ -o my-app-assets.obb -k secret-key -pn com.my.app.package -pv 11

以下示例展示了如何轉(zhuǎn)儲(提?。┈F(xiàn)有 OBB 文件的內(nèi)容:

jobb -d /temp/obb-output/ -o my-app-assets.obb -k secret-key

5.2 命令選項

命令選項 說明
-d 設(shè)置創(chuàng)建 OBB 文件時所用的輸入目錄,或提取 (-dump) 現(xiàn)有文件時所用的輸出目錄。創(chuàng)建 OBB 文件時,指定目錄及其所有子目錄的內(nèi)容都將包含在 OBB 文件系統(tǒng)中。
-o 指定 OBB 文件的文件名。創(chuàng)建 OBB 和提?。ㄞD(zhuǎn)儲)其內(nèi)容時,必須提供此參數(shù)。
-pn 指定裝載 OBB 文件的應(yīng)用的軟件包名稱,該名稱對應(yīng)于應(yīng)用清單中指定的 package 值。創(chuàng)建 OBB 文件時,必須提供此參數(shù)。
-pv 設(shè)置可裝載 OBB 文件的應(yīng)用的最低版本,這對應(yīng)于應(yīng)用清單中的 android:versionCode 值。創(chuàng)建 OBB 文件時,必須提供此參數(shù)。
-k 指定用于加密新 OBB 文件或解密現(xiàn)有的已加密 OBB 文件的密碼。
-ov 創(chuàng)建疊加在現(xiàn)有 OBB 文件結(jié)構(gòu)上的 OBB 文件。該選項可讓我們將新文件包的內(nèi)容裝載到先前的文件包所在的位置,旨在用于創(chuàng)建之前生成的 OBB 文件的補丁版本。
-dump 提取指定 OBB 文件的內(nèi)容。
-v 設(shè)置該工具的詳細(xì)輸出。
-about 顯示 jobb 工具的版本和幫助信息。

6. 小結(jié)

本節(jié)課程我們主要學(xué)習(xí)了 Android SDK 命令行工具。本節(jié)課程的重點如下:

  • 掌握如何使用 Android SDK 命令行工具。