android開發(fā)工具及其原理_第1頁
android開發(fā)工具及其原理_第2頁
android開發(fā)工具及其原理_第3頁
android開發(fā)工具及其原理_第4頁
android開發(fā)工具及其原理_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Android開發(fā)工具及原理王洪浪

講義目錄AndroidApplication基本概念;AndroidSDK介紹及安裝;AndroidSDK主要工具使用;從Eclipse中使用AndroidSDK;什么是AndroidNDK,為什么需要NDK?NDK提供的主要工具使用;AndroidApplication基本概念;AndroidAPP使用JAVA編寫的,AndroidAPP用SDK編譯后將數(shù)據(jù)、資源和代碼編譯到一個(gè)Android程序包,一般以.apk作為結(jié)尾;SDK開發(fā)階段資源(String,BMP,ICON,Audio)數(shù)據(jù)代碼(javaclass和C++so)ManifestAndroidAPP(APK包)APP發(fā)布AndroidApplication基本概念;AndroidAPP一般由一個(gè)或者多個(gè)component組成,Application可以包含如下類型的component,目前我們暫時(shí)先只關(guān)注最常用的Activity,Activity類似于Windows上的Windows,是進(jìn)行顯示和處理用戶交互的對(duì)象類型,右圖是Activity的生命周期遷移圖示:AndroidApplication基本概念;AndroidManifest是每個(gè)AndroidAPK都會(huì)附帶的配置文件,是供系統(tǒng)獲取APP信息的重要配置信息,一般地,在系統(tǒng)啟動(dòng)一個(gè)程序之前,需要從Manifest配置文件獲得如下的信息:標(biāo)識(shí)程序運(yùn)行需要的權(quán)限,比如聯(lián)網(wǎng),讀取存儲(chǔ),讀取聯(lián)系人等;標(biāo)識(shí)運(yùn)行時(shí)候需要的最小系統(tǒng)版本;標(biāo)識(shí)程序需要的硬件依賴,比如依賴Camare,BlueTooth,MultiTouch等等.系統(tǒng)庫依賴,比如依賴于

GoogleMapslibrary.其他…AndroidSDK介紹及安裝;AndroidSDK無需安裝,下載解壓就可以使用,使用AndroidSDK可以有兩種方法:Commandline方式,直接在命令行使用SDK提供的工具創(chuàng)建工程,部署,編譯和調(diào)試工程;通過Eclipse的ADT插件來使用,可以利用Eclipse來進(jìn)行工程創(chuàng)建,部署,編譯,調(diào)試。

通過Eclipse或者通過commandline兩種方式生成的Android工程略有不同,主要是有不同的工程配置文件,其他都是相同的,兩種方式各有優(yōu)缺點(diǎn),Eclipse開發(fā)調(diào)試更直觀方便,commandline方式編譯和部署可以方便的集成進(jìn)腳本,可以更加方便的自動(dòng)化。AndroidSDK主要工具使用;使用Commandline來進(jìn)行開發(fā);

首先使用android命令來創(chuàng)建一個(gè)新的android工程,命令如下: android.batcreateproject-nandroidtest1-p./androidproj-aMyactivity-t5--packagecom.navinfo.nds -n指定工程名字為androidtest1; -p指定了工程路徑; -a制定了默認(rèn)的activity名稱(相當(dāng)于windows下主窗口的名稱) -t制定了targetid,targetid對(duì)應(yīng)了不同的googleAPIlevel(android系統(tǒng)版本) --package指定了代碼Java包名稱

AndroidSDK主要工具使用;創(chuàng)建工程成功后,創(chuàng)建了如下的目錄及文件結(jié)構(gòu):

/CYGWIN/HOME/WANGHL/ANDROIDPROJ│AndroidManifest.xml工程配置Manifest文件│pertiesant編譯配置文件│build.xmlant編譯配置文件│perties本地工程配置文件,不能上傳至versioncontrol;│proguard.cfg工程配置文件│perties工程配置文件│├─bin生成的APP

APK所在目錄├─libs其他lib,此目錄下的文件都被自動(dòng)打包進(jìn)APK├─res資源子目錄│├─layout畫面布局文件(類似于VS2005下的Dialog布局資源)││main.xml│││└─values字符串資源表│strings.xml│└─srcJava源代碼子目錄└─com└─navinfo└─ndsMyactivity.java

