自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(396)
  • 资源 (35)
  • 收藏
  • 关注

原创 Android SurfaceFlinger——Vsync监听逻辑(五十三)

上一篇文章我们介绍了 SurfaceFlinger 发送 Vsync 信号的流程以及信号的相关处理,这里我们来看一下 Vsync 信号的监听回调逻辑。

2024-08-08 08:58:04 662

原创 Android SurfaceFlinger——Vsync信号发送(五十二)

通过上一篇文章我们创建了一个 EventThread 线程,并且它持有了 SurfaceFlinger 中 resyncWithRateLimit() 方法的指针。这里我们主要来看一下 EventThread 对信号的处理。

2024-08-08 08:57:43 1010

原创 Android SurfaceFlinger——信号同步原理(五十一)

垂直同步(Vertical Synchronization,简称 VSync)是一种用于同步视频信号和显示设备刷新率的技术,以确保视频帧的显示与屏幕的刷新周期相匹配。VSync 对于防止屏幕撕裂(tearing)、保证图像的连贯性和减少输入延迟非常重要。

2024-08-07 09:13:19 482

原创 Android SurfaceFlinger——Fence流转状态(五十)

fence 本质上对应上内核中一个文件描述符 sync_file,sync_file 中有一个核心的 fence 结构体,用于预计释放的时间点。所有的 fence 都是以 sync_timeline 为基准进行递增的。sync_timeline 作为内核记录已经渲染屏幕多少个时间点,每一次通过 hwc_set 都会递增一个时间点,并且会尝试的唤醒关联在 sync_timeline 中 active_list 中 sync_pt 的 fence 的阻塞。

2024-08-07 09:13:03 500

原创 Android SurfaceFlinger——同步围栏Fence(四十九)

在 Android 的 SurfaceFlinger 组件中,围栏(Fence)是一种用于同步不同系统组件间操作完成的机制。围栏的概念来源于硬件图形加速器(如 GPU)和其他系统服务(如 SurfaceFlinger)之间的同步需求。在图形渲染和显示的过程中,多个组件可能会并发地访问共享资源(如缓冲区),为了确保数据的一致性和操作的正确顺序,就需要一种机制来协调这些操作,这就是围栏的作用。

2024-08-06 09:17:21 559

原创 Android SurfaceFlinger——渲染完成帧显示(四十八)

帧渲染完成后下一步就是将帧缓冲区(framebuffer)的内容发送到显示设备进行显示,也是 SurfaceFlinger 处理渲染合成的最后一步。1.更新输出设备的色彩配置文件2.更新与合成相关的状态3.计划合成帧图层4.写入合成状态5.设置颜色矩阵6.开始帧7.准备帧数据以进行显示(异步方式)8.准备帧数据以进行显示(同步方式)9.处理显示输出设备的可选重绘闪烁10.结束帧11.将渲染完成的帧缓冲发布到显示设备12.进行渲染缓存设置。

2024-08-06 09:16:54 647

原创 Android SurfaceFlinger——渲染结束帧(四十七)

介绍完屏幕重绘闪烁问题处理后,下面就到了整个图像合成的第 10 步,结束帧渲染操作,这里我们就继续分析该流程。1.更新输出设备的色彩配置文件2.更新与合成相关的状态3.计划合成帧图层4.写入合成状态5.设置颜色矩阵6.开始帧7.准备帧数据以进行显示(异步方式)8.准备帧数据以进行显示(同步方式)9.处理显示输出设备的可选重绘闪烁10.结束帧11.将渲染完成的帧缓冲发布到显示设备12.进行渲染缓存设置。

2024-08-05 09:57:27 464

原创 Android SurfaceFlinger——重绘闪烁处理(四十六)

直接重绘到屏幕:在某些情况下,应用程序直接在屏幕缓冲区上进行绘制,当绘制完成时,新内容立即显示出来,如果绘制速度不够快,用户可能会看到屏幕内容的瞬间变化。双缓冲机制不完善:双缓冲是一种常用的技术,用于减少重绘闪屏。在这种机制下,应用在一个独立的后台缓冲区进行绘制,绘制完成后,后台缓冲区的内容被交换到前台显示。但如果双缓冲的实现不完全,例如在缓冲区交换时出现延迟,或者在绘制过程中部分区域未能正确遮挡,仍然可能导致闪屏。

2024-08-05 09:57:03 499

