android面试题集锦(android篇)

0.78字数 5574阅读 1641

(转)原文链接:https://blog.csdn.net/huangqili1314/article/details/79824830

2017-2018 Android-BAT-Android 面试题分类:

  • 1.四大组件
  • 2.Fragment
  • 3.自定义组件、动画
  • 4.存储
  • 5.网络
  • 6.图片
  • 7.布局
  • 8.性能优化
  • 9.JNI
  • 10.进程间通信(简称:IPC)
  • 11.WebView
  • 12.进程保活
  • 13.杂7杂8

1.四大组件

(1.1)四大组件是什么
看开头
(1.2)四大组件的生命周期
看开头文章
(1.3)Activity之间的通信方式
https://www.jianshu.com/p/f836432396f0
(1.4)横竖屏切换的时候,Activity 各种情况下的生命周期
https://blog.csdn.net/hzw19920329/article/details/51345971
(1.5)Activity与Fragment之间生命周期比较
https://www.jianshu.com/p/b1ff03a7bb1f
(1.6)Activity上有Dialog的时候按Home键时的生命周期
https://blog.csdn.net/hanhan1016/article/details/47977489
(1.7)两个Activity 之间跳转时必然会执行的是哪几个方法?
https://blog.csdn.net/m_xiaoer/article/details/72881082
(1.8)Activity的四种启动模式对比以及使用场景
https://blog.csdn.net/CodeEmperor/article/details/50481726
(1.9)Activity状态保存与恢复
https://blog.csdn.net/sinat_33921105/article/details/78631823
(1.10)Activity 怎么和Service 绑定
https://www.jianshu.com/p/5d73389f3ab2
(1.11)Service和Activity怎么进行数据交互?
https://www.jianshu.com/p/cd69f208f395
(1.12)Service的开启方式
https://www.jianshu.com/p/2fb6eb14fdec
(1.13)请描述一下Service 的生命周期
https://www.jianshu.com/p/8d0cde35eb10
(1.14)谈谈你对ContentProvider的理解
https://www.jianshu.com/p/f5ec75a9cfea
(1.15)ContentProvider、ContentResolver、ContentObserver 之间的关系
https://blog.csdn.net/heqiangflytosky/article/details/31777363
(1.16)请描述一下广播BroadcastReceiver的理解(实现原理)
https://www.jianshu.com/p/ca3d87a4cdf3
(1.17)广播的分类
https://www.jianshu.com/p/ca3d87a4cdf3
(1.18)广播使用的方式和场景
https://www.jianshu.com/p/ca3d87a4cdf3
(1.19)本地广播和全局广播有什么差别?
https://www.jianshu.com/p/bfbb6ebc1c04
(1.20)Application 和 Activity 的 Context 对象的区别
https://www.cnblogs.com/liyiran/p/5283551.html

2.Fragment
有个大神自己封装了Fragment,基本覆盖了大部分你能遇到的坑,看看他的文章:
https://www.jianshu.com/p/d9143a92ad94
(2.1)什么是Fragment
https://www.jianshu.com/p/2bf21cefb763
(2.2)为什么要用Fragment
https://www.cnblogs.com/shaweng/p/3918985.html
(2.3)Fragment与Activity的通信方式
https://www.jianshu.com/p/825eb1f98c19
(2.4)Fragment各种情况下的生命周期
https://www.jianshu.com/p/b1ff03a7bb1f
(2.5)Fragment之间传递数据的方式?
https://www.jianshu.com/p/f87baad32662
(2.6)Fragment的add与replace的区别
https://blog.csdn.net/gsw333/article/details/51858524
(2.7)用Fragment有遇过什么坑吗,怎么解决
https://www.jianshu.com/p/d9143a92ad94
(2.8)getFragmentManager,getSupportFragmentManager ,getChildFragmentManager三者之间的区别
https://blog.csdn.net/allan_bst/article/details/64920076
(2.9)FragmentPagerAdapter与FragmentStatePagerAdapter的区别与使用场景
https://blog.csdn.net/lamp_zy/article/details/52446842

