青春给了狗
码龄9年
关注
提问 私信
  • 博客:289,922
    289,922
    总访问量
  • 134
    原创
  • 189,259
    排名
  • 736
    粉丝
  • 28
    铁粉

个人简介:山有木兮木有枝 心悦卿兮卿不知 伤心桥下春波绿 疑是惊鸿照影来

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
  • 加入CSDN时间: 2015-07-02
博客简介:

a546036242的博客

查看详细资料
  • 原力等级
    领奖
    当前等级
    5
    当前总分
    1,338
    当月
    4
个人成就
  • 获得1,018次点赞
  • 内容获得94次评论
  • 获得1,517次收藏
  • 代码片获得2,111次分享
创作历程
  • 47篇
    2024年
  • 24篇
    2023年
  • 39篇
    2022年
  • 28篇
    2021年
成就勋章
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

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

深度刨析Android 进程保活

什么是保活?保活就是在用户主动杀进程,或者系统基于当前内存不足状态而触发清理进程后,该进程设法让自己免于被杀的命运或者被杀后能立刻重生的手段。保活是”应用的蜜罐,系统的肿瘤“,应用高保活率给自己赢得在线时长,甚至做各种应用想做而用户不期望的行为,给系统带来的是不必要的耗电,以及系统额外的性能负担。提升进程优先级,降低被杀概率比如监听SCREEN_ON/OFF广播 启动一像素的透明Activity启动空通知,提升fg-service进程被杀后,重新拉起进程监听系统或者第3方广播拉起进程。
原创
发布博客 2024.03.20 ·
1286 阅读 ·
26 点赞 ·
0 评论 ·
33 收藏

Android 系统开发工具大全

下面推荐的是我常用的工具,如果你有好用的开发工具欢迎在评论区留言讨论交流。
原创
发布博客 2024.03.20 ·
1384 阅读 ·
24 点赞 ·
0 评论 ·
21 收藏

Android11.0最新Framework解析.zip

发布资源 2024.03.19 ·
zip

Android 之 GMS 认证知多少?

GMS认证是一项大工程,需要花费大量的人力(至少3人负责)、物力(标配:3台设备+3台主机)、财力(20万RMB左右)、时间(周期最低2个月),不建议新手去接手这件差事,最好是有老司机全程带着搞一遍。测试期间很轻松,基本不需要干啥,都是全自动化的,但是测试结束就有得忙了,随随便便成千上万个fail项就让人头皮发麻,所以,这个烫手山芋很多人都难以下咽,但作为一个合格的framework开发者,很有公司都要求有GMS认证的经验。
原创
发布博客 2024.03.19 ·
5696 阅读 ·
34 点赞 ·
0 评论 ·
42 收藏

深度解析 Android 系统属性

在 Android 系统中,为统一管理系统的属性,设计了一个统一的属性系统,每个属性都是一个 key-value 对。我们可以通过 shell 命令,Native 函数接口,Java 函数接口的方式来读写这些 key-vaule 对。init 进程在启动会去加载后缀为 .prop 的属性文件, 将属性文件中的属性加载到共享内存中, 这样系统就有了默认的一些属性。Android O 以后,属性的 Selinux 的规则变得复杂起来了,今天我们先看一个简单的例子,做基本的了解。
原创
发布博客 2024.03.19 ·
2124 阅读 ·
17 点赞 ·
0 评论 ·
33 收藏

如何添加 Android Native 系统服务

工作学习过程中,我们可能需要去阅读不同类型的 Native 系统服务,也有可能会自己去完成一个 Native 系统服务。无论哪种情况都需要我们了解基本的 Native 如何去添加。就像我们写 Android App 得先了解一下四大组件才行。接着我们就来看看如何添加一个 Android Native 系统服务。
原创
发布博客 2024.03.19 ·
1157 阅读 ·
5 点赞 ·
0 评论 ·
6 收藏

Android 系统如何添加开机自启动 Shell 脚本

再回到权限那里,我们的脚本调用了 echo log 两个命令,这两个命令会通过执行 toybox_vendor 来实现,当执行 toybox_vendor 时,我们就需要 toybox_vendor 的打开,读取,执行权限,以及配置 domain 转换(A 程序到 B 程序都需要配置域转换)。很多时候,我们想在系统启动的时候干一些“私活”,这个时候,我们就可以添加开机自启动的脚本来完成。启动时打的 log,以及启动相关的属性值均正常,证明我们添加的脚本执行成功了。需要注意的是 shebang 的内容是。
原创
发布博客 2024.03.19 ·
2757 阅读 ·
7 点赞 ·
0 评论 ·
6 收藏

Android 源码中 内置系统App(整个APP源码方式集成)

我们这里尝试修改 JNIApp,让其引用到我们的 libmymath 库。# 添加以下内容# 下面这行注释掉即可最后重新编译,执行虚拟机即可。
原创
发布博客 2024.03.19 ·
2425 阅读 ·
26 点赞 ·
0 评论 ·
19 收藏

Android 源码中如何添加 C C++、Java 库

在目录下创建以下的目录和文件是一个动态库。其Android.bp接着修改我们之前添加的 hello 项目:修改编译完成启动虚拟机后,就可以通过 adb shell 运行我们的 hello 程序了。
原创
发布博客 2024.03.19 ·
958 阅读 ·
18 点赞 ·
0 评论 ·
9 收藏

Android 系统源码中添加可执行程序

