自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

从0到1,突破自己

努力创造自己的奇迹,而不是等待奇迹的发生。

  • 博客(621)
  • 资源 (44)
  • 收藏
  • 关注

原创 3.3 Android bpfloader初始化流程解读(一)

这里梳理下android上bpfloader的初始化过程

2023-09-23 12:08:20 81

原创 3.2 Android eBPF程序类型

从帮助函数中,我们可能基于内核的eBPF开放API,对eBPF的能力有一个比较细致的认识,但是这并不能让我们从全局,或者更概括的认识eBPF。eBPF程序类型能够更宏观的告诉我们,eBPF能做哪些事情

2023-09-17 22:12:37 340

原创 3.1 Android eBPF代码仓解读

前面已经介绍,Android从9.0版本开始支持eBPF,并且主要用于网络及CPU性能的监控上。它包含一个eBPF加载器和库。加载器在Andoroid init启动/system/etc/bpf/下的所有eBPF程序,ebpf程序在完成加载后,内核ebpf程序进行verify和attach,顺利的话,最终,ebpf程序会被hook或插入到指定的内核函数中,这样就可以完成对内核活动的监控。

2023-09-10 22:08:00 363

原创 [实践篇]13.24 QNX镜像编译

在QNX中镜像的编译是以build_file_tmpl(也就是以.build.tmpl为后缀的文件)为单元来实现的,且每个镜像对应一个img_name.build.tmpl。

2023-08-19 15:08:04 171

原创 [实践篇]13.23 QNX环境变量profile

env用于查看和设置环境变量。如果执行env工具不带任何参数,则可以查看当前已经支持的所有的环境变量。

2023-08-19 11:59:25 545

原创 【CGroupAndroid实践篇】四、Native Service进程启动及控制组迁移

承接上一篇,在cgroup子系统初始化完成后,init会继续执行开机流程,且通过代哦用ExecuteCommand()函数。

2023-08-13 16:14:39 134

原创 CGroupAndroid实践篇】三、Android CGroup控制组初始化

创建控制组节点(也就是在cgroup子系统层级目录下创建子目录)修改权限等

2023-08-11 22:29:20 558

原创 2.13 Android ebpf非网络相关帮助函数API汇总(十二 本章完)

非网络相关ebpf api汇总

2023-08-06 10:45:53 509

原创 2.12 Android ebpf帮助函数解读(十一)

帮助函数的介绍是根据其引入内核的时间来排序介绍的,从前面包括本篇博客的介绍我们可以看到bpf最初的设计就是为网络而生的。

2023-08-02 21:30:32 461

原创 2.11 Android ebpf帮助函数解读(十)

帮助函数的介绍是根据其引入内核的时间来排序介绍的,从前面包括本篇博客的介绍我们可以看到bpf最初的设计就是为网络而生的。

2023-07-29 15:44:35 368

原创 2.10 Android ebpf帮助函数解读(九)

帮助函数的介绍是根据其引入内核的时间来排序介绍的,从前面包括本篇博客的介绍我们可以看到bpf最初的设计就是为网络而生的。

2023-07-29 15:30:02 463

原创 2.8 Android ebpf帮助函数解读(七)

帮助函数的介绍是根据其引入内核的时间来排序介绍的,从前面包括本篇博客的介绍我们可以看到bpf最初的设计就是为网络而生的。

2023-07-22 15:16:25 248

原创 2.9 Android ebpf帮助函数解读(八)

帮助函数的介绍是根据其引入内核的时间来排序介绍的,从前面包括本篇博客的介绍我们可以看到bpf最初的设计就是为网络而生的。

2023-07-22 15:15:47 147

原创 2.7 Android ebpf帮助函数解读(六)

帮助函数的介绍是根据其引入内核的时间来排序介绍的,从前面包括本篇博客的介绍我们可以看到bpf最初的设计就是为网络而生的。

2023-07-11 21:35:06 390

原创 2.6 Android ebpf帮助函数解读(五)

帮助函数的介绍是根据其引入内核的时间来排序介绍的,从前面包括本篇博客的介绍我们可以看到bpf最初的设计就是为网络而生的。

2023-07-08 19:03:21 397

原创 2.5 Android ebpf帮助函数解读(四)

帮助函数的介绍是根据其引入内核的时间来排序介绍的,从前面包括本篇博客的介绍我们可以看到bpf最初的设计就是为网络而生的。