3.自定义组件、动画
了解自定义view,这里:
https://www.jianshu.com/p/c84693096e41
(3.1)描述一下View的绘制流程
https://www.jianshu.com/p/060b5f68da79
(3.2)说说自定义view的几个构造函数
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0806/4575.html
(3.3)View 里面的 onSavedInstanceState和onRestoreInstanceState的作用
https://blog.csdn.net/shouniezhe/article/details/47705001
(3.4)onLayout() 和Layout()的区别
https://blog.csdn.net/h183288132/article/details/50184423
(3.5)描述一下getX、getRawX、getTranslationX
https://blog.csdn.net/dmk877/article/details/51550031
(3.6)Android中的动画有哪几类,它们的特点和区别是什么
https://www.jianshu.com/p/420629118c10
(3.7)Interpolator和TypeEvaluator的作用
https://www.cnblogs.com/wondertwo/p/5327586.html
(3.8)请描述一下View事件传递分发机制
https://www.jianshu.com/p/e99b5e8bd67b
(3.9)事件分发中的onTouch 和onTouchEvent 有什么区别,又该如何使用?
https://blog.csdn.net/huiguixian/article/details/22193977
(3.10)View和ViewGroup分别有哪些事件分发相关的回调方法
https://www.jianshu.com/p/e99b5e8bd67b
(3.11)View刷新机制
https://blog.csdn.net/chenzhiqin20/article/details/8628952

4.存储
(4.1)描述一下你知道的数据存储方式
https://www.jianshu.com/p/540e44f00d3e
(4.2)SharedPreferences的应用场景,核心原理是什么
https://www.jianshu.com/p/ae2c7004179d
https://blog.csdn.net/dbs1215/article/details/78531258
(4.3)SharedPreferences是线程安全的吗?
去源码看看有没有同步锁就知道了,答案是线程安全的。
(4.4)描述一下图片存储在本地的方式
https://www.jianshu.com/p/8cede074ba5b
https://blog.csdn.net/ccpat/article/details/45314175
(4.5)sqlite升级,增加字段的语句
https://blog.csdn.net/xu_song/article/details/49658195
(4.6)数据库框架对比和源码分析
https://blog.csdn.net/u012702547/article/details/52226163
https://www.jianshu.com/p/c4e9288d2ce6
(4.7)数据库的优化
https://www.jianshu.com/p/3b4452fc1bbd
(4.8)数据库数据迁移问题
https://www.cnblogs.com/awkflf11/p/6033074.html

5.网络
(5.1)描述一次网络请求的流程
https://blog.csdn.net/seu_calvin/article/details/53304406
(5.2)HTTP报文结构
https://www.jianshu.com/p/e544b7a76dac
(5.3)HttpClient和HttpURLConnection的区别
https://www.cnblogs.com/zhousysu/p/5483896.html
(5.4)Volley,okhttp,retrofit之间的区别和核心原理和使用场景
https://www.jianshu.com/p/050c6db5af5a
(5.5)描述一下https
https://showme.codes/2017-02-20/understand-https/
(5.6)https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解?
https://showme.codes/2017-02-20/understand-https/
(5.7)说一下三次握手,四次挥手的具体细节
我经常用面试问别人这道题,哈哈,为什么不能两次握手呢?要三次?
https://www.cnblogs.com/Andya/p/7272462.html
(5.8)描述一下socket是什么东西
https://www.jianshu.com/p/089fb79e308b
(5.9)从网络加载一个10M的图片,说下注意事项
https://www.jianshu.com/p/7c81d3742c38
https://www.jianshu.com/p/f850a23ab99c
(5.10)TCP与UDP的区别
https://blog.csdn.net/li_ning_/article/details/52117463
(5.11)client如何确定自己发送的消息被server收到?
HTTP协议里,有请求就有响应,根据响应的状态吗就能知道拉。
(5.12)WebSocket与socket的区别
https://blog.csdn.net/wwd0501/article/details/54582912
(5.13)网络请求缓存处理,okhttp如何处理网络缓存的
看源码,看缓存策略
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0326/2643.html
(5.14)自己去设计网络请求框架,怎么做?(随便套个开源框架的原理)
就套okhttp的,被google承认并使用的框架,准没错。
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0326/2643.html

