自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(238)
  • 资源 (71)
  • 收藏
  • 关注

原创 Android下HWC以及drm_hwcomposer普法(下)

Android下HWC以及drm_hwcomposer普法(下)引言不容易啊,写到这里。经过前面的普法(上),我相信童鞋们对HWC和drm_hwcomposer已经有了一定的认知了。谷歌出品,必须精品。我们前面的篇章见分析到啥来了,对了分析到了HwcDisplay::init,然后设置Backend后端来着!

2024-05-30 19:42:24 2424

原创 Android下HWC以及drm_hwcomposer普法(上)

当VSync信号到来时,SurfaceFlinger被唤醒,处理Layer的新建,销毁和更新,并且为相应Layer设置期望的合成方式。所有Layer更新后,SurfaceFlinger调用validateDisplay,让HWC决定每个Layer的合成方式。

2024-05-29 15:25:30 2369 7

原创 Mesa软件框架以及重要数据结构分析

MESA的核心数据结构很多很复杂,上图列举了一些核心数据结构主要强调了它们的层次关系,即上层使用下层的抽象结构(比如 函数指针调用),下层为上次做具体的实现(比如具体的函数实现),虽然是C代码但设计理念基本上与C++的继承类似(这个也是C语言实现大型代码框架的核心)。Mesa的实现比较复杂,其中还有许多的数据结构之间的关系逻辑还不是很清楚。这里的核心主要是Mesa软件EGL/GL层级的递进调用。1.1 Mesa下EGL/GL核心数据结构和层级关系。1.2 Mesa下核心文件和核心结构体。

2024-05-28 19:11:26 892

原创 Android环境下Mesa初始化流程重学习之eglCreateContext

总得找点事情干不是!2.1 smapi->screen->context_create的实现。这块我们在前面分析时,已经提到过了。我们接着继续分析_mesa_initialize_context。这里的核心是_glapi_table,它在前面已经被初始化了!我们接着继续分析st_create_context_priv。Mesa初始化流程重学习之eglCreateContext。Mesa初始化流程重学习之eglCreateContext。2.2 st_create_context的实现。

2024-05-28 17:33:44 611

原创 Android环境下Mesa初始化流程重学习之eglInitialize

那么这里的xxx_driver_descriptor是怎么实现的,刚开始我通过grep搜索发现只有定义,没有怎么实现。这里的__driDriverGetExtensions_xxx_gpu函数符号表是怎么拼凑成的了,如果我们通过grep在mesa搜索,怎么搜索也搜不到了。分析完了pipe_loader_drm_probe_fd流程,我们接着咔咔一顿接着继续分析,pipe_loader_create_screen它会构建pipe_screen的结构体类型!真可以说的上是你中有我,我中有你的典范啊。

2024-05-28 17:30:06 1182

原创 Mesa GL Dispatch分发分析与理解

gl_打头的函数是OpenGL API,首先这些函数都是函数指针,这些函数挂载的函数就是mesa里以_mesa_打头的对应函数。在正式分析相关分发流程之前,我们必须明确的一点就是现在的Mesa采用的是最新的gallium架构,下图的左侧调用栈是在gallium 架构之前采用的模式,右侧是gallium架构下的模式。通过我们前面的st_create_context_priv分析可知,获取到table表以后,然后通过id会找到对应的函数,即指向了_mesa_Flush。

2024-05-28 17:14:39 999

原创 Mesa Gallium框架入门初探

它负责把上层库的state(blend modes、texture statte等)和draw command(glDrawArrays、glDrawPixels)等转换成MESA内部的pipe对象和操作。state tracker也可以直接通过p_winsys和Winsys通信,一般GPU厂商也要实现一个自己的winsys,可以参考纯软的 kms_dri_sw_winsys.c。: 把Gallium的state、shader和primitive概念转换成硬件能懂的语言。这个系列博客,确实写得蛮好的。

2024-05-28 17:03:30 973

原创 Android 13 VSYNC重学习

