1、android系统架构:
Linux内核——标准库——Framework层——应用层
Linux层包括:Android系统的核心服务,硬件驱动,进程管理,系统安全等等
2、UI界面框架图:
3、View的测量模式:EXACTLY,AT_MOST,UNSPECIFIED。
4、自定义View与ViewGroup的时候应该注意什么?
自定义ViewGroup的时候应该注意重写onLayout来控制子类显示的位置。
如果需要支持wrap_content还要重写onMeasure()。
自定义View的时候,如果需要支持wrap_content,需要重写onMeasure().
5、自定义view的种类:
(1)、对已有的组件进行拓展
(2)、通过组合来实现新的控件
(3)、重写View来实现全新的控件
6、实现滑动的方法:
(1)、通过layout方法。
(2)、通过LayoutParam来改变一个view的位置(必须有一个父布局才能够获取到组件的LayoutParam)。
(3)、scrollTo,scrollBy方法。(移动的是组件里面的内容,dx和dy如果是负数的话,那么内容往正方向移动,正数则往负方向移动)。
(4)、Scroller。
(5)、属性动画。
(6)、ViewDragHelper
(7)、offsetLeftAndRight()同时对左和右进行偏移。
offsetTopAndBottom()同时对上和下进行偏移。
7、独立像素dp与px的换算:
android系统使用mdpi即密度值为160的屏幕作为标准,在这个屏幕上,1px=1pd,各个分辨率直接的换算比例为:
ldpi:mdpi:hdpi:xhdip:xxhdpi=3:4:6:8:12
8、SurfaceView与View的区别:
(1)、View主要用于主动更新的情况,而SurfaceView主要用于被动更新的情况,例如频繁地刷新。
(2)、View是在主线程中进行刷新的,而SurfaceView是通过一个子线程来刷新页面的。
(3)、View在绘图的时候没有采用双缓冲机制,而SurfaceView在底层实现机制中就已经实现了双缓冲机制。
9、android的安全机制:
(1)、第一道防线:代码安全机制——代码混淆proguard。
(2)、第二道防线:应用接入权限控制——AndroidMainifest文件权限声明、权限检查机制。
(3)、第三道防线:应用签名机制——数字证书(Android系统不会安装没有签名的APP)。
(4)、第四道防线:Linux内核层安全机制——Uid访问权限控制
(5)、第五道防线:Android虚拟机沙箱机制——沙箱隔离