国产91青青成人a在线/在线视频成人/aaa成人永久在线观看视频/深夜草莓视频app

關于我們
新書資訊
新書推薦

Android手機應用開發簡明教程

Android手機應用開發簡明教程

定     價:¥48

中 教 價:¥36.96  (7.70折)

庫 存 數: 0

叢 書 名:高等學校應用型特色規劃教材

  • 作者:董志鵬、張水波
  • 出版時間:2016/3/1
  • ISBN:9787302425403
  • 出 版 社:清華大學出版社
  • 中圖法分類:TN929.53 
  • 頁碼:388
  • 紙張:膠版紙
  • 版次:1
  • 開本:16開
  • 商品庫位:
9
7
4
8
2
7
5
3
4
0
0
2
3
購買數量:     
本書結合教學特點,以Android 4.4.2版本為例,由淺入深地講述了Android應用程序的開發技術,涵蓋了Amdroid技術人員成長道路上的眾多知識。全書共分15章,主要內容包括Android的發展歷史、特點和優勢、系統架構與開發環境的配置,以及各種常見開發工具的安裝和使用、各種Android應用程序的設計與開發等。本書在最后一章,以貪吃蛇小游戲為例介紹了游戲項目的完整實現。本書既可作為在校大學生學習使用Android進行課程設計的參考教材,也適合作為高等院校相關專業的教學參考用書,還可以作為非計算機專業學生學習Android數據庫的參考書。

模擬器按鍵

鍵盤按鍵

Home

Home鍵

Menu

Page Up鍵或F2鍵

Start

Page Down鍵或Shift F2鍵

Back

Esc鍵

電話撥號

F3鍵

電話掛斷

F4鍵

查詢

F5鍵

鎖屏幕

F7鍵


續表 

模擬器按鍵

鍵盤按鍵

音量放大

鍵(臺式機數字鍵盤)或Ctrl F5鍵(筆記本)

音量縮小

-鍵(臺式機數字鍵盤)或Ctrl F6鍵(筆記本)

全屏幕切換

Alt Enter鍵

軌道球模式

F6鍵

橫豎屏切換

7鍵(臺式機數字鍵盤)或Ctrl F11鍵(筆記本)

9鍵(臺式機數字鍵盤)或Ctrl F12鍵(筆記本)

 

在運行游戲時,可將Android模擬器切換到橫屏模式,其顯示效果如圖2-25所示。

 

圖2-25  橫屏顯示的模擬器

2.3.4  使用模擬器控制臺

每個運行中的模擬器實例都含有一個控制臺,通過控制臺可以查詢和控制模擬器設備的運行環境。連接到模擬器實例控制臺的命令如下:

 

telnet localhost <port> 

 

例如,第一個模擬器實例的控制臺如果使用的端口是5554,那么用戶連接到模擬器5554上的命令就要寫為

 

telnet localhost 5554

 

連接上控制臺后,用戶可以輸入“help [command]”來查看命令列表和某一命令的幫助文檔。離開控制臺時使用quit和exit命令即可。

下面介紹一些常用的控制臺命令。

1.端口重定向命令

使用以下命令可以在模擬器運行期間重看、添加或刪除重定向。

(1)  redir<list>

說明:redir list列出了當前的重定向,其最小值為150,最大值為550。

(2)  rediradd <protocol> : <host-port> : <guest-port>

說明:此命令用于添加新的端口重定向。 <protocol>必須是TCP或UDP,<host-port>是主機上打開的端口號,<guest-port>是向模擬器/設備發送數據的端口號。

(3)  redirdel<protocol> : <host-port>

說明:此命令用于刪除端口重定向,<protocol>和<host-port>的含義同上。

2.網絡狀況查詢命令

使用以下命令可以檢測模擬器運行的網絡狀態。

 

network status 

 

執行后的輸出結果類似如下:

 

Current network status: 

download speed:          0 bits/s (0.0 KB/s)

upload speed:            0 bits/s (0.0 KB/s)

minimum latency: 0 ms

maximum latency: 0 ms

 

3.電話功能模擬命令

