Yinchen 的博客
首页
分类
归档
关于
首页
分类
归档
关于
登录
Android-Framework(六)-开机启动ServiceManager进程
2026/09/20
Android系统
本文整理自 Android 6.0(Marshmallow)时期的 servicemanager 源码与配套素材。讨论对象是独立的 servicemanager 进程,以及它自带的 service_manager.c、binder.c 实现。 一、ServiceManager ServiceManager 开机后完成三件事:binderopen 打开 /dev/binder 并映射 128KB 只
Android-Framework(五)-Media服务的添加过程-从ProcessState到ServiceManager的Binder链路
2026/09/19
Android系统
一、从“添加 Media 服务”讲起 mediaserver 由 init 解析 rc 脚本启动。它的 main 先准备 Binder 进程状态、取得 ServiceManager 接口,再调用一串 instantiate 注册媒体服务。这里的关键问题是:进程内的一个服务对象,怎样变成另一个进程能够查询的服务? 注册时,mediaserver 是 Binder 调用的 Client,Ser
Android-Framework(四)-开机启动SystemServer进程
2026/09/18
Android系统
一、从 Zygote 到系统服务 Zygote 完成预加载后,Android 还不能立即运行应用。管理 Activity、窗口、电源和软件包的服务需要先启动,而这些服务中的许多都运行在同一个进程中:systemserver。 理解这段启动流程,要分清三个层次: 进程创建:Zygote 通过 fork 创建 systemserver,为子进程设置运行身份。 运行环境初始化:子进程加载入口类、
Android-Framework(三)-开机启动Zygote进程
2026/09/17
Android系统
一、Zygote 要回答的三个问题 在 Android 设备上执行 adb shell ps -A -o USER,PID,PPID,NAME grep -E 'zygote systemserver',你会看到 zygote 通常只有一个实例,PPID 是 1;而任何一个第三方应用进程的 PPID 都是这个 zygote。再看进程名,zygote 和 systemserver 都不是用户空间
Android-Framework(二)-开机启动Init进程
2026/09/13
Android系统
素材来源:AgentWorkFlow「02-开机启动 Init 进程」 一、从 1 号进程说起:init 要回答的三个问题 Android 启动后执行 adb shell ps,能看到 init 的 PID 是 1;杀掉一个由 init 管理、允许重启的 native service,新 PID 很快又会出现。这两个现象指向三个问题:init.rc 明明只是文本,怎样变成内存中的配置?配置里的命令
Android Framework 学习启动篇:前提、分层与入手路线
2026/09/12
Android系统
本文根据红橙Darren 的直播课程《Android Framework 学习启动篇》系列整理,三讲分别讲必备前提条件、Android Framework 简介与怎么入手学习。 ImageView 设置 android:adjustViewBounds="true" 后,宽度铺满屏幕、高度按图片比例自适应,看起来只是一个布局小问题。可一旦图片尺寸、scaleType、maxWidth/maxHei
Java-C++ jni交互新范式:fbjni 设计与使用
2026/09/12
Java
一、问题与结论 原生 JNI 的 API 数量有限,麻烦集中在边界状态:方法签名要手写字符串,引用所有权靠手动维护,C++ 异常不能越过 JNI 入口,自己创建的 native 线程还要先挂载到 JVM。任何一处漏掉,错误都可能推迟到运行时才出现,表现为 NoSuchMethodError、引用泄漏、std::terminate,或者拿不到可用的 JNIEnv*。 fbjni 不替换原有 JNI
从 Transformer 到大模型
2026/09/12
大模型
视频素材:[【闪客】一小时从 Transformer 到大模型!] 一、大模型是一台「预测下一个词」的机器 给定一串文字,求下一个词,可以写成一个函数:f(多个词) → 下一个词。输入“飞天闪”,期望输出“客”;输入“今天天气真”,候选答案可能是“好”。大语言模型反复执行的就是这个计算。对话、翻译和写代码的形式看起来差别明显,但模型生成时都会从词表中选择下一个 Token,然后把新 Token 接
上一页
4
/ 15
下一页