![](https://img-blog.csdnimg.cn/20210319142401711.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android知识库
文章平均质量分 79
主要是Android相关的常用知识技术积累。
Z丶北城大叔
既然选择了远方,便只顾风雨兼程...
展开
-
Android 的事件处理机制
Android 提供了两种方式的事件处理机制:<1> 基于监听的事件处理; <2> 基于回调的事件处理。(说明:事件处理就是为用户动作提供响应的机制)一、基于监听的事件处理1、两种方式(1)为 Android 界面组件绑定特定的事件监听器;(2)在界面布局文件中,为 UI 组件的 android:onClick 属性指定事件监听方法。(注:该方式需要在 Activity 中定义该事件监听方法)2、事件监听处理模型(1)涉及三类对象:Event Source(事件源)原创 2021-06-01 11:48:59 · 939 阅读 · 0 评论 -
Activity生命周期
一、Activity的四种状态1、Running状态:一个新的Activity的启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并,可与用户交互的激活装态;2、Paused状态:当Activity被另一个透明或者Dialog样式的Activity覆盖时的状态,此时它依然与窗口管理器保持连接,系统继续维护其内部状态,他仍然可见,但是它已经失去焦点,故不可与用户交互。3、Stopped状态:当Activity不可见时,Activity处于Stopped状态。当Activity处于此状态时,原创 2021-04-28 11:13:56 · 104 阅读 · 0 评论 -
[笔记] 02 Android 几个重要进程
一、init 进程init 进程,是 Andorid 系统中用户空间的第一个进程(pid=1),它是用户进程的鼻祖,负责孵化各种属性服务、守护进程、Zygote 进程等。Init 进程是由多个源文件共同组成的,这些源文件位于源码目录:system/core/init 。1、init 进程分析当内核完成系统设置,它首先在系统文件中寻找 “init” 文件,最后会调用 /system/core/init/init.cpp 的 mian() 方法(它是 init 的入口函数)。主要完成如下两件事情:(原创 2020-08-28 16:42:02 · 224 阅读 · 0 评论 -
[笔记] 01 Android 系统架构
2007年11月 Google成立了“Android 开源项目”(AOSP:Android Open Source Project) :标志着 Android 系统首次公开面向全世界的开发者和使用者。原创 2020-08-28 16:47:43 · 230 阅读 · 0 评论 -
BugReport 概述
Android BugReport 中包含文本 (.txt) 格式的 dumpsys、dumpstate、logcat 数据,便于轻松搜索特定内容。以下各部分详细说明了BugReport 的组成部分及常见问题,并提供了关于查找与这些错误相关的日志的实用提示和 grep 命令。一、如何阅读 BugReport1、LogcatLogcat 日志是所有 Logcat 信息采用字符串形式的转储。其中,包括:System Log、Event Log。(1)System Log 部分专门用于记录框架方面的信息,原创 2020-08-03 11:37:03 · 4242 阅读 · 1 评论 -
dumpsys 概述
dumpsys 是 Android 系统里面的一个可执行文件,其主要作用:将当前 Android 系统的一些信息 dump 出来(例如:Activity、package等)。dumpsys 是一个分析 Android 设备问题、查看运行状态、使用情况等十分有效的工具。...原创 2020-08-20 17:46:26 · 1642 阅读 · 0 评论 -
Binder 机制
Binder 是 Android 系统进程间通信(IPC:Internet Process Connection)方式之一。Linux 已经拥有的 IPC 手段包括: 管道(Pipe)、信号(Signal)、跟踪(Trace)、插口(Socket)、报文队列(Message)、共享内存(Share Memory)和信号量(Semaphore)等。本文详细分析 Binder 作为 Android 主要 IPC 方式的优势。一、概述基于 Client-Server 的通信方式,广泛应用于从互联网和数据库访问原创 2021-01-06 11:18:11 · 586 阅读 · 0 评论 -
Context 详谈
Activity 能否使用如下写法:Activity mActivity = new Activity()?Android 的应用程序开发采用 Java 语言,Activity 本质上也是一个对象,但是,Android 程序不像 Java 程序一样,随便创建一个类,写个main() 方法就能运行。Android 应用模型是基于组件的应用设计模式,组件的运行要有一个完整的 Android 工程环境,在这个环境下,Activity、Service 等系统组件才能够正常工作,而这些组件并不能采用普通的 Java原创 2020-08-10 18:19:09 · 215 阅读 · 0 评论 -
OpenGL ES 概述
OpenGL(Open Graphics Library,开放图形库)是用于渲染 2D、3D 矢量图形的跨语言、跨平台的应用程序编程接口(API)。它的体系简单,而且具有跨平台的特性,不仅适用于大型图形工作站,也适用于 PC。但是在一些手机之类的小型设备上,OpenGL 使用就比较困难了,因为三维图形计算需要处理大量数据。于是,Khronos 协会针对手机、PDA、游戏主机等嵌入式设备,提供了 OpenGL 的一个子集:OpenGL ES(OpenGL for Embedded System)。一、概述原创 2020-08-07 17:54:41 · 275 阅读 · 0 评论 -
VSync 信号处理
一、基本概念1、帧率(Frame Rate)指 GPU 生成帧的速率,单位:fps,如:33fps、60fps,越高越好。2、屏幕刷新率(Scanning Frequency)指设备刷新屏幕的频率,单位:赫兹/Hz,该值对于特定的设备来说是个常量,如:60Hz。(注:对于一个特定的设备,帧率和刷新频率没有必然的大小关系。)屏幕的刷新过程是每一行从左到右(行刷新,水平刷新,Horizontal Scanning),然后从上到下(屏幕刷新,垂直刷新,Vertical Scanning)。当整个屏幕刷原创 2020-07-29 15:05:15 · 2208 阅读 · 0 评论 -
Android.mk 文件解析
Android.mk 文件其实是把 Makefile 包装起来,做成了一个对使用者来说很简单的东西。使用它来编译程序时,不管是动态库、可执行的二进制文件,还是Jar库、APK包,只要沿着一个简单的思路来做三大步就可以了:清除旧变量;设置新变量;调用编译函数。对于初学者来说,需要明白的是,Android 如何让使用脚本的人从 Makefile 语法中解放出来,简单地按照上面的三大步就可以编译出任何模块。一、Android.mk 文件1、举例## 拿 AlarmClock 举例说明// 1.清除旧变量原创 2020-07-28 20:39:46 · 253 阅读 · 0 评论 -
IPC-进程间通信
一、进程间通信(IPC:Inter Process Communication)1、操作系统中的各个进程,通常存在于独立的内存空间,并且有着严格的机制来防止进程间的非法访问。但是,这并不代表进程与进程间不允许互相通信,相反,进程间通信是操作系统中一个重要的概念,应用非常广泛。广义上,进程间通信是指运行在不同进程之间(不论是否在同一台机器)的若干线程间的数据交换。如下图所示:原则上,任何跨进程的数据交换都可以称为进程间通信。IPC 中参与通信的进程,既可以运行在同一台机器上,也允许他们存在于各自的设备原创 2020-06-30 20:31:21 · 285 阅读 · 0 评论