Android技術(shù)棧和經(jīng)驗

1.開發(fā)工具

Android Studio

Gradle 構(gòu)建

1.Gradle 版本配置和版本升級浴鸿,gradle 采用wrapper方式井氢。可以做到每個項目獨自使用gradle版本岳链。gradle/wrapper/gradle-wrapper.properties并修改distributionUrl=https://services.gradle.org/distributions/gradle-3.0-all.zip到你想升級的版本花竞。

2.構(gòu)建模塊化項目配置org.gradle.parallel=true

3.配置簽名信息

4.設(shè)置第三方maven 地址

5.Gradle 拆分及引用 apply from:"../resource/config.gradle"

6.全局變量定義及引用

7.AndroidManifest占位符,BuildConfig以及資源配置

8.aar本地庫依賴

?Android sdk 編譯版本掸哑,support约急,主題

1.compileSdkVersion:編譯版本,控制可以使用的 API 举户。不會被包含到 APK 中,minSdkVersion :最低兼容版本,targetSdkVersion:應(yīng)用運行時使用的版本,即使使用了高版本API也不會生效遍烦。

2.主題Hoho Theme:4.0之前俭嘁。在4.0之后Android推出了Material Design的概念

3.v4 v7 v13

1)support-v4 : 該系列包用在API Level 4(即Android 1.6)或者更高版本以上。在開發(fā)中服猪,默認都會使用到這個包供填。

2)support-v7 : 該系列包是為了考慮在API level 7(Android 2.1)及以上使用高版本效果而設(shè)計的,v7包含了v4的所有效果(v7中包含v4包的罢猪,即v7依賴于v4)近她,v7當中支持了很多新的效果,最新的版本中還支持了Material Design的多種新的布局和空間膳帕。比如說:RecyclerView粘捎、TabLayout、ToolBar危彩、CardView等等新的包攒磨。

3)support-v13 : 該兼容包系列主要是為了兼容API level 13(Android 3.2)以上的,是為了針對于平板兼容開發(fā)的汤徽,由于平板屏幕較大娩缰,因此該系列增強的對Fragment效果的支持,使得Fragment能夠在平板的各個版中兼容(一般手機開發(fā)者不用該包)谒府。

4)v14(兼容4.0及以上)

5)v17(兼容4.2及以上)主要是為了支持電視設(shè)備拼坎,并為電視設(shè)備提供了一系列的組件。

2.項目架構(gòu)

App應(yīng)用

擴展功能模塊

功能庫Library Common Library 工具庫

3.View 的繪制

View的繪制流程&Activity的生命周期完疫。在ActivityThread中泰鸡,通過attache初始化window,將decorview添加進去。創(chuàng)建viewRootImpl對象壳鹤,view 的繪制流程首先開始于ViewRootImpl的performTraversals方法鸟顺。經(jīng)過三大過程。Measure、layout讯嫂、draw蹦锋。而在Activity時通過onCreate()方法中調(diào)用setContentView();

setContentView 的源碼分析和SnackBar 分析

View和ViewGroup的繪制原理源碼分析。

4.事件分發(fā)

?涉及分發(fā)及核心

么整個事件流向應(yīng)該是從Activity---->ViewGroup--->View 從上往下調(diào)用dispatchTouchEvent方法欧芽,再由View--->ViewGroup--->Activity從下往上調(diào)用onTouchEvent方法莉掂。

5.動畫框架

?逐幀動畫

?補間動畫

?屬性動畫

(1)ValueAnimator:包含了屬性動畫的核心功能,動畫時間千扔,開始和結(jié)束屬性值計算方法等憎妙,這個類也是屬性動畫的基類。

(2)ObjectAnimator:繼承自ValueAnimator曲楚,其實如果要改變一個事物的某個屬性變化會比較經(jīng)常用到這個方法厘唾。

(3)AnimationSet:用于組合多個動畫的,可以設(shè)置要組合動畫的時序關(guān)系龙誊。

(4)TypeEvalutors:都是翻譯成估值器抚垃,其實就是計算下一個運動到的值的類(根據(jù)動畫的開始和結(jié)束還有TimeInterpolation計算出當前時間的屬性值)

(5)TimeInterplator:這個翻譯都是插值器,他是一個描述運動變化的方式趟大,如勻速運動鹤树,加速運動或者先加速后減速等,他有很多子類逊朽,待會會介紹罕伯。

(6)ViewPropertyAnimator:這個類其實就是對View做屬性動畫的一個簡略版,有些情況用到這個會簡單很多叽讳。

6.Handler機制

1)Handler,MessageQueue,與Looper三者關(guān)系分析

2)HandlerThread源碼分析

3)IntentService源碼分析

4)Handler常見應(yīng)用場景和常見問題分析

7.Binder機制

?Binder是一種跨進程的通信方式追他;

從Android Framework層來說,Binder是ServiceManager連接各種Manager和相應(yīng)ManagerService的橋梁岛蚤;

8.流行框架源碼分析

