美文网首页Android汇总总结
Android开发基本知识汇总

Android开发基本知识汇总

作者: 紫苓 | 来源:发表于2016-07-26 20:07 被阅读19次

1、Matrix 理解

1)、Matrix对于处理图片的缩放、平移、旋转提供了比较方便的方法
2)、在使用的时候需要注意的就是一些方法的作用以及调用顺序问题

// 注意以下的(0,0)位置,都是父容器的左上角位置坐标

// 旋转
setRotate(float degrees) // 以(0,0)为中心点进行旋转
setRotate(float degrees, float px, float py) // 以(px,py)为中心点进行旋转

// 平移
setTranslate(float dx, float dy) // X方向移动dx,Y方向移动dy

//调用顺序问题
// 只要是setXXX()方法之前的都不会被执行

2、Android一些特殊标签的理解

2.1 viewStub
页面中的某一块较为复杂的UI只在极少情况下才会被显示出来,因为设置是否可见时系统还是会要加载绘制这块内容,但是如果使用viewStub这一类似占位符控件,在系统初始化加载该UI的时候资源消耗就会少很多;ViewStub只能允许操作一次,对于要反复操作是否可见是不能使用这个控件的。
2.2 requestFocus
把焦点设置在当前控件上
2.3 merge
主要和include一起使用,可以减少总View的绘制层数
2.4 include
该标签主要作用是布局重用

3、&和&&,|和||运算符

**(条件1) & (条件2) **
不管条件1是否成立,条件1和条件2都会被执行到,只有条件1和条件2同时为true时结果才为true
**(条件1) && (条件2) **
只有当条件1为true时,条件2才会被执行到,只有条件1和条件2同时为true时结果才为true
**(条件1) | (条件2) **
不管条件1是否成立,条件1和条件2都会被执行到,条件1和条件2只要任意一个为true则结果为true
**(条件1) || (条件2) **
只有在条件1不成立的时候,条件2才会被执行到,条件1和条件2只要任意一个为true则结果为true

4、java中的原码,反码和补码以及~运算符理解

java中,正数的原码,反码和补码是一样的
负数的反码为原码取反(符号位不变),负数的补码是反码加1
比如,-10的原码是1000 1010,反码就是1111 0101,补码就是1111 0110
~3运算过程:3的原码是0000 0011,~的意思是取反就是1111 1100,这个得到的是补码,然后转反码就是补码减1得到1111 1011,再取反得到原码(符号位不变)为1000 0100,也就是-4

5、View事件分发机制

dispatchTouchEvent(),onInterceptTouchEvent(),onTouchEvent(),onTouchEvent(),onTouch(),onClick();
详细分析参考这里

6、View的工作原理

7、packagemanagerservice分析

8、Activity启动过程

9、Activity四种启动模式

standard:默认启动模式,不管栈里面有没有Activity对象,都会再new一个Activity实例然后放到栈里面去
singleTop:一般和clear_top使用,会把它上面的Activity实例给清空掉
singleTask:singleTop + clear_top = singleTask
singleInstance:独自享有一个taskstack
可以看看这个

10、Handler/HandlerThread

11、android对应用资源的加载过程

12、AndroidManifest.xml一些配置说明

android:sharedUserId:用于指定该APK具有某个指定进程的权限,配合android:processor来使用的话可以实现多个APK共享一个进程,从而实现数据共享
android:allowBackup:是否允许数据备份,默认是为true的,这个最好改成false
android:exported:是否允许其他应用起调该组件(activity,service,provider,receiver)
**android:android:supportsRtl:是否允许布局左右颠倒显示,默认是允许的,并且只有在API》=17的版本上才能起作用

13、如何让主线程等待子线程完成之后再进行下一步的操作:Thread.join()

14、UI卡顿原因及处理方式

1)、布局层级太深 ,分析工具Hierarchy Viewer
2)、绘制过渡,GPU分析
3)、在UI线程中进行了复杂的逻辑操作甚至是耗时操作,StrictMode / leakcanary
4)、GC操作频繁
5)、在合适的时机处理合适的任务

相关文章

网友评论

    本文标题:Android开发基本知识汇总

    本文链接:https://www.haomeiwen.com/subject/townjttx.html