Java部分(基础)
基础部分1 https://www.imooc.com/learn/85
- 基本的语句(if else这些)
- 数组,函数
基础部分2 https://www.imooc.com/learn/124
- 类和对象(构造函数、静态变量、静态方法)
- 继承(方法重写、抽象类)
- 接口
基础部分3
- 集合,泛型,Map,迭代器(Iterator)
- 常用的工具类(String、File、Date、Calendar、)
- 异常处理(try……catch)
- 输入输出流(可以后面在Android需要时学习)
- 多线程(可以后面在Android需要时学习)
Android(基础)
https://www.imooc.com/course/programdetail/pid/33 把这个路径收藏了
- AndroidManifest.xml是什么,项目的结构
- 五大布局(布局可以嵌套,达到的层次是给你随便一个界面,你知道该怎么写)、可以去看一下约束布局ConstraintLayout
任务:计算器布局、登录页面 - Activity(生命周期了解,启动模式了解)
- intent传递数据(各种数据怎么传,一个对象怎么传)
- 基础控件(TextView、EditText、ImageView、ImageButton、CheckBox、RadioButton、RadioGroup、Switch等),事件监听
- 高级控件1(ListView(同时了解MVC,了解就好)、RecyclerView)
https://www.imooc.com/learn/365
上面的那个链接看看,第一行代码上的自定义Adapter不用看了,直接看继承BaseAdapter的
任务:写两个Activity,第一个Activity加载一个List,然后通过intent传递这个list到第二个Activity,然后再第二个Activity使用ListView以及RecyclerView加载显示(考察activity、基础控件、intent) - 高级控件2(DatePicker、TimePicker、GridView、Spinner、ProgressBar)
任务:一个简易的闹钟APP(只需要实现时间的选择【日期选择、时间选择】,比如说一个界面设置闹钟,然后跳转第二个界面,把那个数据显示一下) - Service(如何注册服务,怎样启动服务,怎样绑定服务,启动服务和绑定服务的区别和联系,掌握服务的生命周期)、IntentService可以去看一下
任务:一个Activity,单击按钮启动Service,然后Service里面使用MediaPlayer播放音乐(放在APP里面的assert文件夹) - 对话框(Dialog)、Toast、Snackbar、菜单(Menu)
- Fragment(Fragment的生命周期,以及Fragment与Activity之间的相互通信)(如果感觉不是很好理解,可以忽略一些东西)
- ViewPager、ScrollView
任务:一个启动页,带底部的小红点 - 数据存储(文件、SharedPreference、数据库)
任务:1.把以前写的闹钟APP写成能用的;2.登陆的界面逻辑实现、自动登陆、登录状态的存储 - 广播接收器、内容提供者(会写)
- 多线程(Thread、Handler、异步操作)
任务:Java实现一个多线程卖票(四个窗口同时卖100张票) - 网络(网络请求、WebView的使用)
- 动画,绘图
- 事件分发机制
- 自定义View、自定义ViewGroup
额外:Git-版本控制工具
额外:Material Design(Google的界面设计规范)
基础部分肯定不止这么一些东西,另外的东西如果需要可以去学习,按情况学习。
这个时候,你去开发任何一个APP都是能够写出来了的,再加点框架,就可以堆项目经验了。
框架推荐:Okhttp,Volley,Glide,AsyncTask,LitePal,RxJava,RxAndroid,Retrofit
这些框架有些是重复的,按需学习
Java高级
这块就6p了,我这里只提要点,到这个时候你们会知道是些什么东西的,没有先后顺序要求
- 面向对象和面向过程的思想
- 线程、线程池
- 类的加载流程(双亲委托模型),加载方式
- 内存的管理机制,内存回收算法(引用计数、标记-清除、复制算法、标记-压缩、分代)、内存泄漏
- 等等
Android中高级
不分先后顺序
- 四大组件生命周期,启动流程
- 架构:MVC、MVP、MVVM
- IPC(跨进程通信)
- 性能优化
- NDK开发
- 各种东西的高级用法
- Gradle开发(可选)
其他方面
- Kotlin(开发语言)
- 设计模式(全语言通用)
- Android系统相关,如果你感兴趣的话会自己去搞的(Xposed,Magisk,SU,修改源码以及编译Android)