在VSyncDispatchTimerQueueEntry的callback方法中,会调用类型为CallbackRepeater::callbackk,然后在该方法中接着调用mCallback(vsyncTime, wakeupTime, readyTime)方法,而这里的mCallback(指向DispSyncSource::onVsyncCallback,最后回调EventThread的onVSyncEvent方法。由于偏移量不同VSync-sf信号和VSync-app信号的回调时机也不同。

2024-05-28 14:50:49 2077

原创 Android Graphics图形栈SurfaceFlinger之间各种Layer以及对应Buffer之间的关系

Android Graphics图形栈SurfaceFlinger之间各种Layer以及对应Buffer之间的关系。Android Graphics图形栈SurfaceFlinger之间各种Layer以及对应Buffer之间的关系。

2024-05-28 14:42:08 341

原创 SurfaceFinger layer创建过程

SurfaceFlinger::setTransactionState中比较复杂容易忽略将TransactionState state放入mTransactionQueue的过程,mTransactionQueue在后面创建hwc layer的时候会用到。mClient->createSurface会调用到android12\frameworks\native\services\surfaceflinger\Client.cpp 中Client::createSurface。app端创建Surface。

2024-05-28 14:39:04 644

原创 Android Surface对应的Buffer怎么传递给HWC

因为要预研Android Video overlay,需要将SurfaceView对应的GraphicBuffer从drm_hwcomposer中剥离出来,这就需要们了解SurfaceView对应的GraphicBuffer的前世今生,以及它的数据流向以及在各个模块之间的对应关系。这里我们对该函数单独站看来分析下,ensureOutputLayer将创建Output layer,不是所有layer都会创建对应的hwc layer,创建出来的这些layer最后是要显示到屏幕上的。我先分析下,再告诉你!

2024-05-28 14:33:15 1004

原创 Android Graphics模块中的各种State和重要类普法

这个我的理解它主要是Layer的一个前端,主要用来处理Layer合成相关的,!表示一个"前端"Layer,跟Layer相对应,用于处理Layer在合成阶段的工作。机会是每年一个版本,前进的胶布不能停啊,继续干。Display: 表示所有输出层最终对应的显示设备,可以有硬件合成器支持的显示设备,也可以对应虚拟显示设备。这里的Layer.State主要存储了该Layer相关的数据,例如长宽,各种矩阵,阴影等。这里需要注意CompositionState对应的域空间,不要和Layer里面的搞混淆了!

2024-05-28 14:28:39 635 2

原创 BLASTBufferQueue端的GraphicBuffer怎么和SurfaceFlinger端的BufferStateLayer关联上

在跟进hwc_layer是如何产生的,并如何被填充上GraphicBuffer的,怎么也找不到被填充的GraphicBuffer的来源,最终找到了,它的来源是客户端的BLASTBufferQueue传递过来的,我们这里跟进下这个流程。一. BLASTBufferQueue是如何传递GraphicBuffer到SurfaceFlinger端的BufferStateLayer的。我们接着继续往下看,layer->setBuffer会调用子类的setBuffer,子类是BufferStateLayer。

2024-05-28 14:23:44 926

原创 OpenHarmony下musl编译工具链普法

LLVM 成长之后已成为众多编译工具及低级工具技术的统称,使得这个名字变得更不贴切,所以开发者决定放弃这个缩写的涵义,现在 LLVM 已独立成为一个品牌,适用于 LLVM 下的所有项目,包括 LLVM 中介码、LLVM 除错工具、LLVM cpp 标准库等。对于一个比较大的第三方库,其头文件和库文件的数量是比较多的,如果我们一个个手动地写,那将是相当的麻烦的。事实上,pkg-config只是一个工具,所以不是你安装了一个第三方库,pkg-config就能知道第三方库的头文件和库文件的位置的。

2024-03-06 09:32:45 2069 3

原创 Android minigbm框架普法

因为前端就是gralloc hal的接口定义,都是一致的,然后后端backend抽象出来,然后根据实际的情况,调用具体的gpu用户层接口实现!这里我们可以看到这里抽象出来了几种典型的GPU的backend,然后再根据前面获取到的drm的驱动名称进行匹配,匹配到了则返回合适的backend,没有则返回NULL。这里我们以evdi为例子来进行相关的分析。minig的核心主要是提供gralloc的HAL实现,但是我看它也提供了私有的HIDL service实现,关于HIDL的实现这个暂时不在我们考虑的范围之内。

2024-03-01 16:40:28 1702 2

原创 OpenHarmony下GN语法普法

鉴于无法测试列表项的添加引入,可以这样使用:设置一个文件或标志的主列表,然后根据各种条件删除不适用于当前版本的文件或标志。构建应该做的大多数事情通常都可以在不这样做的情况下来完成,如果你觉得有必要,这可能表明你在元构建中做了太多的工作。一个值可以是一个域。当最终在命令中使用源路径时,它们会转换为对应于操作系统的(OS-appropriate)路径,这些路径是绝对的或相对于构建目录(运行命令的位置)的路径。这意味着,例如,当您定义target目标时,您在块内执行的任何操作都不会“泄漏”到文件的其余部分。

2024-02-20 16:58:06 1534 2

原创 OpenHarmony下gn相关使用

为了提高OpenHarmony下移植vivante gpu的成功率,先得把准备工作做足了,这样后续就好搞了。所以本文档的核心工作介绍GN构建工具在OpenHarmony中的常见使用方法,指导三方库由cmake或者其它的脚本构建到GN构建的转换!好了今天的博客OpenHarmony下gn相关使用就到这里了。当使用GN进行相关的构建时,需要了解如何指定动态库、静态库和可执行文件的构建规则。在GN中,可以使用executable模板来指定可执行文件的构建规则。3.4 GN在OpenHarmony上的扩展。

2024-02-20 16:52:18 1337 1

原创 关于Android下gralloc,hwcompoer以及surface模块的重新认识

native_handle/native_handle_t只是定义了一个描述buffer的结构体原型,这个原型是和平台无关的,方便buffer在各个进程之间传递,注意成员data是一个大小为0的数组,这意味着data指向紧挨着numInts后面的一个地址.我们可以把native_handle_t看成是一个纯虚的基类.对于native_handle和native_handle_t,以及private_handle_t这三个类型可以看作是同一个东西,而buffer_handle_t则是指向他们的指针.

2024-02-19 19:06:57 1560 1

原创 Android下SF合成流程重学习之GPU合成

通过上述的代码我们可以看到在启动之初就搭建好了EGL环境,并将当前线程与context绑定,为后面使用gl命令做好准备,然后创建了ImageManager 线程,这个线程是管理输入Buffer的EGLImage,然后创建了GLFrameBuffer,用来操作输出的buffer。当需要GPU合成时,会通过生产者RenderSurface::dequeueBuffer请求一块图形缓存,然后GPU就合成/绘图,把数据保存到这块图形缓存中,通过RenderSurface::queueBuffer提交这块缓存。

2024-02-18 16:30:12 3580 4

原创 Android下SF合成流程重学习之Refresh流程

至此,SurfaceFlinger刷新的主体函数分析完了,可以看出来,如果是走device合成,SurfaceFlinger是直接把layer信息提交给hwc,由hwc去合成.prepareFrame 的作用是根据hwc的能力选择合成方式,如果是device合成则直接走hwc present上屏,如果是GPU合成后面则走hwc validate,然后根据hwc过来的变化改变layer的合成方式。composeSurface的主要核心逻辑是针对GPU合成,对于device合成,则直接return了。

2024-02-18 16:14:56 1818 3

原创 Android下SF合成流程重学习之onMessageInvalidate

handleMessageInvalidate主要作用是执行 latchBuffer 去 acquire 应用queue过来的Buffer,然后拿到queueBuffer时设的Bufferslot一些状态属性给到BufferQueueLayer的mBufferInfo,同时还把这个Buffer做成EGLImage为后面的GPU合成做准备,期间都是数据之间的传递,所以说SurfaceFlinger并未真正触碰Buffer的内容。总之,青山不改绿水长流先到这里了。本篇引用的代码,主要是Android R的。

2024-02-18 16:13:05 1598 1

原创 普法GraphicBuffer诞生以及跨进程传递

SurfaceFlinger进程 和 IAllocator服务进程之间通过 hidl_handle 类型的数据传递 图形buffer共享内存的fd数据传输中对 hidl_handle 类型数据特化处理,并把binder数据类型设置为 BINDER_TYPE_FDAbinder内核对 BINDER_TYPE_FDA 类型数据特化处理同时在 IAllocator.allocate 的回调函数中调用 IMapper.importBuffer 把内存映射到当前进程。

2024-02-18 14:01:08 1825 2

原创 repo sync fatal: this operation must be run in a work tree

又有好久没有写点偏重实战类型的博客了,最近一直都在捣鼓源码分析和项目相关事情,是时候来点偏重实战类型的博客了。由于这是一篇实战类型的博客,所以废话不多说,直接上解决办法,其最最核心的逻辑是直接删除.repo内报错的对应的.git文件即可,我们这里以上面的adeb为例,来进行说明。并且注意上述-j4 --fail-fast的参数,是在进行repo sync时候报错会提示执行的,这个也不能解决上述错误!注意,这里发生这个问题通常是在进行APSP下载,执行repo sync的时候异常中断导致的!

2023-05-23 10:17:57 1720 1

原创 OpenHarmony dump渲染和合成图层SurfaceBuffer指南

好了,感慨也发完了,是时候切入正题了。各位读友,千万不要喷我,因为我这也是第一次深入到OpenHarmony显示这块的源码逻辑,为啥我深入到了这块,因为入职了一家原厂。是的,这是因为无论是渲染的图层还是合成之后的图层它们都是通过SurfaceBuffer来进行存储指向的。有的只有是兄弟就砍一刀。其中,我们引用上述封装好的dump函数时候,我们在对应的BUILD.gn中必须,引入如下的库和头文件,如下。然后将获取到的地址中的内容,以一定的格式进行存储,通常是GRB888格式(也可以进行相关的封装)

2023-05-19 10:06:15 2365 15

原创 OpenHarmony下如何打印C/C++调用堆栈

没有关系,因为你看到了这篇,从此可以为你打开新世界的大门,增加一种调试手段,那就是OpenHarmony下打印C/C++调用堆栈。OpenHarmony值路漫漫吾将上下而求索,总之,各位,青山不改绿水长流先到这里了!这里的BUILD.gn必须是你需要跟踪堆栈的文件所对应的BUILD.gn中,而不是随便一个。这里的BUILD.gn必须是你需要跟踪堆栈的文件所对应的BUILD.gn中,而不是随便一个。这里的BUILD.gn必须是你需要跟踪堆栈的文件所对应的BUILD.gn中,而不是随便一个。

2023-05-12 09:14:41 1888 2

原创 普法OpenHarmony送显流程

OpenHarmony送显流程分析OpenHarmony送显流程分析引言本文档主要记录OpenHarmony在渲染完成之后如何进行合成和送显流程的。这个过程牵涉的代码很多,而且流程也是比较繁琐的。所以我一定要坚持下来。千万不能半途而废,也不要想着一口气吃出一个胖子,路漫漫其修远兮吾将上下而求索!一. 应用端发送NextVSnc请求,服务端响应还记得那年大明湖畔的夏雨荷吗!

2023-05-06 17:23:44 3562 5

原创 从bootanimation出发分析OpenHarmony下Gralloc buffer管理机制

从bootamition出发分析OpenHarmony下Gralloc buffer管理机制从bootamition出发分析OpenHarmony下Gralloc buffer管理机制引言这个文档主要记录从bootamition角度出发,分析OpenHarmony下对gralloc buffer的管理!由于OpenHarmony图形子系统过于复杂,且个人由于能力有限,这里我仅从gralloc buffer出发,从整体上对Gralloc buffer进行梳理!虽然过程会很艰辛,但是我一定要坚持下来。

2023-05-06 17:16:08 1568 4

原创 Android/Linux 子系统Graphics图形栈入门普法介绍

GTK+和QT是GUI toolkits,属于软件库,类似c语言的stdio.h,win32,java里import的各种外部包,可以任开发者调用(应该是C/C++使用的库)去创建一些图形界面里面的控件,例如button,下拉菜单,窗口等。而人机交互的本质,是人脑通过人的输出设备(动作、声音等),控制终端的输入设备,终端经过一系列的处理后,经由终端的输出设备将结果输出,人脑再通过人的输入设备接收电脑的输出,最终实现“人脑终端”之间的人机交互。这是一个非常耗时的操作,GPU 的引入就是为了加快栅格化。

2023-01-16 10:17:51 5590 19

原创 Android AOSP和Android-X86源码下载编译终极普法

其实这个说简单也简单,说复杂吗也不复杂。如果仅仅是想获取代码,不需要tag或者git信息,可以有一种更加快速的方法,repo sync --no-tags --no-clone-bundle。在具体的编译过程中,可能会遇到各种错误提示,通常是有一些依赖没有安装造成的,朋友可以在编译的过程中自行安装即可。2.如果使用清华的源下载的速度非常慢的话,建议开发者可以切换到中科大的源进行先关的操作,具体可以详见博客。1.由于国内的环境,此处默认大伙是不能翻墙的情况下进行相关源码的下载,如果能翻墙的话那就比较简单了。

2022-12-08 18:09:16 2611 7

原创 Android R系统aidl文件怎么对应的java文件找不到了?

这不趁着这两天有点空闲时间,准备调试下Android,可是尼玛确突然发现Android的系统aidl文件转换生成的java文件一直找到不,我find,grep找了个寂寞怎么也找不到。这才有了今天的博客。而对于Android R中如果aidl文件被标记为hide,则需要通过aidl命令,手动转换aidl文件到java文件。通常的一个好的命令通常会提供说明使用的命令,它肯定也不例外,我们可以在终端下输入aidl或者aidl --help。对于实战类型的博客,我们不来虚的,必须真刀真枪的实干才可以。

2022-11-11 17:35:18 2298 5

原创 Android R窗口Window的requestlayout过程大揭秘

是的我也有这个感觉,因为我这篇博客是为了后续引出应用Surface创建而添加的一个博客,所以写得简单也是清理之中的,因为该篇博客是一个过渡主要是为了后续的博客不唐突而添加的。虽然这里我提到了了应用绘制三部曲,但是很遗憾我们今天的重点也不是它,我们今天的重点是ViewRootImpl,如何向WMS服务请求relayoutWindow布局,主要是填充Surface,构建对应的Window的BufferLayer。好了,不多说了,我们直接看代码!该系列博客尘封很久很久了,是时候该再续前缘,重新上路了!

2022-11-11 11:28:37 1454 4

原创 普法Android.mk中的一些宏和Android.bp对应关系

陆陆续续有不少小伙伴在后台咨询关于Android.mk怎么转换成Androdi.bp的问题,虽然也解答了不少,但是也有一些当时我没有能够给出及时的答复(不是我不想答复,而是确实有些我当时也没有一个具体的答案)。这里最后留下一个小彩蛋,对于上述的Android.mk读者朋友看看能否正确的转换为Android.bp,当然也希望读者能我一起探讨是最好的了。同时在同一个目录下面的androidmk_test.go,为我们提供了许多Android.mk转换为Android.bp的实例,这个非常值得我们借鉴。.....

2022-08-09 14:44:59 2613 2

原创 普法安利一个调试debug小技巧

  博客沉寂很久,肯定不是干坏事被抓吃公交粮食去了!而是最近忙着给OpenHarmony鸿蒙适配GPU渲染加速。尼玛,其中的各种坑啊,填了一个又一个,其中最最拖延了开发进度的事情就是给鸿蒙适配我司的GPU的时候,无法使用鸿蒙自身的hilog调试!不能查看调试相关打印信息,你说这个还能继续下去吗。辛亏最最后想到了一种间接的调试小技巧,通过函数回调OpenHarmony鸿蒙进行相关打印。  当你在一个操作系统上移植第三方库时候,由于种种原因第三方库无法直接使用操作系统的debug接口,那么真的没有办法了吗,这里

2022-07-06 17:36:24 1125 3

原创 Android怎么开发自己底层的NuPlayer音视频播放器框架

    Android怎么开发自己底层的NuPlayer播放器框架引言  远离博客好久了,因为一直在忙于新的一个领域那就是Android底层音视频播放器框架的搭建,此时此刻公寓干的差不多了(虽然其中还是有许多的不足,和需要改进的,但是万事开头难吗,还是有一种小有成就的感觉!)。本篇博客不会大书特书音视频领域的相关知识,因为它太庞大了,那我写这篇博客的目的是什么呢,主要是总结概括一下如何搭建自己的Android底层音视频播放器框架。重要的事情说三遍:1.如果多Android音视频领域不感兴趣,可以

2022-05-23 09:43:27 2003 13

原创 Android怎么prebuilt预制动态库和静态库

    Android.bp和Android.mk怎么预制so引言  关于Android相关的源码和技术分析博客,停更有蛮久的了。因为一直忙于新的工作和新知识点的学习当中!当然药不能停,错了博客不能停!正好今天偷得一会闲,也恰好有个小伙伴咨询在Android高版本上面(R Q)上面怎么进行预制已经编译好的so。当时就简单的给小伙伴答复了下,这里就简单的安排总结一下,所以没有啥矫揉造作的,直接开干就是了。重要的事情说三遍,重要的事情说三遍,重要的事情说三遍!这里的所说的预制不是简单的把so库简单拷贝

2022-04-07 10:49:17 10579 19

原创 git删除相关历史提交记录,相关文件保持当前状态

     git删除相关历史提交记录,相关文件保持当前状态引言  新年新气象,趁着现在新的一年开始项目的事情还不是非常繁忙的时候,多整点下酒菜。这不实战类型的博客记录又开始了!当然实战类型的博客,肯定是有相关的实际需求才会诞生的,这里我们来简单复盘一下实际需求的诞生和由来!场景一:原来我们有一个私有的仓库不对外开放,当开发到一定程度的时候,希望对外开放,在准备开发前当然得检查一番不是,但是在检查的时候,我们误提交了某些隐私文件(肯定不是朋友们想的那种隐私了啊,莫多想。这里的隐私可能牵涉到密码啊,

2022-02-08 17:12:26 2280 1

原创 Android HIDL模型下HAL Service添加SELinux规则实战

Android HIDL模型下HAL Service添加SELinux相关规则实战

2022-02-07 17:19:29 7335 5

原创 Ubuntu git服务器搭建指南

         Ubuntu git服务器搭建指南引言  关于Android相关的源码分析博客,停更有蛮久的了。因为一直忙于新的工作和新知识点的学习当中!当然药不能停,错了博客不能停!正好在最近的工作中,需要自己从头开始搭建自己的git服务器供团队使用(不要问我,为啥这个技能一直没有学会,因为以前有专门的小组或者说人员来干这个事情,现在是一穷二白必须自己亲自下场干!)。通过本篇博客,我们将学会如何搭建自己的Git服务器(可以作为共有,或者私有仓库使用,这个就看自己的需求了).那么搭建我们的gi

2021-11-22 11:49:17 1471 5

原创 repo sync repo reset: error: entry ‘comand.py ‘ not uptodate . cannot merge

 repo reset: error: entry 'comand.py ’ not uptodate . cannot merge引言  又有好久没有写点偏重实战类型的博客了,最近一直都在捣鼓源码分析和项目相关事情,是时候来点偏重实战类型的博客了。捯饬点啥实战的呢,这不吃着火锅,唱着歌,正准备下载下AOSP的源码来玩一玩,可是当我切换到一台新的服务器上第一次正准备repo sync下载AOSP源码的时候,怎么也不成功,一直提示如下错误:Fetching: 100% (784/784), done

2021-11-15 14:22:00 6085 5

原创 Android dump渲染和合成图层GraphicBuffer指南

      Android dump渲染和合成图层GraphicBuffer指南引言  博客停更很久了,提起笔来渐感生疏啊!看来,还是得抽出时间来更新更新啊!好了,感慨也发完了,是时候切入正题了。本篇博客将主要详细介绍如何dump Android渲染和合成图层GraphicBuffer,并通过YUV软件查看流程!通过本篇博客,读者将会至少学会如下两点:通过dump Android渲染图层GraphicBuffer,查看Android渲染结果是否正确通过dump Android合成图层Graph

2021-11-08 18:47:01 7540 35

ChkBugReport工具.rar

最新版本的ChkBugReport工具,这个对于分析bugreport 非常有帮助。

2019-10-26

ANR各种日志.rar

ANR各种日志.rar

2019-10-26

这个资源错误

Android各种ANR日志汇总,希望对解决各种ANR有帮助。非常全。

2019-10-26

Binder实战大荟萃源码.rar

这个是Binder实战大荟萃的全部源码,包括Binder实战开发中的四种场景。对于想掌握Binder的小伙伴来说一定是个好东西。

2019-10-25

binderclient.rar

Native层通过C++使用Java系统Binder服务,希望对加深Binder有一定作用

2019-10-22

BinderApiFun.rar

这是一个手动编写Java层Binder系统服务的实例,对理解Binder和更加得深入了解aidl文件转化有一定帮助

2019-10-22

Android studio系统签名工具包.rar

Android Studio系统签名的工具包,其中包括相关的脚本和使用方法。

2019-09-03

平台化实现的脚本编写.rar

这个是一种为Android系统添加自定义目录的一个脚本,对平台化有一定作用。

2019-08-21

内存过高导致lowmemkill日志.zip

Android内存过高导致lowmemkill日志和相关工具,希望对Android开发者有帮助。

2019-07-31

LeakCanary.rar

系统源码集成LeakCanary依赖包,这个是已经编译ok并且可以使用的。

2019-07-31

binder.zip

binder源代码,为了回家学习方便使用。这个不建议大家下载,仅仅是个人学习。

2019-06-15

打印完税证明教程

这个是我个人使用,勿下载浪费积分。切勿下载,谢谢谢谢。

2019-04-16

Android不同版本SELinux的介绍

该资源是Google官方编写的关于Android 8中SeLinux的文档,然后还附加了一篇关于android 8的Selinux的work文档

2019-01-01

CarDVR jni使用实例

这是一个jni使用实例,对想学习jni开发的同学有一定的帮助。希望有用。

2018-11-13

CarDVR源码

这是CarDVR,对打通java和native开发有帮助。希望对大家的开发有帮助。

2018-04-11

native直接使用Parcel通信

这个是native服务直接使用Parcel进行通信的一个接口,提供给后面使用。

2017-03-14

binder通信实例

这是一个底层的binder通信列子希望对大家有用

2016-09-01

jni学习资源

我自己的资源请勿下载

2016-08-29

Android直接通过binder节点通信

这是Android直接通过binder通信的列子

2016-08-25

shell脚本学习

shell脚本学习

2016-08-24

hidl service selinux rule

Android HIDL模型下HAL Service添加SELinux规则所有相关改动

2022-02-07

settings.html

systrace文件

2021-10-14

OTA升级客户指导.docx

OTA升级文档

2021-06-25

2018-01-04_edrawmax-cn.7z

画图工具,画图工具,画图工具

2021-03-08

Android源码编译参考文档.zip

Android源码编译参考文档,主要适合于从事Android系统开发或者Framework开发的朋友!

2021-01-05

Android Build System.pdf

Android 编译文档

2020-12-29

80_PJ360_14_C_ANDROID_Q_MIGRATION_GUIDE.pdf

Android Q编译文档

2020-12-25

谷歌自带文档查看工具.7z

Google App Engine 是一种让您可以在 Google 的基础架构上运行您的网络应用程序。Google App Engine 应用程序易于构建和维护,并可根据您的访问量和数据存储需要的增长轻松扩展。使用 Google App Engine,将不再需要维护服务器:您只需上传您的应用程序,它便可立即为您的用户提供服务。

2020-12-23

framework_intermediates.zip

framework_intermediates.zip

2020-08-29

adb源码分析源码

adb源码分析源码

2020-07-30

AsyncChannelFun.zip

这个是Android AsyncChannel的演示实例,包括使用案例,如果对其感兴趣可以移步https://blog.csdn.net/tkwxty/article/details/107426006,其中有对该方法使用和源码的具体详解。

2020-07-22

AsyncChannelFun.zip

这是Android中关于AsyncChanne的实操演练代码,将其中涉及的几种关于集中通信模型都有涉及到了,希望能对各位有所帮助!

2020-07-18

android重点知识梳理.txt

这是我自己测试的文档,各位不要下载,谢谢!

2020-07-15

Settings_Framework_ethernet_patch.zip

这是全网独家Android P以太网适配完整patch包,包括Settings 和Framework的支持以太网打开和关闭,以及设置静态IP和代理功能。你值得拥有。

2020-04-24

JNI_NDK_GUIDE.zip

本篇是和章节https://blog.csdn.net/tkwxty/article/details/103971798相匹配的演示代码,通过该代码能更加清晰的理清脉络,达到事半功倍的效果。你值得拥有。

2020-01-19

Android下memtester执行文件

Android下能正常使用的memtester测试文件,可以模拟内存紧张时候的场景。希望对大家测试有帮助!

2020-01-03

JNI动态注册和静态注册演示.zip

这是一个演示JNI中动态注册和静态注册的实例demo,主要为了配合博客使用。有一定的参考意义。希望对于新学者有帮助,那我就很高兴了。

2019-12-18

C_Java_Transfer.zip

通过JNI实现CC++中结构体和Java类之间的数据转换,该代码列举了两种常见的方法,学会了这两种方法,妈妈再也不要为我担心了。

2019-12-11

ddms_traceView.zip

这是一个通过DDMS分析Android的CPU占用过高生成的TraceView文件,希望对使用TraceView有帮助。

2019-12-11

Android2Native.rar

这里总结了,Android和C/C++通信的常用方法,有Jni,有Socket,有Binder,总有一种会是适合你的。

2019-11-21

空空如也

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

TA关注的人

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