原创 Android SurfaceFlinger——帧数据准备完成(四十五)

上一节我们介绍了准数据准备过程中选择合成策略的同步和异步操作,在选择合成策略完成后还会调用以下两个函数:applyCompositionStrategy:应用合成策略。finishPrepareFrame:完成帧的准备过程。

2024-08-01 08:53:48 418

原创 Android SurfaceFlinger——准备帧数据(四十四)

通过前面的文章我们介绍了 SurfaceFlinger 图层合成的整体流程,并且上一篇已经介绍了帧渲染流程的第一步,这里我们继续介绍帧渲染的准备工作——准备帧数据。1.更新输出设备的色彩配置文件2.更新与合成相关的状态3.计划合成帧图层4.写入合成状态5.设置颜色矩阵6.开始帧7.准备帧数据以进行显示(异步方式)8.准备帧数据以进行显示(同步方式)9.处理显示输出设备的可选重绘闪烁10.结束帧11.将渲染完成的帧缓冲发布到显示设备12.进行渲染缓存设置。

2024-08-01 08:53:31 1040

原创 Android SurfaceFlinger——渲染开始帧(四十三)

开始帧通过前面的文章我们介绍了 SurfaceFlinger 图层合成的整体流程,已经对应步骤的前五步,这里我们开始介绍帧渲染流程的第一步——开始帧。1.更新输出设备的色彩配置文件2.更新与合成相关的状态3.计划合成帧图层4.写入合成状态5.设置颜色矩阵6.开始帧7.准备帧数据以进行显示(异步方式)8.准备帧数据以进行显示(同步方式)9.处理显示输出设备的可选重绘闪烁10.结束帧11.将渲染完成的帧缓冲发布到显示设备12.进行渲染缓存设置。

2024-07-31 08:51:28 895

原创 Android SurfaceFlinger——合成预测与状态写入(四十二)

计划合成预测前一篇文章我们介绍了 SurfaceFlinger 图层合成的整体流程,并对前两个流程更新色彩配置和更新合成状态进行了介绍,这里我们接着解析下面的流程。1.更新输出设备的色彩配置文件2.更新与合成相关的状态3.计划合成帧图层4.写入合成状态5.设置颜色矩阵6.开始帧7.准备帧数据以进行显示(异步方式)8.准备帧数据以进行显示(同步方式)9.处理显示输出设备的可选重绘闪烁10.结束帧11.将渲染完成的帧缓冲发布到显示设备12.进行渲染缓存设置。

2024-07-31 08:50:40 398

原创 Android SurfaceFlinger——SF图层合成(四十一)

上一节我们简单介绍了 SurfaceFlinger 中的图层预的流程,这里我们继续往下看,SurfaceFlinger 的真正核心——图层合成。output->present:进行 Layer 合成。

2024-07-30 09:07:45 611

原创 Android SurfaceFlinger——SF图层预合成(四十)

为了便于理解,我们假设有一个简单的场景,其中包含一个图层 L,该图层可能有透明、不透明、阴影以及被其他图层覆盖的部分。下面将逐步介绍这些区域是如何计算的。

2024-07-30 09:07:25 528

原创 Android SurfaceFlinger——SF图层合成准备(三十九)

SurfaceFlinger 是 Android 系统中负责窗口管理和图像合成的核心组件,它主要负责将多个应用程序的界面(称为图层或表面)合并成一个单一的图像,然后将这个图像输出到显示设备上。

2024-07-29 09:35:32 628

原创 Android SurfaceFlinger——缓冲区的消费流程(三十八)

前面介绍了 SurfaceFlinger 对提交帧的处理以及缓冲区的锁定等流程,这里我们看一下 SurfaceFlinger 对缓冲区的消费流程。

2024-07-29 09:35:08 282

原创 Android SurfaceFlinger——显示更新与缓冲区锁定(三十七)

上一篇文章介绍了 SurfaceFlinger 中对提交帧的处理流程,在 commit() 函数中处理提交事务,还有两个比较重要的操作,状态更新与缓冲区锁定和更新可视脏区,这里我们就来分析一下这两个流程。

2024-07-27 19:16:19 432

原创 Android SurfaceFlinger——SF处理提交帧(三十六)

前两篇文章介绍了缓冲区准备完成的回调流程,最终通知到 SurfaceFlinger 进行进一步的处理,这里我们就来看一下在 SurfaceFlinger 中对提交帧的处理流程。

