新年要立新的 flag,2018 过去就过去吧,2019重新开始吧。列一下 2019 年想要学习的东西吧。有些可能很零碎,先写出来,再去归类总结吧。
1、四大组件(总结记录)
四大组件的使用、Activity启动模式、Service的start和bind
学习资料:
学习资料:
Android 四大组件 - 简书
彻底弄懂Activity四大启动模式 - Android研发专栏 - CSDN博客
2、自定义 view
Android 自定义 View 合集 - Android - 掘金
3、网络
了解HTTP/HTTPS、状态码、header,get和post等;掌握网络请求API和相关网络库;熟悉长连接。
HTTP 必知必会的那些
Android HttpURLConnection详解 - 简书
手把手教你写 Socket 长连接
4、图片加载
了解drawable加载规则以及图片缓存
Android中Bitmap内存优化 - 简书
Android drawable微技巧,你所不知道的drawable的那些细节 - 郭霖的专栏 - …
Android照片墙完整版,完美结合LruCache和DiskLruCache - 郭霖的专栏 - …
Android DiskLruCache完全解析,硬盘缓存的最佳方案 - 郭霖的专栏 - CSDN博…
5、文件和数据库
了解文件流、sqlite
Java 文件流总结 - 简书 详细介绍了文件输入输出流
Java 随机访问文件_w3cschoolJava随机访问文件
Java 序列化的高级认识 Java的序列化原理以及对象输入输出流
Android SQLite详解 - 简书sqlite数据库如何使用
Concurrent database access - Dmytro Danylyk sqlite到底是线程安全的吗?
6、Handler 机制
Android Handler的基本使用 - 简书 了解Handler最基本的使用方式,文章清晰易懂
Android Handler详解 - 简书简单理解Handler的内部原理
7、Binder、AIDL、多进程
Binder原理、AIDL的使用、多进程的定义和特性
https://blog.csdn.net/universus/article/details/6211589
8、View的绘制
View的measure、layout和draw,View的工作原理
图解View测量、布局及绘制原理 - 简书
android ListView 工作原理 - Android - 掘金
9、事件分发
事件分发原理和规则
Android事件分发机制,大表哥带你慢慢深入 - 简书
Android ViewGroup事件分发机制 - Hongyang - CSDN博客
10、消息队列
Handler、Looper、Thread三者之间的关系;得知道子线程创建Handler为什么会报错,如何才能不报错
源码角度讲解子线程创建Handler报错的原因 - 曹银飞的专栏 - CSDN博客
11、Activity难点
setResult和finish的顺序关系
onSaveInstanceState()和onRestoreInstanceState()
onNewIntent()和onConfigurationChanged()
setResult()的调用时机 - 沙翁 - 博客园【推荐理由】清晰易懂,直接了当。
onSaveInstanceState()和onRestoreInstanceState()使用详解…【推荐理由】简单好懂。
关于onConfigurationChanged方法及常见问题解决 - 朱小姐。的博客 - CSDN…
12、Service难点
先start再bind,如何停止一个Service
Service onStartCommand的返回值
bindService后,ServiceConnection里面的回调方法运行在哪个线程?它们的调用时机分别是什么?
Service的onCreate运行在哪个线程?
Android中startService和bindService的区别 - 简书
Service: onStartCommand 诡异的返回值 - CodingMan - CSDN博…
Service的onCreate、onStartCommand、onDestory等全部生命周期方法都运行在UI线程,ServiceConnection里面的回调方法也是运行在UI线程,大家一定要记住。
13、ContentProvider难点
ContentProvider的生命周期
ContentProvider的onCreate和CRUD运行在哪个线程?它们是线程安全的吗?
ContentProvider的内部存储只能是sqlite吗?
android ContentProvider onCreate()在 Application……
ContentProvider总结 - 简书
注意:ContentProvider的底层是Binder,当跨进程访问ContentProvider的时候,CRUD运行在Binder线程池中,不是线程安全的,而如果在同一个进程访问ContentProvider,根据Binder的原理,同进程的Binder调用就是直接的对象调用,这个时候CRUD运行在调用者的线程中。另外,ContentProvider的内部存储不一定是sqlite,它可以是任意数据。
14、AsyncTask原理
知道AsyncTask的工作原理,知道其串行和并行随版本的变迁
Android源码分析—带你认识不一样的AsyncTask - 任玉刚 - CSDN博客 【推荐理由】只看这一篇文章就够了
https://android.googlesource.com/platform/frameworks/base/ /android-8.1.0_r46/core/java/android/os/AsyncTask.java