與電話相關的是gsm命令,該命令有以下3種格式。

(1)  gsmcall <phonenumber>

說明:該命令用于模擬來自電話號碼為<phonenumber>的呼叫。

(2)  gsmvoice <state>

說明:該命令用于修改GPRS語音連接的狀態為<state>。State的可選值有:unregistered為無可用網絡;home為處于本地網,無漫游;roaming為處于漫游網;searching為查找網絡;denied為僅能用緊急呼叫;off同unregistered;on同home。

(3)  gsmdata <state>

說明:該命令用于修改GPRS數據連接的狀態為<state>,可選值與Voice相同,此處不再介紹。

2.4  Android工具

在Android SDK中提供了一個名為Android的工具,該工具可用來查看Android的版本信息,以及創建、刪除和查看AVD設備。

2.4.1  查看Android版本的ID信息

為了對Android程序進行全面的測試,在開發時用戶通常會安裝多個Android版本。每個Android版本都有一個唯一的ID標識。

【范例8】

要查看所有Android版本的ID信息,可使用如下命令:

 

android list targets

 

執行后將看到每個Android版本的ID信息、API版本、名稱、類型和適用屏幕等,如圖2-26所示。

 

圖2-26  查看Android版本的ID信息

2.4.2  創建AVD設備

AVD表示一種Android設備的配置信息,例如一個AVD可以表示一個運行2.0版本SDK,且使用512MB作為SD卡的Android設備。AVD的使用理念是,首先創建將要支持的AVD,然后在開發和測試應用程序時,將模擬器指向其中一個AVD。

默認情況下,所有的AVD都存儲在HOME\.android\AVD目錄中。要創建一個AVD設備可以使用android命令的create avd選項,其語法格式如下:

 

android create avd <option>

 

其中,option參數有如下幾個選項。

l   -t:新AVD設備的ID,可通過android list targets查看,必選項。

l   -c:指向一個共享SD卡的路徑或者指定一個新的SD卡。

l   -p:指定AVD設備的存儲路徑。

l   -n:指定AVD設備的名稱,必選項。

l   -f:此選項表示覆蓋已存在的同名AVD。

l   -s:指定AVD設備使用的皮膚。

【范例9】

創建一個名為testAvd的AVD設備,要求SD卡容量為1024MB,并將其保存在G:\AVD目錄下。其實現語句如下:

 

android create avd -n testAvd -t 1 -c 1024M -p G:\AVD\

 

語句中-t后面的1表示使用的是列表中編號為1的Android版本。執行該語句后會看到輸出的信息,如圖2-27所示。


 

圖2-27  創建AVD設備

2.4.3  刪除AVD設備

刪除AVD設備的語法如下:

 

android delete avd -n <avd_name>

 

其中avd_name表示要刪除的AVD設備的名稱。

【范例10】

在刪除之前可以先運行如下命令,查看當前所有的AVD設備信息,包含名稱、存儲路徑、SD卡容量以及使用的皮膚等。

 

android list avds

 

如圖2-28所示為運行結果,從中可以看出當前所包含的AVD設備有avd 4.4、myAvd、testAvd。

 

圖2-28  查看所有AVD設備

【范例11】

假設要刪除名為testAvd的AVD設備,可用以下語句:

 

android delete avd -n testAvd

 

執行該語句后再次使用android list avds命令,即可看到testAvd沒有出現在列表中,如圖2-29所示。


 

圖2-29  刪除AVD設備

2.5  Emulator工具

Emulator是一款命令行的模擬器管理工具,它可以控制模擬器實例的所有參數,例如是否允許使用視/音頻、接收數據、使用調試和屏幕信息等。

Emulator的語法格式如下:

 

emulator [option] [-qemu args]

 

其中,option表示選項,args是選項的具體參數。

Emulator為Android模擬器工具提供了很多啟動選項,可以在啟動模擬器時指定,控制其外觀和行為。下面從六個方面介紹Emulator工具的命令格式。

1.數據命令選項

數據命令選項主要有四個,下面分別介紹。

(1)  emulator-data <file>

