一、Java se基础

1、Java基本数据类型与表达式,分支循环。

2、String 和 StringBuffer 的使用、正则表达式。

3、面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收;构造函数、this关键字、方法和方法的参数传递过程、static 关键字、内部类。

4、对象实例化过程、方法的覆盖、final 关键字、抽象类、接口、继承的优点和缺点剖析;对象的多态性:子类和父类之间的转换、抽象类和接口在多态中的应用、多态带来的好处。

5、Java 异常处理,异常的机制原理。

6、常用的设计模式:Singleton、Template、Strategy 模式。

7、JavaAPI 介绍:种基本数据类型包装类,System 和 Runtime 类,Date 和 DateFomat 类等。

8、Java 集合介绍:Collection、Set、List、ArrayList、LinkedList、Hashset、Map、HashMap、Iterator等常用集合类API。

9、Java I/O 输入输出流:File 和 FileRandomAccess 类,字节流 InputStream 和 OutputStream,字符流 Reader 和 Writer,以及相应实现类,IO性能分析,字节和字符的转化流,包装流的概念,以及常用包装类,计算机编码。

10、Java 高级特性:反射和泛型。

11、多线程原理:如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、死锁。

二、android UI编程

1、Android 开发环境搭建:Android 介绍,Android开发环境搭建,第一个 Android 应用程序,Android 应用程序目录结构。

2、Android 初级控件的使用

TextView 控件的使用
Button 控件的使用方法
EditText 控件的使用方法
ImageView 的使用方法
RadioButton 的使用方法
Checkbox 的使用方法
Menu的 使用方法

3、Android 高级控件的使用

ListView的使用方法
GridView的使用方法
Adapter的使用方法
Spinner的使用方法
Gallary的使用方法
ScrollView的使用方法
RecyclerView

4、对话框与菜单的使用

Dialog 的基本概念
BlockquoteAlertDialog 的使用方法
DatePickerDialog 的使用方法
Menu 的使用方法
自定义 Menu 的实现方法

5、控件的布局方法

线性布局的使用方法
相对布局的使用方法

6、多Acitivity管理

AndroidManifest.xml 文件的作用
Intent 的使用方法
使用 Intent 传递数据的方法
启动 Activity 的方法
IntentFilter 的使用方法
Activity Group 的使用方法

7 、自定义控件实现方法

自定义 ListView 的实现方法
可折叠 ListView 的使用方法
自定义 Adapter 的实现方法
自定义 View 的实现方法
动态控件布局的上实现方法
上拉刷新下拉加载更多

三、android网络编程与数据存储

1、基于Android平台的HTTP通讯

Http 协议回顾
使用 Get 方法向服务器提交数据的方法
使用 POST 方法向服务器提交数据的实现方法
使用 Http 协议实现多线程下载
使用 Http 协议实现断点续传

2、Android数据存储技术

SQLite3 数据库简介
SQL 语句回顾
SQLite3 编程接口介绍
SQLite3 事务管理
SQLite3 游标使用方法
SQLite3 性能分析
访问 SDCard 的方法
访问 SharedPreferences 的方法

四、建议

初级工程师

技术要求

  • 基本知识点
    比如四大组件如何使用、如何创建 Service、如何进行布局、简单的自定义 View、动画等常见技术
  • 书籍推荐
    《第一行代码 Android》、《疯狂Android》

中级工程师

技术要求

  • 稍微深入的知识点
  • AIDL、Messenger、Binder、多进程、动画、滑动冲突、自定义View、消息队列等
  • 书籍推荐 《Android开发艺术探索》、《Android群英传》
  • AIDL:熟悉AIDL,理解其工作原理,懂 transact 和 onTransact 的区别;
  • Binder:从 Java 层大概理解 Binder 的工作原理,懂Parcel对象的使用;
  • 多进程:熟练掌握多进程的运行机制,懂 Messenger、Socket 等;
  • 事件分发:弹性滑动、滑动冲突等;
  • 玩转View:View 的绘制原理、各种自定义 View;
  • 动画系列:熟悉 View 动画和属性动画的不同点,懂属性动画的工作原理;
  • 懂性能优化、熟悉 mat 等工具 ;
  • 懂点常见的设计模式;
  • 搞懂 view 的滑动原理;
  • 搞懂如何实现弹性滑动;
  • 搞懂view的滑动冲突;
  • 搞懂view的 measure、layout 和 draw;
  • 然后再学习几个已有的自定义view的例子;
  • 最后就可以搞定自定义view了,所谓万变不离其宗;

高级工程师

技术要求

  • 稍微深入的知识点
  • 系统核心机制
  • 基本知识点的细节
  • 设计模式和架构
  • 书籍推荐《Android开发艺术探索》、《Android 源码设计模式解析与实战》、《Android内核剖析》
  • 继续加深理解”稍微深入的知识点“中所定义的内容
  • 了解系统核心机制:
  1. 了解SystemServer的启动过程
  2. 了解主线程的消息循环模型
  3. 了解AMS和PMS的工作原理
  4. 能够回答问题”一个应用存在多少个Window?“
  5. 了解四大组件的大概工作流程

  6. 基本知识点的细节
  7. Activity的启动模式以及异常情况下不同Activity的表现
  8. Service的onBind和onReBind的关联
  9. onServiceDisconnected(ComponentName className)和binderDied()的区别
  10. AsyncTask在不同版本上的表现细节
  11. 线程池的细节和参数配置
  12. 熟悉设计模式,有架构意识学习方法

任重道远