Head First Android Development筆記(1.2.3.4)

一、Diving In

1. 一個典型的Android APP組成:Layouts—頁面版保,XML格式摇幻;Activity—定義了APP行為,Java code編寫顷锰;extra resources柬赐,APP使用的一些外部組員,如聲音官紫、圖像文件等肛宋。

2.Android平臺結(jié)構(gòu)州藕,從下往上。

Linux Kernel酝陈,提供驅(qū)動床玻、安全和內(nèi)存管理等功能。

C和C++ libraries沉帮,提供上層framwork支持

Android Runtime锈死,運行java程序的虛擬機,每個app一個進程穆壕。

Application Framework待牵,提供上層APP接口

Application,上層APP

3.APP結(jié)構(gòu)

root folder就是project名喇勋,主要關(guān)注的是app folder缨该。

app/build是android studio創(chuàng)建。

app/build/generated/source/r/debug/com.xx.xx/R.java文件川背,Android使用該文件trackapp的資源內(nèi)容贰拿。

app/src/main/java是activities所在。

app/src/main/res/layout是layouts文件所在熄云。

app/src/main/res/values是資源文件壮不,包括string等。

app/src/main/AndroidManifest.xml文件包含了一個app所需的信息皱碘,如包含的組件、需要的libraries和一些其他的聲明隐孽。

4.activity_main.xml文件結(jié)構(gòu)

<RelativeLayout></RelativeLayout>標(biāo)簽告訴android按格式顯示其中內(nèi)容癌椿。

<TextView />顯示text

5.layout文件包含的string放置在app/src/main/res/values/string.xml文件中,layout中引用使用"@sring/string_name"的方式菱阵。

這樣用的原因是方便global change踢俄。

<string name="string_name">string real name</string>


二、Apps That Do Something

1.layout中active_*.xml屬性

android:id="@+id/myid"晴及,components的id好都办,activity code中引用id操作該component。

android:text="Mytext"虑稼,components顯示

android:layout_width="wrap_content"和android:layout_height="wrap_content"制定component的寬高琳钉,wrap_content表示將內(nèi)容顯示的big enough。

2.下拉菜單spinner

layout中蛛倦,使用spinner標(biāo)簽<Spinner />歌懒,元素中包含android:entries="@array/beer_colors"。

string.xml中使用string-array溯壶,<string-array name="beer_colors"><item>xx</item></string-array>來表示列表及皂。

3.編寫activity

1. layout的button標(biāo)簽中加上android:onClick="onClickName"甫男,這里的onClickName實際上是activity中click button動作后實現(xiàn)的程序內(nèi)容的函數(shù)名

2. activity初始的函數(shù)

public class MainActivity extends Activity{

----protected void onCreate(Bundle savedInstanceState){

--------super.onCreate(savedInstanceState);

--------setContentView(R.layout.activity_main);//告訴android使用哪個layout

----}

}

3.添加一個onClickName函數(shù)去實現(xiàn)點擊按鈕后的動作

public void onClickName(View view){//onClickName是layout中button標(biāo)簽中onClick元素值

}

4.使用findViewById()獲取layout中“@+id/xx”對應(yīng)元件中的值,如TextView brands = (TextView) findViewById(R.id.brands);


三验烧、State Your Intent

講述建立多個layout的APP如何實現(xiàn)板驳。

1.AndroidManifest.xml文件,所有的acitivy都應(yīng)該在其中declared

<action android:name="android.intent.action.MAIN">指定APP的主activity

<category android:name="android.intent.category.LAUNCHER">表示這個activity可以用來啟動APP

2.使用intent去start另一個activity碍拆。

import android.content.Intent;

Intent intent = new Intent(Source.this, Target.class);

startActivity(intent);

3.兩個activity之間傳遞消息

在傳遞者中若治,intent.putExtra("message", MessageText);

在接收者中,Intent intent = getIntent(); String messageText = intent.getStringExtra("message");

4.使用action在不同app間傳遞消息