說明:使用<file>當作用戶數據的磁盤鏡像,如果沒有-data,模擬器會在~/.android
(Linux/Mac)或c:\Documentsand Settings\<user>\Local Settings\Android(Windows)中查找文件名為userdata.img的文件。如果使用了-data<file>但<file>不存在,模擬器會創建一個文件。

(2)  emulator-ramdisk <file>

說明:使用<file>作為RAM鏡像,默認值為<system>/ramdisk.img。

(3)  emulator-sdcard<file>

說明:使用<file>作為SD卡鏡像,默認值為<system>/sdcard.img。

(4)  emulator-wipe-data

說明:啟動前清除用戶磁盤鏡像中的所有數據。

2.調試命令選項

調試命令選項主要有五個,下面分別介紹。

(1)  emulator-console

說明:允許當前中斷使用控制臺。

(2)  emulator-debug-kernel

說明:將內核輸出發送到控制臺。

(3)  emulator-logcat <logtags>

說明:允許根據給定的標簽為輸出分類。如果定義了環境變量ANDROID_LOG_TAGS,并且不為空,那么它的值將被作為logcat的默認值。

(4)  emulator-trace <name>

說明:允許代碼剖析(按F9鍵開始)。

(5)  emulator-verbose

說明:允許詳細信息輸出。

3.媒體命令選項

媒體命令選項主要有四個,下面分別介紹。

(1)  emulator-mic <device or file>

說明:使用設備或者WAV文件作為音頻輸出。

(2)  emulator-noaudio

說明:禁用Android的音頻支持,默認禁用。

(3)  emulator-radio <device>

說明:將無線調制解調器接口重定向到主機特征設備。

(4)  emulator-useaudio

說明:啟用Android音頻支持,默認不啟用。

4.網絡命令選項

網絡命令選項主要有兩個,分別是-netdelay和-netspeed。

(1)  emulator-netdelay <delay>

說明:設置網絡延遲模擬的延遲時間為<delay>,默認值是none。具體參數說明如下。

l   gprs:min 150, max550。

l   edge:min 80, max400。

l   umts:min35, max200。

l   none:無延遲。

l   <num>:模擬一個準確的延遲(毫秒)。

l   <min>:<max>:模擬一個指定的延遲范圍(毫秒)。

(2)  emulator-netspeed <speed>

說明:設置網速模擬的加速值為<speed>,默認值為full。具體參數說明如下。

l   gsm:up : 14.4,down 14.4。

l   hscsd:up : 14.4,down : 43.2。

l   gprs:up : 40.0,down : 80.0。

l   edge:up :118.4,down : 236.8。

l   umts:up : 128.0,down : 1920.0。

l   hsdpa:up : 348.0,down : 14400.0。

l   full:無限。

l   <num>:設置一個上行和下行公用的準確速度。

l   <up> : <down>:分別為上行和下行設置準確的速度。

5.系統命令選項

系統命令選項主要有五個,下面分別介紹。

(1)  emulator-image <file>

說明:使用<file>作為系統鏡像。

(2)  emulator-kernel <file>

說明:使用<file>作為模擬器內核。

(3)  emulator-qemu

說明:傳遞qemu參數。

(4)  emulator-qemu -h

說明:顯示qemu幫助信息。

(5)  emulator-system <dir>

說明:在<dir>目錄下查找系統、RAM和用戶數據鏡像。

6.界面命令選項

界面命令選項主要有六個,下面分別介紹。

(1)  emulator-flashkeys

說明:在設備皮膚上閃爍按下的鍵。

(2)  emulator-noskin

說明:不使用任何模擬器皮膚。

(3)  emulator-onion <image>

說明:在屏幕上使用覆蓋圖,不支持JPEG格式圖片,僅支持PNG格式。

(4)  emulator-onion-alpha <percent>

說明:指定onion皮膚的半透明值,默認值為50,單位為%。

(5)  emulator-skin <skinID>

說明:指定皮膚啟動模擬器,SDK提供了以下四個可選皮膚。

l   QVGA-L(320*240,風景)默認。

l   QVGA-P(240*320,肖像)。

l   HVGA-L(480*320,風景)。

