官术网_书友最值得收藏!

2.3 Android Studio及SDK

2.3.1 下載和配置Android Studio

Google提供了Windows 32/64、Mac和Linux四個不同平臺的Android Studio版本供我們下載和使用。

選擇Linux版本,下載android-studio-ide-171.4443003-linux.zip文件到本地,約740MB大小。

$ unzip android-studio-ide-171.4443003-linux.zip
$ tree -L 1 android-studio
android-studio
├── bin
├── build.txt
├── gradle
├── Install-Linux-tar.txt
├── jre
├── lib
├── license
├── LICENSE.txt
├── NOTICE.txt
└── plugins

6 directories, 4 files
$ cd android-studio/bin
$ ./studio.sh//啟動Android Studio

注意

(1)第一次啟動Android Studio將啟動安裝向導,可在線更新Android SDK、Gradle等工具包。要關閉啟動安裝向導,可修改bin目錄下的idea.properties配置文件,增加一行配置信息如下:

disable.android.first.run=true

(2)每次啟動Android Studio都需要進入android-studio/bin目錄,再運行studio.sh腳本,操作較多。比較省事的辦法是增加一個desktop圖標,在Ubuntu Activity菜單中可方便啟動,具體的操作如下:

$ sudo vi /usr/share/applications/androidstudio.desktop//需要root權限
//增加以下配置信息
[Desktop Entry]
Name=androidstudio
Comment=androidstudio
Type=Application
Terminal=false
Icon=/home/android/tools/android-studio/bin/studio.png
Exec=/home/android/tools/android-studio/bin/studio.sh

單擊Ubuntu Activity,輸入androidstudio即可匹配出Android Studio應用,再單擊Android Studio圖標即可啟動它了。

2.3.2 Android SDK下載及配置和使用

Android SDK的下載頁面與Android Studio在同一個頁面,谷歌也提供了Windows、Mac和Linux三個平臺的版本供我們下載和使用。

同樣選擇Linux版本,下載sdk-tools-linux-3859397.zip到本地,約130MB大小。

$ unzip sdk-tools-linux-3859397.zip
$ tree -L 1 tools/
tools/
├── android
├── bin
├── emulator
├── emulator-check
├── lib
├── mksdcard
├── monitor
├── NOTICE.txt
├── proguard
├── source.properties
└── support

4 directories, 7 files

注意

(1)此版本的Android SDK是基本的Android命令行工具,可以使用此工具中包含的sdkmanager工具下載和更新其他的SDK工具包。

(2)使用Android Studio通過界面的方式可以更加方便地管理Android SDK。

啟動Android Studio,在Configure菜單中選擇SDK Manager或者通過File菜單打開的Settings界面,進入Android SDK管理界面,選擇Edit編輯Android SDK需要保存的路徑,如圖2-4所示。

圖2-4 Android Studio中Android SDK管理界面

后續都是界面向導式的操作,我們只需關注Android SDK的保存路徑即可。本例中的路徑為:~/Android/Sdk。接受License,開始下載,完成后,我們再查看兩個SDK的異同。

$ cd ~/Android
$ tree -L 1 Sdk/
Sdk/
├── build-tools
├── emulator
├── extras
├── patcher
├── platforms
├── platform-tools
├── sources
└── tools

8 directories, 0 files

根據圖2-4所示,其實我們僅安裝了SDK框架,并未包含具體的SDK內容。接著通過Android Studio中的Android SDK Manager增加Android SDK的內容;在SDK Platforms和SDK Tools兩個選項卡中下載和安裝自己想要的內容。本書選擇了Android 8.0(Oreo)和SDK Tools中的基礎工具。

注意

(1)SDK Manager界面列出了Android已經發布的所有SDK版本,選擇安裝的Android SDK版本越多,下載和安裝的時間就越長,需要的磁盤空間就越大。讀者可以根據自己的興趣和需要選擇下載。

(2)Android SDK安裝完成后,還請記錄SDK中對應工具的PATH路徑,具體操作如下:

$ vi ~/.bashrc
//增加以下配置信息
export ANDROID_HOME=~/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
$ source ~/.bashrc//重新加載配置信息
$ adb devices //驗證Android SDK的adb工具是否可以使用
List of devices attached