6.图片
(6.1)说一下OOM的原因,如何避免
https://blog.csdn.net/boyupeng/article/details/47726765
(6.2)说一下三级缓存的原理
https://www.jianshu.com/p/97455f080065
(6.3)描述一下内存缓存的容器
LruCache其实是一个Hash表,内部使用的是LinkedHashMap存储数据
https://blog.csdn.net/justloveyou_/article/details/71713781
(6.4)图片库对比
https://www.jianshu.com/p/fc72001dc18d
(6.5)图片库的源码分析
https://blog.csdn.net/guolin_blog/article/details/53759439
(6.6)图片框架缓存实现
郭霖大神写了几篇文章介绍Glide,都有详细介绍
https://blog.csdn.net/guolin_blog/article/details/53759439
(6.7)LRUCache原理
https://www.cnblogs.com/tianzhijiexian/p/4248677.html
(6.9)自己去实现图片库,怎么做?(随便套个开源框架的原理)
套Glide的就OK拉,从设计思想,然后到实现方式
(6.12)说说Glide内存缓存的具体实现?
https://blog.csdn.net/guolin_blog/article/details/54895665

7.布局
(7.1)说一下布局性能的排序,谁的效率最高
https://blog.csdn.net/seu_calvin/article/details/53047682
(7.2)描述一下约束布局
https://blog.csdn.net/zhaoyanjun6/article/details/62896784
(7.3)关于布局优化的方案
学会用约束布局,基本优化很多了,但是老方法还是要会,面试官多数比较守旧。因为资深,年纪也可能稍微大一点,哈哈。
https://www.cnblogs.com/hoolay/p/6248514.html
(7.4)怎么检测布局深度
https://blog.csdn.net/hp910315/article/details/52684039
(7.5)LinearLayout、RelativeLayout、FrameLayout的特性及对比,并介绍使用场景。
https://blog.csdn.net/seu_calvin/article/details/53047682

8.性能优化
PS:性能优化包括内存,处理效率,视觉流畅度,CPU,电量,流量等方面,针对手机的性能去做相应的方案。个人认为更应该把握好内存优化、处理效率(代码质量)、视觉流畅度(布局优化)。
(8.1)ANR产生的原因是什么?
https://www.jianshu.com/p/7fd95bc2a55c
(8.3)oom是什么?
https://blog.csdn.net/hudfang/article/details/51781997
(8.4)什么情况导致oom?
https://blog.csdn.net/hudfang/article/details/51781997
(8.5)有什么解决方法可以避免OOM?
https://blog.csdn.net/hudfang/article/details/51781997
(8.6)Oom 是否可以try catch?为什么?
有一种情况可以:在try语句中声明了很大的对象,导致OOM,并且可以确认OOM是由try语句中的对象声明导致的,但是这通常不是合适的做法。
(8.7)内存泄漏是什么?
https://www.jianshu.com/p/bf159a9c391a
(8.8)什么情况导致内存泄漏?
https://www.jianshu.com/p/90caf813682d
(8.9)如何防止线程的内存泄漏?
https://www.jianshu.com/p/90caf813682d
https://www.cnblogs.com/ywq-come/p/5926422.html
(8.10)内存泄露的解决方法
https://blog.csdn.net/carson_ho/article/details/79407707
(8.11)内存泄漏和内存溢出区别?
https://blog.csdn.net/sinat_29255093/article/details/52556760
(8.12)如何对Android 应用进行性能分析以及优化?
这个作者做了很多片性能优化的文章,建议看完
https://www.jianshu.com/p/da2a4bfcba68
(8.13)怎么去除无用代码?
https://blog.csdn.net/it_flower/article/details/52305558
(8.14)性能优化如何分析systrace?
https://www.jianshu.com/p/6f528e862d31
(8.15)用IDE如何分析内存泄漏?
跑一段你觉得有问题的代码段,gc,再跑,再gc,看看内存会不会一直上升
https://blog.csdn.net/u010944680/article/details/51721532
(8.16)Java多线程引发的性能问题,怎么解决?
https://zhuanlan.zhihu.com/p/23389156
(8.17)启动页白屏及黑屏解决?
https://blog.csdn.net/zivensonice/article/details/51691136
(8.18)启动太慢怎么解决?
应用启动速度,取决于你在application里面时候做了什么事情,比如你集成了很多sdk,并且sdk的init操作都需要在主线程里实现,那自然就慢咯。在非必要的情况下可以把加载延后。或者丢子线程里。
https://www.jianshu.com/p/4f10c9a10ac9
(8.19)怎么保证应用启动不卡顿?
同上面一个道理,也可以做个闪屏页当缓冲时间。
https://www.jianshu.com/p/4f10c9a10ac9
(8.20)App启动崩溃异常捕捉
https://www.jianshu.com/p/fb28a5322d8a
(8.21)自定义View注意事项
减少不必要的调用invalidate()方法
https://blog.csdn.net/whb20081815/article/details/74474736
(8.22)现在下载速度很慢,试从网络协议的角度分析原因,并优化(提示:网络的5层都可以涉及)。
这个问题让我去请教一下再来回答
(8.23)Https请求慢的解决办法(提示:DNS,携带数据,直接访问IP)
https://www.cnblogs.com/mylanguage/p/5635524.html
(8.24)如何保持应用的稳定性
内存,布局优化,代码质量,数据结构效率,针对业务合理的设计框架
(8.25)RecyclerView和ListView的性能对比
https://blog.csdn.net/fanenqian/article/details/61191532
(8.26)ListView的优化
可以说上分页加载哦
https://www.cnblogs.com/yuhanghzsd/p/5595532.html
(8.27)RecycleView优化
https://blog.csdn.net/axi295309066/article/details/52741810
https://www.jianshu.com/p/411ab861034f
(8.28)View渲染
https://www.cnblogs.com/ldq2016/p/6668148.html
(8.29)Bitmap如何处理大图,如一张30M的大图,如何预防OOM
重点是在对于对内存的了解以及内存使用率的掌握
https://blog.csdn.net/guolin_blog/article/details/9316683
(8.30)java中的四种引用的区别以及使用场景
https://blog.csdn.net/qq_23547831/article/details/46505287
(8.31)强引用置为null,会不会被回收?
会,GC执行时,就被回收掉,前提是没有被引用的对象
一定要了解垃圾回收原理
https://blog.csdn.net/qq_33048603/article/details/52727991