1)EventBus3.0源碼解析

2)AsynTask源碼分析

3)編譯期注解的使用例子分析

4)Butterknife源碼分析(一)

5)Butterknife源碼分析(二)

6)多進程的sharedprefrence解決方案DPreference

7)Volley源碼解析

8)OkHttp源碼分析

9)Builder建造者設(shè)計模式

10)Retrofit2源碼解析

11)Observer觀察者設(shè)計模式

12)責任鏈設(shè)計模式

13)Strategy策略模式

14)Decorator裝飾模式

15)GreenDao3.0數(shù)據(jù)庫

9.性能優(yōu)化

1)冷啟動優(yōu)化

? 1.1.APP啟動分析工具(TraceView湿酸,Systrace)

? 1.2.布局優(yōu)化(扁平化,Merge的使用灭美,ViewStub的使用)

? 1.3.APP啟動速度優(yōu)化實例解析

? 1.4.各種布局的性能對比(LinerLayout推溃,RelativeLayout)

2)內(nèi)存優(yōu)化

? 2.1.LeakCanary原理分析

? 2.2.Android DiskLruCache 源碼解析 硬盤緩存的絕佳方案[轉(zhuǎn)]

? 2.3.LruCache源碼分析

? 2.4.內(nèi)存泄漏的一些坑

? 2.5.MAT內(nèi)存泄漏分析(一)

? 2.6.MAT內(nèi)存泄漏分析(二)

3)網(wǎng)絡(luò)優(yōu)化

4)圖片壓縮性能優(yōu)化

5)數(shù)據(jù)傳輸性能優(yōu)化

6)減小APK體積

7)渲染優(yōu)化

? 7.1.UI卡頓原理分析

? 7.2.UI卡頓檢測分析

? 7.3.BlockCanary原理分析

? 7.4.卡頓優(yōu)化實例解析

8)電量優(yōu)化

? 8.1.APP耗電分析方法與工具(第三方,Google官方Battery Historian)

? 8.2.Android Doze源碼分析

? 8.3.AlarmManager研究 [轉(zhuǎn)]

? 8.4.在Android Lollipop中使用JobScheduler

9)Android ANR在線監(jiān)控原理

10)AndroidGodEye解析之幀率(fps)

11)AndroidGodEye解析之流暢度(sm)

10.網(wǎng)絡(luò)編程

1.TCP問題分析

2.OkHttp源碼分析

3.網(wǎng)絡(luò)傳輸數(shù)據(jù)加密策略(對稱加密AES届腐,DES铁坎,非對稱加密RSA)

4.二進制協(xié)議(mqtt協(xié)議),協(xié)議編解碼(tlv編解碼)

5.Java Socket編程(IO犁苏,NIO)

6.Java多線程編程(隊列硬萍,同步鎖,線程池)

11.FrameWork層源碼的分析

1)應(yīng)用程序內(nèi)Activity的啟動流程

2)startService的流程分析

3 ) 注冊廣播接收器的源碼分析

4)廣播發(fā)送過程源碼解析

5)廣播處理過程源碼解析

6)AssetManager加載資源過程

7)ClassLoader及dex加載過程

8)插件化框架VirtualApk之初始化

9)插件化框架VirtualApk之插件加載

10)插件化框架VirtualApk之Activity啟動

11)插件化框架VirtualApk之Service管理

12)熱修復(fù)框架AndFix完全解析

13)InstantRun源碼分析

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末围详,一起剝皮案震驚了整個濱河市朴乖,隨后出現(xiàn)的幾起案子祖屏,更是在濱河造成了極大的恐慌,老刑警劉巖买羞,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袁勺,死亡現(xiàn)場離奇詭異,居然都是意外死亡畜普,警方通過查閱死者的電腦和手機期丰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吃挑,“玉大人钝荡,你說我怎么就攤上這事〔俺模” “怎么了埠通?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長逛犹。 經(jīng)常有香客問我端辱,道長,這世上最難降的妖魔是什么圾浅? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任掠手,我火速辦了婚禮憾朴,結(jié)果婚禮上狸捕,老公的妹妹穿的比我還像新娘。我一直安慰自己众雷,他們只是感情好灸拍,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著砾省,像睡著了一般鸡岗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上编兄,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天轩性,我揣著相機與錄音,去河邊找鬼狠鸳。 笑死揣苏,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的件舵。 我是一名探鬼主播卸察,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼铅祸!你這毒婦竟也來了坑质?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎涡扼,沒想到半個月后稼跳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡壳澳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年岂贩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巷波。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡萎津,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抹镊,到底是詐尸還是另有隱情锉屈,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布垮耳,位于F島的核電站颈渊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏终佛。R本人自食惡果不足惜俊嗽,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望铃彰。 院中可真熱鬧绍豁,春花似錦、人聲如沸牙捉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽邪铲。三九已至芬位,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間带到,已是汗流浹背昧碉。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留揽惹,地道東北人被饿。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像永丝,于是被迫代替她去往敵國和親锹漱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

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