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