Android通用流行框架大全:
1.缓存:DiskLruCache。 Java实现基于LRU的磁盘缓存。
Github地址:https://github.com/JakeWharton/DiskLruCache
2.图片加载:
Android Universal Image Loader。一个强大的加载,缓存,展示图片的库。
https://github.com/nostra13/Android-Universal-Image-Loader
Picasso。一个强大的图片下载与缓存的库。
https://github.com/square/picasso
Fresco。一个用于管理图像和他们使用的内存的库。
https://github.com/facebook/fresco
Glide。 一个图片加载和缓存的库。
https://github.com/bumptech/glide
3.图片处理。
Picasso-transformations。一个为Picasso提供多种图片变换的库。
https://github.com/wasabeef/picasso-transformations
Glide-transformations。一个为Glide提供多种图片变换的库。
https://github.com/wasabeef/glide-transformations
Android-gpuimage。基于OpenGL的Android过滤器。
https://github.com/CyberAgent/android-gpuimage
4.网络请求。
Android Async HTTP。Android异步HTTP库。
https://github.com/loopj/android-async-http
AndroidAsync。异步Socket,HTTP(客户端+服务器),WebSocket,和socket.io库,基于NIO而不是线程。
https://github.com/koush/AndroidAsync
OkHttp。一个Http与Http/2的客户端。
https://github.com/square/okhttp
Retrofit。类型安全的Http客户端。
https://github.com/square/retrofit
Volley。谷歌推出的Android异步网络请求框架和图片加载框架。
https://android.googlesource.com/platform/frameworks/volley
5.网络解析。
Gson。一个Java序列化/反序列化库,可以将JSON和java对象互相转换。
https://github.com/google/gson
Jackson。Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。
https://github.com/codehaus/jackson
Fastjson。Java上一个快速的JSON解析器/生成器。
https://github.com/alibaba/fastjson
HtmlPaser。一种用来解析单个独立html或嵌套html的方式。
https://sourceforge.net/projects/htmlparser/
Jsoup。一个以最好的DOM,css和jquery解析html库。
https://github.com/jhy/jsoup
6.数据库。
OrmLite。JDBC和Android的轻量级ORM java包。
https://sourceforge.net/projects/ormlite/files/releases/com/j256/ormlite/
Suger。用超级简单的方法处理Android数据库。
https://github.com/satyan/sugar
ActiveAndroid。以活动记录方式为Android SQLite提供持久化。
https://github.com/pardom/ActiveAndroid
7.依赖注入。
ButterKnife。将Android视图和回调方法绑定到字段和方法上。
https://github.com/JakeWharton/butterknife
Dagger2。一个Android和java快速依赖注射器。
https://github.com/google/dagger
RoboGuice。Android平台的Google Guice。
https://github.com/roboguice/roboguice
8.图表。
MPAndroidChart。一个强大的Android图表视图/图形库。
https://github.com/PhilJay/MPAndroidChart
9.后台处理。
Tape。一个轻快的,事务性的,基于文件的FIFO的库。
https://github.com/square/tape
Android Priority Job Queue。 一个专门为Android轻松调度任务的工作队列。
https://github.com/yigit/android-priority-jobqueue
10.事件总线。
EventBus。Android优化的事件总线,简化了活动、片段、线程、服务等的通信。
https://github.com/greenrobot/EventBus
Otto。 一个基于Guava的增强的事件总线。
https://github.com/square/otto
11.响应式编程。
RxJava。JVM上的响应式扩展。
https://github.com/ReactiveX/RxJava
RxAndroid。Android上的响应式扩展,在RxJava基础上添加了Android线程调度。
https://github.com/ReactiveX/RxAndroid
RxBinding。提供用RxJava绑定的Android UI的API。
https://github.com/JakeWharton/RxBinding
Agera。Android上的响应式编程。
12.Log框架。
Logger。简单,漂亮,强大的Android日志工具。
https://github.com/orhanobut/logger
Timber。一个小的,可扩展的日志工具。
https://github.com/JakeWharton/timber
13.测试框架。
Mockito。Java编写的Mocking单元测试框架。
https://github.com/mockito/mockito
Robolectic。Android单元测试框架。
https://github.com/xtremelabs/robolectric
14.调试框架。
Stetho。调试Android应用的桥梁,使得可以利用Chrome开发者工具进行调试。
https://github.com/facebook/stetho
15.性能优化。
LeakCanary。 内存泄露检测工具。
https://github.com/square/leakcanary
ACRA。Android应用程序崩溃报告。
https://github.com/ACRA/acra
Java内容:
1. 多线程操作: 图书:Java并发编程实战、Java编程思想
(1) 线程生命周期:创建(new)、就绪(runnable)、运行(running)、阻塞(blocked)、死亡(dead)。
(2) 实现runnable接口和继承thread的使用场景。
(3) 生命周期如何灵活运用。
(4) 控制线程。优先级、后台线程、线程休眠、线程让步。
(5) 线程并发、线程池的使用、减少锁的竞争、锁机制及结构化并发应用程序。
2. JVM: 图书:深入理解java虚拟机
(1) 工作原理及特点,运行过程。
(2) JVM内存管理、GC模型、如何编写GC友好的代码。
(3) 自动内存管理机制,Java内存区域与内存异常,Java堆溢出、虚拟机栈和本地方法栈溢出。
(4) 垃圾收集器与内存分配策略,动态对象生命周期。
(5) 类加载机制,类加载器,Java线程调度。
3. 设计模式:
常用设计模式: 图书:大话设计模式
(1) 工厂模式,设计思想及如何灵活运用。
(2) 单例模式,设计思想灵活运用。
(3) 代理模式,设计思想及灵活运用。
Android内容:
基础知识:
(1) AndroidStudio安装、运行第一个应用。
(2) 四大组件。
Activity:
生命周期、4种启动模式、task相关。
Service:
生命周期及两种启动方式、本地服务和远程服务、前台服务和后台服务、进程内与服务通信。
Boardcastreceiver:
生命周期、特性、静动注册方式、普通及有序广播。
ContentProvider:
Uri,ContentResolver、使用场景。
(3) 布局文件内容。
LinearLayout、RelativeLayout,布局文件嵌套。
(4) 友好交互学习。
Listview列表:
异步和动态加载、缓存与优化。
Dialog提示:
ProgressDialog:
自定义进度提示框、网络请求异常情况策略。
Notification:
通知类型、更新与移除通知、视觉风格。
(5) NDK:
JNI操作,运行及编译过程,如何做到编译安全。
(6) SDK:
SDK定义、如何开发并方便调用,安全因素有哪些。
(7) android基本架构:
系统运行库:程序库、运行库及Linux内核操作。
(8) 资源文件及manifest.xml结构内容:
资源文件分类及存储,权限设置及系统权限获取。
(9) 多线程与通信:
多线程启动方式及消息机制的熟练使用、线程池的管理与操作。
线程间通信handle及asyncTask掌握。
进程间通信aidl。
(10) 高级ui学习:
ViewGroup定义自己的View及ui展示,设置自定义ViewGroup。
Fragment碎片及ViewPager导航、ViewFlipper。
ActionBar定义菜单及自定义菜单。
(11) 网络访问:
HttpURLConnection:熟练使用。
Socket通信:熟练使用。