9.JNI
(9.1)请介绍一下NDK
https://www.jianshu.com/p/fa613762f516
https://blog.csdn.net/carson_ho/article/details/73250163
(9.2)什么是NDK库?
https://blog.csdn.net/carson_ho/article/details/73250163
(9.3)如何在JNI中注册native函数,有几种注册方式?
https://blog.csdn.net/wwj_748/article/details/52347341
(9.4)Java如何调用c、c++语言?
https://www.jianshu.com/p/27404a899d88
(9.5)JNI如何调用java层代码?
https://www.jianshu.com/p/4893848a3249
(9.6)你用JNI来实现过什么功能吗?怎么实现的?
加密处理、影音方面、图形图像处理
https://blog.csdn.net/summer0527/article/details/1827186

10.进程间通信(简称:IPC)
(10.1)进程间通信的方式?
https://www.jianshu.com/p/ce1e35c84134
(10.2)Binder机制的作用和原理
http://www.cnblogs.com/innost/archive/2011/01/09/1931456.html
https://blog.csdn.net/luoshengyang/article/details/6618363/
(10.3)简述IPC?
https://blog.csdn.net/luoshengyang/article/details/6618363/
(10.4)什么是AIDL?
https://www.jianshu.com/p/d1fac6ccee98
https://www.jianshu.com/p/a5c73da2e9be
(10.5)AIDL解决了什么问题?
官方文档:
Note: Using AIDL is necessary only if you allow clients from different applications to access your service for IPC and want to handle multithreading in your service. If you do not need to perform concurrent IPC across different applications, you should create your interface by implementing a Binder or, if you want to perform IPC, but do not need to handle multithreading, implement your interface using a Messenger. Regardless, be sure that you understand Bound Services before implementing an AIDL.
“只有当你允许来自不同的客户端访问你的服务并且需要处理多线程问题时你才必须使用AIDL”
(10.6)AIDL如何使用?
https://www.jianshu.com/p/d1fac6ccee98
https://www.jianshu.com/p/a5c73da2e9be
(10.8)Android进程分类?
https://blog.csdn.net/zhongshujunqia/article/details/72458271
(10.9)进程和 Application 的生命周期?
(10.10)进程调度
https://blog.csdn.net/innost/article/details/6940136
(10.11)谈谈对进程共享和线程安全的认识
https://blog.csdn.net/coding_glacier/article/details/8230159
https://blog.csdn.net/oweixiao123/article/details/9057445
问你线程安全的时候,不止要回答主线程跟子线程之间的切换,还有数据结构处理的线程安全问题,多线程操作同一个数据的一致性问题,等等。

