滑動(平移)的實現(xiàn)方式 首先看一下有幾種方式可以實現(xiàn)滑動效果耀盗,實際也就是平移百匆。 通過layout實現(xiàn) 也可以簡單封裝成一個方法蒸绩,實現(xiàn)X軸方向上的平移: 通過offset方法實...
滑動(平移)的實現(xiàn)方式 首先看一下有幾種方式可以實現(xiàn)滑動效果耀盗,實際也就是平移百匆。 通過layout實現(xiàn) 也可以簡單封裝成一個方法蒸绩,實現(xiàn)X軸方向上的平移: 通過offset方法實...
觀察者模式 下面寫了一個簡單例子耀找,實現(xiàn)圖片的異步加載。首先實現(xiàn)一個Observer對象洋幻,用來接收數(shù)據(jù)讲竿,更新圖片內(nèi)容。onNext方法接收一個Bitmap對象庄涡。 然后實現(xiàn)一個O...
Junit Android Studio創(chuàng)建的項目量承,默認(rèn)支持Junit測試,我們可以在src/test/目錄下看到一個ExampleUnitTest方法。使用方式也比較簡單撕捍,...
屬性動畫 屬性動畫支持在xml文件中定義拿穴,便于代碼復(fù)用。下面先給出一個最簡單的ValueAnimator例子忧风。我們需要在res/animator目錄下新建一份property...
OKHTTP AsyncTask RecyclerView Parcel 參考: 關(guān)于 GlideGoogle推薦——Glide使用詳解簡單跨進程使用EventBus
滑動列表是最常見的UI界面狮腿,也常見卡頓問題腿宰。今天看下兩種列表的使用上面有什么區(qū)別。 ListView ListView使用非常簡單缘厢,但是也容易出現(xiàn)卡頓問題吃度。默認(rèn)情況下是比較耗...
AIDL Android跨進程通信Binder ContentProvider Android四大組件-ContentProvider Messenger Android跨進...
應(yīng)用層 應(yīng)用層使用job,首先創(chuàng)建一個JobService贴硫,重寫onStartJob和onStopJob方法椿每,如果job需要執(zhí)行一些比較耗時操作,則可以通過異步的方式實現(xiàn)英遭,在...
裝飾模式 以我們最熟悉的Context為例间护,它就是一種裝飾模式。 我是這樣理解的挖诸,Context是一個抽象的人兑牡,沒有具體指誰,ContextImpl是一個裸男税灌,Context...
類加載器 通常情況下均函,我們都認(rèn)為有三種系統(tǒng)提供的類加載器: 但是,從虛擬機的角度講菱涤,只有兩種不同的類加載器苞也,Bootstrap和其他加載器。因為Bootstrap是完全用C+...
View的刷新 前面學(xué)習(xí)過粘秆,view的刷新過程分為三步如迟,measure,layout和draw攻走。 所以一般的卡頓問題都可以從這三個過程分析殷勘,通過systrace查看哪一個流程...
應(yīng)用層 ContentProvider平時使用比較少,今天大概看一下它的使用和簡單原理昔搂。通常ContentProvider會結(jié)合SQLiteDatabase數(shù)據(jù)庫一起使用玲销。所...
前面介紹全局廣播的時候,提到過根據(jù)intent的flag不同摘符,廣播會被加入到不同的隊列中贤斜。 前臺廣播 默認(rèn)情況下策吠,Intent是不帶FLAG_RECEIVER_FOREGRO...
前面介紹過本地廣播,今天看一下全局廣播的實現(xiàn)瘩绒。 registerReceiver 我們知道猴抹,應(yīng)用獲取到的Context都間接繼承了ContextWrapper,所以廣播注冊的...
getInstance LocalBroadcastManager實現(xiàn)了一個單例模式锁荔,每個進程只能獲取到一個實例蟀给。 為了實現(xiàn)單例,構(gòu)造函數(shù)是私有的阳堕。 構(gòu)造函數(shù)傳入了Appli...
變量占用的字節(jié) 我們都知道基本類型坤溃,byte跟boolean是1個字節(jié),short跟char是2個字節(jié)嘱丢,int跟float是4個字節(jié)薪介,long跟double是8個字節(jié)。 類型...
AMS的CPU負(fù)載檢測 AMS有一個線程會定時計算每個進程的CPU負(fù)載情況 原理比較簡單越驻,它通過synchronized同步鎖的方式汁政,在while循環(huán)中,空閑時通過wait進...