- 博客(466)
- 资源 (6)
- 收藏
- 关注
原创 Android系统启动流程学习(四)应用程序进程启动过程
想要启动一个应用程序,必须先启动应用程序进程。AMS 启动应用程序时先检查需要的进程是否存在,不存在就请求 Zygote 进程启动进程。Zygote 启动时的 Socket 就是用来等待 AMS 的新建应用进程的请求的。Zygote 通过 fork 自身创建应用程序进程,这样就能继承 Zygote 启动时的虚拟机实例,同事也创建了 Binder 线程池和消息循环,这样就能方便的进行 Binder 进行进程间通信以及处理消息了。
2025-03-27 11:50:24
817
原创 Android系统Launcher启动流程学习(三)Launcher启动流程
系统启动的最后一步是启动一个应用程序用来显示系统中已经安装的应用程序,并作为这些安装程序的启动入口,这个应用程序就是Launcher。上面得知SystemServer 进程启动中会启动很多其他的服务,其中一个就是 ActivityManagerService,在 startOtherServices 中会调用 AMS 的 systemReady() 方法将 Lanuncher 启动起来。
2025-03-26 11:26:35
401
原创 Kotlin标准函数库学习
apply:apply 函数可看作一个配置函数:你可以传入一个接收者,然后调用一系列函数来配置它以便使用。takeUnless 和takeIf 唯一的区别是:只有判断你给定的条件结果是false 时,takeUnless 才会返回原始接收者对象。它们的功能行为是一样的,但with 的调用方式不同。takeIf:和其他标准函数有点不一样,takeIf 函数需要判断lambda中提供的条件表达式(叫predicate),给出true 或false 结果。apply 可以用在初始化时,的不断引用的情况。
2025-03-18 14:02:14
232
原创 使用tslib调试触摸问题
执行命令脚本,或把下面这些环境变量添加进当前用户。然后在/etc/ld.so.conf里添加。然后就可以使用ts_print进行调试了。一、在开发板上下载tslib。并运行ldconfig更新库。
2025-03-12 15:21:24
197
原创 编译aws-sdk-cpp的s3库 windows和mac
windows下使用cmake和msvc2017x64来编译aws sdk cpp库
2024-10-24 14:33:45
764
2
原创 qtcreator的vim模式下commit快捷键ctrl+g,ctrl+c没有反应的问题
qtcreator在vim模式下ctrl快捷键没反应,修改办法
2024-08-24 10:13:35
401
原创 RK3588 AB镜像升级学习(一)
这里的步骤跟生成system.img基本一致,宏函数build-userdataimage-target内通过build_image.py来将$(PRODUCT_OUT)/data目录内容打包生成userdata.img,不同的是,这里不再需要放入ramdisk的内容。对比A/B系统下boot.img生成方式和非A/B系统下recovery.img的生成方式,基本上是一样的,所以A/B系统下的boot.img相当于非A/B系统下的recovery.img。
2024-05-31 15:00:33
1821
原创 ADIL简单测试实例
这个连接是Java的代码,我根据它的链接写了一个kotlin版本的。(Android Interface Definition Language)是Android平台上用于进程间通信(IPC)的一种接口定义语言。它允许不同进程中的组件(如服务和服务、服务和活动等)相互通信。AIDL是Android平台上实现跨进程通信的重要工具,它为开发者提供了一种方便、高效的方式来实现不同进程间的数据交换和方法调用。
2024-05-28 18:50:59
1405
1
原创 香橙派 AIpro使用评测
在本项目中,我们通过使用Sysbench这一强大的性能测试工具,对OrangePi AIpro AI芯片和RK3399芯片进行了深入的性能对比。测试配置为32个线程,持续时间为30秒,每2秒报告一次结果,以确保获得详尽且准确的性能数据。通过对比分析,我们发现了OrangePi AIpro AI芯片在CPU性能方面的一些显著优势,这些优势使其在处理多线程和高负载任务时表现更为出色。
2024-05-28 08:50:33
1237
原创 kotlin 编写一个简单的天气预报app (七)使用material design
更新了(六)中的代码,增加了搜索显示城市列表,点击城市显示对应的天气
2024-04-27 14:26:45
1196
2
原创 qtcreator使用远程服务器编译代码
我并没有找到很好的windows上可以用的rsync工具,最后是装了wsl来调用rsync同步到代码后,在用ssh调用linux命令来编译的。安装wsl安装ubuntu启动wsl然后把windows里的ssh文件证书和配置复制到wsl里同时config的key目录需要改一下,这样就可以登录服务器了然后在home目录创建build.sh进行远程编译。
2024-03-20 19:25:39
695
原创 Docker启动时出错问题记录
检查 net start com.docker.service 是否启动。检查windows的Hyper-V是否启动。
2024-01-27 11:13:03
862
原创 android软件全屏时,输入法显示的输入框位置代码
在输入密码框时,点击密码输入框,会跳出软键盘,同时附带一个输入框:这个输入框并不随输入法设置,而是一个系统自带的配置。当这个密码以明文的方式显示时,输入网址或者ip,长按后能够打开浏览器。这是我不希望出现的。
2024-01-18 17:05:03
275
原创 app设置为HomeLauncher后,如果进行adb install安装,界面会黑屏问题排查记录
app设置home launcher后,adb install后会黑屏
2023-12-19 16:32:40
1159
原创 android 9 adb安装过程学习(三)
PackageManagerService接下来,进入 PackageManagerService 阶段。从PackageInstallerSession.java的commitLocked调用这里的 IPackageInstallObserver2 observer 是前面创建的本次 localObserver:位置:这里的 mHandler 是在 PackageManagerService 的构造器中创建的:是一个 PackageHandler 实例,其绑定了一个子线程 ServiceThrea
2023-11-27 10:13:10
999
原创 android 9 adb安装过程学习(二)
从adb的命令开始解析install的过程,解析PackageInstallerService.java和PackageInstallerSession.java
2023-11-22 17:00:52
786
原创 PackageManagerService初始化
PMS 用来管理所有的 package 信息,包括安装、卸载、更新以及解析 AndroidManifest.xml 以组织相应的数据结构,这些数据结构将会被 其他 service 和 application 使用到。总结添加一些用户 id,如 system、phone 等;
2023-11-04 13:20:15
509
原创 Android系统Launcher启动流程学习(二)SystemServer启动流程
在init进程中有解析.rc文件,在这个rc文件中配置了一个重要的服务service–zygote,这是app程序的鼻祖zygote进程主要负责创建Java虚拟机,加载系统资源,启动SystemServer进程,以及在后续运行过程中启动普通的应用程序。不同机器 zygote.rc 的文件个数可能有不同,这里有四种。
2023-11-03 16:50:15
841
原创 编写虚拟UART驱动程序-框架
1.注册一个uart_driver2. 对于每一个port,都会在设备树里面有一个节点3. 设备树里的节点和platform_driver节点匹配4. 当platform_dirver的probe函数被调用时,可以获得设备树里的信息,从而把每个串口设置成对应的uart_driver。
2023-10-26 17:10:06
566
原创 Code Signal的stringsRearrangement
这个问题可以使用图的遍历来解决。我们可以把每一个字符串看作图中的一个节点,如果两个字符串只有一个字符不同,那么它们之间就有一条边。我们的目标是找到一个字符串的排列方式,使得相邻的字符串之间都有一条边。尽管这种解法可能需要遍历整个图,但由于每个字符串只与其他字符串比较一次,因此时间复杂度为 O(n^2),其中 n 是字符串的数量。我们可以通过深度优先搜索(DFS)或广度优先搜索(BFS)来遍历图。上面的遇到相同的字符串处理不了了,失败。可以遍历组合,这个好。
2023-09-07 17:15:21
234
template_FWLib.zip
2020-07-26
STM32F4xx_DSP_StdPeriph_Lib_V1.4.0.zip
2020-07-26
正则表达式判断sda1和sda
2022-08-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人