雖然不是純小白,但是也沒(méi)比小白厲害众眨。握牧。慚愧。娩梨。決定讀第二行代碼學(xué)習(xí)學(xué)習(xí)沿腰。
第一章
第一章,很基礎(chǔ)姚建。但是會(huì)有一些自己不清楚但又無(wú)關(guān)項(xiàng)目編寫的小點(diǎn)矫俺,記錄一下。
drawable文件夾是存圖片資源的掸冤; mipmap文件夾是存圖標(biāo)資源厘托;雖然不打緊,但是還是規(guī)范一下
minifyEnabled 用于指定對(duì)代碼進(jìn)行混淆
logt 生成TAG常量
第二章(Activity)
android:label 可以指定Activity的標(biāo)題欄內(nèi)容
如果應(yīng)用程序中沒(méi)有聲明任何一個(gè)活動(dòng)作為主活動(dòng)稿湿,這個(gè)程序任然可以正常安裝铅匹,只是無(wú)法在啟動(dòng)器中看到或者打開(kāi)這個(gè)程序。這種程序一般都是作為第三方服務(wù)供其他應(yīng)用在內(nèi)部進(jìn)行調(diào)用饺藤,如支付寶快捷支付服務(wù)
(搜到了下面的文章包斑,只是大致掃了一眼--2017/2/22)
http://blog.csdn.net/swust_chenpeng/article/details/11948475
第三章(UI)
progressbar
指定水平進(jìn)度條、涕俗、設(shè)置style 還有好些其他的 不過(guò)大多自定義用原生的不多吧
style="?android:progressBarStyleHorizontal"
android:max="100"
復(fù)習(xí)了一下RecyclerView 工作里大多都ListView解決罗丰,用的少就生疏了
第四章(Android碎片)
在碎片中模擬返回棧
FragmentTransaction中提供了一個(gè)addToBackStack()方法,可以用于將一個(gè)事務(wù)添加到返回棧中萌抵,一般傳入null即可。
碎片和活動(dòng)之間的通信
getFragmentManager().findFragmentById(R.id.XXX);可以得到相應(yīng)的碎片的實(shí)例
判斷程序應(yīng)該使用雙頁(yè)還是單頁(yè)模式元镀?借助限定符(Qualifiers)實(shí)現(xiàn)
在res目錄下新建layout_large文件夾绍填,在該文件夾下建立同名的Activity布局文件,原來(lái)的layout下布局文件包含一個(gè)fragment栖疑,layout_large文件夾下布局文件包含倆fragment
(讀pdf這就把圖copy進(jìn)來(lái) 不得不說(shuō)markdown真的蠻好用讨永,哈哈哈哈)
下邊說(shuō)最小寬度限定符--->建layout-sw600dp文件夾,即屏幕寬度大于600dp的都視為大屏
第五章(廣播)
第九章(服務(wù))
多線程編程------
IntentService繼承service 處理異步請(qǐng)求的一個(gè)類遇革,其內(nèi)有一個(gè)工作線程處理耗時(shí)操作
好處:不用在service中開(kāi)線程 卿闹,操作完成不用手動(dòng)停止
前臺(tái)服務(wù)
Android 中的定時(shí)任務(wù)一般有兩種實(shí)現(xiàn)方式揭糕,一種是使用 Java API 里提供的 Timer 類,
一種是使用 Android 的 Alarm 機(jī)制锻霎。這兩種方式在多數(shù)情況下都能實(shí)現(xiàn)類似的效果插佛,但 Timer有一個(gè)明顯的短板,它并不太適用于那些需要長(zhǎng)期在后臺(tái)運(yùn)行的定時(shí)任務(wù)量窘。我們都知道雇寇,為了能讓電池更加耐用,每種手機(jī)都會(huì)有自己的休眠策略蚌铜,Android 手機(jī)就會(huì)在長(zhǎng)時(shí)間不操作的情況下自動(dòng)讓 CPU 進(jìn)入到睡眠狀態(tài)锨侯,這就有可能導(dǎo)致 Timer 中的定時(shí)任務(wù)無(wú)法正常運(yùn)行。而 Alarm 機(jī)制則不存在這種情況冬殃,它具有喚醒 CPU 的功能囚痴,即可以保證每次需要執(zhí)行定時(shí)任務(wù)的時(shí)候 CPU 都能正常工作。
喚醒 CPU 和喚醒屏幕完全不是同一個(gè)概念
使用 SystemClock.elapsedRealtime()方法可以獲取到系統(tǒng)開(kāi)機(jī)至今所經(jīng)歷時(shí)間的毫秒數(shù)