Android入门第一步,将需要学习的路线整体过一遍,了解学习的前置条件,明了自己的学习目标,胸有成竹才能势如破竹。本文中每个小点将单独出一篇文章,每篇文章将链路到此文,后续将持续更新。

1 工具篇

工欲善其事,必先利其器。工具,是人类进化的一大助力,善于制造与使用工具,可以加快我们学习的速度。工具在人类的进化之路上随着人类共同进化,原始的人类需要的是原始的工具,先进的工具对于原始人来说也许是个占地方而无用的垃圾。

1.1 简单的编辑器

简单的编辑器,对应的学习阶段应该是初学编程语言,在Android开发方向便是JavaSE的学习者(若将来Flutter成功上位,那便是Dart了)。简单的编辑器是每一个程序员必不可缺的工具,入门时它可以帮助你记忆语言基础,在工作中可以迅速查看和编辑任意文件,简单而强大。
Android学习路线_工具篇(一)简单的编辑器

1.2 强大的IDE

掌握了简单的工具之后,就要开始接触强大的开发利器,提高生产力。集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。
Android学习路线_工具篇(二)强大的IDE

1.3 多样的插件

没有最强大的开发利器,只有更高效的辅助工具,利用好多样化的AndroidStudio插件,同样可以大幅提高生产力。
Android学习路线_工具篇(三)多样的插件

1.4 有效的小工具

在加强主要的开发利器之余,我们还可以使用各种小工具,在开发的边缘任务上增加开发效率。
Android学习路线_工具篇(四)有效的小工具

1.5 自己造轮子

各种类型的工具和使用我们已经了解得差不多了,日常开发过程中也会遇到一些问题没有现成的工具可以解决,那么制造工具就是我们要考虑的事了。
Android学习路线_工具篇(五)自己造轮子

2 入门篇

Android学习入门的目标就是能够编写出一个完整的APP,有可交互的界面,有基本的功能,有本地的数据库,有与后台的数据交换。在本篇我们会了解到如何在AndroidStudio中新建、运行、打包一个APP,一个最简单的APP基本的要素有哪些,有哪些常用到的组件、模块、功能、控件。

2.1 编写简单的APP

Android学习路线_入门篇(一)编写简单的APP

2.2 Android四大组件

我们先来了解一下四大组件中必备的组件——Activity,它是用户交互的入口,也是程序效果展示的出口,它是应用界面的基石。

Android学习路线_入门篇(二)四大组件之Acitvity
Android学习路线_入门篇(三)Acitvity生命周期与启动模式

了解了Activity之后,我们再认识一下Service,它是一个独立的组件,译为服务,不需要用户交互,可长时间运行,即便程序销毁也可继续工作。

Android学习路线_入门篇(四)四大组件之Service
Android学习路线_入门篇(五)Service的生命周期与如何保活

我们要了解的第三个组件是BroadcastReceiver,它是应用中进行消息通信的一大方式,支持的场景广泛多样。

Android学习路线_入门篇(六)四大组件之BroadcastReceiver

ContentProvider是四大组件的最后一位,放在最后介绍自然是有原因的,它的使用频率远没有另外三者高。ContentProvider一般为存储和获取数据提供统一的接口,可以在不同的应用程序之间共享数据。

Android学习路线_入门篇(七)四大组件之ContentProvider

2.3 数据持久化

数据持久化是保证数据在程序销毁、设备关机后仍然不会丢失的操作,Android系统上主要有三种方式。

ContentProvider也算一种数据存储方式,但其本意是用于共享数据,且已在Android学习路线_入门篇(七)四大组件之ContentProvider中进行过介绍,故此篇不再介绍ContentProvider。

第一个先看看SharedPreferences,一个轻量级的存储类,特别适合用于保存配置参数,它使用键值对的方式来存储数据,最终的文件存放位置在/data/data/<packagename>/shared_prefs/目录下。
Android学习路线_入门篇(八)数据持久化之SharedPreferences

第二个再说说文件读写,在日常开发中很多数据是以文件的形式进行存储的,根据文件的位置存在四种不同的读写方式,主要包括raw、assets、InternalStorage、ExternalStorage。
Android学习路线_入门篇(九)数据持久化之文件读写

最后一个就是数据库了,平时会涉及到很多同类型的数据需要以表的形式保存在本地,比如用户列表、消息列表、历史记录表等等同一类组成属性一致的数据,这些数据就非常适合用数据库进行。
Android学习路线_入门篇(十)数据持久化之数据库

2.4 网络请求

网络请求是互联网开发的基石,单机的应用终究不能发挥互联网的优势,互联网+任何东西都有不小的发展潜力。在Android开发领域,基本的网络连接主要涉及到数据的上传、下载与网页浏览,而其中数据的上传和下载是APP和服务器交互的基石,目前主要是通过HTTP协议上传和下载文本、XML、Json、图片、音视频文件,基本实现方式主要涉及HttpURLConnection和HttpClient。
Android学习路线_入门篇(十一)网络请求的基本实现

2.5 常用的控件

3 进阶篇

3.1 动画

3.2 特殊布局

3.3 多线程

3.4 多媒体

3.5 第三方库

4 强化篇

4.1 自定义View

4.2 AIDL进程通信

4.3 JNI与NDK

4.4 异常处理

4.5 混合开发

5 深耕篇

5.1 设计模式

