Android 第二天 studio項目結(jié)構(gòu)

今天Android學(xué)習(xí)第二天

1.Android項目結(jié)構(gòu)

2. Activity生命周期

3.Studio使用

4.button點擊打開另一個activity

5.組件定義及相關(guān)組件介紹

6.資源組織及訪問

7.Service 生命周期


題外話:Studio(Android開發(fā)工具) XCode(Apple開發(fā)工具)

a.Studio輸入提示區(qū)分大小寫,確實不方便,這點不如XCode好用霸褒。

b.Studio在資源組織和訪問方便統(tǒng)一性比較高掐暮,不需要用戶再考慮資源如何放置芹助,靈活性不夠洪囤,但對目前Android小白的我還是挺好用的跑慕。

c.AndroidManifest.xml實現(xiàn)松解耦万皿,不需要遍地引用頭文件。iOS上的sting方式實現(xiàn)頁面間跳轉(zhuǎn)與此設(shè)計模式一致。


一相寇、Android項目結(jié)構(gòu)

Android項目架構(gòu)
目錄說明

1.無論您作為應(yīng)用程序的一部分開發(fā)什么組件慰于,都必須在AndroidManifest.xml中聲明其所有組件。這個文件作為Android OS和應(yīng)用程序之間的接口唤衫,所以如果沒有在這個文件中聲明你的組件婆赠,那么操作系統(tǒng)將不會考慮它。

2.res/mipmap

需要更多地了解mipmap文件夾中的圖像佳励,請參閱下面的圖像休里,mipmap文件夾中有一個圖像文件。

在使用Android應(yīng)用程序時偶爾遇到的一個問題是赃承,比如看到的圖像比較模糊妙黍,像素化或笨拙地拉伸。 解決此問題的方法是為Android支持的每種密度創(chuàng)建一個可繪制的文件夾瞧剖,并將正確縮放的圖像放在每個文件夾中拭嫁。 Android支持6種不同的密度范圍(以每英寸點數(shù)衡量):

ldpi:低密度屏幕; 大約120dpi。

mdpi:中等密度(在傳統(tǒng)的HVGA)屏幕上; 大約160dpi抓于。

hdpi:高密度屏幕; 大約240dpi做粤。

xhdpi:超高密度屏幕; 大約320dpi。 在API級別8中添加

nodpi:這可以用于位圖資源捉撮,不想縮放到匹配設(shè)備密度怕品。

tvdpi:屏幕介于mdpi和hdpi之間; 大約213dpi。這不被視為“主要”密度組巾遭。 它主要用于電視機(jī)肉康,大多數(shù)應(yīng)用程序不需要它 - 為大多數(shù)應(yīng)用程序提供mdpi和hdpi資源已足夠,系統(tǒng)將根據(jù)需要進(jìn)行擴(kuò)展灼舍。此限定符是在API級別13中引入的吼和。

具體引入方法在資源組織及訪問中會說到。



二骑素、Android Activity 生命周期

首先炫乓,了解Activity是什么?

Activity是支持屏幕或UI的Java代碼砂豌。換句話說厢岂,用戶界面的構(gòu)建塊就是Activity光督。Activity類是Android中的一個預(yù)定義類阳距,每個擁有UI的應(yīng)用程序都必須繼承它來創(chuàng)建窗口。

例如结借,MainActivity類是一個Activity筐摘,它從庫中的Activity類擴(kuò)展而來。 下圖說明了一個Activity的生命周期。

Activity的一個生命周期描述了一個Activity開始啟動后的進(jìn)程咖熟,直到應(yīng)用程序關(guān)閉圃酵。 包括Activity暫時停止的進(jìn)程,恢復(fù)等等馍管。


Activity生命周期

根據(jù)Activity的生命周期郭赐,在需要的地方實現(xiàn)對應(yīng)的方法。這一塊和iOSviewController中的生命周期類似确沸。


三捌锭、studio工具使用:

(以下只是今天學(xué)習(xí)到的,后續(xù)持續(xù)補(bǔ)充)

1.查看logCat罗捎,view- tools window-Logcat

2.@Override是偽代碼,表示重寫.編譯器可以給你驗證@Override下面的方法名是否是你父類中所有的,如果沒有則報錯?

3.Studio中添加好用的插件,

路徑:Android Studio-Preferences-Plugins-Browse repositories-選擇需要的插件點擊install

前提Mac pro中的studio观谦。

3.在android中經(jīng)常看到設(shè)置的顏色為八位的十六進(jìn)制的顏色值桨菜,例如:

public?static?final?class?color?{

?? ?public?static?final?int?lightblue=0x7f040000;

}

或者在Java中tx.setTextColor(0xffff00f);

說明:

0xffff00ff是int類型的數(shù)據(jù)豁状,分組一下0x|ff|ff00ff,0x表示顏色整數(shù)的標(biāo)記倒得,ff表示透明度泻红,f00f表示色值,注意:0x后面ffff00ff必須是8位的顏色表示屎暇。

