版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一篇、提綱挈領(lǐng)
智能的機(jī)操作系統(tǒng)經(jīng)過(guò)多盤(pán)廝殺,到現(xiàn)在形成了三足鼎立之勢(shì):Android、iOS、Windowsphone8三者--統(tǒng)天卜;而其他的諸如SymbianS60,UIQ,
WindowsMobile,Linux,Brew、Blackberry...則成為了過(guò)眼煙云。
今天,Android更是在市場(chǎng)上有75%的占有率;在國(guó)內(nèi)比例更甚,達(dá)到90%之多。
有人說(shuō):上一個(gè)十年是互聯(lián)網(wǎng)時(shí)代;這個(gè)十年就是移動(dòng)互聯(lián)時(shí)代!
你還在等什么?
一、手機(jī)的發(fā)展史
1844年5月24日。莫爾斯的電報(bào)機(jī)從華盛頓向巴爾的摩發(fā)出人類(lèi)歷史的第一份電報(bào)”上帝創(chuàng)造了何等奇跡!”
1875年6月2日,貝爾做實(shí)驗(yàn)的時(shí)候,不小心把硫酸濺到了自己的腿上.他疼得對(duì)另一個(gè)房間的同事喊到”活,快來(lái)幫我啊!”而這句話(huà)通過(guò)實(shí)
驗(yàn)中的電話(huà)傳到了在另一個(gè)房間接聽(tīng)電話(huà)的活特耳里,成為人類(lèi)通過(guò)電話(huà)傳送的第一句話(huà)。
1831年,英國(guó)的法拉第發(fā)現(xiàn)了電磁感應(yīng)現(xiàn)象,麥克斯韋進(jìn)?步用數(shù)學(xué)公式闡述了法拉第等人的研究成果,并把電磁感應(yīng)理論推廣到了空間。
而60多年后赫茲在實(shí)驗(yàn)中證實(shí)了電磁波的存在。
電磁波的發(fā)現(xiàn),成為"有線電通信”向"無(wú)線電通信”的轉(zhuǎn)折點(diǎn),也成為整個(gè)移動(dòng)通信的發(fā)源點(diǎn)。正如一位科學(xué)家說(shuō)的那樣"手機(jī)是踩著電報(bào)和電
話(huà)等的肩膀降生的,沒(méi)有前人的努力,無(wú)線通信無(wú)從談起?!?/p>
1973年4月的一天,一名男子站在紐約的街頭,掏出一個(gè)約有兩塊磚頭大的無(wú)線電話(huà),并開(kāi)始通話(huà)。這個(gè)人就是手機(jī)的發(fā)明者馬丁庫(kù)泊。當(dāng)
時(shí)他還是摩托羅拉公司的工程技術(shù)人員。這是當(dāng)時(shí)世界上第一部移動(dòng)電話(huà)。
1975年,美國(guó)聯(lián)邦通信委員會(huì)(FCC)確定了陸地移動(dòng)電話(huà)通信和大容量蜂窩移動(dòng)電話(huà)的頻譜。為移動(dòng)電話(huà)投入商用做好了準(zhǔn)備。
1979年,日本開(kāi)放了世界上第一個(gè)蜂窩移動(dòng)電話(huà)網(wǎng)。
1982年歐洲成立了GSM(移動(dòng)通信特別組)
1985年,第一臺(tái)現(xiàn)代意義I:的可以商用的移動(dòng)電話(huà)誕生。它是將電源和天線放置在一個(gè)例子里,重量達(dá)3公斤。與現(xiàn)代形狀接近的手機(jī),則
誕生于1987年。其重量仍有大約750克,與今天僅重60克的手機(jī)相比,象一塊大磚頭。此后,手機(jī)的"瘦身"越來(lái)越迅速。1991年,手機(jī)重量為
250克左右。1996年秋出現(xiàn)了體積為100立方厘米,重量為100克的手機(jī)。此后又進(jìn)一步小型化,輕型化,到1999年就輕到了60克以下。
二、智能手機(jī)發(fā)展史
世界上第一部智能手機(jī)是摩托羅拉在2000年生產(chǎn)的名為天拓A6188的手機(jī)。
該手機(jī)是全球第一部智能手機(jī),也是第一部具有觸摸屏的PDA手機(jī),它同時(shí)還是第一部中文手寫(xiě)識(shí)別輸入的手機(jī),但最重要的是A6188采用
了摩托羅拉公司自主研發(fā)的龍珠(DragonballEZ)16MHzCPU,支持WAPI.1無(wú)線上網(wǎng),采用了PPSM(PersonalPortableSystemsManager)操
作系統(tǒng)。龍珠(DragonballEZ)16MHzCPU也成為了第一款在智能手機(jī)上運(yùn)用的處理器,雖然只有16MHz,但它為以后的智能手機(jī)處理器奠定了
基礎(chǔ),有著里程碑的意義。
三、認(rèn)識(shí)Android
Android最早由安迪?羅賓(AndyRubin)創(chuàng)辦,于2007年被Google公司收購(gòu),Google公司憑借Android操作系統(tǒng)在智能手機(jī)上取得了巨大
的成功。
如果以前你對(duì)智能機(jī)了解不多也沒(méi)有關(guān)系,你能感覺(jué)到現(xiàn)在的手機(jī)除了能夠打電話(huà)、發(fā)短信之外,越來(lái)越像一臺(tái)功能強(qiáng)大的小電腦就0K了!
四、修煉之道
1、不論章法,實(shí)現(xiàn)就好
對(duì)于我們菜鳥(niǎo)級(jí)別,初學(xué)的時(shí)候很多朋友聽(tīng)了網(wǎng)I:傳言的“學(xué)編程要六級(jí)以上英語(yǔ),高等數(shù)學(xué)更是要過(guò)硬”以致于很多朋友只能“高山仰
止”!而實(shí)際上初學(xué)者經(jīng)驗(yàn)不足,初入此道,程序可能存在種種錯(cuò)誤和BUG,但是這都不能影響我們學(xué)習(xí)的決心和勇氣,就像學(xué)開(kāi)車(chē),即使你從駕
校出來(lái)有了駕照,剛上路仍然感覺(jué)手忙腳亂,眼睛不夠用一樣,隨著你的車(chē)技嫻熟,你會(huì)變得從容起來(lái),編程一樣。
不要怕錯(cuò)?,學(xué)編程比開(kāi)車(chē)要好得多,無(wú)論如何你都不會(huì)“闖車(chē)禍”,大不了重來(lái),怕什么,誰(shuí)不是從1、2,3開(kāi)始學(xué)起的!
2、規(guī)范有序
有了一定的經(jīng)驗(yàn)就不能像初始階段,程序逐漸開(kāi)始規(guī)范,無(wú)論變量的命名還是各種文檔,并且注重程序的運(yùn)行效率等等。我們都講:細(xì)節(jié)決
定成敗,但往往是“嚴(yán)于律人,寬以待己”,這樣不好!細(xì)節(jié)不是喊一聲就會(huì)出現(xiàn)在你面前的,這是一個(gè)需要不斷學(xué)習(xí)和實(shí)踐。這個(gè)過(guò)程有長(zhǎng)有
短,要看個(gè)人的學(xué)習(xí)能力,領(lǐng)悟能力。
做到內(nèi)外兼修,內(nèi),指的是需求把握,設(shè)計(jì)思想,設(shè)計(jì)模式等。外,指的是寫(xiě)代碼時(shí)的規(guī)范,做界面時(shí)的嚴(yán)謹(jǐn)?shù)取?/p>
3、用戶(hù)體驗(yàn)
因?yàn)槲覀冊(cè)O(shè)計(jì)的程序最終是給用戶(hù)用的,要注意用戶(hù)體驗(yàn)。
人性化則顯得至關(guān)重要。
4、學(xué)無(wú)止境
入門(mén)也許是容易的,但是想達(dá)到大師級(jí)別真不是一件容易的事。
冰凍三尺,非一日之寒。
良好的開(kāi)端,等于成功了一半。工欲善其事,必先利其器。
如何搭建Android的開(kāi)發(fā)環(huán)境?讓我們今天一探究竟!
五、準(zhǔn)備工作
我們開(kāi)發(fā)Android手機(jī)App程序需要準(zhǔn)備兩樣寶貝:JavaJDK、AndroidSDK(ADT即AndroidDevelopTools縮寫(xiě))。
1、JavaJDK
如果你電腦上沒(méi)有安裝Java環(huán)境或者你想使用最新版本,請(qǐng)從下面地址下載最新版本:
卜載地址:!-iIH.?a/jvase/downloads/index.html
(1)第一步、單擊下圖中的①的DOWNLOAD,BPJavaPlatform(JDK)7u9
OverviewDownloadsDocumentationCommunityTechnologiesTraining
JavaSEDownloads
LatestReleaseNextRelease(EarlyAccess)EmbeddedUsePreviousReleases
JavaPlatform(JDK)7u9JavaFX2.2.3JDK7u9?NetBeansJDK7?JavaEE
(2)第二步、單.選AcceptLicenseAgreement,然后選擇Windowsx86下載。
JavaSEDevelopmentKit7u9
YoumustaccepttheOracleBinaryCodeLicenseAgreementforJavaSEtodownloadthis
^2^software.
。AcceptLicenseAgreementDeclineLicenseAgreement
Product/FileDescriptionFileSizeDownload
Linuxx86120.63MB±jdk-7u9-linux-i586.rpm
Linuxx8692.85MB±jdk-7u9-linux-i586.tar.gz
Linuxx64118.82MB*jdk-7u9-linux-x64.rpm
Linuxx6491.59MB±jdk-7u9-linux-x64.tar.gz
MacOSX143.47MB±Jdk-7u9-macosx-x64.dmg
Solarisx86135.14MB±jdk-7u9-solaris-i586.tar.Z
Solarisx8691.51MB?jdk-7u9-solaris-i586.tar.gz
SolarisSPARC135.7MB±jdk-7u9-solaris-sparc.tar.Z
SolarisSPARC95.15MB<jdk-7u9-solaris-sparc.tar.gz
SolarisSPARC64-bit22.8MB?jdk-7u9-solaris-sparcv9.tar.Z
SolarisSPARC64-bit17.51MB±jdk-7u9-solaris-sparcv9.tar.gz
Solarisx6422.48MB±jdk-7u9-solaris-x64.tar.Z
Solarisx6414.94MB±jdk-7u9-solaris-x64.tar.gz
Windowsx8688.35MB>jdk-7u9-windows-i586.exe卜
Windowsx6490.03MB?jdk-7u9-windows-x64.exe弋
(注:windowsX86代表32位操作系統(tǒng);windowsX64代表64位操作系統(tǒng)。如果你不知道你的操作系統(tǒng)是?位,很簡(jiǎn)單,選擇桌面“計(jì)算機(jī)”單擊
右鍵,查看屬性一看就明白了?。?/p>
2、AndroidSDK
AndroidSDK為我們提供了API鏈接庫(kù)以及用于建立、測(cè)試與調(diào)試android應(yīng)用的開(kāi)發(fā)工具的集合。
卜載地址:http://developer,android,com/sdk/index.html
DownloadtheSDK
ADTBundleforWindows⑴
六、軟件安裝
如果你的網(wǎng)速不夠快,那么就請(qǐng)你倒杯茶,邊下載邊看以下安裝步驟。
1、第一步,安裝jdk7u9(jdk-7u9-windows-i586.exe)
雙擊jdk-7u9-windows-i586.exe安裝,單擊下一步下一步,直到完成即可,無(wú)需配置環(huán)境變量。
2、第二步,安裝SDK和EclipseIDE(adt-bund1e-windows-x86.zip)
(1)解壓adt-bund1e-windows-x86.zip文件至合適的位置,會(huì)生成adt-bundle-windows-x86文件夾,在adt-bund1e-windows-x86文件夾
又有兩個(gè)子文件夾:eclipse和sdko
(2)打開(kāi)adt-bund1e-window&-x86/eclipse文件夾,然后啟動(dòng)eclipse,exe程序。
當(dāng)然你也可以把eclipse,exe程序發(fā)送到桌面建立一個(gè)快捷方式。
至此,我們環(huán)境已經(jīng)全部安裝好了,就這么簡(jiǎn)單!EclipseIDE集成開(kāi)發(fā)已經(jīng)幫我們準(zhǔn)備好了開(kāi)發(fā)環(huán)境,而且SDK也已經(jīng)自動(dòng)準(zhǔn)備就緒,萬(wàn)事
俱備!就等著你開(kāi)始開(kāi)發(fā)第一個(gè)AndroidApp了!
注:不要從adt-bundle-\vindows-x86文件夾中移走任何文件,否則你將要進(jìn)行手動(dòng)配置環(huán)境或者以后的升級(jí)。
最為經(jīng)典的“Hello,world!”之AndroidApp應(yīng)用程序即將在你自己的手機(jī)上運(yùn)行,你是不是心潮澎湃呢?稍安勿躁,你馬上就可以實(shí)現(xiàn)!
附:
網(wǎng)上比較流行的Android的開(kāi)發(fā)環(huán)境常常為JDK+Eclipse+SDK三大利器進(jìn)行配置,如果你喜歡,你可以百度?下!而Google現(xiàn)在非常推薦你
采用本文的方式,尤其你如果是一名新手!
我一直猶豫如何講解這個(gè)開(kāi)篇之作,但發(fā)現(xiàn)的IDE開(kāi)發(fā)環(huán)境做得越來(lái)越智能,基本上一路回車(chē)就可以
搞定一個(gè)簡(jiǎn)單的應(yīng)用。
一、第一步,啟動(dòng)Eclipse
單擊桌面Eclipse快捷方式,啟動(dòng)EclipseIDE開(kāi)發(fā)環(huán)境。
二、第二步,建立Android項(xiàng)目
選擇菜單file->new->androidapplicationproject
西EditRunSourceNavigateSearchProjectRefactorWindowHelp
NewAlt+Shift+N?JavaProject
OpenFile...AndroidApplicationProject1
Project...
CloseCtrl+W
CloseAllCtrl+Shift+W第Package
Class
SaveCtrl+S
Interface
Vv,At…
1、選擇workspace(Selectaworkspace)
Eclipse第一次建立AndroidProject會(huì)讓你選擇workspace(workspace通俗地講就是把你的項(xiàng)
目存到哪個(gè)文件夾內(nèi)),在本案例中我存放到D:\Apps,如果勾選了復(fù)選框,下一次建立Android
Project就不會(huì)再出同這個(gè)對(duì)話(huà)框了。
2、新建Android應(yīng)用程序(NewAndroidApplication)
我們?cè)诖翱谥休斎耄?/p>
ApplicationName:Hello
ProjectName:默認(rèn)會(huì)自動(dòng)與應(yīng)用程序名稱(chēng)一樣,你也可以起不同的名字。
PackageName:com.genwoxue.hello(你可以使用別的包名,習(xí)慣用這個(gè)域名倒寫(xiě)的方式)
TargetSDK:如果你采用真機(jī)測(cè)試,看看你的真機(jī)所支持的Android版本。
CompileWith:編譯可以選擇最新版本
然后單擊“Next〉”按鈕,進(jìn)入下一步。
3、配置Project(ConfigureProject)
采用默認(rèn)設(shè)置就可以了。
然后單擊“Next〉”按鈕,進(jìn)入下一步。
4、配置應(yīng)用圖標(biāo)Icon(ConfigureLauncherIcon)
然后單擊“Next〉”按鈕,進(jìn)入下一步。
5、新建空白Activity(NewBlankActivity)
然后單擊“Finish”按鈕,打開(kāi)項(xiàng)目主界面。
6>Hello項(xiàng)目主界面
你可能一下子被整個(gè)界面弄暈了,太復(fù)雜了,這么多文件夾,實(shí)際上將來(lái)我們所有關(guān)心的東西并
不多,別害怕,我們只要知道①②③都是干什么的就夠了。
其中①表示項(xiàng)目文件管理區(qū);②表示控件區(qū);③表示界面預(yù)覽區(qū)。
三、第三步,建立虛擬設(shè)備
如果你還沒(méi)有一臺(tái)運(yùn)行Android的設(shè)備(手機(jī)),那么我們需要建立一個(gè)虛擬設(shè)備。
當(dāng)然你最好有一臺(tái)真正能夠運(yùn)行Android的設(shè)備,你也可以跳過(guò)這一步。
1、選擇菜單window->AndroidVirtualDeviceManager
Window]Help
NewWindow
NewEditor
OpenPerspective?
ShowView?
CustomizePerspective...
SavePerspectiveAs...
ResetPerspective...
ClosePerspective
CloseAllPerspectives
Navigation?
AndroidSDKManager
AndroidVirtualDeviceManager,
1
RunAndroidLint
Preferences
2、打開(kāi)Android虛擬設(shè)備管理器(AndroidVirtualDeviceManager)
單擊“New…”按鈕。
AndroidVirtualDeviceManager
AndroidVirtualDevicesDeviceDefinitions
UstofexistingAndroidVirtualDeviceslocatedatC:\Users\IBM\.android\Avd
AVDNameTargetNamePlatformAPILevelCPU/A8I
-NoAVDavailable——|E&L.
>Delete-
1Repair-
jDetailj
Start-
Refresh
2AvalidAndroidVirtualDevice.ArepairableAndroidVirtualDevice.
XArAndroidVirtualDevicethatfailedtoload.Clide'Details'toseetheerror.
3、新建Android虛擬設(shè)備(CreateAndroidVirtualDevice)
我們?cè)诖翱谳斎耄?/p>
AVDName:HTC(你可以高興輸入別的任何名稱(chēng))
Device:選擇一-款合適的屏(包括尺寸與分辨率)
然后單擊“0K”按鈕。
4、虛擬設(shè)備管理器(AndroidVirtualDeviceManager)就多出來(lái)了一款"HTC"設(shè)備。
四、第四步,運(yùn)行程序
1、選擇菜單Run->Run(Ctrl+Fl1)
Run]NavigateSearchProjectWindowHelp
%Run氐Ctrl+Fil
DebugFil
2、選擇AndroidDevice設(shè)備
我們有兩種選擇:使用真機(jī)或者虛擬設(shè)備。(在本案例中采用華為9200真機(jī)。)
3、運(yùn)行結(jié)果
中國(guó)移動(dòng)3GQS也..ill15:37
「爭(zhēng)Hello
Helloworld!
至此,我們第一個(gè)AndroidApp正式誕生了,舉杯慶賀一下吧!你也正式進(jìn)入移動(dòng)開(kāi)發(fā)的行列,
未來(lái)的十年“移動(dòng)互聯(lián)”有你!
當(dāng)然,我們僅僅是一個(gè)開(kāi)始!
盡管經(jīng)典之中的經(jīng)典Hell。,world!已經(jīng)悄然運(yùn)行在我們的手機(jī)上了,但如果現(xiàn)在讓你告訴別人你會(huì)
Android開(kāi)發(fā),估計(jì)你自己都心虛,讓我們一起再會(huì)Hello,world!項(xiàng)目,揭開(kāi)廬山真面目。
第一次在Eclipse中看Android項(xiàng)目工作區(qū)估計(jì)眼都花了,頭都暈了,你一,定會(huì)想:這么復(fù)雜!
但事實(shí)上,可能會(huì)比你想得簡(jiǎn)單,而一旦我們采取循序漸進(jìn)方式,你很快就會(huì)掌握的。
七、Android項(xiàng)目工作區(qū)概覽
」退Hello
,&src
/田com.genwoxue.hello
t>?MainActivity.java
/落gen[GeneratedJavaFiles]
/田com.genwoxue.hello
>團(tuán)BuildConfig.java
>團(tuán)R.java
/KAndroid4.2
叵^(>@android.jar
r>0AndroidDependencies
雷assets
0邑bin
t>也libs
/四res
t>6drawable-hdpi
t>&drawable-ldpi
t>Bdrawable-mdpi
r>&drawable-xhdpi
0layout
④id,activity_main.xml
t>6menu
0values
>&values-vll
>0values-vl4
⑤口AndroidManifestxml
Micjauncher-web.png
,jproguard-project.txt
管project,properties
新建一個(gè)Android項(xiàng)目,Eclipse會(huì)自動(dòng)幫我們建立諸多文件,我們看一下:
其中:
第①部分:表示Java源程序;
第②部分:代表系統(tǒng)資源ID,類(lèi)似于C語(yǔ)言的*.h文件,請(qǐng)千萬(wàn)不要手工修改R.java文件;
第③部分:八期!'01€14.2表示當(dāng)前5口1(是4.2,是目前最新版本;
第④部分:表示資源文件,其中l(wèi)ayout布局你可以認(rèn)為就是界面;
第⑤部分:每一個(gè)Android項(xiàng)目都包含--個(gè)清單(Manifest)文件一AndroidManifest.xml,它存
儲(chǔ)在項(xiàng)目層次中的最底層。清單可以定義應(yīng)用程序及其組件的結(jié)構(gòu)和元數(shù)據(jù)。
如果你想了解更多AndroidManifest.xml,請(qǐng)單擊了解更多>>
Android項(xiàng)目中主要文件及文件夾的作用:
(1)src:存放所有的*.java源程序。
(2)gen:為ADT插件自動(dòng)生成的代碼文件保存路徑,其中的R.java文件將保存所有的資源ID。
(3)Android4.2:表示現(xiàn)在使用的AndroidSDK的版本是4.2。
(4)assets:可以存放項(xiàng)目中--些較大的資源文件,如圖片、音樂(lè)、字體等。
(5)res:可以存放項(xiàng)目中所有的資源文件,如圖片(*.png、*.jpg)、網(wǎng)頁(yè)(*.html)>文本
等。
(6)res\drawable-hdpi:保存高分辨率圖片資源。
(7)res\drawable-ldpi:保存低分辨率圖片資源。
(8)res\drawable-mdpi:保存中等分辨率圖片資源。
(9)res\layout:存放所有布局文件,主要是用于排列不同的顯示組件,在Android程序要讀
取此配置。
(10)res\values:存放一些資源文件信息,用于讀取文本資源,在文件夾中有一些約定的文件
名稱(chēng)。(具體內(nèi)容待以后詳解)
(11)res\raw:自定義的一些原生文件所在目錄,如音樂(lè)、視頻等文件格式。
(12)res\xml:用戶(hù)自定義的XML文件,所有的文件在程序運(yùn)行時(shí)編譯到應(yīng)用程序中。
(13)res\anim:用于定義動(dòng)畫(huà)對(duì)象。
(14)activity_main:配置所有的控件。
(15)R.java:此文件為自動(dòng)生成并自動(dòng)維護(hù)的,用戶(hù)添加的控件會(huì)自動(dòng)在此文件中生成一個(gè)唯
一的ID,以供程序使用。
(16)AndroidManifest.xml:主要配置文件,用于配置各個(gè)組件或--些訪問(wèn)權(quán)限等。
總之,看著真的夠復(fù)雜,你先有個(gè)印象就可以了。至少,你應(yīng)該知道源文件是放在src文件夾;
布局文件在res/layout文件夾,其他以后了解也ok。
八、Android項(xiàng)目分析
7、布局文件(res\layout\activity_main.xml)
雙擊"res\layout\activity_main.xml”打開(kāi)布局文件。注意①代表布局文件圖形界面;②代表
布局文件代碼界面。
@activity_mainjcml0日、
<RelativeLayoutxmlns:android=,rhttp://schemas.android,com/apk/res/android11
xmlns:tools=,rhttp://schemas.android,com/tooLs”
android:layout_yiidth="match_parentM
android:layout_height=
tools:context=M.Alain4ctivity,r>
(Textview
android:layout_width=,,wrap^contentM
android:layout_height=Mwrap_content°
android:layout_centerHorizontal=ntrue”
android:layout_centerVertical=Mtrt/ew
android:text=M^string/heLLq_worLdM/>
遨</RelativeLayout>
②
口GraphicalLayout三Iactivitymain.xml
AndroidApp應(yīng)用程序類(lèi)似于.net的Winform程序,其中①和②相當(dāng)于標(biāo)題欄,①為標(biāo)題欄的圖
標(biāo),②為標(biāo)題;③代表標(biāo)簽<TextViw>,類(lèi)似于眾多程序的Label。
我們?cè)賮?lái)看一下代碼:
TextCopytoclipboardPrint
1.
2,<RelativeLayoutxmlns:android="/apk/res/android"
3.xmlns:tools="http://schemas./tools"
4.android:layout_width="match_parent"
5.android:layout_height=Hmatch_parent"
6.tools:context=H.MainActivity',>
7.<TextView
8.android:layout_width="wrap_content"
9.android:layout_height="wrap_content,,
10.android:layout__centerHorizontal="true"
11.android:layout__centerVertical="true"
12.android:text="@string/hello_world"/>
13.</RelativeLayout>
希望你在探討本段代碼之前,至少至少要有XML文件的概念,如果沒(méi)有請(qǐng)了解這后再來(lái)繼續(xù)學(xué)習(xí)。
本段代碼包含了兩個(gè)重要標(biāo)簽:<RelativeLayout>和<TextView>,〈RelativeLayout》代表線性布
局管理器;<TextView>代表標(biāo)簽組件。其它的皆為兩個(gè)標(biāo)簽的屬性。
我們著重來(lái)看一下:android:text="@string/hello_worId”,我們的運(yùn)行結(jié)果是"Helloworld!
而不是"hello_world"!
Why?
2、strings文本資源文件(res\values\strings.xml)
雙擊"res\values\strings.xml”打開(kāi)文本資源文件。與布局文件一樣:①代表文本資源圖形界
面;②代表文本資源代碼界面。
JGLstrings.xml漢一
黨AndroidResources(default)
ResourcesElements⑤?◎⑥國(guó)①?lài)?guó)用回AN
(S)app_name(String)
Add...
(S)hello_world(String)
⑤menu_settings(String)Remove...
Up
Down
---------(?)----------------
置Resources可strings.xml
我們打開(kāi)文本資源strings,xml文件之后,當(dāng)我們看到:
<stringname=/,hello_world//>Helloworld!</string>
前面的疑慮應(yīng)該頓消,原來(lái)如此??!hello_world是文本資源文件中的一個(gè)標(biāo)簽而已,其真正的
內(nèi)容是“Helloworld!”。
你可以通過(guò)圖形界面或者字符界面添加一個(gè)字符串資源,究竟你選擇哪種,隨你高興!
3、R?java文件(gen/com.genwoxue.hello/R.java)
雙擊agen/com.genwoxue.hello/R.java”打開(kāi)資源ID文件。
笆Rjava
4/*AUTO-GENERATEDFILE.DONOTMODIFY.
packagecom.genwoxue.hello;
publicfinalclassR{
publicstaticfinalclassattr{
)
publicstaticfinalclassdrawable{
publicstaticfinalintic_Launcher=0x7f020000;
}
publicstaticfinalclassid{
publicstaticfinalint/wenu_settings=0x7f070000;
}
publicstaticfinalclasslayout{
publicstaticfinalintactivity_/nain=0x7f030000;
}
publicstaticfinalclassmenu{
publicstaticfinalintactivity_WGin=0x7f060000;
}
publicstaticfinalclassstring{
publicstaticfinalintapp_name=0x7f040000;
publicstaticfinalintheLLo^worLd=0x7f?40001;
publicstaticfinalint/wenu_settings=0x7f^40002;
}一
R.java資源文件保存所有資源的ID,譬如前面所講的hello_world,在這里就是一個(gè)整數(shù)
0x7f040001而已。
如果你感覺(jué)這個(gè)文件很奇怪也很正常,除非你曾經(jīng)學(xué)習(xí)或者寫(xiě)過(guò)Cforwindows應(yīng)用程序就早已
習(xí)以為常了。
這個(gè)文件你最好只是看看,不要?jiǎng)铀。。?/p>
4、AndroidManifest.xml文件
雙擊"AndroidManifest.xml”項(xiàng)目配置文件。
@HelloManifest陽(yáng)
<?xmlversion=M1.00encoding=Mut/-8M?>
-<manifestxmlns:android=n/apk/res/android11
package=°com.genwoxue.
android:versionCode=Ml"
android:versionName=Ml.0°>
<uses-sdk
android:minSdkVersion=*r8M
android:targetSdkVersion=015a,/>
O〈application
android:allowBackup=ntrue"
android:icon="^drawabLe/ic_Launcherf,
android:label='f^string/app_nameM(2)
android:theme=tyLe/AppTheme0>
0octivity
android:name=Mcow?.genwoxue.heLLo.AJainActivity0
android:label=u^string/app_namen>(3)
-<intent-filter>
<actionandroid:name=*1android.intent,action./>
<categoryandroid:name=°ent.category,LAUNCHERn/>
</intent-filter>
</activity>
</application>
〈/manifest)
4,
菖Manifest因Application回Permissions|T)Instrumentation,F|AndroidManifestxml
所有的Activity程序都在AndroidManifest.xml文件中進(jìn)行注冊(cè),故該文件是整個(gè)Android項(xiàng)
目的核心配置文件。
在<application>節(jié)點(diǎn)中配置的android:icon=z/@drawable/ic_launcherz/,表示引用drawable
(drawable-hdpi>drawableTdpi、drawable-mdpi三個(gè)文件夾中導(dǎo)入)資源配置的圖標(biāo),引入圖標(biāo)
的名稱(chēng)為ic」auncher?,F(xiàn)在你可以更換應(yīng)用程序圖標(biāo)了,你知道了它在哪!
在<application>節(jié)點(diǎn)中配置的android:label=,?@string/app_namez/,表示此應(yīng)用程序的標(biāo)簽名
稱(chēng)從strings.xml文件中讀取,內(nèi)容為app_name對(duì)應(yīng)的內(nèi)容?,F(xiàn)在你也可以更換應(yīng)用程序標(biāo)題了,
你知道了它在哪!
當(dāng)然,你還可以更改Activity的標(biāo)題,什么是Activity?
Activity就是一個(gè)活動(dòng)的窗體,-個(gè)項(xiàng)目應(yīng)用程序可以包含多個(gè)Activity。
5、MainActivity.java(src/com.genwoxue.hello/MainActivity.java)
雙擊"src/com.genwoxue.hello/MainActivity.java,,程序文件。
MainActivity.java漢x.
packagecom.genwoxue.hello;
importandroid.os.Bundle;
importandroid.app.Activity;
publicclassMainActivityextendsActivity{
一@Override
protectedvoidonCreate(BundlesavedlnstanceState){
super.onCreate(savedlnstanceState);
setContentView(R.layout.activity_main);
)
)
本程序是Android整個(gè)項(xiàng)目的主程序,Activity是項(xiàng)目的基本組成部分。
MainActivity繼承Activity類(lèi),onCreate()方法是啟動(dòng)Activity地默認(rèn)調(diào)用的方法。
super.onCreate(savedlnstanceState):調(diào)用父類(lèi)的onCreate()方法;
setContentView(R.layout.activity_main):調(diào)用布局文件。
我相信你的Android手機(jī)上一定安裝了不少Android應(yīng)用,那么如果把我們的Android程序發(fā)布為
Android應(yīng)用,以便讓別人使用呢?
1、選擇File—>Export命令,在打開(kāi)的界面中選擇Android—>ExportAndroidApplication文
件。
單擊“Next〉”按鈕,選擇要導(dǎo)出的項(xiàng)目。
2、可以通過(guò)“Browse...”按鈕選擇Hell。這個(gè)項(xiàng)目,如果項(xiàng)目處于打開(kāi)狀態(tài),會(huì)默認(rèn)當(dāng)前項(xiàng)目。
單擊“Next〉”按鈕,進(jìn)入創(chuàng)建證書(shū)界面。
3、導(dǎo)出項(xiàng)目,必須要有證書(shū),我們可以選擇已經(jīng)存在的證書(shū)或者創(chuàng)建證書(shū),我們選擇“Createnew
keystorev。
在此,我們輸入:
Location:D:\Hello(我們可以起一個(gè)不同于項(xiàng)目的名稱(chēng))
Password和Confirm:123456
則在D盤(pán)根目錄下創(chuàng)建了Hello證書(shū)。單擊“next〉”按鈕,進(jìn)入證書(shū)完整界面。
4、填寫(xiě)完整的證書(shū)信息。
①部分為證書(shū)別名與有效年限;
②部分為開(kāi)發(fā)者相關(guān)信息。
單擊“Next〉”按鈕,進(jìn)入導(dǎo)出AndroidApplication界面。
5、導(dǎo)出項(xiàng)目(ExportAndroidApplication)
輸入D:\HeHo.apk,發(fā)布到D盤(pán)根目錄。
你也可以保存到別的文件夾,但注意該文件夾一定要存在。
單擊“Finish”按鈕完成整個(gè)項(xiàng)目發(fā)布過(guò)程。
現(xiàn)在,你可以采取你喜歡的任意方式(可以通過(guò)數(shù)據(jù)線、藍(lán)牙)或者發(fā)布到Android應(yīng)用商店供
別人下載使用。
第二篇、幾個(gè)有用的程序帶你進(jìn)入這個(gè)android世界
第1章、編輯框EditText與按鈕Button
在一個(gè)應(yīng)用中,登錄是經(jīng)常使用的,下面我們學(xué)習(xí)一下如何開(kāi)發(fā)一個(gè)登錄窗口。我們需要學(xué)習(xí)Android中的基本控件:
(1)EditText編輯框、⑵Button按鈕。
一、設(shè)計(jì)登錄窗口
打開(kāi)"res/layout/acMvity_main.xml"文件。
1、分別從工具欄向activity拖出2個(gè)EditText(來(lái)自TextFields)、1個(gè)按鈕(來(lái)自FormWidgets)。
Palette
◎▼QNexusOne▼@▼
3Palette
uFormWidgets★AppTheme▼QMainActivity▼
LargeMediumsman
ButtonSmallOFFe▼麻17▼
JCheckfiox?RadioButton
CheekedTextEEJI國(guó)IB
Spinner
SubItem
TextFields
>
abc
FirstnameLastname
】???2…3
usef(5>domain
(555)0100
Other
Custom&LibraryViews
HGraphicalLayoutAiactivitymain.xml
2、打開(kāi)activity_main.xml文件。
代碼自動(dòng)生成如下:注意①和②雖同為EditText,但②要輸入密碼,故android:inputType="textPassword"。
<EditText
android:id-^^+id/editTextl°Qy
android:layout_width=Mwrap_contentM
android:layout_height=*rwrap^contentM
android:layout_alignParentLeft=,rtrt/eM
android:layout_alignParentTop=Mtrue”
android:layout_marginTop=034dp*f
android:ems=M100>
<requestFocus/>
</EditText>
<EditText
android:id=M^+id/editText20⑷
android:layout_width=*rwrap_contentM
android:layout_height=°wrap_contentM
android:layout_alignParentLeft=°true”
android:layout_below=0^-id/ecfitTextl0
android:layout_marginTop=n18dp,r
android:ems=*,10*r
android:inputType=MtextPassword°V>
<Button
android:id=M^-id/buttonlM(3J
android:layout_width=uwrap_content11
android:layout_height=Mwrap_contentM
android:layout_alignRight=M|?+id/editfextl0
android:layout_below=°|?+id/editfext2M
android:layout_marginTop=M36dp11
android:text=Buttonn/>
3、我們把以上代碼修改成如下代碼,具體為:editTextl變?yōu)閡serName;eidtText2變?yōu)閜assword;buttion1變
為login..登錄按鈕的文本:android:text="Button"變?yōu)?登錄"。
<EditText
android:id=n^f-id/userNameM
android:layout_width=*,wrap^_contentM
android:layout_height=Mwrap_content11
android:layout_alignParRntLeft="trae"
android:layout_alignParentTop=°trueM
android:layout_marginTop="34dp"
android:ems=010°>
<requestFocus/>
</EditText>
<EditText廠、
android:id=,r§+id/passlylordlfG)
android:layout_width=,rwrap^contentM
android:layout_height=°wrap_content0
android:layout_alignRarentLeft=*ftrueM
android:layout_below="斛id/aserNa/we”
android:layout_marginTop=015dp,r1
android:ems=o10M
android:inputsype=ntextPassword*1/>
<Button
android:id=^id/Login0Q)
android:layout_width=^wrap_contentn
android:layout_height=*rwrap^contentM
android:layout_alignRight=*,^fid/userNa/ne°
android:layout_below=tt^id/passly/ordt,
android:layout_marginTop=*r36dp*rR
android:text=°/>
4、界面如下:
?EditTextButton
現(xiàn)在運(yùn)行程序,已經(jīng)在手機(jī)上看起來(lái)很像一個(gè)登錄窗口了。但是,我們單擊“登錄”按鈕,卻沒(méi)有什么反應(yīng)。我們下
面學(xué)習(xí)如何在“登錄”按鈕上添加單擊事件。
二、單擊事件
打開(kāi)"src/com.genwoxue.ecHttextbutton/MainActMty.java''文件。
然后輸入以下代碼:
packagecorn.genwoxue.edittextbutton;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.widget.EditText;
importandroid.widget.Button;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Toast;
publicclassMainActivityextendsActivity{
privateEditTexttvUserName=null;
privateEditTexttvPassword=null;(2)
privateButtonbtnLogin=null;
@Override
protectedvoidonCreate(BundlesavedlnstanceState){
super.onCreate(savedlnstanceState);
setContentView(R.layout.activity_main);
tvUserNa<ne=(EditText)super,findViewByld(R.id.userName);
tvPassword=(EditText)super.findViewByld(R.id.password);
btnLogin=(Button)super.findViewById(R
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年長(zhǎng)租公寓項(xiàng)目建議書(shū)
- 期貨投資服務(wù)侵權(quán)賠償
- 賽車(chē)場(chǎng)有線電視布線合同
- 電纜鋪設(shè)工程爬架租賃合同
- 紅棗包裝工聘用協(xié)議書(shū)
- 隧道項(xiàng)目商品混凝土投標(biāo)樣本
- 食品研發(fā)中心廚師長(zhǎng)招聘簡(jiǎn)章
- 礦產(chǎn)資源開(kāi)發(fā)電子招投標(biāo)規(guī)定
- 珠海市二手房拆遷補(bǔ)償合同模板
- 居民社區(qū)外圍圍墻建造協(xié)議
- 重慶市2023-2024學(xué)年高一上學(xué)期期末聯(lián)合檢測(cè)物理試卷(含答案解析)
- 糖尿病性視網(wǎng)膜病變匯報(bào)演示課件
- GB/T 43575-2023區(qū)塊鏈和分布式記賬技術(shù)系統(tǒng)測(cè)試規(guī)范
- 小兒肺炎的病例討論
- 校園教職工思想動(dòng)態(tài)和現(xiàn)實(shí)表現(xiàn)動(dòng)態(tài)評(píng)估
- 《氣體滅火系統(tǒng)》課件
- 黑龍江省雞西市2023-2024學(xué)年八年級(jí)上學(xué)期第二次質(zhì)量監(jiān)測(cè)道德與法治試題
- 2022年高考天津語(yǔ)文高考試題及答案
- 2022-2023學(xué)年下學(xué)期人教版八年級(jí)英語(yǔ)Unit8 現(xiàn)在完成時(shí)導(dǎo)學(xué)案(word版)
- JCT908-2013 人造石的標(biāo)準(zhǔn)
- 禮品申請(qǐng)領(lǐng)用表
評(píng)論
0/150
提交評(píng)論