01-01-Android平臺(tái)一日游
1,觀賞Android的全景地圖:
給出了Google官方發(fā)布的Android的4層結(jié)構(gòu)圖。最底層為Linux Kernel(主要一些與硬件相關(guān)的最底層的操作,比如各種驅(qū)動(dòng),內(nèi)存管理,進(jìn)程管理等),第二層為Libraries和Android runtime(Library是一堆由C/C++編寫(xiě)的基礎(chǔ)庫(kù),Android主要包括一個(gè)Dalvik虛擬機(jī)和core libraries),第三層是application framework(顧名思義是各種的框架,用于對(duì)第四層的應(yīng)用提供接口和進(jìn)行管理),最高層是applications(就是平常呢些直接和手機(jī)用戶進(jìn)行交互的東西)。
2,Android VS Iphone
大致地介紹了兩個(gè)手機(jī)操作系統(tǒng)平臺(tái)之間的差異和兩個(gè)公司之間的敵對(duì)關(guān)系。
3,Android常用組件(四大天王)
Activity:最漂亮,門面功夫要做足。
Intent:最牛力,運(yùn)輸數(shù)據(jù)全賴他。
Service:最低調(diào),后臺(tái)服務(wù)看不到。
Content Provider:最博學(xué),數(shù)據(jù)存放集中地。
4,Android開(kāi)發(fā)工具
常用IDE:Eclipse(配上插件ADT)
開(kāi)發(fā)工具包:Android SDK(2010.12.06發(fā)布了2.3的版本)
5,參觀Android王國(guó)的金礦
大致介紹了通過(guò)Android的兩種賺錢的方法:賣應(yīng)用和嵌入廣告。(Mars推薦第二種)
01-02-搭建Android開(kāi)發(fā)環(huán)境
1,Android SDK的安裝
2,ADT的安裝與配置
3,Android的模擬器配置
/***官方給出了很詳細(xì)的安裝文檔,這里不詳細(xì)展開(kāi),步驟大致如下:
(1)安裝和配置JDK和JRE1.5(1.6更佳)
(2)安裝帶JavaSDK的Eclipse3.4或者3.5
(3)下載Android SDK(較為準(zhǔn)確的說(shuō)法是Android SDK download platform)
(4)在Eclipse中安裝ADT插件
(5)配置Android SDK的路徑
(6)下載虛擬機(jī)和相關(guān)文檔(和一些選用的功能)***/
01-03-say_hello_to_Android
1,創(chuàng)建一個(gè)Android應(yīng)用程序的步驟
(略)
2,Android應(yīng)用程序目錄結(jié)構(gòu)
src:short for source,存放源代碼的地方。
gen:主要就是R.java文件存放的位置。
asset:存放資源文件的文件夾,不會(huì)在R.java中自動(dòng)生成對(duì)應(yīng)的數(shù)據(jù)。
res:short for resource,存放資源文件的文件夾,并在R.java里面有對(duì)應(yīng)的數(shù)據(jù)。
3,AndroidManifest.xml文件的作用
每編寫(xiě)一個(gè)活動(dòng)都需要在這里注冊(cè)。
其中的<intent filter>是區(qū)分應(yīng)用啟動(dòng)時(shí)優(yōu)先啟動(dòng)哪個(gè)Activity的標(biāo)記。
4,Android相關(guān)文件資源的作用
提到了一個(gè)名為“鍵值對(duì)”的概念(XML的?要查閱相關(guān)資料了)
01-04-Activity初步
1,Activity的主要作用
2,創(chuàng)建一個(gè)Activity的方法
3,在AndroidManifest.xml文件當(dāng)中注冊(cè)應(yīng)用Activity的方法
4,在Android當(dāng)中添加控件的方法
/***按作者的說(shuō)法是:Activity不好翻譯,反正就是理解成一個(gè)與用戶進(jìn)行交互的界面,但是一個(gè)Activity本身只是一個(gè)近乎空白容器,要實(shí)現(xiàn)交互界面就需要在上面放入各種適用的控件。
一個(gè)Activity要繼承Activity類,而且至少要實(shí)現(xiàn)onCreate()的方法。并且記得要在AndroidManifest.xml中進(jìn)行注冊(cè)
每個(gè)Activity一般都對(duì)應(yīng)著一個(gè)layout,在layout中定義和放置控件,控件內(nèi)容可以直接在xml中編寫(xiě),但Mars的做法是添加id,然后在源代碼中用findViewById()方法來(lái)進(jìn)行引用和寫(xiě)入內(nèi)容。(感覺(jué)在xml里面寫(xiě)比較方便,用著順手就是了)***/
01-05-Activity和Intent
1,多個(gè)Activity之間的關(guān)系
2,Intent的基本作用
3,在一個(gè)Activity中啟動(dòng)另一個(gè)Activity的方法
4,使用Intent在Activity中傳遞數(shù)據(jù)的基本方法
/***可以用Intent對(duì)多個(gè)Activity之間切換(這些Activity可以在同一個(gè)應(yīng)用程序當(dāng)中也可以不再同一個(gè)應(yīng)用程序當(dāng)中)。Intent可以在Activity之間進(jìn)行切換和傳輸數(shù)據(jù)(data或者Extras鍵值對(duì))。Intent的作用不限于啟動(dòng)活動(dòng),Intent可以啟動(dòng)很多component,比如broadcast等。Mars認(rèn)為Intent雖然一般被翻譯成意圖但確實(shí)不是太好的翻譯,他目前也沒(méi)有想到較好的就暫時(shí)先吧Intent看成一種請(qǐng)求。
原ppt:
一個(gè)Intent對(duì)象包含了一組信息:
1,Component name 啟動(dòng)組件的名稱(組件可以是活動(dòng)啊廣播啊很多)
2,Action 要求組件執(zhí)行的動(dòng)作(系統(tǒng)給除了很多參數(shù),參看documentation)
3,Data 由原組件到新組件傳輸?shù)臄?shù)據(jù)
4,Category 沒(méi)講
5,Extras 也是數(shù)據(jù),不過(guò)是鍵值對(duì)(什么是鍵值對(duì)?理解成兩個(gè)字符串?)
6,Flags 沒(méi)講
***/
01-06-Android當(dāng)中的常見(jiàn)控件
1,TextView的使用方法(顯示類型文本框)
2,EditText的使用方法(可輸入類型文本框)
3,Button的使用方法(按鈕)
4,Menu的使用方法(菜單)
/***我在Mars操作中所注意到的東西:
(1)為所以顯示類型文本框中,setText()方法中最好是在string中建立鍵值對(duì)并進(jìn)行引用,這樣有助與實(shí)現(xiàn)應(yīng)用簡(jiǎn)化了各種語(yǔ)言的的翻譯問(wèn)題。(當(dāng)然目前不認(rèn)為寫(xiě)的應(yīng)用會(huì)被翻譯,不過(guò)好習(xí)慣是要提前養(yǎng)成的)
(2)Mars老師好會(huì)善用Eclipse強(qiáng)大的編輯功能,強(qiáng)大的快捷鍵比如Ctrl+Shift+O ; Alt+. ; Ctrl+1要多多使用之
(3)關(guān)于OptionsMenu的兩個(gè)方法:onCreateOptionsMenus()和OnOptionsMenuSelected()
***/
01-07-Activity生命周期(一)
七個(gè)生命周期:
(1)onCreate()在Activity第一次啟動(dòng)的時(shí)候執(zhí)行;在這里編寫(xiě)實(shí)現(xiàn)Activity的layout的代碼,并添加對(duì)應(yīng)的監(jiān)聽(tīng)器。
(2)onStart()在Activity能被用戶看到的時(shí)候執(zhí)行
(3)onResume()在Activity能獲得用戶焦點(diǎn)的時(shí)候執(zhí)行(能與用戶進(jìn)行交互的時(shí)候)
(4)onPause()在Activity當(dāng)中啟動(dòng)另一個(gè)Activity的時(shí)候執(zhí)行
(5)onStop()在Activity不能被用戶看到的時(shí)候執(zhí)行(被另外一個(gè)Activity完全覆蓋)
(6)onRestart()在處于stop()狀態(tài)的Activity重新啟動(dòng)的時(shí)候(區(qū)別于onCreate()的初次啟動(dòng))
(7)onDestroy()在Activity被銷毀的時(shí)候(兩種情況:用戶明確調(diào)用了finish()方法,或者在系統(tǒng)資源不足的時(shí)候系統(tǒng)自動(dòng)清理處于后臺(tái)狀態(tài)的Activity)
01-08-Activity的生命周期(二)
1,Task的基本概念
2,Activity與Task之間的關(guān)系
3,對(duì)話框風(fēng)格Activity的使用方法
/***
(1)Task is a stack of Activity.所以Task只能進(jìn)行push和pop操作,內(nèi)部不能進(jìn)行重新排序。Android顯示的始終時(shí)Task最上面的Activity。Task的一個(gè)重要意義:使Task中所以Activity成為一個(gè)整體,給用戶較好的體驗(yàn)。
(2)如果在調(diào)用另一個(gè)Activity的時(shí)候調(diào)用原Activity的finish()方法,原Activity會(huì)被銷毀(即不再在棧中)
(3)Android在系統(tǒng)資源不夠用的時(shí)候會(huì)自動(dòng)清理一些Activity,當(dāng)Activity處于onPause(),onStop,onDestroy()的狀態(tài)時(shí),則有可能會(huì)被kill掉
(4)一個(gè)Activity在AndroidManifest中注冊(cè)的時(shí)候,可以通過(guò)設(shè)置theme為theme.dialog的方法顯示為對(duì)話框風(fēng)格(就是不會(huì)完全遮擋住原Activity的那種,在實(shí)際手機(jī)應(yīng)用中相當(dāng)常用)***/
01-09-Activity布局初步(一)
1,LinearLayout的使用方法
2,TableLayout的使用方法
/***
大致介紹了線性和表格兩種常用布局和它們?cè)?font face="DejaVu Serif, serif">xml中的一些屬性比如gravity,padding,orientation,weight,singleLine等,詳細(xì)可以參看documentation
***/
01-10-Activity布局初步(二)
大致介紹了Layout的相互嵌套。(相互嵌套能夠構(gòu)造更加復(fù)雜和華麗的布局)
01-11-Activity的布局初步(三)
1,相對(duì)布局的基本概念
2,相對(duì)布局與其他布局的區(qū)別
3,相對(duì)布局的常用屬性介紹
/***相對(duì)布局用的是跟線性或表格布局不同的布局方式,它布局采用控件的相對(duì)位置來(lái)進(jìn)行設(shè)置。具體參數(shù)參看SDK或者視頻***/
01-12-Android常見(jiàn)控件(二)
1,RadioGroup和RadioButton的使用方法
2,CheckBox的使用方法
3,Toast的基本用法
/***
大致介紹了三種控件:
RadioGroup&&RadioButton 單選框
CheckBox 復(fù)選框
toast:(吐司?感覺(jué)就是小型提示框)
A toast is a view containing a quick little message for the user.
***/
01-13-常用控件(三)
1,ProgressBar的使用方法
2,ListView的使用方法
/***
介紹了進(jìn)度條和列表視圖的實(shí)現(xiàn)方法,這兩個(gè)是比較復(fù)雜的控件,其中ListView涉及Adaptor,在使用之前要好好參看視頻和SDK Documentation
***/
01-14-Handler的使用(一)
1,Handler的基本概念
2,Handler的基本使用方法
3,使用Handler更新ProgressBar
/***
(1)A
Handler allows you to send and process Message
and Runnable objects associated with a thread's MessageQueue
.
Each Handler instance is associated with a single thread and that
thread's message queue. When you create a new Handler, it is bound to
the thread / message queue of the thread that is creating it -- from
that point on, it will deliver messages and runnables to that message
queue and execute them as they come out of the message queue.
一個(gè)Handler允許你送出或者處理Message和關(guān)聯(lián)著一個(gè)線程消息隊(duì)列的Runnable對(duì)象。每一個(gè)Handler實(shí)力都聯(lián)系唯一一個(gè)線程和它的消息隊(duì)列。當(dāng)你創(chuàng)建一個(gè)Handler的時(shí)候,他必須綁定到那個(gè)創(chuàng)建它的線程的或者他的消息隊(duì)列上面——從那之后,他會(huì)傳遞信息和Runnable到消息隊(duì)列和在他們從消息對(duì)列出來(lái)的時(shí)候執(zhí)行他們。(目前我理解成Handler是一個(gè)操作臺(tái),而且只能唯一綁定一個(gè)線程和它的消息隊(duì)列的。)
(2)Mars老師給出的參考代碼時(shí)用Handler操作一條進(jìn)度條,中間涉及到了Runnable和消息隊(duì)列的通信問(wèn)題。通信的時(shí)候有arg1,arg2兩個(gè)int類型的變量,可以減少系統(tǒng)的消耗。
***/
01-15-Handler的使用(二)
1,Handler與線程
2,Bundle的用法
3,在新線程當(dāng)中處理小的的方法
/***
(1)在之前的例子中,如果直接用handler.post(Runnable)方法啟動(dòng)Runnable對(duì)象,Android默認(rèn)不會(huì)創(chuàng)建新的線程。而是直接把Runnable的run()方法放入到主線程的之星隊(duì)列當(dāng)中去。
(2)如果想真正實(shí)現(xiàn)兩個(gè)線程的并行運(yùn)行,Mars老師演示了兩種方法,第一種是在Java中用Thread t = new Thread(Runnable)和t.start()來(lái)啟動(dòng)新的線程。不知道出于什么樣的原因(估計(jì)是這樣做比較消耗內(nèi)存),所以Mars老師推薦的是另外一種方法——looper,但一般不會(huì)直接創(chuàng)建Looper,而是使用用HandlerThread(Looper)來(lái)創(chuàng)建一個(gè)與Lopper關(guān)聯(lián)的HandlerThread實(shí)例,然后使HandlerThread.start(),那么Looper就啟動(dòng)起來(lái)了,然后使用sendToTarget來(lái)觸發(fā)Handler中間的handleMessage方法就可以實(shí)現(xiàn)線程了。(思路有點(diǎn)亂,具體再看視頻吧)
(3)Bundle,目前理解成是一個(gè)簡(jiǎn)化的map就可以了(簡(jiǎn)化是指Bundle的鍵只能是字符串而且對(duì)應(yīng)的值一般是primitive,而map的鍵值都是Object),常用于傳遞一捆數(shù)據(jù)。
***/
01-16-SQLite使用方法
1,SQLite介紹
2,SQLiteOpenHelper的用法
3,使用adb訪問(wèn)SQLite
4,增,刪,改,查
/***
由于本人對(duì)數(shù)據(jù)庫(kù)不太了解,而且暫時(shí)也拍不上什么用場(chǎng),這節(jié)視頻先跳過(guò)。
***/
01-17-調(diào)試程序
1,DDSM(Dalvik Debug Monitor Service)的使用
2,常用程序調(diào)試方法
/***
大致學(xué)習(xí)了如何利用logcat和DDSM調(diào)試程序,DDSM視圖中可以重啟失去鏈接之后的虛擬機(jī),以及對(duì)虛擬機(jī)進(jìn)行數(shù)據(jù)導(dǎo)入導(dǎo)出工作,最牛掰的是當(dāng)虛擬機(jī)連接斷掉之后可以在這里重啟adb來(lái)解決問(wèn)題。利用logcat可以提取應(yīng)用運(yùn)行過(guò)程中的信息(根據(jù)重要程度分成五個(gè)檔位而且向下兼容)。使用Android提供的Log.d()方法結(jié)合適當(dāng)?shù)?font face="DejaVu Serif, serif">filter可以處理?xiàng)l是信息。
***/