林树杰
码龄8年
关注
提问 私信
  • 博客:196,305
    社区:1
    196,306
    总访问量
  • 151
    原创
  • 98,665
    排名
  • 1,100
    粉丝
  • 学习成就

个人简介:输入->输出,在coding和记录中成长。 “如果你不能很好的教会别人,那么你就没有掌握这个技能” 希望我的记录能够帮助大家在技术前进的路上少走一点弯路,贡献一份微薄的力量。 欢迎关注,一起成长!

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2017-01-26
博客简介:

Shujie

查看详细资料
  • 原力等级
    成就
    当前等级
    5
    当前总分
    1,287
    当月
    9
个人成就
  • 获得1,223次点赞
  • 内容获得27次评论
  • 获得1,373次收藏
  • 代码片获得1,280次分享
创作历程
  • 49篇
    2024年
  • 82篇
    2023年
  • 6篇
    2022年
  • 11篇
    2021年
  • 3篇
    2020年
成就勋章
TA的专栏
  • Android
    21篇
  • NDK
    5篇
  • Android内存优化
    12篇
  • ADB
    1篇
  • CMake
    7篇
  • Android studio
    2篇
  • 安全&密码学&交易
  • 密码学
    8篇
  • 金融支付
    5篇
  • 数据结构和算法
    3篇
  • 编码
    4篇
  • gradle
    1篇
  • Linux
    22篇
  • 工具
    2篇
  • C/C++
    22篇
  • JNI
    2篇
  • copilot
    1篇
  • 软件工程
    2篇
  • Java
    5篇
  • Java多线程
    1篇
  • Python
    1篇
  • 职业理解
    1篇
兴趣领域 设置
  • Java
    java
  • 编程语言
    c++c语言
  • 数据结构与算法
    数据结构
  • 移动开发
    androidandroid studio
  • 网络与通信
    https网络安全
  • 软件工程
    性能优化
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

186人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

【Android GUI】FramebufferNativeWindow与Surface

FramebufferNativeWindow是为surfaceflinger服务的,由Gralloc提供。surface虽然为应用程序服务的,但是本质上还是由surface flinger服务统一管理的。
原创
发布博客 2024.04.17 ·
1195 阅读 ·
23 点赞 ·
0 评论 ·
30 收藏

【Android GUI】从总体上了解Android的GUI体系

Android的HAL层提供了Gralloc,包括fb和gralloc两个设备。VSync是“Project Butter”加入的同步机制,可以通过硬件产生,也可以通过软件,即VSyncThread模拟。Framebuffer是内核系统提供的图形硬件的抽象描述,它占用了系统存储空间的一部分,是一块包含屏幕显示信息的缓冲区。Gralloc对应的模块是由FramebufferNativeWindow在构造函数中加载的。Android中,Framebuffer提供的设备文件节点是。
原创
发布博客 2024.04.17 ·
1077 阅读 ·
21 点赞 ·
1 评论 ·
6 收藏

【Android】Activity task和Instrumentation杂谈

Android不仅可以装载众多的系统组件,还可以将它们跨进程组成ActivityTask,这个特性使得每个应用都不是孤立的。
原创
发布博客 2024.04.16 ·
1218 阅读 ·
13 点赞 ·
0 评论 ·
27 收藏

【Android AMS】startActivity流程分析

AMS是个用于管理Activity和其它组件运行状态的系统进程。
原创
发布博客 2024.04.16 ·
806 阅读 ·
8 点赞 ·
0 评论 ·
23 收藏

【Android surface 】二:源码分析App的surface创建过程

我们来回顾和总结一路过来的分析,为后续破解surfaceflinger做准备。创建了一个SurfaeComposerClient,调用它的createSurface,拿到一个SurfaceControl对象。调用SurfaceControl的writeToParcel把信息写道parcel中。根据parcel的信息构造一个surface对象,并保存到java层的mSurface对象中。这样viewroot得到了一个native的surface对象。
原创
发布博客 2024.04.12 ·
1405 阅读 ·
23 点赞 ·
1 评论 ·
27 收藏

【Android Surface】从Activity的创建到Surface的创建,源码分析1

我们知道Android绘制图形依靠的是surface和surface flinger,但是当我说起这句话的时候,你脑海里面能复现出一幅图画,里面展示了Android绘制图像,然后渲染到屏幕这整个执行流程吗?如果没有,一起来研究研究Android的这个机制。我想,理清楚之后,作为Android开发的我们,必定获益良多。先看看surface系统的的整体关系:不论是使用Skia绘制二维图像,还是使用OpenGL绘制三维图像,APP都会Surface进行交互。
原创
发布博客 2024.04.12 ·
1153 阅读 ·
13 点赞 ·
0 评论 ·
30 收藏

【Android ServiceManager】从源码入手,剖析ServiceManager是如何处理客户端的请求的?

代码分析到这里,我们总结下,前面代码中ServicManager打开了binder设备,让自己成为manager,接着进入循环并通过ioctl与binder设备进行交互,用于来处理客户端发过来的消息。我们不禁去思考ServiceManager存在的价值是什么。ServiceManager可以通过字符串查找对应的Service,这个与DNS很类似。并且ServiceManager对服务进行了权限控制,使得并非所有服务都能进行注册,这无疑提高了Android的安全性和各种服务的条理性。
原创
发布博客 2024.04.03 ·
803 阅读 ·
29 点赞 ·
0 评论 ·
18 收藏

【Android Binder】从源码出发,剖析Binder机制的实现流程