顏色和不透明度?(alpha)?值以十六進(jìn)制表示法表示承桥。任何一種顏色的值范圍都是?0到?255(00到?ff)。

對于 alpha根悼,00表示完全透明凶异,ff表示完全不透明。

表達(dá)式順序是“aabbggrr”挤巡,其中“aa=alpha”(00到ff)剩彬;“bb=blue”(00到ff);“gg=green”(00到ff)矿卑;“rr=red”(00到ff)喉恋。

3.2、Android中設(shè)置文本顏色的四種方法:

3.2.2母廷、利用系統(tǒng)自帶的顏色類

tx.setTextColor(android.graphics.Color.RED);

3.2.3轻黑、數(shù)字顏色表示

tx.setTextColor(0xffff00f);

3.2.4、自定義顏色

在工程目錄values文件夾下新建一個color.xml琴昆,內(nèi)容如下:

色值定義xml

color.xml中也可用color標(biāo)簽#ffff0000????

java中設(shè)置相應(yīng)改為:

tx.setTextColor(tx.getResources().getColor(R.color.red));

3.2.5氓鄙、直接在xml的TextView中設(shè)置

android:textColor="#F8F8FF00"?或

android:textColor="#F8FF00”


四、button點擊打開另一個activity

兩種方法:

方法一:

1.在A頁面的xml文件(layout布局文件)中初始化button业舍,設(shè)置button的idandroid:id="@+id/clickBtn"

2.在A頁面的java文件中抖拦,關(guān)聯(lián)xml中的button

? ?第一步:

聲明btn: private?Button?btn1;

? 第二步:在onCreate方法中將button關(guān)聯(lián)

?// 將xml中button和java中的button進(jìn)行關(guān)聯(lián)

btn1?= (Button)findViewById(R.id.clickBtn);

?第三步:給btn1綁定點擊事件

btn1.setOnClickListener(new?View.OnClickListener() {

?@Override

?public void?onClick(View view) {

Log.i(TAG,?"clickToast:click button");

? ? }

});

第四步:初始化B頁面的java文件升酣,superclass設(shè)置為:android.app.Activity

?在B的java文件中導(dǎo)入import?android.os.Bundle; 重寫onCreate方法:其中R.layout.my的my是B頁面的xml文件名稱

?@Override

?protected void?onCreate(Bundle savedInstanceState) {

//?TODO Auto-generated method stub

?super.onCreate(savedInstanceState);

??????????? setContentView(R.layout.my);}

第五步:在AndroidManifest.xml中

// 加入新的頁面?

<activity android:name=".Test"></activity>

第六步實現(xiàn)點擊方法:

btn1.setOnClickListener(new?View.OnClickListener() {

?@Override

?public void?onClick(View view) {

Log.i(TAG,?"clickToast:click button");

Intent intent =?new?Intent();

intent.setClass(MainActivity.this,Test.class);

??????? startActivity(intent);

??? }

});

方法二:直接A頁面的xml文件中設(shè)置點擊方法:

android:onClick=“startService"

在java中實現(xiàn)startService方法

protected void?startService(View view){

??? startService(new?Intent(getBaseContext(),MyService.class));

}

下面這種方法更方便點,不用重新聲明綁定态罪。


五噩茄、組件定義及相關(guān)組件介紹

在Android應(yīng)用程序中可以使用以下四個主要組件:

組件1

在構(gòu)建上述實體時,還會使用其他組件复颈,它們的邏輯和它們之間的連線绩聘。 這些組件是

組件2

后續(xù)補(bǔ)充相關(guān)用法。


六耗啦、資源組織及訪問

在許多Android項目中君纫,有很多東西要用來建立一個良好的Android應(yīng)用程序。除了編碼應(yīng)用各種資源芹彬,如:位圖蓄髓,顏色,布局定義舒帮,用戶界面字符串会喝,動畫,靜態(tài)內(nèi)容玩郊。在res/目錄下肢执,浙西資源一直保存在各自子目錄中。

簡單目錄結(jié)構(gòu)

MyProject/

? ?src/

? ? ? MyActivity.java

? ?res/

? ? ? drawable/

? ? ? layout/

? ? ? ? ?Activity_main.xml

? ? ? values/

? ? ? ? ? Strings.xml

res/目錄中包含不同的子目錄的不同資源译红。在這里有一個圖像資源预茄,兩個布局資源和一個字符串資源文件。下表給出了詳細(xì)的項目在 res/目錄里面支持的資源侦厚。

res目錄說明1
res目錄說明2

替代資源

應(yīng)用程序提供替代資源以支持特定的設(shè)備配置耻陕。例如,包括替代繪制資源(ie.images)刨沦,針對不同的語言不同的屏幕分辨率并替代字符串資源诗宣。在運(yùn)行時Android 檢測當(dāng)前設(shè)備的配置,并為應(yīng)用程序加載適當(dāng)?shù)馁Y源想诅。