l   HVGA-P(320*480,肖像)。

(6)  emulator-skindir <dir>

說明:在<dir>目錄下查找皮膚。


2.6  實驗指導——管理SD卡

在Android模擬器實例上測試程序時經常需要使用SD卡。為此AndroidSDK提供了SD卡創建工具——Mksdcard,它位于Tools目錄中。

Mksdcard工具的語法格式如下:

 

mksdcard [-l label] <size> <file>

 

語法中各個參數的含義如下:

l   -l:指定SD卡的卷標,可選參數。

l   size:指定SD卡的容量大小,默認單位是bytes,也可以使用K或者M作為單位。

l   file:指定SD卡鏡像文件的路徑。

【范例12】

創建一個卷標為myCard,大小為100MB的SD卡,將文件保存為D:\data\myCard.img。其語句如下:

 

mksdcard -l myCard 100MB d:\data\myCard.img

 

該語句執行成功后沒有輸出結果。此時打開D:\data會看到myCard.img鏡像文件,如圖2-30所示。

如果要管理myCard里面的內容,可通過以下步驟實現。

(1) 使用AVD Manager或者Emulator工具加載myCard的鏡像文件myCard.img。Emulator工具的加載命令如下:

 

emulator -sdcard D:\data\myCard.img

(2) 使用ADB push上傳文件或者目錄,也可以使用ADT的File Explorer工具管理。

 

圖2-30  創建SD卡鏡像文件

2.7  Keytool工具和Jarsigner工具

要使編寫的Android應用程序能在真實的Android設備上運行,必須對Android應用程序的APK文件進行簽名。APK是Android Package的縮寫,它可以直接在Android系統上運行,類似Windows系統下的EXE文件。

Android SDK提供了兩個命令行工具對APK文件進行簽名:keytool.exe和jarsigner.exe。其中Keytool用于生成一個Android程序使用的密鑰文件(Private Key);Jarsigner則根據該密鑰文件對Android程序進行打包并設置簽名。

Keytool工具的語法如下:

 

keytool -genkey -v -keystore androidguy-release.keystore-alias androidguy -keyalg RSA -validity 3000

 

其中,各個參數的說明如下。

l   androidguy-realse.keystore:表示要生成的密鑰文件名,可以是任意合法的文件名。

l   androidguy:表示密鑰的別名,在簽名時會用到。

l   RSA:表示密鑰使用的算法。

l   3000:表示簽名的有效時間,以“天”為單位。

進入命令行按照上述格式執行Keytool命令時,會要求用戶輸入一系列與密鑰有關的信息,如圖2-31所示。

在輸入完密鑰信息后,按回車鍵會自動創建指定的密鑰文件,并設置簽名信息。運行成功后會出現圖2-32所示界面,提示已經創建密鑰文件到當前目錄中。

假設要對C:\MyApp.apk文件進行簽名,則使用Jarsigner命令的語法格式如下:

 

jarsigner -verbose -keystoreandroidguy-release.keystore C:\MyApp.apk androidguy

 

圖2-31  輸入密鑰信息                       圖2-32  生成密鑰文件

上述命令將指定的密鑰文件androidguy-release.keystore對Android程序的APK文件MyApp.apk進行簽名,執行后還需要輸入密鑰的密碼,執行成功后的輸出如圖2-33所示。經過簽名后的APK文件占用的內存會比原始文件大。


 

圖2-33  對APK進行簽名

2.8  實驗指導——使用ADT簽名程序

在使用命令對APK文件進行簽名時,通常需要熟記各個命令參數,比較麻煩。為此ADT工具提供了一個圖形化向導進行簽名。向導的打開方法是:在ADT中右擊項目名稱,在彈出的菜單中選擇Android Tools|Export Signed Application Package命令,具體操作步驟如下。

(1) 在打開的窗口中輸入或選擇要簽名的項目名稱,如圖2-34所示。

(2) 單擊“下一步”按鈕,在打開的Keystore selection界面中選擇Create new keystore選項創建一個新的密鑰文件,并指定密鑰文件的名稱和輸入密碼,如圖2-35所示。