Intent intent = new Intent(Intent.ACTION_SEND);

intent.setType("text/plain");

intent.putExtra(Intent.EXTRA_TEXT, message);

5.每個app響應(yīng)intent:android從每個app的AndroidManifest.xml中查找相應(yīng)的intent-filter

<intent-filter>

----<action android:name="android.intent.action.SEND" />

----<category android:name="android.intent.category.DEFAULT" />

----<data android:mimeType="*/*" />

</intent-filter>

四倔监、Being an Activity

1.Hander來操作多個線程直砂,schedule code,且不會block主thread浩习。

2.解決手機rotated screen造成activity recreated的方法

1. AndroidManifest.xml中<activity>標(biāo)簽中加入android:configChanges="orientation|screenSize"

2. save current state静暂,

public void onSaveInstanceState(Bundle savedInstanceState){

----savedInstanceState.putType("typevalue",typevalue);

}

使用時,在onCreate開頭谱秽,setContentView后洽蛀,

if(savedInstanceState != null){

----typevalue = savedInstanceState.getType("typevalue");

}


十三、At your service

1.兩種類型的service疟赊,

1. Started service郊供,運行到操作結(jié)束,即使activity destroy自己后近哟,仍會運行驮审。如大文件的下載等。使用時繼承IntentService類吉执。

2. Bound service疯淫,運行周期在bound activity時,可以和activity進行交互戳玫。使用時繼承Service類熙掺。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市咕宿,隨后出現(xiàn)的幾起案子币绩,更是在濱河造成了極大的恐慌,老刑警劉巖府阀,帶你破解...
    沈念sama閱讀 211,496評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缆镣,死亡現(xiàn)場離奇詭異,居然都是意外死亡试浙,警方通過查閱死者的電腦和手機费就,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,187評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來川队,“玉大人力细,你說我怎么就攤上這事睬澡。” “怎么了眠蚂?”我有些...
    開封第一講書人閱讀 157,091評論 0 348
  • 文/不壞的土叔 我叫張陵煞聪,是天一觀的道長。 經(jīng)常有香客問我逝慧,道長昔脯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,458評論 1 283
  • 正文 為了忘掉前任笛臣,我火速辦了婚禮云稚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘沈堡。我一直安慰自己静陈,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,542評論 6 385
  • 文/花漫 我一把揭開白布诞丽。 她就那樣靜靜地躺著鲸拥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪僧免。 梳的紋絲不亂的頭發(fā)上刑赶,一...
    開封第一講書人閱讀 49,802評論 1 290
  • 那天,我揣著相機與錄音懂衩,去河邊找鬼撞叨。 笑死,一個胖子當(dāng)著我的面吹牛浊洞,可吹牛的內(nèi)容都是我干的牵敷。 我是一名探鬼主播,決...
    沈念sama閱讀 38,945評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼沛申,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了姐军?” 一聲冷哼從身側(cè)響起铁材,我...
    開封第一講書人閱讀 37,709評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎奕锌,沒想到半個月后著觉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,158評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡惊暴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,502評論 2 327
  • 正文 我和宋清朗相戀三年饼丘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辽话。...
    茶點故事閱讀 38,637評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡肄鸽,死狀恐怖卫病,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情典徘,我是刑警寧澤蟀苛,帶...
    沈念sama閱讀 34,300評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站逮诲,受9級特大地震影響帜平,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜梅鹦,卻給世界環(huán)境...
    茶點故事閱讀 39,911評論 3 313
  • 文/蒙蒙 一裆甩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧齐唆,春花似錦嗤栓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,744評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至媒殉,卻和暖如春担敌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背廷蓉。 一陣腳步聲響...
    開封第一講書人閱讀 31,982評論 1 266
  • 我被黑心中介騙來泰國打工全封, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人桃犬。 一個月前我還...
    沈念sama閱讀 46,344評論 2 360
  • 正文 我出身青樓刹悴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親攒暇。 傳聞我的和親對象是個殘疾皇子土匀,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,500評論 2 348

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