要指定一組資源的配置具體的替代召庞,請遵循以下步驟:

創(chuàng)建新目錄在res/ 目錄下,命名形式如?-来破。這里resources_name 是在上表中提到的資源篮灼,如layout,drawable?等限定符將指定一個單獨(dú)的配置徘禁,要使用這些資源诅诱。可以查看官方文檔的完整列表晌坤,限定符為不同類型的資源逢艘。

在這個新的目錄中保存相應(yīng)的替代資源。資源文件必須被命名為默認(rèn)的資源文件骤菠,如下面的例子所示的完全一樣它改,但這些文件具有特定內(nèi)容的替代。例如商乎,雖然圖像的文件名是相同的央拖,但對高分辨率屏幕,其分辨率會很高鹉戚。

下面是一個例子鲜戒,它指定一個默認(rèn)的屏幕和高分辨率屏幕的替代圖像的圖像。

MyProject/

??? src/?

??????? MyActivity.java?

?res/

??????? drawable/?

??????????? icon.png

??????????? background.png

?drawable-hdpi/?

??????????? icon.png

??????????? background.png?

??????? layout/?

??????????? activity_main.xml

??????????? info.xml

??????? values/?

??????????? strings.xml

訪問資源

在應(yīng)用程序開發(fā)中抹凳,需要訪問定義的資源遏餐,無論是在代碼還是在布局XML文件。下面的部分介紹了如何訪問資源在這兩個場景:

訪問資源代碼

當(dāng)Android應(yīng)用程序被編譯時赢底,會產(chǎn)生一個R類失都,其中包含在res/?目錄中的所有可用資源的資源ID。使用R類直接訪問該子目錄和資源名稱或資源ID幸冻。?

示例:

要訪問?res/drawable/myimage.png粹庞,并設(shè)置一個ImageView 可使用下面的代碼:

ImageViewimageView?=(ImageView)findViewById(R.id.myimageview);

imageView.setImageResource(R.drawable.myimage);


七、Service 生命周期

Service(服務(wù))是一種在后臺運(yùn)行洽损,執(zhí)行長時間運(yùn)行的操作庞溜,無需與用戶交互的組件。例如碑定,一個服務(wù)可以在后臺播放音樂流码,用戶在不同的應(yīng)用程序或者可能通過網(wǎng)絡(luò)獲取數(shù)據(jù),而不阻塞用戶交互活動延刘。本質(zhì)上旅掂,一個服務(wù)可以采取兩種狀態(tài):

Started:當(dāng)一個應(yīng)用程序組件,如活動访娶,開始通過調(diào)用StartService()啟動一個服務(wù)商虐。開始以后服務(wù)可以無限期地在后臺運(yùn)行,即使啟動它的組件被破壞崖疤。?

Bound:當(dāng)一個應(yīng)用程序組件綁定調(diào)用bindService()方法綁定服務(wù)秘车。綁定服務(wù)提供客戶端 - 服務(wù)器的接口,允許組件進(jìn)行交互的服務(wù)劫哼,發(fā)送請求叮趴,得到結(jié)果,這樣可以跨進(jìn)程進(jìn)程間通信(IPC)权烧。

Service生命周期
Service回調(diào)說明

今天學(xué)習(xí)的理論知識比較多眯亦,好好記憶伤溉,多多練習(xí),還得寫項目才能更深刻的體會這些理論妻率。加油

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末乱顾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子宫静,更是在濱河造成了極大的恐慌走净,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件孤里,死亡現(xiàn)場離奇詭異伏伯,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)捌袜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門说搅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人虏等,你說我怎么就攤上這事蜓堕。” “怎么了博其?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵套才,是天一觀的道長。 經(jīng)常有香客問我慕淡,道長背伴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任峰髓,我火速辦了婚禮傻寂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘携兵。我一直安慰自己疾掰,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布徐紧。 她就那樣靜靜地躺著静檬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪并级。 梳的紋絲不亂的頭發(fā)上拂檩,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天,我揣著相機(jī)與錄音嘲碧,去河邊找鬼稻励。 笑死,一個胖子當(dāng)著我的面吹牛愈涩,可吹牛的內(nèi)容都是我干的望抽。 我是一名探鬼主播加矛,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼煤篙!你這毒婦竟也來了斟览?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤舰蟆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后狸棍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體身害,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年草戈,在試婚紗的時候發(fā)現(xiàn)自己被綠了塌鸯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡唐片,死狀恐怖丙猬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情费韭,我是刑警寧澤茧球,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站星持,受9級特大地震影響抢埋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜督暂,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一揪垄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧逻翁,春花似錦饥努、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至缠诅,卻和暖如春伟墙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背滴铅。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工戳葵, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人汉匙。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓拱烁,卻偏偏與公主長得像生蚁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子戏自,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容