结构
1.Mvp
2.oop
3.aop
4.mvvm
代码规范
1. checktype 插件(checkstyle-idea)
静态代码检测工具
1. android lint 插件(as自带)
专门检测android代码
2. fireline 插件(360 fireline plugin)
3. Godeyes 插件(godeyes)
4. Infer
使用参考https://www.jianshu.com/p/4667e36aadea
5. findbug插件 (findbug)
将字节码与缺陷模式对比
6. pmd 插件(QAplug-pmd)
将源代码进行对比
内存分析
1.stetho
2.LeakCanary
3.mat
单元测试框架
1. junit(集成)
测试java业务
2. mockito(集成)
生成测试实例,行为验证,插桩
3. powermock(集成)
支持static final private 生成实例
4. Robolectric(集成)
可测试Android组件等
动态代码检测工具
1.blockcanary
ANR监测,卡顿检测
2.strictmode
检测代码违规操作
图片加载
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)
网络
1. Volley
2. okhttp + Retrofit
3. android-async-http
数据解析
1. fastjson
2. gson
3. jackson
4.flatbuffer
数据库
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
代码优化
1. SparseBooleanArray ===》Hasmap<Integer,Boolean>
2. SparseIntegerArray ===》Hasmap<Integer,Integer>
3. SparseLongArray ===》 Hasmap<Integer,Long>
4. SparseArray ===》 Hasmap<Integer,String>
5. java语言中,非静态内部匿名类会持有外部类的一个隐式的引用,导致外部类无法及时被回收 例如:activity中创建
Handle handle = new Handler(){
.....
}
6. 单例中使用context,要用application中的,不然activity会无法释放
7. 用好4大引用(强,软,弱,虚)
8. 不要在循环中创建相同的对象
9. 避免内部使用set/get
10. 对常量使用static final