2023-07-02 11:33:17 251

原创 2.4 Android ebpf帮助函数解读(三)

帮助函数的介绍是根据其引入内核的时间来排序介绍的,从前面包括本篇博客的介绍我们可以看到bpf最初的设计就是为网络而生的。

2023-06-24 12:22:09 487

原创 2.3 Android ebpf帮助函数解读(二)

帮助函数的介绍是根据其引入内核的时间来排序介绍的,从前面包括本篇博客的介绍我们可以看到bpf最初的设计就是为网络而生的。我们继续来介绍。skb检索realm或route,也就是skb tclassid字段。所检索到的标识符是用户提供的标记,与net_cls cgroup 使用的标记类似(可参考bpf_get_cgroup_classid()帮助函数的说明),但此处标记由route(目标条目)保存而不是由task。

2023-06-11 22:38:21 466

原创 2.2 Android ebpf帮助函数解读(一)

在开始我们的helloworld之前,我们先了解下内核ebpf子系统为我们提供了哪些能力。这样我们后面编写起来才会游刃有余。

2023-06-01 23:25:34 457

原创 2.1 Android ebpf编程规则

有很多开源的库和框架可用于编写eBPF程序。而Android当然也支持BCC,不过这部分放到最后再讲。因为Android也实现了自己的eBPF加载器。从本章开始我们通过实例hello world一步步剖析在Android傻姑娘ebpf的编程,编译,加载以及在内核中实际的运行原理。加载器这一部分,我们也会独立成章,详细进行拆解。

2023-06-01 23:20:07 391

原创 1.4 Android下使能eBPF

由于eBPF可运行用户提供的eBPF程序来扩展内核,这些程序可以附加到内核中的探测点或事件,用于收集有用的内核统计信息,监控和调试。eBPF使用bpf(2)系统调用加载到内核中,并作为eBPF机器指令的二进制块由用户来提供。Android构建系统支持使用本文所述的build文件语法将C程序编译为eBPF程序。并且Android包含了一个eBPF加载器和库,这样Android可以在启动初始化阶段加载eBPF程序。

2023-05-31 23:28:00 564

原创 1.3 eBPF的工作原理初探

上一节提到过,eBPF程序是面向BPF体系结构指令集编写的,它并不直接运行在Linux内核中,我们可以理解为它是运行在eBPF虚拟机,由eBPF虚拟机来执行eBPF字节码,就像java运行在jvm一样。我们用一张原理图来看下eBPF程序的编译,加载,验证,钩子,映射等结点。如上是详细的eBPF的工作流程,首先eBPF程序是一个C语言编写的代码源文件bpf_prog.c,通过LLVM将源文件编译成bpf_prog.o对象文件(ELF)。

2023-05-29 07:17:14 462

原创 1.2 什么是eBPF?(下)

eBPF具备了eBPF程序的动态加载,eBPF程序的高性能,eBPF云原生环境的兼容性等优势

2023-05-27 09:46:18 1043

原创 1.1 什么是eBPF?(上)

大多数介绍eBPF的文章都是用“eBPF是一种革命性的内核技术”来描绘的。这样讲一点也不夸张。因为它允许在Linux的内核中执行沙盒程序,在不改变内核源码或加载内核模块的前提下直接地,安全地,快捷地扩展内核,并改变内核的行为。可以想像在运行时,将用户空间的eBPF程序加载到内核中是如何的一种颠覆。不像应用程序,由于内核拥有全局查看并控制整个操作系统的特权,其核心角色和对于稳定性和安全性的要求非常严格,这也成为了内核持续演进的阻碍,这也导致Linux操作系统级别的创新比较低。

2023-05-26 23:05:47 647

原创 eBPF - 开篇

近年来,eBPF发展比较快,越来越受很多大厂的追捧,一些Top手机厂商,云厂商都有针对性的开发了一些实用工具来帮助更好的监控系统基础能力和性能。作为操作系统的从业者,我们很难不去学习,尤其在“降本增效”的当下,eBPF能为我们的开发和优化带来颠覆性的影响。虽然很难去综合地针对每一部分去拆解,去学习。但还是有一些入门的技巧。接下来我们会系统地来讨论,为什么eBPF那么地受追捧,功能那么的强大。当然我们也会参照官网运行一些示例来帮助更好的理解eBPF的编译,加载以及校验和运行。