(3) 單擊“下一步”按鈕,在進入的界面中輸入密鑰和簽名信息,如圖2-36所示。

(4) 單擊“下一步”按鈕,指定生成后APK文件的名稱和位置,如圖2-37所示。

(5) 單擊“完成”按鈕完成設置。打開目標位置,會看到除了生成的APK文件之外,還包括一個密鑰文件。該密鑰文件在給以后的程序簽名時仍然可以繼續使用。

 

圖2-34  選擇項目                       圖2-35  指定密鑰文件和密碼

 

圖2-36  指定密鑰和簽名信息                  圖2-37  指定要生成的APK文件

2.9  ADB工具

ADB(Android Debug Bridge)實際上是一個“客戶端—服務器端”程序,默認情況下它會監聽TCP 5554端口,讓客戶端與服務器端通信。其中,客戶端就是用來操作的計算機,服務器端是目標設備,例如Android設備、實體手機或虛擬機。

ADB是Android SDK中最常用的調試工具之一,下面詳細介紹該工具的具體應用情況。

2.9.1  查看ADB版本

ADB工具位于Android SDK的platform-tools目錄下,它的主要功能如下。

(1) 運行設備的shell命令行。

(2) 管理模擬或設備的端口映射。

(3) 在計算機與設備之間上傳和下載文件。

(4) 將本地APK軟件安裝到模擬器或設備上,使應用或者系統升級。

【范例13】

假設要查看ADB的版本,則可運行以下命令:

 

adb version

 

執行后的結果如圖2-38所示,從中可以看到當前版本為1.0.31

 

圖2-38  查看ADB版本

2.9.2  查看設備信息

ADB啟動時首先會在服務器開啟5554~5585端口,等待客戶端Android設備或者模擬器的接入。

【范例14】

要查看當前所有設備的信息可以使用以下命令:

 

adb devices

 

該命令返回的結果為Android設備或模擬器的序列號及其狀態,運行效果如圖2-39所示。

 

圖2-39  查看設備信息

從輸出結果中可以看出,當前ADB監聽了兩個端口的設備,它們的序列號分別是CoolPad8190和emulator-5554。其中,前者是一臺真實的Android設備,后者是模擬器實例(5554表示ADB為該實例分配的端口號)。返回結果的第二列表示當前設備的狀態,它有如下兩個值。

l   offline:設備沒有連接到ADB或者實例沒有響應。

l   device:設備已經連接到ADB,并處于在線狀態。

 

 注意:  device狀態并不表示當前Android設備可用。因為當Android設備處于啟動階段時,若連接成功也會返回該狀態。

 

2.9.3  管理軟件

在使用ADB連接到Android設備之后便可以進行各種操作了。最常見的操作是在Android設備中安裝新的軟件,或者卸載已有的軟件。在這里需要注意的是,Android設備中的軟件都以.apk為擴展名。

1.安裝軟件

ADB安裝軟件的語法格式如下:

 

adb install <apk 文件路徑>

 

命令執行后會將指定的apk文件安裝到設備上。如果在install后面添加了-r選項,則表示重新(覆蓋)安裝此軟件。


【范例15】

假設要安裝d:\apk\popogame.apk軟件包,安裝命令如下。

 

adb install d:\apk\popogame.apk

 

命令執行后如果在窗口中出現Success字樣,則說明安裝成功,如圖2-40所示。如圖2-41所示為軟件安裝后,打開的運行效果。

 

圖2-40  安裝軟件成功窗口                圖2-41  Popogame軟件運行效果

假設該軟件出現問題無法正常打開,則可以用如下命令進行修復安裝。

 

adb install -r d:\apk\popogame.apk

 

2.卸載軟件

如果不需要該軟件了,還可以使用ADB命令卸載,語法格式如下:

 

adb uninstall <軟件名>

 

上述命令執行后將卸載指定的軟件。卸載時需要指定完整的軟件包名稱,而不是安裝包的名稱,但軟件包不需要寫擴展名。如果在uninstall后面添加-k選項,則表示卸載軟件時保留原配置和緩存文件。

【范例16】

