Android路线图

2018-05-07 Mystery0 M 更多博文 » 博客 » GitHub »

Android 学习路线

原文链接 https://mystery00.github.io/2018/05/07/Android%E8%B7%AF%E7%BA%BF%E5%9B%BE/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


Java部分(基础)

基础部分1 https://www.imooc.com/learn/85

  1. 基本的语句(if else这些)
  2. 数组,函数

基础部分2 https://www.imooc.com/learn/124

  1. 类和对象(构造函数、静态变量、静态方法)
  2. 继承(方法重写、抽象类)
  3. 接口

基础部分3

  1. 集合,泛型,Map,迭代器(Iterator)
  2. 常用的工具类(String、File、Date、Calendar、)
  3. 异常处理(try……catch)
  4. 输入输出流(可以后面在Android需要时学习)
  5. 多线程(可以后面在Android需要时学习)

Android(基础)

https://www.imooc.com/course/programdetail/pid/33 把这个路径收藏了

  1. AndroidManifest.xml是什么,项目的结构
  2. 五大布局(布局可以嵌套,达到的层次是给你随便一个界面,你知道该怎么写)、可以去看一下约束布局ConstraintLayout 任务:计算器布局、登录页面
  3. Activity(生命周期了解,启动模式了解)
  4. intent传递数据(各种数据怎么传,一个对象怎么传)
  5. 基础控件(TextView、EditText、ImageView、ImageButton、CheckBox、RadioButton、RadioGroup、Switch等),事件监听
  6. 高级控件1(ListView(同时了解MVC,了解就好)、RecyclerView) https://www.imooc.com/learn/365 上面的那个链接看看,第一行代码上的自定义Adapter不用看了,直接看继承BaseAdapter的 任务:写两个Activity,第一个Activity加载一个List,然后通过intent传递这个list到第二个Activity,然后再第二个Activity使用ListView以及RecyclerView加载显示(考察activity、基础控件、intent)
  7. 高级控件2(DatePicker、TimePicker、GridView、Spinner、ProgressBar) 任务:一个简易的闹钟APP(只需要实现时间的选择【日期选择、时间选择】,比如说一个界面设置闹钟,然后跳转第二个界面,把那个数据显示一下)
  8. Service(如何注册服务,怎样启动服务,怎样绑定服务,启动服务和绑定服务的区别和联系,掌握服务的生命周期)、IntentService可以去看一下 任务:一个Activity,单击按钮启动Service,然后Service里面使用MediaPlayer播放音乐(放在APP里面的assert文件夹)
  9. 对话框(Dialog)、Toast、Snackbar、菜单(Menu)
  10. Fragment(Fragment的生命周期,以及Fragment与Activity之间的相互通信)(如果感觉不是很好理解,可以忽略一些东西)
  11. ViewPager、ScrollView 任务:一个启动页,带底部的小红点
  12. 数据存储(文件、SharedPreference、数据库) 任务:1.把以前写的闹钟APP写成能用的;2.登陆的界面逻辑实现、自动登陆、登录状态的存储
  13. 广播接收器、内容提供者(会写)
  14. 多线程(Thread、Handler、异步操作) 任务:Java实现一个多线程卖票(四个窗口同时卖100张票)
  15. 网络(网络请求、WebView的使用)
  16. 动画,绘图
  17. 事件分发机制
  18. 自定义View、自定义ViewGroup 额外:Git-版本控制工具 额外:Material Design(Google的界面设计规范)

基础部分肯定不止这么一些东西,另外的东西如果需要可以去学习,按情况学习。 这个时候,你去开发任何一个APP都是能够写出来了的,再加点框架,就可以堆项目经验了。 框架推荐:Okhttp,Volley,Glide,AsyncTask,LitePal,RxJava,RxAndroid,Retrofit 这些框架有些是重复的,按需学习

Java高级

这块就6p了,我这里只提要点,到这个时候你们会知道是些什么东西的,没有先后顺序要求

  1. 面向对象和面向过程的思想
  2. 线程、线程池
  3. 类的加载流程(双亲委托模型),加载方式
  4. 内存的管理机制,内存回收算法(引用计数、标记-清除、复制算法、标记-压缩、分代)、内存泄漏
  5. 等等

Android中高级

不分先后顺序

  1. 四大组件生命周期,启动流程
  2. 架构:MVC、MVP、MVVM
  3. IPC(跨进程通信)
  4. 性能优化
  5. NDK开发
  6. 各种东西的高级用法
  7. Gradle开发(可选)

其他方面

  1. Kotlin(开发语言)
  2. 设计模式(全语言通用)
  3. Android系统相关,如果你感兴趣的话会自己去搞的(Xposed,Magisk,SU,修改源码以及编译Android)