自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

洪伟的专栏

长兄于病视神,未有形而除之,故名不出于家。中兄治病,其在毫毛,故名不出于闾。若扁鹊者,镵血脉,投毒药,副肌肤,闲而名出闻于诸侯。

  • 博客(10)
  • 资源 (10)
  • 收藏
  • 关注

原创 Android 源码 图形系统之窗口添加

《Android 源码 输入系统之窗口关联》 一节着重考虑了窗口怎样和输入系统关联,而这一节的重点在于窗口如何添加到图形系统。先来看一个整体概览,再来详细分析。先从 setContentView 说起。此函数的作用是:从布局资源设置 Activity 内容。资源将被解析,将所有顶级视图添加到 Activity 中。首先调用 getWindow() 获取 Window 对象(实际为 PhoneWindow 对象),然后调用其 setContentView(…) 方法。frameworks/base/c

2020-06-26 19:06:15 673

原创 Android 源码 图形系统概述

Android 框架提供了各种用于 2D 和 3D 图形渲染的 API,可与制造商的图形驱动程序实现方法交互。应用开发者可通过三种方式将图像绘制到屏幕上:使用 Canvas、OpenGL ES 或 Vulkan。一、Android 图形组件无论开发者使用什么渲染 API,一切内容都会渲染到“Surface”。Surface 表示缓冲队列中的生产方,而缓冲队列通常会被 SurfaceFlinger 消耗。在 Android 平台上创建的每个窗口都由 Surface 提供支持。所有被渲染的可见 Surfac

2020-06-26 19:04:48 867

原创 Android 源码 installd 启动流程分析

installd 进程具有 CAP_DAC_OVERRIDE 特权(Privilege)。对于具有 CAP_DAC_OVERRIDE 特权的进程,Linux 会跳过文件的读、写和执行权限的检查。所以,installd 可以访问任何目录下的文件。system 用户则会受限。而 PackageManagerService 属于系统进程,system 用户并没有访问应用程序目录的权限,这就需要委托给 installd 处理。SystemServer 类 startBootstrapServices() 方法中

2020-06-09 19:41:46 990 2

原创 Android 源码 PackageManagerService 启动流程分析

《Android 源码 installPackage 流程分析》一节着重分析了 apk 安装流程,接下来我们分析 PackageManagerService 启动时都做了些什么?执行 PackageManagerService main 静态方法;调用 PackageManagerService 类 isFirstBoot() 方法;调用 PackageManagerService 类 getUsageStatsIfNoPackageUsageInfo() 方法;调用 PackageManager

2020-06-08 17:45:04 729

原创 Android 源码 installPackage 流程分析

installPackage 安装流程最终会调用 PackageManagerService 对应方法,当然是使用 binder 机制得以实现跨进程通信。先来看看 installPackage 流程具体和各种进程如何关联调用,有个整体印象以后我们再来分析其流程。起点是 ApplicationPackageManager 类 installPackage 方法。frameworks/base/core/java/android/app/ApplicationPackageManager.java/*

2020-06-05 21:47:29 3278

原创 Android 源码 关机流程分析

Power 键长按 3s 可触发设备关机流程,关机我们能想到的有首先结束当前正在运行的界面,接着关闭显示屏,然后各种设备下电,最后设备彻底关闭。在《Android 源码 输入系统之 InputReader》一节中,调用 InputDispatcher 类 notifyKey 方法,其中调用了 InputDispatcherPolicyInterface(mPolicy) 类的 interceptKeyBeforeQueueing 方法,这会拦截关机键输入事件。frameworks/native/ser

2020-06-02 22:05:21 668

原创 Android 源码 输入系统之事件窗口分发

handleReceiveCallback 方法对消息进行处理。上一节打通了 InputDispatcher 和输入窗口之间双向的通道,这是通过 InputChannel 承载的。现在可以继续分析从 InputDispatcher 发送出的事件如何被接收处理了。NativeInputEventReceiver 类 handleEvent 被调用,用来处理 InputDispatcher 发送来的事件。frameworks/base/core/jni/android_view_InputEventRec

2020-06-02 21:36:34 800

原创 Android 源码 输入系统之 InputChannel 通信通道建立

上一节完成了焦点窗口关联,现在可以分析如何将输入事件继续从 InputDispatcher 继续分发。InputChannel 的 sendMessage 将消息发送出去。实际是调用 socket 的 send 接口来发送消息的。具体一点其实使用的是 socketpair。所以我们先来学习 Linux 如何使用 socketpair,然后“破解” InputChannel 通信,最后再去分析输入事件窗口分发。一、socketpair 使用用于创建一对无名的、相互连接的套接字。#include <

2020-06-01 21:22:35 823

原创 Android 源码 输入系统之窗口关联

在前一节中,InputDispatcher 的事件派发工作调用 InputChannel sendMessage 方法标志着 InputDispatcher 一个周期的工作结束。但意味着事件找到对应的窗口处理的开始。上一节中 mFocusedWindowHandle 是 InputDispatcher 的成员变量,它是确定发送事件消息的关键。我们以它为突破口寻找“出路”。mFocusedWindowHandle 在 setInputWindows 方法中进行了赋值,我们需要反推一下。frameworks

2020-06-01 21:20:15 1017

原创 Android 源码 输入系统之 InputDispatcher

InputDispatcherThread 线程负责派发事件。InputDispatcherThread 启动后会执行 threadLoop 函数。threadLoop 函数返回 true,InputDispatcherThread 就会循环执行 threadLoop 函数。具体可以参见关于 Native Thread 实现一节《Android 源码 Native Thread 分析》。InputDispatcherThread(称为“ InputDispatcher”)线程在队列上等待新事件,并异步将其分

2020-06-01 21:18:23 1824

ORMLite和GreenDao性能对比Demo

ORMLite和GreenDao性能对比Demo,两个常用数据库ORM框架用法与比较

2016-01-03

android使用html写一个关于页面

使用html写一个android的关于页面,动态修改版本号,让你从繁重的Textview 堆砌中彻底解放出来

2015-11-07

Android FTP客户端与服务端

两部手机其中一部手机作为服务器,另一部手机作为客户端下载,使用FTP方式传输文件,图片下载,多图加载,滑动停止加载完整DEMO。

2015-09-13

MPAndroidChart

关于MPAndroidChart就不多说了,是一个开源的android图表库,包含折线图、柱状图、散点图、雷达图等等,功能非常强大

2015-09-05

Android图片局部放大镜

图片上某一点看不清楚,你不需要将整张图片都放大,只需要放大你想看到的部分,这个时候放大镜就派上用场了。

2015-08-16

Android发送邮件功能实现

使用commons-net-3.3.jar或mail.jar核心邮件包实现邮件发送功能,可发送附件、图片、HTML邮件,灵活控制,甚至实现后台发送邮件功能!

2015-08-16

android图片堆叠效果实现

android图片堆叠效果实现,实现任意小角度堆叠显示,可用于图片相册缩略图

2015-07-18

软件内每日提醒功能实现

软件内每日提醒功能实现,可添加到工程中实现每日提醒,隔天提醒等提醒功能

2015-07-12

可分割的环形进度条

可分割的环形进度条,适合倒计时等场景,已经定义好,只需把文件拷入即可使用

2015-06-13

高仿今日头条字体渐变指示器

今日头条的指示器很炫酷,随着你的滑动字体颜色可以逐渐的变化,实现方法主要是使用自定义控件结合ViewPager。 CompleteTrackColorViewDemo实现高仿今日头条字体渐变指示器,滑动+点击切换,如丝顺滑

2015-04-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除