android随笔
应用部分:
触摸监听 GestureDetector
按键监听 OnClickListener 匿名类、事件监听器
布局
Android::layoutpadding 内边距
Android::margin 外边距
Android::orientation 布局方向
Android::layout_gravity 该View相对于父View的位置
系统部分:
RefBase是Android中所有对象的始祖
sp (strong pointer)
wp (weak pointer)
wp中的promote()函数将一个弱引用升级为强引用。
int atoi(const char *nptr); alphonumetric to int
AutoLock类在构造函数中调用lock(),析构函数调用unlock()。
mutable C++中关键字,与const相对,表示可变的
volatile 修饰的对象不执行优化,多用与多线程
inline 内敛函数,C++中替代define定义函数,在调用处展开
Android消息处理有三个核心类:Looper(包含Message Queue)、Handle和Message
Looper使普通线程变为Looper线程。
Handle向MQ上添加消息和处理消息。
VSYNC类似中断,用作同步。有两种产生方式:
硬件生成(HardWareComposer中HAL层提供)和软件模拟(HWC通过VsyncThread模拟)。
overdraw(过度绘制):描述的是屏幕上的某个像素在同一帧的时间内被绘制多次。
Refresh Rate: 屏幕1秒内刷新的次数,取决于硬件固定参数,如60hz
Frame Rate: GPU 1秒内绘制操作的帧数,如60fps frame per second
GPU对图形数据进行渲染,硬件把内容呈现在屏幕上。
GPU负责把UI组件计算成polygons, Texture纹理,然后交给GPU进行栅格化渲染。
openGL ES可以把需要渲染的纹理Hold在GPU Memory中。
源码编译 mmm packages/apps/EpdDemo
启动Activity am start -n packagename/.MainActivity
adb日志 adb logcat | grep string
对硬件的支持:
用户空间(user space):硬件抽象层(HAL) 保留
内核空间(kernal space): 内核驱动 公开
更多相关文章
- C语言函数以及函数的使用
- android NDK JNI设置自己的log输出函数
- Android build/envsetup.sh 脚本分析(lunch函数)
- Android Hook学习之ptrace函数的使用
- Android中回调函数的理解---本人Android纯新手
- 【Android NDK 开发】Ubuntu 函数库交叉编译 ( Android 动态库交
- android 获取系统硬件信息
- Android硬件控制之USB连接
- [android]android自动化测试七之动态AVD硬件参数