結構
1.Mvp
2.oop
3.aop
4.mvvm
代碼規(guī)范
?1. ?checktype 插件(checkstyle-idea)
靜態(tài)代碼檢測工具
1. android lint 插件(as自帶)
專門檢測android代碼
2. fireline 插件(360 fireline plugin)
3. Godeyes 插件(godeyes)
4. Infer
使用參考http://www.reibang.com/p/4667e36aadea
5. findbug插件 (findbug)
將字節(jié)碼與缺陷模式對比
6. pmd 插件(QAplug-pmd)
將源代碼進行對比
內存分析
? ?1.stetho
? ?2.LeakCanary
? ?3.mat
單元測試框架
1. junit(集成)
測試java業(yè)務
2. mockito(集成)
生成測試實例茸时,行為驗證奸远,插樁
3. powermock(集成)
支持static final private 生成實例
4. Robolectric(集成)
可測試Android組件等
動態(tài)代碼檢測工具
1.blockcanary ?
ANR監(jiān)測灸异,卡頓檢測
2.strictmode
檢測代碼違規(guī)操作
圖片加載
1. Android-Universal-Image-Loader
2. Picasso
3. Fresco
4. Glide
圖片壓縮
1. imageOptim
無損壓縮
2.imageAlpha
有損壓縮
3.TinyPng
有損壓縮
4.png/jpeg轉webp
webp-android-backport第三方庫來轉(webp轉換工具可以選智圖和isparta)
網(wǎng)絡
1. Volley
2. okhttp + Retrofit
3. android-async-http
數(shù)據(jù)解析
1. fastjson
2. gson
3. jackson
4.flatbuffer
數(shù)據(jù)庫
1. OrmLite
2. sugar
3. GreenDao
4. ActiveAndroid
5. sqlbrite
6. realm
7. objectbox
依賴注入
1. ButterKnife
2. dataBinding
3. Dagger2
4. AndroidAnnotations
5. roboguice
事件總線
1. EventBus
2. Otto
3. RxJava
4. RxJavaJoins
5. RxAndroid
6. RxBinding
7. Agera
圖表
1.WilliamChart
2.HelloCharts
3.MPAndroidChart
Log框架
1.Logger
2.hugo
3.timber
UI自動化測試框架
1.appium
支持Android和iOS平臺,支持多語言編寫測試用例
2.Robotium
基于控件操作
3.Robolectric
4.JUnit
5.Monkeyrunner
6.UiAutomator
支持安卓4.0以上所有事件操作重父,基于控件操作
7.Espresso
Google推出 簡潔易上手
8.monkey runner
sdk自帶,基于坐標點來測試,可控制多設備,可擴展自動化
9.monkey
sdk自帶,基于坐標點來測試
調試框架
1.LeakCanary
2.ACRAAndroid
代碼優(yōu)化
1. SparseBooleanArray ===》Hasmap<Integer,Boolean>
2. SparseIntegerArray ===》Hasmap<Integer,Integer>
3. SparseLongArray ===》?Hasmap<Integer,Long>
4.?SparseArray ===》?Hasmap<Integer,String>
5. java語言中嗦枢,非靜態(tài)內部匿名類會持有外部類的一個隱式的引用,導致外部類無法及時被回收 例如:activity中創(chuàng)建
Handle handle = new Handler(){
.....
}
6. 單例中使用context,要用application中的附鸽,不然activity會無法釋放
7. 用好4大引用(強脱拼,軟,弱坷备,虛)
8. 不要在循環(huán)中創(chuàng)建相同的對象
9. 避免內部使用set/get
10. 對常量使用static final