2024-07-27 19:15:56 364

原创 Android SurfaceFlinger——通知消费流程(三十五)

上一篇文章介绍了 onFrameAvailable() 函数的流程,最终回调到了 BLASTBufferQueue 中,这里测处理跟 Android 老版本还是有区别的,在 BLASTBufferQueue 中通过提交事务的方式通知 SurfaceFlinger 进行更新,而不是老版本中的直接调用 SurfaceFlinger 中的对应函数。这里我们就来看一下 提交事务的通知流程。

2024-07-26 13:56:40 265

原创 Android SurfaceFlinger——缓冲区入队回调(三十四)

生产者通常是应用程序或服务,负责生成图像数据并填充到 GraphicBuffer 中。例如,一个摄像头应用或游戏引擎会生成每一帧的图像数据,并将这些数据写入 GraphicBuffer。生产者通过 BufferQueueAPI 与 SurfaceFlinger 交互,请求新的缓冲区,写入数据,然后提交(buffer queue)这些缓冲区供 SurfaceFlinger 使用。

2024-07-26 13:56:18 696

原创 Android SurfaceFlinger——GraphicBuffer的提交(三十三)

在 SurfaceFlinger 中,我们 dequeueBuffer 和 queueBuffer 是 Surface 控制接口中非常重要的两个函数,分别用于从 Surface 的 BufferQueue 中取出缓冲区和向 BufferQueue 提交(队列)缓冲区。这两个函数在生产者和消费者模型中扮演着核心角色,确保了图像数据的高效和有序传输。上一篇文章我们已经介绍了 dequeueBuffer() 函数,这里我们就来看一下 queueBuffer() 函数。

2024-07-25 09:31:46 695

原创 Android SurfaceFlinger——GraphicBuffer的生成(三十二)

通过前面的学习我们知道,在 SurfaceFlinger 中使用的生产者/消费者模型,Surface 做为生产者一方存在如下两个比较重要的函数:dequeueBuffer:获取一个缓冲区(GraphicBuffer),也就是 GraphicBuffer 生成。queueBuffer :把缓冲区(GraphicBuffer)放入缓冲队列中。这里我们就先来看看 dequeueBuffer() 函数,该函数通常由生产者调用,用于从 BufferQueue 中取出一个缓冲区以供渲染。

2024-07-25 09:31:24 885

原创 Android SurfaceFlinger——GraphicBuffer获取内存信息(三十一)

上一篇文章介绍了 GraphicBuffer 初始化的 initWithSize() 函数中的申请内存流程,这里我们看一下另一个比较重要的函数,GraphicBufferMapper. getTransportSize 获取内存信息。该函数通常在需要了解缓冲区的实际内存占用情况时调用,例如在调试内存使用情况或优化性能时。

2024-07-24 08:56:37 2971

原创 Android SurfaceFlinger——GraphicBuffer内存申请(三十)

在Android的图形子系统中,GraphicBufferAllocator 和 GraphicBufferMapper 是处理图形缓冲区的核心组件。这两个类分别负责缓冲区的分配和映射,是 GraphicBuffer 类的基础,GraphicBuffer 用于封装和管理图形数据。

2024-07-24 08:56:18 1287

原创 Android SurfaceFlinger——GraphicBuffer初始化(二十九)

GraphicBuffer 对象封装了一块内存,这块内存可以用于存储像素数据,例如图像帧或者视频帧。它提供了跨进程传输的能力,使得不同进程之间可以共享同一块图形数据。简单来说,GraphicBuffer 是实现图形内容在硬件和软件层面上存储和传递的具体实现。

2024-07-23 08:56:18 1097

原创 Android SurfaceFlinger——纹理的绘制流程(二十八)

在 Android 的 SurfaceFlinger 系统组件中,纹理(Texture)是一个核心概念,特别是在涉及到图形渲染和显示的过程中。纹理本质上是一块内存区域,用于存储图像数据,如位图、颜色缓冲区等,这些数据可以被 GPU 直接访问和操作。在 SurfaceFlinger 的上下文中,纹理扮演着图像源的角色,它是图形渲染的基本构建块之一。应用程序通过 Surface 将内容提交给 SurfaceFlinger,这些内容最终会被封装成纹理,供 GPU 进行高效的渲染和合成操作。

2024-07-23 08:55:50 699

原创 Android SurfaceFlinger——关联EGL三要素(二十七)