本文基本Android 10的源码环境。
原创
发布博客 2024.03.19 ·
1588 阅读 ·
24 点赞 ·
0 评论 ·
18 收藏

Android 如何在源码中添加 Product

在 App 的开发中,我们要去打渠道包,根据不同应用市场的要求打包出不同的 apk 包。同样的道理,Android 的系统源码,经过简单的配置,可以打包出不同的系统镜像,用于不同的产品。例如rk3326_q,rk3566_t ,rk3568 均源于瑞芯微平台。Android 系统源码是通过配置文件来实现 “分包” 的,配置文件将我们的源码配置为了不同的 Product,每一个 Product 适用于特定的硬件产品,这一系列的配置文件我们称为 Product。我们在编译源码之前需要执行 lunch :这里的
原创
发布博客 2024.03.19 ·
882 阅读 ·
29 点赞 ·
0 评论 ·
26 收藏

Android 系统源码快速入门

虚拟机安装开发环境搭建下载编译源码从一个简单的实际开发需求体验 Framework 开发。
原创
发布博客 2024.03.19 ·
1292 阅读 ·
14 点赞 ·
0 评论 ·
8 收藏

构建Android模拟器系统运行镜像(系统固件)

从其他镜像目录(如android-sdk\system-images\android-33\default\x86_64)移动一个package.xml过去。我们需要通过下面的命令设置环境,选择要编译的目标product并启动编译过程。可以启动http server(如:python -m http.server 8888),使用repo-sys-img.xml部署镜像源,此处不详细介绍。要想通过emulator命令启动我们编译好的系统镜像,需要将镜像打包并部署。的源码,可以通过下面的命令。
原创
发布博客 2024.03.19 ·
1268 阅读 ·
22 点赞 ·
0 评论 ·
16 收藏

startActivity启动过程分析

的整体流程与startService启动过程分析非常相近,但比Service启动更为复杂,多了stack/task以及UI的相关内容以及Activity的生命周期更为丰富。Activity启动发起后,通过Binder最终交由system进程中的AMS来完成,则启动流程如下图:接下来,从源码来说说每个过程。本文详细startActivity的整个启动流程,流程[2.1 ~2.4。
原创
发布博客 2024.03.18 ·
787 阅读 ·
14 点赞 ·
0 评论 ·
30 收藏

startService启动过程分析

本文将开启对ActivityManagerService的分析。ActivityManagerService是Android的Java framework的服务框架最重要的服务之一。对于Andorid的Activity、Service、Broadcast、ContentProvider四剑客的管理,包含其生命周期都是通过ActivityManagerService来完成的。对于这四剑客的介绍,此处先略过,后续博主会针对这4剑客分别阐述。在整个startService过程,从进程角度看服务启动过程。
原创
发布博客 2024.03.18 ·
826 阅读 ·
10 点赞 ·
0 评论 ·
14 收藏

Android 内存分析-指令

Item全称含义等价USS物理内存进程独占的内存PSS物理内存PSS= USS+ 按比例包含共享库RSS物理内存RSS= USS+ 包含共享库VSS虚拟内存VSS= RSS+ 未分配实际物理内存故内存的大小关系:VSS >= RSS >= PSS >= USS。
原创
发布博客 2024.03.18 ·
1178 阅读 ·
15 点赞 ·
0 评论 ·
18 收藏

Android系统启动-zygote篇

Zygote是由init进程通过解析init.zygote.rc文件而创建的,zygote所对应的可执行程序app_process,所对应的源文件是App_main.cpp,进程名为zygote。class mainservicemanager进程被杀;(onresart)surfaceflinger进程被杀;(onresart)Zygote进程自己被杀;system_server进程被杀;(waitpid)
原创
发布博客 2024.03.18 ·
812 阅读 ·
17 点赞 ·
0 评论 ·
11 收藏

ActivityManagerService 启动过程

本文以AMS为主线,讲述system_server进程中AMS服务的启动过程,以startBootstrapServices()方法为起点,紧跟着startCoreServices(), startOtherServices()共3个方法。创建AMS实例对象,创建Andoid Runtime,ActivityThread和Context对象;setSystemProcess:注册AMS、meminfo、cpuinfo等服务到ServiceManager;
原创
发布博客 2024.03.18 ·
1119 阅读 ·
25 点赞 ·
0 评论 ·
18 收藏

Android系统启动-SystemServer(二)

该方法所创建的服务:ActivityManagerService, PowerManagerService, LightsService, DisplayManagerService, PackageManagerService, UserManagerService, sensor服务.该方法比较长,有近千行代码,逻辑很简单,主要是启动一系列的服务,这里就不具体列举源码了,在第四节直接对其中的服务进行一个简单分类。到此,系统服务启动阶段完成就绪,system_server进程启动完成则进入。
原创
发布博客 2024.03.18 ·
815 阅读 ·
20 点赞 ·
0 评论 ·
27 收藏

Android系统启动-SystemServer(一)

本文以AMS为主线,讲述system_server进程中AMS服务的启动过程,以startBootstrapServices()方法为起点,紧跟着startCoreServices(), startOtherServices()共3个方法。创建AMS实例对象,创建Andoid Runtime,ActivityThread和Context对象;setSystemProcess:注册AMS、meminfo、cpuinfo等服务到ServiceManager;
原创
发布博客 2024.03.18 ·
855 阅读 ·
13 点赞 ·
0 评论 ·
25 收藏
加载更多