|  | |
| Android SDK開發環境搭建 | |
| 基(ji)于(yu)SDK進行Android應(ying)(ying)(ying)用的(de)(de)開發(fa),首(shou)先需要(yao)進行基(ji)于(yu)SDK的(de)(de)開發(fa)環境的(de)(de)搭建。開發(fa)者安裝(zhuang)Eclipse,然后(hou)下載相應(ying)(ying)(ying)的(de)(de)Android SDK下載工(gong)具包和ADT插件(jian),按(an)照//developer.android.com上(shang)的(de)(de)安裝(zhuang)步(bu)驟(zou)進行安裝(zhuang)。不過,在Android 2.3中,對應(ying)(ying)(ying)的(de)(de)ADT 8.0.0的(de)(de)文件(jian)布局發(fa)生了變化,導致ADT 8.0.0無法兼(jian)容Foryo及以下Android版本。 需要注意(yi)的(de)是(shi),在通(tong)過AVD管(guan)理器下載SDK時(shi),由(you)于默(mo)認采用了(le)HTTPS的(de)鏈接(jie)方式訪問Android的(de)官方倉(cang)庫(ku),在部分(fen)機(ji)器上可(ke)能會因(yin)安全原(yuan)因(yin)拒(ju)絕鏈接(jie)。為了(le)完成(cheng)下載,需要在AVD管(guan)理器的(de)設置選項中,選擇(ze)“Force //... sources to be fetched using //”和(he)“Ask before restarting ADB”。 為了通過模擬(ni)器進行(xing)開發和調試,需要為目標設(she)(she)備在(zai)開發環(huan)境中創建相應的虛擬(ni)設(she)(she)備。 在(zai)Android中,虛擬設備稱做AVD(Android Virtual Device)。在(zai)早(zao)期的(de)Android SDK中,開(kai)發者(zhe)需要基于命(ming)令(ling)行的(de)方式(shi)來創建(jian)AVD,在(zai)新的(de)Android SDK下載(zai)工(gong)具(ju)(ju)包中,已經提供了圖形界(jie)面(mian)的(de)方式(shi),使開(kai)發者(zhe)可以根(gen)據需要方便地創建(jian)AVD,查(cha)看AVD相關的(de)信(xin)息。本質(zhi)上這(zhe)是通過“Android”工(gong)具(ju)(ju)來實現(xian)的(de)。Android工具的命令行用法如下: android [global options] action [action options]   可用(yong)的“action”包(bao)括:     -list 					    //列出存在的目標平臺和AVD 在Linux環境下的目標平臺和AVD列(lie)表示例:     Available Android targets:     顯示AVD設備列表的信息的操作方式為:     基于AVD管理器的圖形界面,開發者可以用比命令行更方便的方式來創建和維護AVD。創建Android虛擬設備my_android的命令行方法為: 除了“Android”工具(ju)外,在“android-sdk-linux_86/tools”下,Android還提供(gong)了ddms、emulator、layoutopt、traceview、dmtracedump、hierarchyviewer、zipalign、apkbuilder、draw9patch、hprof-conv、mksdcard、sqlite3等多種實用工具(ju)。 另外在“android-sdk-linux_86/platforms/android-8/tools”下,Android還(huan)提供(gong)了(le)aapt、aidl、dexdump、dx等工(gong)具。   在(zai)(zai)Foryo以后(hou),Android將部分早(zao)期(qi)放置在(zai)(zai)“android-sdk-linux_86/platforms/android-?/tools”下(xia)的工(gong)(gong)具(ju)放置到了(le)android-sdk-linux_86/platform-tools中(zhong),這(zhe)部分工(gong)(gong)具(ju)包(bao)括aapt、adb、aidl、dexdump、dx等。這(zhe)似乎表明Google任務在(zai)(zai)Dalvik虛(xu)擬機(ji)的優化(hua)上已(yi)經比較(jiao)成熟。不會再有(you)大的變(bian)化(hua)。 其中“emulator”提供了基(ji)于(yu)QEMU的(de)模擬(ni)(ni)器(qi)(qi),供開發者進行應用(yong)的(de)開發、調試、測(ce)試。需要說明的(de)是(shi),由于(yu)Android的(de)模擬(ni)(ni)器(qi)(qi)是(shi)基(ji)于(yu)QEMU的(de),模擬(ni)(ni)了真實的(de)ARM環(huan)境,所(suo)以Android的(de)編(bian)譯(yi)(yi)與通常的(de)嵌入式開發不同(tong),沒有所(suo)謂的(de)“Home”端和“Target”端的(de)概念。在默認情況下(xia),編(bian)譯(yi)(yi)輸出文件均是(shi)基(ji)于(yu)ARM體(ti)系結構的(de)(Android還提供了X86架(jia)構的(de)模擬(ni)(ni)器(qi)(qi)編(bian)譯(yi)(yi)),當然Android模擬(ni)(ni)器(qi)(qi)尚不能完全模擬(ni)(ni)真實的(de)物理設備,如支持(chi)(chi)的(de)ARM指(zhi)(zhi)令(ling)目(mu)前僅(jin)限(xian)于(yu)ARMv5指(zhi)(zhi)令(ling)集,而(er)不支持(chi)(chi)主流Cortex A8所(suo)需的(de)ARMv7指(zhi)(zhi)令(ling)集,在LCD的(de)顯(xian)示上(shang),目(mu)前僅(jin)支持(chi)(chi)16bit,而(er)不支持(chi)(chi)24bit,同(tong)樣觸控(kong)技術上(shang),模擬(ni)(ni)器(qi)(qi)也不支持(chi)(chi)多點觸控(kong)。在啟動emulator時,需要指(zhi)(zhi)定相(xiang)應的(de)AVD。 “hierarchyviewer”為開發(fa)者調(diao)試(shi)和優化(hua)UI界(jie)面提供了幫(bang)助,可以幫(bang)助開發(fa)者在像素級別調(diao)整(zheng)UI布局。 “layoutopt”可(ke)以幫助(zhu)開發(fa)者分析UI的布(bu)局(ju),有助(zhu)于開發(fa)出更精細(xi)的UI。 “draw9patch”通過WYSIWYG編(bian)輯器幫(bang)助開(kai)發者進(jin)行2D圖(tu)(tu)形的(de)瀏覽(lan)和維護。在Android開(kai)發者,主要用于制作(zuo)可伸縮的(de)*.9.png格式的(de)圖(tu)(tu)片(pian)上。 “ddms”幫助(zhu)開(kai)(kai)發(fa)者(zhe)進行應用(yong)的調試(shi),是開(kai)(kai)發(fa)者(zhe)常用(yong)的工具(ju)之(zhi)一,也是Android重要(yao)的工具(ju)之(zhi)一。 “adb”幫(bang)助(zhu)開(kai)發(fa)者(zhe)(zhe)(zhe)在模擬器(qi)或物理設備上安(an)裝APK文(wen)(wen)件、向SD卡上推(tui)拉文(wen)(wen)件或者(zhe)(zhe)(zhe)連接GDB調試器(qi)。也是開(kai)發(fa)者(zhe)(zhe)(zhe)常用的工具之一。 “aapt”用來創建APK文件(jian)。開發者一般(ban)不直接接觸(chu)。   “aidl”為Android的進程間(jian)通信(xin)創(chuang)建(jian)接口代碼,是Android多進程通信(xin)的重(zhong)要基礎(chu)。開發者一般不直接接觸。進程通信(xin)的更多內容可以參考3.2節過(guo)程調(diao)用。 “sqlite3”幫(bang)助(zhu)開發者創建、查閱(yue)后綴為db的(de)(de)SQLite數(shu)據(ju)庫(ku)文(wen)(wen)件。需(xu)要注意的(de)(de)是(shi),默認情況下Android的(de)(de)SQLite數(shu)據(ju)庫(ku)文(wen)(wen)件沒有經過(guo)加(jia)(jia)密處理,這在涉及敏(min)感信息時,是(shi)個(ge)比(bi)較(jiao)大的(de)(de)風險,好在相應(ying)的(de)(de)加(jia)(jia)解密接口(kou)已經存在,設備(bei)廠商(shang)只需(xu)要在底層加(jia)(jia)入選定的(de)(de)加(jia)(jia)密算(suan)法即(ji)可(ke)。另外,為了更方面的(de)(de)查閱(yue)SQLite數(shu)據(ju)庫(ku)文(wen)(wen)件,Linux下有個(ge)比(bi)較(jiao)比(bi)較(jiao)方面的(de)(de)工具即(ji)sqliteman。 “traceview”為Android應用(yong)運行過程中產生的(de)(de)日(ri)志的(de)(de)圖形界面。在(zai)Android中,將(jiang)日(ri)志分為調(diao)試(Debug)、錯(cuo)誤(Error)、信息(Info)、詳情(Verbose)、警(jing)告(Warning)等(deng)5個等(deng)級(ji),在(zai)實(shi)際的(de)(de)開發中,可以(yi)根(gen)據實(shi)際情況選用(yong)不同的(de)(de)等(deng)級(ji),就個人經驗而言,應慎用(yong)“Error”等(deng)級(ji),純調(diao)試用(yong)途應用(yong)“Debug”等(deng)級(ji)。使用(yong)“Debug”等(deng)級(ji)日(ri)志的(de)(de)另一個好處在(zai)于(yu),在(zai)發布(bu)時可以(yi)很(hen)方便地關閉日(ri)志輸出(chu)。     “mksdcard”幫助開發者創建SD卡的硬盤映像。其文件系統為FAT32,在通過圖形界面創建AVD時,也可以同時創建SD卡, mksdcard的命令行參數如下: “dx”重寫(xie)了Android的DEX字節碼(ma),這(zhe)是Android性能的關(guan)鍵和設計精華。開發者一(yi)般不(bu)直接接觸。 “zipalign”為一個重要(yao)的APK優(you)化(hua)(hua)工具(ju),在Donut中引(yin)入。提(ti)供了優(you)化(hua)(hua)后的應用和系統(tong)的交互效率,從而使整(zheng)個系統(tong)的運(yun)行效率得到較大的提(ti)升。     Android SDK的頻繁升級,為廣大的開發者造成了很多的困擾,為了更新基于舊Android SDK開發的工程,基于命令行方式的方法為: 精品課程推薦:Android應用開發培訓班(FSAD1002)     課程目標  熱點鏈接: 
         1、嵌入式linux入門要學什么
 |