AndroidSDK主要工具使用;創(chuàng)建工程完成后,開始使用Ant來編譯工程,首先確保JAVA_HOME環(huán)境變量已經(jīng)定義好,然后直接使用AntDebug或者AntRelease來編譯相應(yīng)的版本;

按照之前我們創(chuàng)建的工程名為androidtest1的工程,切換當(dāng)前目錄到工程目錄

運(yùn)行antdebug后,在bin目錄下生成對(duì)應(yīng)的apk包文件;對(duì)于調(diào)試和單步跟蹤,在commandline下是不能進(jìn)行跟蹤,一般地,利用eclipseadt插件,利用eclipse中的javadebugger進(jìn)行調(diào)試;在調(diào)試的時(shí)候,利用DDMS工具可以查看Android設(shè)備輸出的log,進(jìn)行截屏,控制系統(tǒng)進(jìn)程,查看系統(tǒng)資源使用等功能;使用adb工具可以安裝,卸載APK,傳輸拷貝文件到設(shè)備上;

從Eclipse中使用AndroidSDK;在Eclipse中使用AndroidSDK比較簡單,只需要在Eclipse上先在線或者本地安裝ADT,在ADT中設(shè)置后SDK路徑就可以開始使用,使用Eclipse創(chuàng)建一個(gè)Android工程后,可以看到如下的目錄和文件結(jié)構(gòu);./.classpath相比于使用android工具創(chuàng)建的工程./.ject.classpath是eclipse特有的工程文件;?./AndroidManifest.xml與android工具生成的相同./assets資源文件夾,與res一樣,但不自動(dòng)生成ID;./bin生成目標(biāo)./gen自動(dòng)生成代碼./proguard.cfg與android工具生成的相同./perties與android工具生成的相同./res與android工具生成的相同./src與android工具生成的相同什么是AndroidNDK,為什么需要NDK; NDK的目標(biāo):在Android1.5或者更高版本上,生成可以供JNI調(diào)用的ARM版本的so動(dòng)態(tài)庫;

將生成的so動(dòng)態(tài)庫拷貝到工程的libs目錄,使得這些文件能夠自動(dòng)打包進(jìn)最終的APK包;InlaterrevisionsoftheNDK,weintendtoprovidetoolsthathelpdebugyournativecodethrougharemotegdbconnectionandasmuchsource/symbolinformationaspossible; NDK提供了:一個(gè)GCC交叉編譯工具鏈(compilers,linkers,etc..),用來編譯ARMCPU目標(biāo)程序,支持Linux,OSX和Windows(withCygwin);一系列Android暴露的API頭文件及相應(yīng)lib庫文件,在后續(xù)系統(tǒng)版本中,這些接口頭文件也將保持兼容;

一個(gè)Build系統(tǒng),使得用戶可以通過比較少的配置來寫一個(gè)Makefile文件來管理工程; NDK不能做:NDK不適合編寫程序整體框架,一般地,AndroidAPP還是由Java編寫,由NDK來開發(fā)一些性能關(guān)鍵點(diǎn)接口,整個(gè)APP生命期管理,Events管理還是由JAVA來完成;NDK主要工具

;NDK開發(fā)的目錄結(jié)構(gòu):androidproject│AndroidManifest.xml│perties│build.xml│perties│proguard.cfg│perties│├─bin├─libs├─jni│├─Android.mkNDK工程配置文件│└─Application.mkNDK編譯配置文件├─res└─srcNDK主要工具

;一個(gè)Android.mk和Application.mk的例子:更多請(qǐng)參照$NDK/Documentation.htmlAndroid.mk: PROJECT_COMMON_INCLUDE=#$(callmy-dir)/../../../../release/navmgr $(callmy-dir)/../../../../release/nicore $(CLEAR_VARS)TOP_LOCAL_PATH:=$(callmy-dir) monlibraryproject include$(TOP_LOCAL_PATH)/cstl.mk include$(TOP_LOCAL_PATH).mkNDK主要工具

;com.mk:PROJECT_NAME:=comLOCAL_PATH:=$(callmy-dir)/../../../$(PROJECT_NAME)/srcinclude$(CLEAR_VARS)LOCAL_MODULE:=$(PROJECT_NAME)LOCAL_C_INCLUDES:=$(PROJECT_COMMON_INCLUDE)$(LOCAL_PATH)/../inc$(LOCAL_PATH)/../../cstl/incLOCAL_CFLAGS:=-DLINUX-DHAVE_USR_INCLUDE_MALLOC_HLOCAL_SRC_FILES:=\ Com_Cache.c\ Com_DataRea

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論