经过前面的几篇文章我们呢了解了系统启动动画的播放流程,这里我们对 OpenGL ES 初始化流程总结如下:eglGetDisplay:加载 OpenGL ES 的 so 库,获取一个屏幕句柄对象。此时的 EGLDisplay 其实就是 egl_display_t,并且保存在数组中。eglInitialize:设置了EGLDisplay 的状态,同时初始化着色器缓存。eglChooseConfig:获取当前 OpenGL es 提供的参数中最佳参数。

2024-07-22 09:25:11 2270

原创 Android SurfaceFlinger——创建EGLContext(二十六)

前面文章我们获取了 EGL 的最优配置,创建了 EGLSurface 并与 Surface 进行了关联,然后还需要获取 OpenGL ES 的上下文 Context,这也是 EGL 控制接口的三要素(Displays、Contexts 和 Surfaces)之一。1)getInternalDisplayToken:获取显示屏的 SurfaceControl 令牌(Token)。2)getActiveDisplayMode:获取当前激活(正在使用中)的显示模式信息。

2024-07-22 09:20:52 964

原创 Android SurfaceFlinger——本地窗口连接EGL API(二十五)

通过前面的文章我们属性了 Surface 和 EGLSurface 的相关内容,这里我们继续分析让两者相关联的函数 native_window_api_connect()。

2024-07-04 08:43:55 398

原创 Android SurfaceFlinger——创建EGLSurface(二十四)

EGLSurface 是 EGL(Embedded Graphics Library)接口中的一个核心概念,它是 OpenGL ES 或 OpenVG 等图形 API 与底层原生窗口系统之间的桥梁。EGLSurface 代表了图形数据将要被渲染到的目标表面,这个目标可以是屏幕上的一个窗口区域、一个离屏缓冲区,或者是其他形式的显示设备。

2024-07-04 08:43:18 583

原创 Android SurfaceFlinger——屏幕状态初始化(二十三)

对于开机启动动画前期准备的相关步骤,我们已经分析了前 5 个,对于第 6 步调用 eglGetDisplay() 函数对 OpenGL ES 初始化并获取默认屏幕,我们在介绍 OpenGL ES 的时候也进行了详细的分析,下一步我们我们来分析对屏幕的状态进行初始化。1)getInternalDisplayToken:获取显示屏的 SurfaceControl 令牌(Token)。2)getActiveDisplayMode:获取当前激活(正在使用中)的显示模式信息。

2024-07-03 08:54:19 1158

原创 Android SurfaceFlinger——创建缓冲队列(二十二)

BLASTBufferQueue 是 Android 系统中用于图形缓冲区管理的一个重要组件,它是在 Android 12(代号为S)中引入的。在 Android 的图形显示系统中,BufferQueue 被用来协调生产者和消费者之间的缓冲区交换。然而,传统的 BufferQueue 实现涉及到了复杂的跨进程通信(IPC),这可能会成为性能瓶颈,尤其是在高帧率显示和复杂 UI 动画场景下。BLASTBufferQueue 目的是为了减少 IPC 的开销并提高效率。

2024-07-03 08:53:58 822

原创 Android SurfaceFlinger——创建Surface(二十一)

其实整个过程就是图元缓冲队列的初始化流程。在这个初始化流程中,初步的搭建了整个生产者-消费者模型。剩下的步骤就是生产图元,写入生产者,生产者把数据写进缓冲队列,通知消费者进行消费。createSurface 通过 SurfaceFlinger 的 Client 对象创建了一个图元生产者,并且赋值给 SurfaceControl 中。setLayer 设置 layer 图层在 Z 轴上的层级。

2024-07-02 11:16:54 759

原创 Android SurfaceFlinger——创建Layer(二十)

上一篇文章介绍到,SurfaceComposerClient 中的 createSurface() 方法最终创建的是一个 Layer,这里我们接着看 Layer 的创建。

2024-07-02 11:16:29 3134 1

原创 Android SurfaceFlinger——Surface和Layer介绍(十九)

在 Android 系统中,SurfaceFlinger 是负责屏幕合成的核心组件,它管理并组合来自不同应用程序和服务的图形输出,最终将这些输出呈现到物理屏幕上。Surface 是 Android 图形系统中的一个核心概念,它是应用程序与 SurfaceFlinger 之间交互的基础。图形缓冲区:Surface 本质上是一个共享的、可被多个进程访问的图形缓冲区,它代表了用于绘制图形的内存区域。每个 Surface 都可以看作是一个可以被绘制到的“画布”。窗口与界面。