2023-05-25 23:05:15 629

原创 Linux内存从0到1学习笔记(6.13 libc库对内存管理之ptmalloc)--- 更新中

今天介绍的ptmalloc其实是指GNU libc中默认的内存分配器,目前普遍使用的ptmalloc实际上是基于早期malloc(dlmalloc)的基础上演进而来。相对于dlmalloc,ptmalloc增加了动态分配去(dynamic arena)每一个分配区利用互斥锁(mutex)使线程对于该分配区的访问互斥。进程可以是单线程,也可以是多线程,因此每个就进程可以有一个主分配区和多个线程分配区。

2023-05-15 22:55:52 387

原创 Linux内存从0到1学习笔记(6.12 应用程序是如何申请内存的呢?)

前面提到了应用程序大多基于glibc的malloc/free进行内存的分配。这里不讨论共享内存,因为共享内存都是预先分配好的,所以由共享内存mmap和shm所设计的内存泄漏比较少见。接下来我们从应用调用的维度来看下,应用程序都有哪些调用入口,以及它们是如何申请和释放内存的。

2023-05-08 22:02:52 406

原创 Linux内存从0到1学习笔记(6.11内存管理总结)

我们常说的内存优化常常要进行分层优化,且应用程序的优化是我们的主要战场。这里的分层优化分别指应用程序层,和中间层(libc.so),内核层。

2023-05-03 22:18:36 106

原创 [实践篇]13.22 la qcom平台Watchdog Bark/Bite学习总结

对于la系统,我们常见的几种重启情况包括内核态重启和用户态重启。内核空间的重启又包括电源状态异常导致的重启,内核看门狗的狗咬狗叫重置,以及内核子系统/驱动/其他模块异常导致的Panic Crash。今天我们还是先聚焦看门狗的狗咬和狗叫。

2023-03-19 21:53:44 657 1

原创 [实践篇]13.34 qnx侧资源使用调试指令回顾

前面写过一些常用的指令使用方法,本篇与slm模块结合起来,再回顾一下。

2023-03-03 23:10:33 958

原创 [实践篇]13.21 la qcom watchdog学习笔记

wdt定时器配置了一个狗叫-Bark和狗咬-Bite时间,如果没有在规定的时间周期内喂狗-Pet,即系统出现无响应的情况,则需要被重置。狗叫超时会导致狗叫中断和内核panic。也就是说如果wdt定时器没有被及时重置,则会发生狗咬事件,这个事件是一种安全模式下的中断,会通过wdt触发soc重置。驱动要像狗叫和狗咬中断一样,将喂狗超时和狗叫超时编写到wdt中。

2023-02-25 21:33:01 591

原创 [实践篇]13.20 Qnx进程管理slm学习笔记(三)

QNX系统的启动包括系统基础服务,中间件服务,以及各式各样的应用进程。它们之间有着千丝万缕的联系和相互依赖,因此这些进程需要在一些特定的时序下有序启动,以保证系统的正常启动和运行。此外,系统物理资源非常有限,在高负载的业务并发场景下,可能会存在严重的资源竞争,那么进程优先级管理也是很重要的。我们既要保证系统基础服务持续提供能力,也要确保用户的极致体验,这就需要对进程进行合适的管理和监控。

2023-02-12 21:17:57 521

原创 [实践篇]13.19 Qnx进程管理slm学习笔记(二)

QNX系统的启动包括系统基础服务,中间件服务,以及各式各样的应用进程。它们之间有着千丝万缕的联系和相互依赖,因此这些进程需要在一些特定的时序下有序启动,以保证系统的正常启动和运行。此外,系统物理资源非常有限,在高负载的业务并发场景下,可能会存在严重的资源竞争,那么进程优先级管理也是很重要的。我们既要保证系统基础服务持续提供能力,也要确保用户的极致体验,这就需要对进程进行合适的管理和监控。

2023-02-12 15:50:09 530

原创 [实践篇]13.18 Qnx进程管理slm学习笔记(一)

QNX系统的启动包括系统基础服务,中间件服务,以及各式各样的应用进程。它们之间有着千丝万缕的联系和相互依赖,因此这些进程需要在一些特定的时序下有序启动,以保证系统的正常启动和运行。此外,系统物理资源非常有限,在高负载的业务并发场景下,可能会存在严重的资源竞争,那么进程优先级管理也是很重要的。我们既要保证系统基础服务持续提供能力,也要确保用户的极致体验,这就需要对进程进行合适的管理和监控。

