一、Java基础
1 . 面向对象的三大特性: Java 作为面向对象编程语言,你得知道OOP的的三大特性 封装、继承、多态。
2 . 程序设计的6大原则:
- 单一职责原则
- 里氏替换原则
- 依赖倒置原则
- 接口隔离原则
- 迪米特法则
- 开闭原则
3 . 设计模式
- 单例模式 :double check 双重加锁方式、静态内部类方式、枚举方式。
- 构造器模式
- 模板方法模式
- 装饰器模式
- 观察者模式
- 责任链模式
- 策略模式
4 . Java 字符串相关 Java 字符串相关的三个类:String、StringBuilder、StringBuffer
5 . Java 线程池 线程池方面,JDK 为我们内置了几种线程池:
- newFixedThreadPool:newFixedThreadPool,创建固定大小的线程池,poolCoreSize和maxPoolSize 相等,到达coreSize,则将新的任务放到缓存队列,有线程执行完毕,直接去取。
- newSingleThreadExecutor:newSingleThreadExecutor,创建一个单线程的线程池,核心池的大小和最大池大小都为1.
- newCacheThreadPool:newCacheThreadPool,无大小限制的线程池,提交一个任务就创建一个线程执行。
6 . Java 集合
Collection (1) List:
- LinkedList
- ArrayList
- Vector
(2) Set
- HashSet
- TreeSet
Map:
- HashMap
- TreeMap
- HashTable
7 . Java 内存模型
Java 内存模型这一块非常重要,因为它涉及到我们程序的性能,我们需要知道,内存是如何分配的,成员变量、静态变量、局部变量、对象等各自分配到哪一个区:
- 栈内存
- 堆内存
垃圾回收机制:
- 年轻代:1 Eden 区 和2个Survivor 区
- 年老代
- 永久代
Java 基础总结:关于Java基础暂时就总结了这些,这些都是Android 开发中比较常用或者常常需要关心的一些东西。如果你想比较系统的学习Java基础相关的东西,推荐你去看一下经典书籍《Thinking in Java》。
二、Android 基础
1 . Android 四大组件
- Activity
- Service
- BroadcastReceiver
- ContentProvider
Activity:
- Activity 的生命周期
- Activity 的几种启动方式:standardSingleTaskSingleTopSingleInstance
- Activity 间传如何递数据?
- Activity 横竖屏切换生命周期有哪些变化?
- 显示Intent 和隐式Intent 有和区别?
Service:
- Service 的生命周期
- Service 的两种启动方式:
- 1, startService 2, bindService
- 2种启动方式 所走的生命周期方法是不一样的
- Service vs IntentService: Service 和IntentService 个自用于不同的场景,各自的场景和区别吗?
BroadcastReceiver:
ContentProvider ContentProvider 可能用得不是很多,可以用于共享数据,提供数据源,掌握会写增删改查就好了。
Android 常用的几种布局
- 帧布局 FrameLayout
- 线性布局 LinearLayout
- 相对布局 RelativeLayout
- Google 新出的约束布局ConstraintLayout
3 . Android Studio
Android Studio 是我们Android开发的常用工具,熟练操作和使用上面的快捷键和一些插件,对我们的开发效率有很大的帮助。
4 . Fragment
- Fragment 的生命周期
- Fragment 与fragment 之间的通讯方式
- Fragment 与Activity 之间的通讯方式
- Fragment + ViewPager 懒加载
- Fragment +TabLayout 选项卡
5 . 数据库相关 Android 自带数据库 Sqlite, 关于数据库,我们应该熟悉:
- 数据库和表的创建
- 数据的增删、改、查。
- 数据库升级:
- 三方库:GreenDao
6 . 常用控件基础控件
- RecyclerView & ListView
- ViewPager
- TextView
- ImageView
- Button
- Checkbox
- RadioButton
三、Android 进阶
1 . View
自定义View:
自定义view 的三种方式:
- 组合基础控件
- 继承基础控件,做相应的更改。
- 继承View 或 ViewGroup
2.View事件分发机制
App 的几种架构
- MVC
- MVP
- MVVM
3 . Android 动画
(1) Android 中的5种基础动画
- 平移动画
- 缩放动画
- 旋转动画
- Alpha 动画
- 帧动画
(2) 属性动画
- ObjectAnimator
- ValueAnimator
- AnimatorSet
(3)矢量动画
- svg
- VectorDrawable
- AnimatedVectorDrawable
4 . Material Design 系列
- Toolbar 的使用
- AppbarLayout+CollapsingToolbarLayout
- Behavior 相关:
- (1)BottomSheetBehavior (2)BottomSheetDialog (3)SwipeDismissBehavior (4)自定义Behavior
- TextInputLayout + TextInputEditText
- TabLayout
- BottomNavigationView
- CardView 阴影卡片
- Snackbar , FloatActionButton
5 . Android 多媒体
相机开发:
1, 使用自带的相机APP 拍照 2,系统相册选择照片 3,系统相机或相册获取的照片裁剪 4,使用相机API 开发相机: (1), Android 5.0 (API 21 )以下 使用Camera API (2) , Android 5.0 以上使用 Camera2 API 5 ,自定义相册开发 6 , 自定义裁剪界面
Android视频开发:
(1)视频播放 MediaPlayer VideoView
(2)视频编解码
音频开发:
AudioPlayer
音乐播放器
音视频开发这一块门槛较高,但是这也是比较吃香的一个领域,把这一块吃透了,你的优势就很大了,现在的直播这么火,对于这一块的需求还是比较大的。
6 . Git Git 版本控制 也是我们常用的,熟悉各种Git 命令。
7. Android 权限适配
Android 6.0 以上权限适配。
8 . Gradle
- 自定义Gradle插件
- Gradle 多渠道打包
四、学习了解开源库
图片加载框架:
- Universal-Imageloader
- Picasso
- Glide
- Frecssco
网络相关框架:
- Retrofit
- Okhttp
- Volley
RxJava :
- RxJava
- RxAndroid
数据库方面:
- GreenDao
- OrmLite
- Realm
五、文末
关于Java基础、Android 基础、Android 进阶 ,只是作了知识点梳理,没有解答,点到为止。要详细学习这些知识点需自行学习资料。 本文所列出的知识点还不完全,要比较系统的学习,可以前往领取私信发送“核心笔记”或“手册”即可领取《Android核心进阶技术资料》学习。