2024-07-01 17:23:21 1236

原创 Android SurfaceFlinger ——获取显示屏信息(十八)

经过前面文章对开机启动动画的流程梳理,引出了实际上在开机启动动画中,并没有Activity,而是通过 OpenGL es 进行渲染,最后通过某种方式,把数据交给 Android 渲染系统。让我们回忆一下开机动画前期准备的相关步骤,大致分为如下几个:1)getInternalDisplayToken:获取显示屏的 SurfaceControl 令牌(Token)。2)getActiveDisplayMode:获取当前激活(正在使用中)的显示模式信息。

2024-07-01 17:23:00 433

原创 Android SurfaceFlinger——动画进程销毁(十七)

在动画播放完成后,对动画相关资源释放的同时还需要销毁动画进程。这里我们就来分析一下动画进程的销毁流程。

2024-06-27 08:57:14 3429 1

原创 Android SurfaceFlinger——动画播放流程(十六)

前两篇文章介绍了系统启动动画服务的启动和准备阶段,并且我们选择了自定义动画的分支,该分支的动画播放流程主要包含一下几个阶段:loadAnimation:解析 zip 包的动画数据。playAnimation:播放解析好的纹理数据。releaseAnimation:播放完毕释放资源。

2024-06-27 08:56:50 385

原创 Android SurfaceFlinger——动画播放准备(十五)

在车载设备开发中,大都是需要实现自定义动画的,所以这里我们就去解析 Android 自定义动画的核心原理。

2024-06-26 08:58:08 968

原创 Android SurfaceFlinger——系统动画服务启动(十四)

在了解了 SurfaceFlinger、HWC、OpenGL ES 和 EGL 等相关概念和基础信息后,我们通过系统动画的调用流程引入更多的内容。

2024-06-26 08:57:39 1119

页面跳转与数据回传

页面跳转与数据回传,跳转方法startActivityForResult的使用与返回数据的处理。

2015-02-16

Android控件的简单使用

Android控件简单使用,AoutCompleTextView、MultiAoutCompleTextView、ToggleButton、CheckBox、RadioGroup等控件

2015-02-16

通知Notification

这是一个Android中通知的简单使用源码,基本满足大多是用户的使用需求,其中的注释特别详细,适合初学者学习使用。

2015-01-28

布局优化Demo

布局界面中include、merge、ViewStub的使用实例。

2015-01-27

ScorollView简单使用

主要ScorollView简单使用方法,包括滑动监听、滑动加载、位置跳转等功能。适合初学者研究使用,注释非常详细。

2015-01-23

ViewFlipper简单使用

ViewFlipper实现图片轮播和图片滑动切换,原理和思路比较清晰,滑动切换效果不是很好,需要修改动画效果文件。

2015-01-21

ViewPager简单使用

主要介绍ViewPager的简单使用和三种Adapter的区别,适合初学者学习使用。

2015-01-21

Fragment使用

主要介绍Fragment的使用,包括动态加载、静态加载、生命周期、数据传递等,代码里注释比较详细,但代码中的结构和命名比较混乱,最好结合下面的问章看。http://blog.csdn.net/c19344881x/article/details/42876041

2015-01-20

进度条简单使用和自定义

进度条简单使用和自定义进度条显示风格,代码比较简单,注释详细,适合初学者。

2015-01-16

下拉列表使用

下拉列表的简单实用Demo,代码简单注释详细,适合初学者学习使用。

2015-01-16

日期时间选择

日期时间选择控件的使用,包括嵌入Activity中和弹出式两种情况,适合初学者,代码注释比较详细。

2015-01-16

广播使用Demo

主要包括三种类型的广播的简单实用及对比。

2015-01-14

ContentProvider测试Demo

ContentProvider的测试Demo,只有下载并运行http://download.csdn.net/detail/c19344881x/8360531下的应用才会看到效果。单独下载没有用处。

2015-01-14

ContentProvider使用

使用ContentProvider,实现应用程序的数据共享。

2015-01-14

添加查询联系人信息

实现手机联系人的添加和查询功能,没有积分的可以去http://blog.csdn.net/c19344881x/article/details/42679795,

2015-01-14

本地文件读写

主要实现本地文件的创建以及读写操作。没有积分的可以搜索《Android开发存储方式详解之本地文件读写实例》查看源码。

