大一上学期
Android 是移动开发的一大巨头,从 Android 1.0 到现在的 11.0,功能不断的完善,还有很多各地大牛编写的开源库也让安卓开发变得更高效更炫酷。 总之,欢迎打开新世界的大门~ 对于一个 developer,可以多去逛逛那些能够 get 各种技术最新动态的网站。Android 是开源的,新技术出得也比较快,多关注这些网站就像不定期淘金,可以了解国外最新的 Android 技术,还可以提问、看 demo,事半功倍。
开发环境
Linux
或者MacOS
: 虽然现在 Windows 开发也还行,但是不是所有的生产力工具都有 Windows 版本的。 Linux 可以使用 Ubuntu 如何给自己的电脑安装 Ubuntu 然后翻墙有关 MacBook Pro 的好处: 相对客观的说,虽然 Linux 更加适合后期的学习,但是 MBP 以及上面的操作系统无疑增大了生产力,而且 Ubuntu 对一些电脑的兼容性可能不算太好,造成更快的电池损耗等。推荐的电脑的配置是 8G 以上的内存,256G 以上的硬盘,如果是双系统的同学可以分配 100G 左右给 Ubuntu。
git 工具和 GitHub:git 工作流可以大大提升工作效率 然后 GitHub 能让你学习全世界的好代码,参与和发布自己的项目给千千万万的程序员使用 是不是特别酷!
Last but not the Least!建一个自己的博客或者选择一个好的笔记软件!也可以在 GitHub 上创建一个仓库,存放自己的笔记。笔记软件可以使用常用的编辑器。从初学者开始记录所学和自己的想法,以后不仅很好翻越复习(安卓的知识真的很杂很多),对拿 offer 也很有帮助。Talk is cheap, show me your code.
详细计划
预备期
- 安装 Ubuntu/Deepin 系统(建议可以先自己搜索尝试一下,然后再去找学长帮忙)(W1)
- 注册 github 账号、学习使用简单的 git 命令进行操作(W1)
- C 语言学习
- week 1
- 准备《明解 C 语言》、安装 Dev cpp 或者 vscode
- 《明解 C 语言》第 1-2 章
- week 2
- 《明解 C 语言》第 3-5 章
- week 3
- 《明解 C 语言》第 6-7 章
- week 4
- 复习、准备测试
- week 1
week 5
提前准备:
- 参考教材:《Java 核心技术 卷 I(第 11 版)》
- JDK: 1.8
- IDE: IntelliJ IDEA(最新版本)
Java 学习:《核心技术》第 3 章、第 4 章
- 第 3 章是 Java 的基本知识,和 C 语言的相关内容有一定的重复,所以不需要很仔细的看,重点注意一下 C 语言和 Java 中不同的地方
- 第 4 章是 Java 入门的关键,一定要认真阅读,重点了解:面向对象程序设计、类与对象、自定义类、包等基本概念
- 训练:1-10
week 6
- Java 学习
- 《核心技术》第 6、7 章。
- 第 5 章:重点 继承、超类和子类、多态、抽象类、泛型数组列表、Object 类等。
- 第 6 章的 6.1、6.2、6.3: 重点 接口、 回调、内部类、匿名内部类等。
- 训练:11-16
- 《核心技术》第 6、7 章。
week 7
- Java 学习
- 《核心技术》第 7 章。
- 重点:异常、日志、调试
- 做题
- Quiz Java 特性,第二题,并构造一个自定义异常,在异常发生时输出自定义的一段日志,以及断点到异常发生时的堆栈都有哪些
- 《核心技术》第 7 章。
- 开始 Android 学习
- 提前准备
- 参考教材《Android 编程权威指南(第 3 版)》(从第四版开始就是 Kotlin Base)
- IDE: Android Studio
- 模拟器:原生模拟器 或 GenyMotion
- 学习内容
- 《权威指南》第一章 1.1~1.4,跟随案例写 GeoQuiz
- 重点:简单布局和基本属性、Androidstudio 的使用
- 学习使用 LinearLayout 和 RelativeLayout,并合理使用两种布局完成一个简单的计算器界面
- 《权威指南》第一章 1.1~1.4,跟随案例写 GeoQuiz
- 提前准备
week 8
- Java 学习
- 《核心技术》第 8 章、第 9 章、第 14 章可以慢慢看,但是一定要在本学期结束之前看完。
- 如果觉得 PAT 乙级太简单的同学,可以开始在 leetcode 上系统的刷题了,选择 C 或者 Java 可能是当前不错的选择。
- Android 学习
- 《权威指南》第 1 章的后半部分和第 2 章的内容,跟随案例写 GeoQuiz。
- 重点:监听器、Activity、MVC 设计模式、在模拟器和物理设备上运行代码、Button 的基本属性和使用方法、Toast 的使用等
- 完成挑战练习 1.11、2.7、2.8
- 《权威指南》第 1 章的后半部分和第 2 章的内容,跟随案例写 GeoQuiz。
week 9
- Android 学习
- 《权威指南》第 3 章、第 4 章,跟随案例写 GeoQuiz。
- 重点:Activity 的生命周期、使用日志、使用 Bundle 保存数据、多种调试应用的方法
- 完成挑战练习 3.7、3.8
- 《权威指南》第 3 章、第 4 章,跟随案例写 GeoQuiz。
week 10
- Android 学习
- 《权威指南》第 5 章、第 6 章,跟随案例写 GeoQuiz。
- 重点:显式 Intent 的基本使用和传递数据的方法、在 manifest.xml 中声明、Android SDK、compileSdkVersion、minSdkVersion、targetSdkVersion 的定义与区别
- 完成挑战练习:5.5 的前两个漏洞,6.5
- 《权威指南》第 5 章、第 6 章,跟随案例写 GeoQuiz。
week 11
- Android 学习
- 《权威指南》第 7-9 章,跟随案例写 CriminalIntent
- 重点:fragment 的基本使用和相关知识、RecyclerView 的使用方法、使用图形布局工具编辑布局、ConstraintLayout 的基本使用、基本的布局属性、
- 完成挑战练习:8.8、9.5
- 《权威指南》第 7-9 章,跟随案例写 CriminalIntent
week 12
- Android 学习
- 《权威指南》第 10-13 章,跟随案例写 CriminalIntent
- 重点:使用 argument 传递数据、ViewPager 的使用方法、fragment 间的数据传递、在顶部栏添加 menu
- 完成挑战练习:10.6、11.5、11.6、13.7
- 《权威指南》第 10-13 章,跟随案例写 CriminalIntent
week 13
Android 学习
- 《权威指南》第 14-16 章,跟随案例写 CriminalIntent
- 重点:数据库的相关知识和 SQLite 的使用、隐式 intent 的组成和基本使用、使用隐式 intent 拍照、保存照片和加载本地照片
- 完成挑战练习:14.8、15.6、16.6、16.7
- 《权威指南》第 14-16 章,跟随案例写 CriminalIntent
week 14
Android 学习
《权威指南》第 17 章,写完 CriminalIntent
完成挑战练习:17.4
冬令营
《权威指南》收尾
『网络数据处理』
学习顺序为『阮一峰对计算机网络协议、RESTful 架构的文章』->『图解 HTTP』->『了解 Json』->『尝试 POSTMAN 对豆瓣的多个 API 发送 GET、POST 请求』-> 『网络请求 demo』
在此阶段需要具备的知识和工具
JSONView 这个 Chrome 插件可以帮助你最直接得看到 Get 方法获得的 Json 数据(偶尔快速看一下) PostMan 这个 Chrome 插件(现在已经是一个桌面应用了)可以帮助你熟悉和测试使用 Http 的各种姿势(开发常用) 强烈建议你们买一本图解 HTTP,预计你们再慢 2-3 天也能看完,看完此书做这个任务有很好的帮助,对网络方面的东西也会有点启蒙
Android-Json 方面,通常使用使用 Google 自家的 Gson 来解析 Json 数据 Android-Http 方面,使用原生的 HttpUrlConnection 就可以,不要用 Apache 的 HttpClient,被弃用了;后续需要学习一下 Square 的 OkHttp,这个是现在效率最好的 HTTP 库;最后,平时常用的有 Google 的 Volley,Square 的 Retrofit,这些都是基于上面的三个 HTTP 库封装的,主要做了线程优化,Restful 优化等等,当然这些都是后话~ 『使用 HttpUrlConnection(需要子线程)和 new Thread() 做简单的网络请求』->『使用 AsyncTask 替换直接 new Thread(),并把结果刷新到 UI 上』
在此阶段需要具备的知识
关于线程和进程的初步理解,http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html 上面那些看完,就要写一个网络请求了;网络请求需要在子线程中运行,不能在主线程中运行,主要原因会阻塞主线程对 UI 的处理,Android4.0 以上直接会报错。