5.2 数据结构与算法

5.3 Android系统源码

5.4 开源库源码

5.5 编写优秀的开源库

支持我的小伙伴们可以微信搜索“Android思维库”,或者微信扫描下方二维码,关注我的公众号,每天都会推送新知识~

Android学习路线_梳理相关推荐

  1. Android学习路线_工具篇(一)简单的编辑器

    工欲善其事,必先利其器.工具,是人类进化的一大助力,善于制造与使用工具,可以加快我们学习的速度.工具在人类的进化之路上随着人类共同进化,原始的人类需要的是原始的工具,先进的工具对于原始人来说也许是个占 ...

  2. Android学习路线_入门篇(一)编写简单的APP

    Android学习入门的目标就是能够编写出一个完整的APP,有可交互的界面,有基本的功能,有本地的数据库,有与后台的数据交换.在本文我们会了解到如何在AndroidStudio中新建.运行.打包一个A ...

  3. 揭秘!双非渣本Android四年磨一剑,学习路线+知识点梳理

    第一次观看我文章的朋友,可以关注.点赞.转发一下,每天分享各种干货技术和程序猿趣事 由于涉及到的面试题较多导致篇幅较长,我根据这些面试题所涉及到的常问范围总结了并做出了一份学习进阶路线图​​​​​​​ ...

  4. 嵌入式全栈工程师_我花了半个月,整理出了这篇嵌入式开发学习指南(学习路线+知识点梳理)...

    不好意思久等了 这篇文章让小伙伴们久等了. 一年多以来,关于嵌入式开发学习路线.规划.看什么书等问题,被问得没有一百,也有大几十次了.但是无奈自己对这方面了解有限,所以每次都没法交代,搞得实在不好意思 ...

  5. Android学习路线

    Android学习路线 第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环.  2.String和StringBuffer的使用.正则表达式.  3.面向对象的抽象,封装,继承 ...

  6. Android学习路线总结

    title: Android学习路线总结,绝对干货 tags: Android学习路线,Android学习资料,怎么学习android grammar_cjkRuby: true --- 一.前言 不 ...

  7. Android:学习路线总结,绝对干货

    转载请注明出处:http://blog.csdn.net/lowprofile_coding/article/details/51252781 一.前言 不知不觉自己已经做了几年开发了,由记得刚出来工 ...

  8. 肝了半个月,我整理出了这篇嵌入式开发学习学习路线+知识点梳理)

    不好意思久等了 这篇文章让小伙伴们久等了. 一年多以来,关于嵌入式开发学习路线.规划.看什么书等问题,被问得没有一百,也有大几十次了.但是无奈自己对这方面了解有限,所以每次都没法交代,搞得实在不好意思 ...

  9. Android学习路线总结,绝对干货

    一.前言 不知不觉自己已经做了几年开发了,由记得刚出来工作的时候感觉自己能牛逼,现在回想起来感觉好无知.懂的越多的时候你才会发现懂的越少. 如果你的知识是一个圆,当你的圆越大时,圆外面的世界也就越大. ...

最新文章

  1. 通过产品ID得到collection!!!
  2. 2020年世界机器人报告
  3. 【机器学习】手把手用AI算法实现冰雪奇缘中的“冰雪魔法”
  4. npm run serve后台运行的命令写法
  5. OpenSql的优化原则
  6. mysql 最基础的日常操作
  7. Linux下的wc命令
  8. mysql避免死锁的方法
  9. string转int/float/double、int/float/double转string、转字符串数组的方法:stoi、stringstream、scanf、to_string、sprintf
  10. 让0基础纯小白也能上手写Python,干货分享(二)
  11. lda主题模型困惑度_主题模型(三):LDA主题个数选择
  12. Atitit 业务流程执行引擎的实现 目录 1.1. 引擎实现语言java js php等 1 1.2. 流程语言 xml sql js等 业务流程定义语言规范总结 1 1.3. 实体方法定义 2
  13. Filter_Listener:过滤器和监听器
  14. linux软盘镜像下载,Linux系统各发行版镜像下载(持续更新)
  15. 错误代码0x80004005
  16. css骨架图,【CSS】骨架屏 Skeleton 效果
  17. CMOS MIPI EOT 学习 基于Zynq高速串行CMOS接口的设计与实现
  18. 计算机系微电子专业大学排名,微电子专业大学排名情况一览表
  19. CSS3图片上下移动的动画效果
  20. PaddleClas-SSLD知识蒸馏方法梳理(82.4%ResNet50系列模型养成之路)

热门文章

  1. 百度网盘迁移至阿里云盘,附工具!
  2. 钉钉5.0发布多款重磅产品,飞书免费黯然失色。
  3. 6年程序员谈规划的重要性,活着这半辈子都做了什么?
  4. Linux模块编程-Linux(17)
  5. 【Vue全家桶】Vue-Router (详解)
  6. AJAX(GET POST请求、 jQuery axios 发送请求、跨域--cors、请求超时、网络异常、放弃请求、重复发送请求)
  7. 中国茶油产业投资商机与盈利状况分析报告2022版
  8. 数据集Advertising.csv——分析出广告媒体投入与销售额之间的关系
  9. 关于《Python 从入门到实践》Django 创建学习主页 网站响应出现“Template-loader postmortem”的解决方法
  10. 前端面试题之JavaScript【this指向】