2023-02-12 11:10:09 702

原创 [实践篇]13.17 时间不同步怎么办?

在项目开发过程中,对于大部分开发和质量的同学来说,拥有一套完整的硬件开发环境是非常奢侈的。没有wifi,没有tbox等的情况下,除了影响部分业务的提测,在遇到问题时由于时间不同步导致的第一现场时间不准确,也会干扰问题的分析和解决。

2023-02-12 10:54:52 136

原创 【系统稳定性】1.2 问题矩阵(一)

项目在研发过程中常常遇到的稳定性问题往往来源于如暴力测试、研发自测、测试复现、场测路试问题、老化(如Monkey等)问题、Beta测试、产线生产问题,用户舆情反馈等。

2023-01-29 22:09:47 465

原创 Linux内存从0到1学习笔记(8.14 dma-buf内存调试二 bufinfo介绍)-- 更新中

bufinfo是我们调试dmabuf使用的一个非常有效的debug 信息。因此我们需要了解下它的由来以及记录的关键信息。并且根据场景需要来对跟踪的信息进行调整和完善,以满足我们的调试需要。

2023-01-11 22:23:48 836

原创 [实践篇]13.16 vmm_service监听qvm事件原理及其自定义事件详解

前面通过【实践篇】13.11扒一扒qvm与vmm之间的那点事儿,我们了解到vmm_service通过监听vmm设备节点,来接收qvm的状态事件或控制等信息,并根据对应的状态进行相关的处理,以满足系统服务的鲁棒性,下面我们来聊一聊虚拟机事件的收发原理。

2023-01-07 23:03:17 680

原创 Linux内存从0到1学习笔记(8.13 dma内存调试一)

现在我们对dma-buf几个紧密关联的结构体有所了解,再结合相应的导入器,导出器使用示例,dma-buf的使用已经不再陌生。那么在日常使用过程中常常会遇到哪些问题呢?

2023-01-02 21:04:18 829

原创 Linux内存从0到1学习笔记(8.12 dma-buf导出器和导入器使用示例 四)

前面解释了使用dma_buf所涉及的几个重要的结构体以及导出器的示例,我们再来介绍下导入器具体示例。

2022-12-28 21:09:18 654

收发彩信,自动打开数据连接

两个文件分别为在源码基础上进行修改后的文件,主要用于解决关闭数据连接后无法收发彩信

2014-07-07

视图缩放案例

这个小案例是主要用来演示一下如何点击一个图片按钮,对缩略图进行缩放操作。

2014-07-07

app之间交互(ComponentName)

这里简单介绍了以一下如何使用ComponentName来帮助我们实现App之间的交互

2014-07-03

版本控制器git-1.9.4(msysgit Windows版)

这里为大家提供了当前最新版本的msysgit版本控制器

2014-06-28

Android中app之间的交互

这里简单介绍了,不同app之间如何使用隐式intent进行交互

2014-06-27

Fragment与Activity使用接口进行交互

这里简单介绍了如何使用接口,来使fragment发送消息给activity

2014-06-27

Fragment与Activity使用Bundle传递数据

这里简单描述了以下Activity使用Bundle向Fragment传递数据

2014-06-27

Fragment与Activity使用Handler进行交互

这里简单介绍了Fragment和Activity使用Handler方式进行交互。

2014-06-27

实现TextView自由复制

自己参照Android系统源码中短信模块中代码,写了一个Demo程序实现TextView的自由复制,共享给大家参考。

2014-06-26

android手机USB驱动

用以android手机链接电脑用的USB驱动程序

2013-01-12

毕业设计-VC职工工资管理系统

这是一款毕业设计源程序和论文,希望能对大家的毕业设计有所帮助。

2013-01-12

