forked from CyC2018/CS-Notes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Android.note
382 lines (252 loc) · 15.6 KB
/
Android.note
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
Android基础部分:
1.Android面试系列文章2018之Android部分之Activity篇
http://blog.csdn.net/clandellen/article/details/79257489
2.Android面试系列文章2018之Android部分之Fragment篇
http://blog.csdn.net/clandellen/article/details/79269680
3.Android面试系列文章2018之Android部分之Service篇
http://blog.csdn.net/clandellen/article/details/79276411
4.Android面试系列文章2018之Android部分之Broadcast篇
http://blog.csdn.net/clandellen/article/details/79279416
5.Android面试系列文章2018之Android部分之WebView篇
http://blog.csdn.net/ClAndEllen/article/details/79287020
https://blog.csdn.net/carson_ho/article/details/52693322#t14
6.Android面试系列文章2018之Android部分之Binder机制篇
http://blog.csdn.net/ClAndEllen/article/details/79343389
7.Android面试系列文章2018之Android部分之Handler机制篇
http://blog.csdn.net/ClAndEllen/article/details/79343538
8.Android面试系列文章2018之Android部分之AsyncTask篇
http://blog.csdn.net/ClAndEllen/article/details/79346383
9.Android面试系列文章2018之Android部分之HandlerThread篇
http://blog.csdn.net/ClAndEllen/article/details/79346492
10.Android面试系列文章2018之Android部分之IntentService篇
http://blog.csdn.net/ClAndEllen/article/details/79346624
11.Android面试系列文章2018之Android部分之View绘制机制篇
http://blog.csdn.net/ClAndEllen/article/details/79365250
12.Android面试系列文章2018之Android部分之事件分发机制篇
http://blog.csdn.net/ClAndEllen/article/details/79365369
13.Android面试系列文章2018之Android部分之ListView篇
http://blog.csdn.net/ClAndEllen/article/details/79365499
补:13.1 Android面试系列文章2018之Android部分之动画机制篇
http://blog.csdn.net/ClAndEllen/article/details/79411999
补:13.2 Android面试系列文章2018之Android部分之自定义View篇
http://blog.csdn.net/ClAndEllen/article/details/79412399
补:13.3 Android面试系列文章2018之Android部分之RecyclerView篇
https://www.jianshu.com/p/12ec590f6c76(需要知道用法,注意与ListView的区别)
补:13.4 Android面试系列文章2018之Android部分之JNI和NDK篇
https://blog.csdn.net/carson_ho/article/details/73250163
关于JNI和NDK,笔者近期太忙碌,时间比较少,有时间一定会整理。
另外,如果完全没学习JNI开发的童鞋,可以点开下方笔者分享的一个视频教程链接,你可以看视频进行自学:
链接:https://pan.baidu.com/s/1_FQyPN7jtf96lzqEoU8jSQ 密码:c7jp
补 13.5 Android面试系列文章2018之Android部分之Context的理解篇
https://www.jianshu.com/p/94e0f9ab3f1d
补 13.6 Android面试系列文章2018之Android部分之Window的理解篇
https://blog.csdn.net/yhaolpz/article/details/68936932
https://juejin.im/entry/5a2e603bf265da432c23cdde
补:13.7 Android面试系列文章2018之Android部分之如何创建自己app的内容提供者篇
https://blog.csdn.net/clandellen/article/details/78651994
补:13.8 Android面试系列文章2018之Android部分之对话框篇
AlertDialog:
https://blog.csdn.net/a_zhon/article/details/54578047
DialogFragment:
https://www.cnblogs.com/mercuryli/archive/2016/04/09/5372496.html
另外再加上一个PopupWindow:
https://blog.csdn.net/xyz_lmn/article/details/6906286
https://www.jianshu.com/p/799dbb86f908
补:13.9 Android面试系列文章2018之Android部分之悬浮窗篇
https://blog.csdn.net/self_study/article/details/52859790
https://blog.csdn.net/ltym2014/article/details/78860620
一个兼容的悬浮窗权限申请库:https://github.com/czy1121/settingscompat
补:13.10 Android面试系列文章2018之Android部分之通知篇
实战经验部分:
14.Android面试系列文章2018之实战经验部分之Android Stdio目录结构篇
http://blog.csdn.net/ClAndEllen/article/details/79368343
15.Android面试系列文章2018之实战经验部分之Android构建流程篇
http://blog.csdn.net/ClAndEllen/article/details/79369302
16.Android面试系列文章2018之实战经验部分之Git篇
http://blog.csdn.net/ClAndEllen/article/details/79369538
17.Android面试系列文章2018之实战经验部分之gradle篇
http://blog.csdn.net/ClAndEllen/article/details/79369643
18.Android面试系列文章2018之实战经验部分之proguard混淆篇
http://blog.csdn.net/ClAndEllen/article/details/79369761
补:18.1 Android面试系列文章2018之实战经验部分之Android屏幕适配篇
https://www.jianshu.com/p/ec5a1a30694b
百分比布局的适配:
http://blog.csdn.net/lmj623565791/article/details/46767825
AutoLayout的使用:
https://www.jianshu.com/p/ab6a0bac7347
补:18.2 Android面试系列文章2018之实战经验部分之Android多渠道打包与apk签名篇
实战经验之常用框架部分
19.Android面试系列文章2018之常用框架之网络框架篇
http://blog.csdn.net/clandellen/article/details/79373303
20.Android面试系列文章2018之常用框架之异步框架篇
http://blog.csdn.net/ClAndEllen/article/details/79373350
21.Android面试系列文章2018之常用框架之图片加载框架篇
http://blog.csdn.net/ClAndEllen/article/details/79375228
22.Android面试系列文章2018之常用框架之依赖注入框架篇
http://blog.csdn.net/clandellen/article/details/79375249
23.Android面试系列文章2018之常用框架之内存优化框架篇
http://blog.csdn.net/ClAndEllen/article/details/79375317
补:23.1 Android面试系列 文章之常用框架之数据库存储框架篇
LitPal: https://www.jianshu.com/p/bc68e763c7a2
GreenDao: 笔者酷爱使用这个
https://www.jianshu.com/p/853401a7d02b
3.OrmLite
https://www.jianshu.com/p/05782b598cf0
4.DBFlow
http://blog.csdn.net/u011520533/article/details/51814159
5.Realm
https://www.jianshu.com/p/37af717761cc
实战经验部分之网络理论基础
24.Android面试系列文章2018之常用框架之Http协议篇
http://blog.csdn.net/ClAndEllen/article/details/79379691
补:24.1 Android面试系列文章2018之TCP三次握手四次挥手篇
https://www.jianshu.com/p/35476796dd54
补:24.2 Android面试系列文章之HttpURLConnection和HttpClient篇
实战经验部分之调试能力
25.Android面试系列文章2018之异常处理ANR异常篇
http://blog.csdn.net/ClAndEllen/article/details/79381399
26.Android面试系列文章2018之异常处理OOM异常篇
http://blog.csdn.net/ClAndEllen/article/details/79381656
27.Android面试系列文章2018之内存管理之Bitmap的加载篇
http://blog.csdn.net/ClAndEllen/article/details/79382123
28.Android面试系列文章2018之内存管理之UI卡顿篇
http://blog.csdn.net/ClAndEllen/article/details/79382430
29.Android面试系列文章2018之内存管理之内存泄漏篇
http://blog.csdn.net/ClAndEllen/article/details/79382815
30.Android面试系列文章2018之内存管理篇
http://blog.csdn.net/ClAndEllen/article/details/79382919
31.Android面试系列文章2018之内存管理之冷启动过优化及其他优化篇
http://blog.csdn.net/ClAndEllen/article/details/79383005
http://blog.csdn.net/ClAndEllen/article/details/79383058
补:
31.1 Android代码分析工具:Lint检查
http://blog.csdn.net/ClAndEllen/article/details/79400555
Java部分
32.Android面试系列文章2018之Java部分I/O流篇
http://blog.csdn.net/ClAndEllen/article/details/79429328
33.Android面试系列文章2018之Java部分多线程流篇
34.Android面试系列文章2018之Java部分异常篇
http://blog.csdn.net/ClAndEllen/article/details/79389561
35.Android面试系列文章2018之Java部分注解篇
http://blog.csdn.net/ClAndEllen/article/details/79392453
36.Android面试系列文章2018之Java部分类加载器篇
http://blog.csdn.net/ClAndEllen/article/details/79392630
37.Android面试系列文章2018之Java部分反射机制篇
http://blog.csdn.net/ClAndEllen/article/details/79393029
实战经验部分之架构搭建篇
38.Android面试系列文章2018之架构搭建之MVC模式篇
http://blog.csdn.net/ClAndEllen/article/details/79396116
39.Android面试系列文章2018之架构搭建之MVP模式篇
http://blog.csdn.net/ClAndEllen/article/details/79396527
40.Android面试系列文章2018之架构搭建之MVVM模式篇
http://blog.csdn.net/ClAndEllen/article/details/79396831
41.Android面试系列文章2018之架构搭建之谷歌官方推荐架构TODO-MVP篇
https://www.jianshu.com/p/8b81493d1297
前沿的技术篇
42.Android面试系列文章2018之Android插件化篇
http://blog.csdn.net/ClAndEllen/article/details/79397207
43.Android面试系列文章2018之Android热更新篇
http://blog.csdn.net/ClAndEllen/article/details/79397900
44.Android面试系列文章2018之进程保活篇
http://blog.csdn.net/ClAndEllen/article/details/79398132
45.Android面试系列文章2018之Kotlin语言面试篇
http://blog.csdn.net/ClAndEllen/article/details/79400968
补:45.1 Android面试系列文章2018之Android消息推送篇:
https://www.jianshu.com/p/b61a49e0279f
补:45.2 Android面试系列文章2018之面向切面编程AOP篇:
http://blog.csdn.net/innost/article/details/49387395
实战经验之Android中常用的Java设计模式篇
46.Android面试系列文章2018之Java设计模式之单例模式篇
https://www.cnblogs.com/cielosun/p/6582333.html
47.Android面试系列文章2018之Java设计模式之Builder建造者模式篇
http://blog.csdn.net/clandellen/article/details/77890805
48.Android面试系列文章2018之Java设计模式之适配器模式篇
http://blog.csdn.net/jason0539/article/details/22468457
49.Android面试系列文章2018之Java设计模式之装饰模式篇
http://blog.csdn.net/zhshulin/article/details/38665187
50.Android面试系列文章2018之Java设计模式之外观设计模式篇
http://blog.csdn.net/l1028386804/article/details/45568655
51.Android面试系列文章2018之Java设计模式之组合设计模式篇
http://blog.csdn.net/lemon_tree12138/article/details/51437883
52.Android面试系列文章2018之Java设计模式之策略模式篇
http://blog.csdn.net/jason0539/article/details/45007553
53.Android面试系列文章2018之Java设计模式之模版设计模式篇
http://blog.csdn.net/jason0539/article/details/45037535
54.Android面试系列文章2018之Java设计模式之观察者模式篇
http://blog.csdn.net/jason0539/article/details/45055233
55.Android面试系列文章2018之Java设计模式之责任链模式篇
http://blog.csdn.net/jason0539/article/details/45091639
算法和数据结构部分(注意面试的时候回答不上来,千万别放弃,因为Android对算法的要求是次要的,也就是说算法能力并不能决定你拿不拿得到offer,当然也必须具备一些基本的算法能力,比如:冒泡,选择排序,二分查找啊等)
56.Android面试系列文章2018之算法之排序算法
http://blog.csdn.net/happy_wu/article/details/51841244
57.Android面试系列文章2018之算法之查找算法
http://blog.csdn.net/three_man/article/details/46799659
补:57.1 Android面试系列文章2018之数据结构之链表篇
https://blog.csdn.net/lishuzhai/article/details/50972779
57.2 Android面试系列文章2018之数据结构之队列篇
https://blog.csdn.net/javazejian/article/details/53375004
57.3 Android面试系列文章2018之数据结构之堆篇
https://blog.csdn.net/wypblog/article/details/8076324
57.4 Android面试系列文章2018之数据结构之栈篇
https://blog.csdn.net/javazejian/article/details/53362993
57.5 Android面试系列文章2018之数据结构之树篇
https://blog.csdn.net/u011240877/article/details/53193877
由于笔者没有写源码分析文章的习惯,只是看源码的时候,自己大脑转了一遍,但没关系,我这里会贴出一些高质量大神写的源码分析的文章,希望读者被面试官问道的时候能够从容应答。
Java 源码篇
58.Android面试系列文章2018之LRU算法有关的集合LinkedHashMap的源码探究
http://blog.csdn.net/justloveyou_/article/details/71713781
59.Android面试系列文章2018之Java常用集合源码探究
ArrayList:
http://blog.csdn.net/gulu_gulu_jp/article/details/51456969
http://blog.csdn.net/chun0801/article/details/51481877
http://blog.csdn.net/u014136713/article/details/52089156
…不止这些,还有很多,请读者耐心等待笔者总结
Android源码篇
60.启动一个app的源码分析
61.Android中的main()方法在哪里?
……
弄懂Android源码,你需要理解什么是init进程,什么是Zygote进程,SystemServer,AMS等等,这是需要时间去理解的:
http://blog.csdn.net/itachi85/article/details/54695046
init进程的启动流程:
http://blog.csdn.net/itachi85/article/details/54783506
Zygote(受精卵进程)的启动流程:
http://blog.csdn.net/itachi85/article/details/55047104
SyetemServer进程启动过程:
http://blog.csdn.net/itachi85/article/details/55053356
Launcher启动过程与系统启动流程:
http://blog.csdn.net/itachi85/article/details/56669808
程序启动的流程:
http://blog.csdn.net/itachi85/article/details/64123035
http://blog.csdn.net/itachi85/article/details/64243223
源码分析也不能完全按照大神的角度去看,有时候自己尝试去理解,就会发现不一样的地方,觉得世界一下被打开了,笔者在研究广播机制的源码的时候,就有这样的感觉,研究的时候,笔者终于知道为什么系统广播不安全,而本地广播那么安全高效,因为系统广播的通信机制使用的Binder,而Binder是走的系统,通过AMS注册的传播广播信号,而本地广播是通过Handler机制实现的通信,这就意味着,本地广播的信号肯定不会发送到应用之外,由于采用的Handler机制,所以高效就不足为奇了。
笔者曾被一个学弟提问道,研究源码有什么好处?除了平时能装逼,应付面试,还有什么?其实研究源码好处不止有这些,因为源码是比我们还要厉害的大神写出来的,我们可以学习这些源码里的一些实现逻辑,把这些实现逻辑搬到自己的代码中,这就厉害啦,有时候我们碰到难以实现的模块,我想源码或许会无形当中会提供一些解决方案,GitHub上那些Star比较多的项目的博主,我想他们肯定有看源码的习惯。
…不止这些,还有很多,请读者耐心等待笔者总结
Android框架源码篇
62.Android面试系列文章2018之网络框架OkHttp源码分析篇
https://www.jianshu.com/p/27c1554b7fee
63.Android面试系列文章2018之网络框架Retrofit源码分析篇
https://www.jianshu.com/p/0c055ad46b6c
64.Android面试系列文章2018之图片框架Glide源码分析篇
http://blog.csdn.net/yulyu/article/details/60331803
65.Android面试系列文章2018之图片框架Picasso源码分析篇
http://blog.csdn.net/woliuyunyicai/article/details/51417839
62.Android面试系列文章2018之内存分析框架LeakCanary源码分析篇
http://blog.csdn.net/cloud_huan/article/details/53081120
66.Android面试系列文章2018之依赖注入Butterknife源码分析篇
http://blog.csdn.net/ta893115871/article/details/52497297
67.Android面试系列文章2018之依赖注入Dragger2源码分析篇
https://www.jianshu.com/p/eef7fa8136e7
68.Android面试系列文章2018之异步框架EventBus源码分析篇
http://blog.csdn.net/ljd2038/article/details/51470734
69.Android面试系列文章2018之异步框架RxJava源码分析篇
http://gank.io/post/560e15be2dca930e00da1083
补:
69.1图片框架:ImageLoader源码分析
http://blog.csdn.net/xiaanming/article/details/26810303
http://blog.csdn.net/xiaanming/article/details/27525741
http://blog.csdn.net/xiaanming/article/details/39057201
以下知识不是纯面试知识
高级进阶之高并发编程
高级进阶之Java虚拟机探究
一个GitHub受欢迎的Android第三方库整理的网站,读者可以收藏一下,高效率开发:
https://hndeveloper.github.io/2017/github-android-ui.html