前言

学习 Android 开发,首先要学习 java 基础知识,尤其是校招的时候非常注重基础,即使没有项目也没关系,基础一定要打好,一般笔试以及面试的第一轮,对基础的考察是比较多的。

这篇文章就来说说 Android 开发的第一步【筑基】的那些知识点,下文的内容大纲是与路线图配套的学习笔记,一共分为七大章节。需要路线图和学习笔记文档可以到文章末尾获取,还有更多 Android 大厂面试题同样可以免费获取!

第一章 深入Java 泛型

① 泛型的作用与定义 ② 通配符与嵌套 ③ 泛型的上下边界 ④ RxJava 中深入理解泛型

第二章 注解深入浅出

① 注解

  • 注解确保编码的正确性
  • 影响代码生成的注释
  • Java 注解

② 元注解 ③ 自定义注解 ④ 默认参数值

⑤ API,编译时注解处理器

  • 什么是APT?
  • 哪里用到了APT?
  • 如何在Android Studio中构建一个APT项目?

⑥ 插桩,编译后处理筛选

  • 在AS中引入ASM
  • 准备待插桩Class
  • 执行插桩

⑦ 反射,运行时动态获取注解信息

  • 什么是反射
  • 反射调用

⑧ Retrofit 中的注解

  • get 方式请求静态 url 地址
  • post 方式请求静态 url 地址
  • 半静态的 url 地址请求
  • 动态的 url 地址请求

第三章 并发编程

① 基础概念

②线程之间的共享

③线程间的协作

  • 什么是CAS?
  • CAS(Compare And Swap)导致的ABA问题

④ 线程池的使用

  • Java中的ThreadPoolExecutor类
  • 深入剖析线程池实现原理
  • 使用示例
  • 如何合理配置线程池的大小

第四章 数据传输与序列化

① Serializable 原理

  • 概念
  • 用途

② Parcelable 的原理和使用方法

  • Android源码中的Parcelable
  • Parcel的简介
  • Parcelable中的三大过程介绍(序列化,反序列化,描述)
  • Parcelable的使用和实现
  • Parcelable中对象和集合的处理
  • Parcelable和Serializable的区别和比较

③ json

  • json
  • 数据结构

(路线图有点长,把它分成两部分贴)

第五章 Java 虚拟机原理

① 垃圾回收

  • 如何判断对象已“死”
  • 回收方法区
  • 垃圾回收算法

② 内存分配策略

  • 对象优先在Eden分配
  • 大对象直接进入老年代
  • 长期存活的对象将进入老年代
  • 动态对象年龄判定
  • 空间分配担保
  • 栈 VS 寄存器
  • dex文件

③ Dalvik 虚拟机

  • Dalvik指令
  • Dalvik启动过程
  • 程序的执行:解释与编译
  • Dalvik上的垃圾回收

第六章 反射与类加载

① 反射

  • 反射基本概念与三种获取 Class 对象的方式
  • 获取构造器实例化对象与属性信息
  • Android 配置打包签名信息的两种方法

② 类加载

  • 动态代理模式
  • Android 中的 Dalvik 和 ART
  • ClassLoader 的构造函数
  • 双亲委派机制

第七章 高效 IO

① 基于字节的 IO 操作 ② 基于字符的 IO 操作 ③ IO 常用类 ④ File 类

Android资料免费获取直通车