在项目的第二阶段遇到挺多坑,所以整理了一下经验,如果你想尝试安卓开发,希望能帮到你。在此之前可以先看我之前写的 初见安卓开发,了解一下我们目前的情况
预先准备
- 需要熟悉 Java 基础语法
- 安装开发环境( JDK、AndroidStudio (简称 AS )、虚拟机等),安装环境比较繁琐,而且需要下载很多东西(默认都是安装到 C盘,总共可能会占用 20G 左右的空间)。安装可能会劝退一部分朋友,这里推荐两个教程跟着做就没问题了
安装AS之前一般会先安装 Java 开发工具包(JDK),可以参考这篇博客【Android Studio安装部署系列】JDK开发环境搭建,比较值得一说的是,现在下载 JDK 要到 Oracle 官网,而且还需要注册账号,有点麻烦。然后开始安装 AS,参考这个视频教程 1# Android Studio开发环境 (Attect) Android开发教程
初学比较常用的快捷键:
- 智能建议:Alt 回车
- 代码整理(格式化代码): Ctrl Alt L
- 注释:Ctrl /
- 块注释:Ctrl Shift /
开始学习
如果没有任何开发经验,比较推荐看视频Android开发教程( 2019最新版,使用 JetPack ),这个教程使用的是 JetPack库,前 40 集使用 Java,从 41 集开始换为了 Kotlin。个人觉得这作者讲的深入浅出,而且教程中也传递了很多规范化的思想,很适合初学者。要注意作者早期视频使用的是内测版本的 ViewModel库,而现在默认自带稳定版,所以不需要手动添加 ViewModel 依赖,视频中使用的 ViewModel 构造方法已过时,应该使用下面这个:
MyViewModel = myViewModel = new ViewModelProvider(this).get(MyViewModel.class);
初学最好按着教程一步一步来,变量名也最好跟着教程来,这样出错了跟着视频,排错起来也比较容易。一定要跟着敲代码,边敲边理解整个逻辑,刚开始可能比较懵,但是到后面,对整个体系有了一定了解,就会豁然开朗,这个时候可以看看官方文档,这样会加深对安卓开发或是JetPack的理解
觉得学的差不多了,就可以开始在GitHub上找一些感兴趣的安卓项目(或者是找一些最佳实践),克隆下来,看看别人是怎么写的,模仿这写一写,这个过程会遇到很多问题,解决这些问题,就会收获很大的提升
遇到的问题
- 如果开始使用数据库或者网络相关操作就会遇到不能在主线程(UI线程)上运行这些耗时操作的问题,这个时候一般解决方案就是 new Thread,但是这样的话在 new 出来的线程里操作UI控件会报错:
Only the original thread that created a view hierarchy can touch its views.
这个时候就需要学习一下 Android 多线程和异步任务,Kotlin的话可以用协程
2. 涉及网络请求推荐看这个系列,从 Java原生API 到 OkHttp 再到 Retrofit :Android开发基础-网络编程
3. 如果界面比较复杂,使用系统自带的控件可能无法直接实现我们的需求,这个时候需要写一些自定义控件,推荐这个系列Android开发自定义控件基础课程
4. 页面跳转会使用到 Jetpack 中的Navigation组件:Jetpack 之 Navigation
组件库
安卓有很多成熟的第三方组件库,合理使用可以简化开发,加速开发速度
在使用这些组件库时需要考虑安全性、稳定性等问题
推荐这个项目,可以帮助你找到适合的组件库 AndroidLibs