前言
许多 Android 开发者经常会问我,要学会哪些东西才能成为一个优秀的 Android 工程师?对于这个问题,他们的描述或多或少都有些差异,但是,总体来说,我们都需要学习一系列的技能,才能成为一个优秀的 Android 工程师。
在我看来,存在这样的困惑是正常的。Android 是一个巨大并且动态的生态系统,你可能需要花好几周时间去了解并学习它相关的一些工具和概念,但是最后你会发现,它们有好多都不是很重要,或者说并不是非常有用。因此,在本文中,我将分享我在 Android 开发中所使用到的重要技能,希望能够帮到你,让你把你的精力集中到重要的事情上。
所以,今天,我将献上一份《Android知识图谱》,以自身的经验 & 所见所闻,旨在告诉大家,学习Android,实际上需要学习什么内容,希望你们会喜欢。
目录
-
1.如何对 Android 应用进行性能分析
-
2.什么情况下会导致内存泄露
-
3.如何避免 OOM 异常
-
4.Android 中如何捕获未捕获的异常
-
5.ANR 是什么?怎样避免和解决 ANR(重要)
-
6.Android 线程间通信有哪几种方式
-
7.Devik 进程,linux 进程,线程的区别
-
8.描述一下 android 的系统架构
-
9.android 应用对内存是如何限制的?我们应该如何合理使用内存?
-
10. 简述 android 应用程序结构是哪些
-
11.请解释下 Android 程序运行时权限与文件系统权限的区别
-
12.Framework 工作方式及原理,Activity 是如何生成一个 view 的,机制是什么
-
13.多线程间通信和多进程之间通信有什么不同,分别怎么实现
-
14.Android 屏幕适配
-
15.什么是 AIDL 以及如何使用
-
16.Handler 机制
-
17.事件分发机制
-
18.子线程发消息到主线程进行更新 UI,除了 handler 和 AsyncTask,还有什么
-
19.子线程中能不能 new handler?为什么
-
20.Android 中的动画有哪几类,它们的特点和区别是什么
-
21.如何修改 Activity 进入和退出动画
-
22.SurfaceView & View 的区别
-
23.开发中都使用过哪些框架、平台
-
24.使用过那些自定义View
-
25.自定义控件:绘制圆环的实现过程
-
26.自定义控件:摩天轮的实现过程
-
27.GridLayout的使用
-
28.流式布局的实现过程
-
29.第三方登陆
-
30.第三方支付
-
31.进程保活