11.WebView
https://www.jianshu.com/p/3c94ae673e2a
https://www.jianshu.com/p/52ec85259ccc
过一遍这个
(11.1)描述一下Webview的作用
WebView控件功能强大,除了具有一般View的属性和设置外,还可以对url请求、页面加载、渲染、页面交互进行强大的处理。
(11.2)WebView的内核是什么
Android的Webview在低版本和高版本采用了不同的webkit版本内核,4.4后直接使用了Chrome。
(11.3)描述一下WebView与js的交互方式
https://blog.csdn.net/carson_ho/article/details/64904691
(11.4)描述一下WebView的缓存机制
https://www.jianshu.com/p/5e7075f4875f
(11.5)关于WebView的优化你知道哪些
https://www.jianshu.com/p/95d4d73be3d1
(11.6)有没有用过第三方WebView组件?讲一讲优势
https://www.jianshu.com/p/d3ef9c62b6c8

12.进程保活
关于守护进程、不死进程、进程保活这些话题,有几句话想说一下:
这个近期是面的越来越少。在google的控制下,高版本基本上是扼杀了这种无赖行为,市面上现在做进程保活基本都是走厂商白名单和系统签名进程等方式,又或者应用之间互相拉起,各大应用相互合作。
但并不是说不能做,只能用各种方式混搭,去提高保活的成功率。

熟悉进程保活的干货:
https://www.jianshu.com/p/63aafe3c12af
https://blog.csdn.net/tencent_bugly/article/details/52192423
https://www.cnblogs.com/Doing-what-I-love/p/5530291.html

还有一个大神深入研究这个话题,并开源出自己的代码,在github上挺受欢迎的,大家可以去拿来试一下:
blog:https://blog.csdn.net/marswin89/article/details/48015453
github:https://github.com/Marswin/MarsDaemon

看完以上文章,so以下的问题大家心里都有数了吧?
(12.1)做过进程保活吗?
(12.2)5.0下和5.0上的保活方式了解吗?
(12.3)描述一下进程回收的过程
(12.4)如何降低进程的oom_adj