2.3.3 使用Android SDK啟動Android虛擬設備

啟動Android Studio,單擊Tools菜單→Android選項→AVD Manager,打開AVD Manager,通過界面向導式的操作創建虛擬設備。

本例中選擇硬件為Phone,平臺為Nexus 6P,API為26即Android O,詳情如圖2-5所示。

圖2-5 創建Android虛擬設備

2.3.4 Android調試工具adb的使用方法

Android模擬設備啟動完成后,會默認開啟5554端口連接到計算機,這時可運行adb devices命令查看連接到本地計算機上的Android設備列表,詳情如下。

$ adb devices
List of devices attached
emulator-5554 device   //設備狀態為正常情況,可查看模擬器運行日志

查看虛擬機運行日志:

? adb logcat

查看應用日志,可結合“|grep”過濾匹配自己想查看的日志內容。

? adb logcat –b radio

查看RIL日志。

注意

adb無法連接Android設備時,設備連接狀態為offline或no permissions,可嘗試使用root用戶執行adb kill-server命令重啟設備連接。一般來說,adb kill-server重啟設備連接的有效期與Ubuntu系統運行結束的周期一致,開機或重啟一次Ubuntu便需要重啟一次設備連接。

2.3.5 相關技巧匯總

1. adb logcat日志輸出腳本

我們在開發、調試Android代碼的過程中使用最多的就是adb命令,通過它我們可以獲取到想要的日志信息,來幫助我們分析、定位程序邏輯。

查看main日志的命令:adb logcat –vthreadtime

查看radio日志的命令:adb logcat -vtime –b radio

查看event日志的命令:adb logcat -vtime -b events

要簡化上述命令就需要編寫一些Shell腳本,放置在~/bin目錄下即可,此目錄之前已經加入了PATH環境變量,因此新加入的Shell腳本不用再配置環境變量,隨時可以使用。

$ vi ~/bin/mlog
#!/bin/sh

adb logcat -vthreadtime $1 $2 $3 //加入$1 $2 $3是為了傳入參數,方便命令的擴展
$ mlog -s *:W//可以在任何路徑執行mlog命令,查看main日志中warning級別以上的日志
- waiting for device –

注意

讀者也可以根據需要定制一些自己的腳本,不再局限于Android日志相關命令。比如,adb kill-server、adb devices、adb shell getprop等常用命令。

2. 查找代碼腳本

面對Android浩瀚的代碼量,如何能快速地找到一些關鍵字呢?Android源碼中已經準備了對應的腳本工具,就在源碼主目錄下的build/envsetup.sh文件中。

$ gedit build/envsetup.sh
function jgrep() //查找并匹配java文件中對應的關鍵字
{
    find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f
-name "*\.java" \ -exec grep --color -n "$@" {} +
}
function cgrep() //查找并匹配c相關文件中對應的關鍵字
{
    find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f \
(-name '*.c' -o -name '*.cc' -o -name '*.cpp' -o -name '*.h' -o -name '*.hpp' \) \
         -exec grep --color -n "$@" {} +
}
......

當然還有ggrep、resgrep、mangrep、sepgrep等腳本信息可以供我們使用,但要使用這些腳本首先需要執行source build/envsetup.sh。一勞永逸的方法就是將這些需要的腳本寫入~/.bashrc用戶配置文件中,這樣無論當前用戶在什么路徑都可以執行這些命令了。

主站蜘蛛池模板: 桦甸市| 永年县| 青海省| 白朗县| 正定县| 文成县| 赤壁市| 永嘉县| 洪雅县| 江油市| 临清市| 高雄县| 锡林浩特市| 临高县| 宝山区| 仪征市| 绍兴县| 寿光市| 杭州市| 洪雅县| 纳雍县| 甘肃省| 大庆市| 荥经县| 叙永县| 中山市| 周口市| 同仁县| 淮阳县| 金华市| 平塘县| 许昌市| 来宾市| 克拉玛依市| 获嘉县| 葵青区| 新乐市| 湛江市| 金阳县| 浏阳市| 尉犁县|