假設安裝完popogame.apk包后的應用程序包有誤,其名稱是com.android.popogame。若此時需要卸載該應用程序,則其卸載命令如下:

 

adb uninstall com.android.popogame

 

如果使用如下命令,則在刪除該應用程序包時還可以保留原配置和緩存文件。

 

adb uninstall -k com.android.popogame

 

 提示:  使用ADB工具進入Shell命令狀態可以卸載軟件。


【范例17】

如果當前ADB有多個Android設備或者模擬器實例,那么就需要使用-s選項指定目標設備的序列號。

設備序列號可通過adb devices命令獲取。例如,要在emulator-5554實例上安裝軟件,則其命令如下:

 

adb -s emulator-5554 install -r d:\apk\popogame.apk

 

若要在emulator-5554實例上卸載軟件,則其命令如下:

 

adb -s emulator-5554 uninstall com.android.popogame

2.9.4  移動文件

既然ADB工具在本機與Android設備之間建立了連接,那么就可以使用該工具在兩者之間傳輸文件。例如,上傳一個本地軟件包到Android設備,或者從Android設備下載一個配置文件。

1.上傳文件

使用push命令可以把本地硬盤上的文件或者目錄上傳(復制)到遠程的目標設備(模擬器實例)。其語法格式如下:

 

adb push <本地路徑> <遠程路徑>

 

【范例18】

假設將d:\apk\popogame.apk復制到Android設備的data目錄中。其命令如下:

 

adb push d:\apk\popogame.apk /data/

 

執行結果如圖2-42所示。

 

 注意:  本地硬盤上的路徑符號是\,而設備/模擬器上的路徑符號則是/,兩個路徑符號所使用的斜杠的方向不同。

 

2.下載文件

使用pull命令可以將遠程文件下載(復制)到本地硬盤上,其語法格式如下:

 

adb pull <遠程路徑>  <本地路徑>

 

【范例:19】

假設將Android設備中data目錄下的popogame.apk文件復制到C盤根目錄,命令如下。

 

adb pull /data/ popogame.apk c:\

 

執行結果如圖2-43所示。


 

圖2-42  上傳文件                           圖2-43  下載文件

 

 提示:  在ADT的DDMS透視圖中可以很方便地使用File Explorer來管理文件。

 

2.9.5  執行Shell命令

由于Android是基于Linux內核的操作系統,因此在Android上可以執行Shell命令。具體方法是執行如下命令進入Shell命令狀態:

 

adb shell

 

上述命令執行后,如果窗口顯示一個#符號,則說明當前是Shell控制臺,可以執行各種Shell命令。例如執行ls命令查看所有的系統文件,執行結果如圖2-44所示。

 

圖2-44  執行ls命令窗口

 

 注意:  如果沒有Android系統的root權限,Shell控制臺的提示符將是一個$符號,而不是#符號。此時若想退出Shell控制臺,則輸入“exit”命令即可。

 

【范例20】

在Shell控制臺可以查看Android系統和設備的全部參數信息,如硬件信息、ROM版本信息以及系統信息等。具體方法是在Shell提示符下執行getprop命令,執行結果如圖2-45所示。

【范例21】

如果只想執行一條Shell命令,則可以使用如下語法格式:

 

adb shell <shell_command>

 

例如,執行adb shell dmesg語句可以查看Android內核的調試信息,執行結果如圖2-46所示。

 

圖2-45  執行getprop命令后的效果圖

 

圖2-46  查看調試信息窗口

執行pm命令可以在Shell中刪除軟件,例如刪除com.android.popogame的命令如下:

 

adb shell pm uninstall com.android.popogame

 

2.9.6  查看Bug報告

在命令提示符中輸入“adb bugreport”可以顯示當前Android系統的運行狀態,例如內存狀態、CPU狀態、內核輸出信息、調試信息以及錯誤信息等。由于該命令返回的輸出結果有很多,圖2-47中僅顯示了部分信息。

 

圖2-47  查看bug報告

 你還可能感興趣
 我要評論
您的姓名   驗證碼: 圖片看不清?點擊重新得到驗證碼
留言內容