目录
自定义View
自定义View之Canvas
自定义View之Paint
概述
自定义属性
声明属性
使用declare-styleable声明属性
1 |
|
使用属性
1 |
|
自定义View
自定义View之Canvas
自定义View之Paint
使用declare-styleable声明属性
1 |
|
1 |
|
自定义View
自定义View之Canvas
自定义View之Paint
1 |
|
在 Android 的绘制里使用 Shader ,并不直接用 Shader 这个类,而是用它的几个子类。具体来讲有:
我们在做带UI的软件时,一般的做法是先创建一个窗口,然后在窗口上添加各种Button、Text、List等其他UI控件。Android、iOS也是类似,但代码的设计上跟PC端
有些差别,Android使用Activity来管理UI、iOS使用ViewController。一般软件的入口都是main函数开始,Android中则通过描述文件AndroidManifest.xml配置一个Activity的属性作为入口。用户操作手机的时候使得一个界面可能处于可视
状态,也可能处理隐藏
状态,对应着Activity会有自己的生命周期。不同UI的嵌套
也是需要维护的,所以就有了Activity任务栈
,对应着不同Activity有不同的启动模式
。不同的Activity之间又可能需要数据传递,因而有了Intent。
生命周期中的第一个函数,整个生命周期中只会调用一次。savedInstanceState参数如果不为空,表示Activity暂时销毁时有存储一些数据,此时可以恢复。
当前Activity从不可见重新变为可见状态时,会调用。
此时准备进入前台了
Activity是一种展示型组件,具有两种启动方式,一种是显示的,通过intent实现;另一种是隐式的,也需要intent,但还需要在AndroidManifest.xml
中添加intentfilter。在实现Activity时,需要继承Activity抽象类,并且重写onCreat()方法,因此,Activity具有启动和停止的概念。
从startActivity开始,代码会运行到Activity的startActivityForResult方法。
1 | Activity.java |
Linux Kernel:Android 的核心系统服务基于Linux 内核,在此基础上添加了部分Android专用的驱动。系统的安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核。
Hardware Abstraction Layer:对Linux内核驱动程序的封装,向上提供接口,向下屏蔽了具体的实现细节。硬件抽象层是位于操作系统内核与硬件电路之间的接口层,
其目的在于将硬件抽象化,为了保护硬件厂商的知识产权,它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。
从软硬件测试的角度来看,软硬件的测试工作都可分别基于硬件抽象层来完成,使得软硬件测试工作的并行进行成为可能。通俗来讲,就是将控制硬件的动作放在硬件抽象层中。
Native C/C++ Libraries:系统运行层分为C/C++运行时库和Android运行时环境。
Android运行时环境在4.4以前使用的是Dalvik,之后使用ART。从5.0开始,正式废弃了Dalvik。