在这里我们可以做一个总结:这行代码中创建了BpBinder对象,然后把BpBinder对象作为参数新建了了一个BpServiceManager对象。sm就是这个BpServiceManager对象。一个是BpBinder对象,它的handle值为0,。一个BpServiceManager对象,它的mRemote值为BpBinder对象。而且BpServiceManager实现IServiceManager接口,又有了BpBinder作为通信代表。到这里进行通信的准备做的差不多了。但是还差些什么。
原创
发布博客 2024.04.02 ·
1218 阅读 ·
19 点赞 ·
0 评论 ·
14 收藏

【Android Handler】从源码出发,一步步窥探Handler在Java层的数据结构关系和执行原理

Handler作为消息机制在整个Android系统里面起到了无可替代的作用,我们今天来探讨下这个无比重要的机制的实现细节。
原创
发布博客 2024.03.29 ·
1008 阅读 ·
26 点赞 ·
0 评论 ·
14 收藏

【Java 多线程】从源码出发,剖析Threadlocal的数据结构

ThreadLocal是个很重要的多线程类,里面数据结构的设计很有意思,很巧妙。但是我们平时使用它的时候常常容易对它的使用感到迷惑,因为它跟其它的API很不一样,使用很不一样,设计也很不一样。但是不用担心,这篇文章将从源码出发,一步步深入剖析ThreadLocal内部构造,理清楚它的来龙去脉。
原创
发布博客 2024.03.28 ·
864 阅读 ·
13 点赞 ·
0 评论 ·
12 收藏

【Android 内存优化】KOOM线程泄漏监控的实现源码分析

前面我们通过研究KOOM的开源代码,研究了关于Java层和native层内存泄漏监控的实现原理。还剩下线程泄漏这部分没有进行分析,今天来补全它。整体下来,相信我们对于内存监控在代码上的实现上会有一个较为体系化的了解。
原创
发布博客 2024.03.26 ·
483 阅读 ·
5 点赞 ·
0 评论 ·
7 收藏

【Android 内存优化】Koom核心内存指标分析

这就是KOOM在Java层内存监控拿到的内存指标。有了这些指标,可以比较清晰地知道当前机器和进程内存的情况。
原创
发布博客 2024.03.24 ·
1087 阅读 ·
8 点赞 ·
0 评论 ·
22 收藏

【Android 源码】Android源码下载指南

这是关于Android源码下载的过程记录。环境:Windows上通过VMware安装的Ubuntu系统。
原创
发布博客 2024.03.23 ·
748 阅读 ·
3 点赞 ·
0 评论 ·
5 收藏

【Android 内存优化】 native内存泄漏监控方案源码分析

Android的native泄漏怎么检测?下面通过研究开源项目KOOM来一探究竟。
原创
发布博客 2024.03.21 ·
1233 阅读 ·
22 点赞 ·
0 评论 ·
26 收藏

【CMake】Android native模块a调用native模块b,如何配置cmake?

Android项目中如何配置cmake,让module a的native代码调用module b的native代码?首先可以看看CMAKE_SOURCE_DIR的具体路径:定义子目录的路径把子模块的cmakelists添加关联接着根据自己项目的具体位置,找到实际上module a的代码路径。接着调用add_subdirectory,添加到对应的路径中。add_subdirectory的主要作用是添加另外一个cmakelist到当前的cmakelisk的搜索目录中。这里需要注意的是,这种情境下使用
原创
发布博客 2024.03.18 ·
463 阅读 ·
3 点赞 ·
0 评论 ·
7 收藏

【Android 内存泄漏】KOOM 怎么实现线程泄漏的监控?

前面分析了KOOM Java leak、native leak的监控思路,这篇继续分析它线程监控的整体思路。
原创
发布博客 2024.03.12 ·
1093 阅读 ·
18 点赞 ·
0 评论 ·
16 收藏

【C/C++ API】C++内存分配和释放函数分析

是一个 C 语言函数,用于分配一块内存,并保证返回的指针地址满足特定的对齐要求。指向的内存块,并使该内存块可用于后续的内存分配。字节,并返回一个指向重新分配后的内存块的指针。之后,我们检查是否分配成功,然后使用该内存,最后在不再需要时释放该内存。是 C 标准库中的一个函数,用于分配一块内存,并保证返回的指针地址满足特定的对齐要求。是 C 标准库中的一个函数,用于重新分配先前分配的内存块的大小。,即要释放的内存块的指针。是 C 标准库中的一个函数,用于动态分配内存,并将分配的内存空间初始化为零。
原创
发布博客 2024.03.11 ·
1083 阅读 ·
15 点赞 ·
0 评论 ·
26 收藏

【Android 内存优化】快手框架KOOM是怎么实现native层内存泄漏监控的?

我们可以大体总结一下KOOM监控native泄漏的大致原理:主要是通过加载需要监听的so,然后通过开源框架XHook来hook内存分配相关的调用函数,把hook获取到的信息回调给Java应用层,从而达到监控native内存的目的。
原创
发布博客 2024.03.11 ·
973 阅读 ·
19 点赞 ·
0 评论 ·
16 收藏

【Android 内存优化】KOOM 快手开源框架线上内存监控方案-源码剖析

这篇文章主要剖析KOOM的Java层源码设计逻辑。【Android KOOM】KOOM java leak使用全解析/**/很简单的两行代码,里面包含了如此之多的业务逻辑和精彩的设计。很多时候,我们使用越是简单的开源框架,越是能证明作者的厉害之处。他们把繁杂的逻辑内聚到了框架里面,让使用者能用简单一两行代码实现复杂的逻辑业务。KOOM作为一个线上内存监控框架,有很多优秀的设计。这篇文章也只是在外层分析了一些表面的技术逻辑,至于更深入的内容,后续会继续更新。
原创
发布博客 2024.03.09 ·
1547 阅读 ·
20 点赞 ·
0 评论 ·
23 收藏

【Android KOOM】KOOM java leak使用全解析

发布资源 2024.03.08 ·
hprof
加载更多