2015-01-13

自定义导航栏

代码中有详细的注释,功能比较简单,主要是学习使用,有积分的可以下载支持一下,如果实在没有积分可以查找我的《Android 自定义控件详解》这篇文章学习。

2015-01-09

WebView JS方法调用

在WebView页面上的按钮点击事件响应本地类中的方法。

2015-01-07

WebView文件下载

用于实现WebView页面中的文件下载功能。

2015-01-06

phonegap-2.9.1.zip

PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台.

2014-11-24

HCI Log分析工具-CPAS-11

HCI Log分析工具-CPAS-11,使用参考:https://xiaoxu.blog.csdn.net/article/details/129261272

2024-04-17

Android Audio相关流程时序图

Android 11 Audio相关流程时序图,需要使用EA画图工具打开。包含Audio中音量获取/设置、焦点申请/放弃、属性设置等相关流程,从APP层到Hal层。 详细讲解相关文章参考:https://blog.csdn.net/c19344881x/category_12324194.html

2023-11-30

Android Radio相关流程时序图

Android 9.0 Radio相关流程时序图,需要使用EA画图工具打开。包含Radio暂停、播放、切换电台、获取电台信息、切换FM/AM、调频/调辐、搜索、取消搜索等相关流程,从APP层到Hal层。同时还包含类图等其他软件图。 详细讲解相关文章参考:https://blog.csdn.net/c19344881x/category_12312897.html

2023-09-01

Android 蓝牙开发相关知识总结

Android 蓝牙开发相关知识总结

2023-03-07

SurfaceFlinger学习笔记总结

SurfaceFlinger学习笔记总结

2023-03-07

MinGw 安装包,版本0.6.2

MinGw 安装包,版本0.6.2

2023-03-07

根据.h文件在自己的so库中调用三方so库

根据.h文件在自己的so库中调用三方so库

2023-01-06

Android Studio生成自己的so库

Android Studio生成自己的so库

2023-01-06

本地实现U盘扫描SDK部分代码

本地实现U盘扫描功能SDK,无法直接运行,需要自己编译成SDK在调用。 参考:https://blog.csdn.net/c19344881x/article/details/126161462

2022-10-28

开发调试所使用的各种格式音视频

视频格式:ts 264 avi wmv mkv mov rm 3gp flv gif mpg rmvb swf vob webm asf dat f4v h264_mp4 h265_mp4 音频格式:aac ac3 aiff amr au m4a mka mp2 ogg ra wav wma mp3

2022-07-20

jai-imageio和swingx.jar.zip

【图形处理相关的jar包】jai-imageio-1.1.jar和swingx-1.6.1.jar下载

2021-12-16

Android端Socket实现聊天功能

Android端Socket实现聊天功能,能够发送文字、图片、商品等信息,实现了消息本地存储。讲解:https://mp.csdn.net/mp_blog/creation/editor/120673184

2021-10-11

SocketDemo.zip

Android Socket通信简单实现源码下载:https://blog.csdn.net/c19344881x/article/details/120455491

2021-09-24

竖直滚动TextView

很简单的文本信息竖直滚动展示效果,没有积分的可以搜索“Android TextView竖直滚动文字广告效果”的博客。

2016-01-18

滚动选择控件

自定义日期滚动选择控件,代码使用方便,而且可以通过修改自定义Dialog中代码控制日期可选范围和添加时间选择功能等。

2015-08-25

断点续传下载

主要实现文件下载的暂停和继续下载功能。 用到的知识点: 1、Service的使用以及Service与Activity之间的数据交互; 2、SQLite数据库的简单使用; 3、文件下载与存储; 4、广播的简单使用。

2015-05-19

AsyncTask异步加载使用

AsyncTask异步加载使用Demo,详解可以参考《Android中AsyncTask的使用详解》,代码中的注释也比较详细,初学者可以参考。

2015-05-15

Android仿百度贴吧看帖滑动返回效果

实现百度贴吧看帖时的滑动返回效果和AutoCompleteTextView的使用。

2015-04-14

手势识别实现

文件中包含两种实现手势识别功能的工程,一种是使用GestureDetector实现手势识别,另一种是使用GestureOverlayView实现手势识别。

2015-02-26

Service使用

实现Service的启动、停止、绑定、解绑与Service中方法的调用。

2015-02-25

空空如也

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

TA关注的人

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