13.杂7杂8
(13.1)Handler机制和底层实现
https://www.cnblogs.com/ryanleee/p/8204450.html
https://www.jianshu.com/p/b03d46809c4d
(13.2)Handler、Thread和HandlerThread的差别
https://blog.csdn.net/lmj623565791/article/details/47079737/
(13.3)handler发消息给子线程,looper怎么启动?
什么问题呢。。发消息就是把消息塞进去消息队列,looper在应用起来的时候已经就启动了,一直在轮询取消息队列的消息。
(13.4)关于Handler,在任何地方new Handler 都是什么线程下?
我自己看不太懂这个问题
(13.5)ThreadLocal原理,实现及如何保证Local属性?
https://blog.csdn.net/singwhatiwanna/article/details/48350919
(13.6)请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系
https://blog.csdn.net/lovedren/article/details/51701477
(13.7)AsyncTask机制
https://blog.csdn.net/yanbober/article/details/46117397
(13.8)AsyncTask原理及不足
https://www.cnblogs.com/absfree/p/5357678.html
(13.9)如何取消AsyncTask?
调用cancel()
但是:
https://www.jianshu.com/p/0c6f4b6ed558
(13.10)为什么不能在子线程更新UI?
https://blog.csdn.net/cewei711/article/details/53028358?locationNum=2&fps=1
(13.11)LruCache默认内存缓存大小
基本上设置为手机内存的1/8
(13.12)ContentProvider的权限管理(解答:读写分离,权限控制-精确到表级,URL控制)
(13.13)如何通过广播拦截和abort一条短信?
https://blog.csdn.net/ljw124213/article/details/50492449
(13.14)广播是否可以请求网络?
子线程可以,主线程超过10s引起anr
(13.15)广播引起anr的时间限制是多少?
onReceive的生命周期为10秒
https://blog.csdn.net/me_dong/article/details/53582115
(13.16)描述一下Activity栈
https://www.jianshu.com/p/c1386015856a
(13.17)Android线程有没有上限?
跟内存挂钩,我也不太清楚,自己查哈
(13.18)线程池有没有上限?
跟内存挂钩,我也不太清楚,自己查哈
http://www.trinea.cn/android/java-android-thread-pool/
https://blog.csdn.net/cfy137000/article/details/51422316
(13.19)ListView重用的是什么?
https://blog.csdn.net/u011692041/article/details/53099584
(13.20)Android为什么引入Parcelable?
https://blog.csdn.net/jaycee110905/article/details/21517853
(13.21)有没有尝试简化Parcelable的使用?
as的插件
(13.22)ListView 中图片错位的问题是如何产生的?
https://blog.csdn.net/a394268045/article/details/50726560
(13.23)混合开发有了解吗?
https://blog.csdn.net/sinat_33195772/article/details/72961814
(13.24)知道哪些混合开发的方式?说出它们的优缺点和各自使用场景?(解答:比如:RN,weex,H5,小程序,WPA等)
https://www.jianshu.com/p/22aa14664cf9
https://www.jianshu.com/p/52071a3d07b4
(13.25)屏幕适配的处理技巧都有哪些?
https://blog.csdn.net/wangwangli6/article/details/63258270
(13.26)服务器只提供数据接收接口,在多线程或多进程条件下,如何保证数据的有序到达?
(13.27)动态布局的理解
https://blog.csdn.net/ustory/article/details/42424313
(13.28)画出 Android 的大体架构图
https://blog.csdn.net/wang5318330/article/details/51917092
(13.29)Recycleview和ListView的区别
https://blog.csdn.net/sanjay_f/article/details/48830311
(13.30)ListView图片加载错乱的原理和解决方案
https://blog.csdn.net/a394268045/article/details/50726560
(13.31)动态权限适配方案,权限组的概念
https://blog.csdn.net/xc765926174/article/details/49103483
(13.32)Android系统为什么会设计ContentProvider?
重点,跨进程
https://www.cnblogs.com/zhainanJohnny/articles/3275908.html
(13.33)下拉状态栏是不是影响activity的生命周期
不会
(13.36)Bitmap 使用时候注意什么?
https://blog.csdn.net/newbie_coder/article/details/9842995
(13.37)Bitmap的recycler()
https://blog.csdn.net/lonelyroamer/article/details/7569248
(13.38)Android中开启摄像头的主要步骤
https://www.yiibai.com/android/android_camera.html
(13.39)ViewPager使用细节,如何设置成每次只初始化当前的
懒加载
https://www.jianshu.com/p/e324e8378948
https://blog.csdn.net/linglongxin24/article/details/53205878
(13.41)点击事件被拦截,但是想传到下面的View,如何操作?
问题就是viewgroup被拦截,要传到子view那里,好好看这篇分发机制的文章,你就知道了
https://www.jianshu.com/p/e99b5e8bd67b
(13.42)描述一下微信主页面的实现方式
自己去研究下吧这个,无非fragment嵌套
(13.43)invalidate和postInvalidate的区别及使用
https://blog.csdn.net/mars2639/article/details/6650876
(13.44)Activity-Window-View三者的差别
https://www.jianshu.com/p/a533467f5af5
(13.45)谈谈对Volley的理解
https://blog.csdn.net/ysh06201418/article/details/46443235
(13.46)ActivityThread,AMS,WMS的工作原理
https://www.jianshu.com/p/47eca41428d6
(13.47)LaunchMode应用场景
https://blog.csdn.net/CodeEmperor/article/details/50481726
(13.48)SpareArray原理
https://blog.csdn.net/easyer2012/article/details/37871031
(13.49)请介绍下ContentProvider 是如何实现数据共享的?
https://blog.csdn.net/yhaolpz/article/details/51304345
(13.50)IntentService原理及作用是什么?
https://www.jianshu.com/p/4dd46616564d
(13.51)ApplicationContext和ActivityContext的区别
https://www.jianshu.com/p/94e0f9ab3f1d
(13.53)封装View的时候怎么知道view的大小
https://blog.csdn.net/fwt336/article/details/52979876
(13.55)AndroidManifest的作用与理解
https://www.jianshu.com/p/6ed30112d4a4

推荐阅读更多精彩内容