- Android Telephony原理解析與開發指南
- 楊青平
- 1869字
- 2019-10-23 17:46:38
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用戶配置文件中,這樣無論當前用戶在什么路徑都可以執行這些命令了。
- Linux運維之道(第3版)
- 零起點學Linux系統管理
- Linux內核完全注釋(20周年版·第2版)
- UNIX操作系統設計
- Hands-On DevOps with Vagrant
- 循序漸進學Docker
- 混沌工程實戰:手把手教你實現系統穩定性
- 深入Linux內核架構與底層原理(第2版)
- macOS效率手冊
- 嵌入式系統及其應用(第三版)
- Windows 7應用入門與技巧
- Cassandra 3.x High Availability(Second Edition)
- 新編電腦辦公(Windows 10+ Office 2013版)從入門到精通
- Linux軟件管理平臺設計與實現
- 大學計算機應用基礎實踐教程(Windows 7+MS Office 2010)