毕业设计-( ASP精品课程网站

这是一款毕业设计源程序和论文,希望能对大家的毕业设计有所帮助。

2013-01-12

Asp电子商务网站

希望能对大家的毕业设计有所帮助,至少能起到一个参考资料,希望大家都能过关啦。

2013-01-12

andricoFacebook客户端

这是一款模仿andricoFacebook客户端的源程序代码

2013-01-11

Baidu_map(百度地图)Android平台开发指南文档

这是为android开发者在使用百度地图开放的api时,需要参考的开发指南文档

2013-01-10

android电子商城(客户端+服务器)

这是一个电子商城的android源代码,其中包括客户端和服务器,经过测试。希望能对初学者有所帮助。

2013-01-08

微博客户端源代码

这是一个关于微博客户端开发的源程序,对于初学者来说是一个易于模仿的案例,对初学者来说很有帮助,贵在模仿

2013-01-08

Android的一个仿酷狗播放器的应用程序源码

一个仿酷狗播放器的音乐播放器源码,对于初学者来说是一个很好的模仿例子

2013-01-03

p2p终结者局域网软件

想在局域网里游刃有余吗?下载来使用使用知道了。

2012-12-06

android工程师面试内部题

想转行做安卓的同志们,面试有这个,offer就不是问题了。

2012-12-06

pageowner 解析工具

该工具组合可以对pageowner进行不同维度的解析,包括下面3各方面: 1.通过关键函数对pageowner进行解析、统计,最终以进程级展示进程的cma内存使用情况,并通过占用size自动排序。 2.该工具可用于分拆pageowner信息,并以进程和线程进行分别拆分,用于更细力度的pageowner拆分。 3.该工具用于解析整个pageowner中各个进程的内存使用情况 解析工具的开发是为了在我们拆分内存布局的时候能够提高效率,不容易出错,达到事半功倍的效果。 在使用过程中,遇到任何问题,都可以免费提供支持。

2022-05-13

linux_kernel_config 中文手册(2.6.28)

linux_kernel_config 中文手册(2.6.28)

2022-04-30

opengrok-1.7.30.tar.gz

opengrok-1.7.30.tar.gz

2022-03-27

syslinux-6.03.tar.xz

syslinux-6.03.tar.xz

2022-03-27

jdk-11.0.14_linux-x64_bin.deb

jdk-11.0.14_linux-x64_bin.deb

2022-03-27

busybox-1.35.0.tar.bz2

busybox-1.35.0.tar.bz2

2022-03-27

高度精简LinuxOS

自定义打包的LinuxOS,该OS只有10M左右,仅包含LinuxKernel+Busybox;

2022-03-26

车载SOA软件架构技术规范

车载SOA软件架构技术规范

2022-03-20

ardupilot-master.zip开源固件源码

ardupilot-master.zip开源固件源码

2022-02-07

MP Mission Planner 飞控地面控制站

MP Mission Planner 飞控地面控制站

2022-01-29

helloworld.zip

HelloWorld

2021-05-11

SELinux4AndroidO

该文档包含如下: m4.pdf/configuring-selinux-policy-report.pdf/implementing-selinux-as-linux-security-module-report.pdf/The_SELinux_Notebook-4th_Edition.pdf/SEAndroid-NDSS2013.pdf/abs2014_seforandroid_smalley.pdf/SELinux_Treble.pdf

2018-02-05

recovery_l10n

这是Google官方发布的一款工具,用来合成recovery模式下文本本地化显示的工具,我已经编译成功,源码也一起上传了,有兴趣的同学可以下载下来研究一下!

2015-04-10

apktool+smali2java

apktool+smali2java方式反编译

2015-03-18

recovery下edify介绍

这个文件是有关edify脚本的一个简单介绍,是从源码中直接复制下来的

2015-02-13

解决彩信gif格式图附件不能正常播放

解决添加gif格式图片为彩信附件,预览不能正常播放,原因为图片由于超出附件大小限制而被压缩

2014-07-26

解决Android4.3彩信幻灯片中gif格式图片不能正常播放

本代码包解决了在Android4.3中MMS模块中添加幻灯片附件,在预览幻灯片的时候,gif格式图片不能够正常播放

2014-07-26

Android4.3系统内置音乐播放器

这是从android4.3中的源码抽取出来的,而且编译运行成功,有兴趣的朋友可以拿来研究一下。

2014-07-11

模仿Android4.3版本短信设置功能

在Android系统源码中所有应用的设置界面都使用preference,该资源源码是模仿短信app中设置界面的UI和部分功能。

2014-07-11

SmartTools

这个小工具可以自动帮助我们插入短信,通话记录,联系人,浏览器书签

2014-07-07

空空如也

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

TA关注的人

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