- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 JNI学习(一)
NDK(Native Development Kit)本地开发工具链,是Android提供的一个工具合集,帮助开发者快速开发C(或C++)的动态库,并能自动将.so和java应用一起打包成apk。NDK集成了交叉编译器(交叉编译器需要UNIX或LINUX系统环境),并提供了相应的mk文件或CMake文件隔离cpu、平台、ABI等差异,开发人员只需要简单修改mk文件或CMake文件(指出"哪些文件需要编译"、"编译特性要求"等),就可以创建出.so。
2023-12-20 22:45:29 1025
原创 SystemServer进程
在systemServer启动文章中我们讲了在SystemServer.java的main方法里面调用new SystemServer().run()方法启动System_server进程。那么我们接着看一下SystemServer.java具体做了哪些事情?##SystemServer的run方法介绍这里可以看到在调用run方法之前,先会调用SystemServer的构造函数创建SystemServer对象,在构造函数中只是获取了工厂测试模式,记录了进程开始的时间的操作,接着看run方法。
2023-07-27 17:36:14 305
原创 zygote forkSystemServer及systemServer启动
可以知道zygote是从rc中启动的,zygote本质上就是一个socket,不会关闭和销毁,而创建zygote时携带的startSystemServer参数会启动systemServer子进程,SystemServer也是通过fork出来的,而底层和上层的交互是通过jni实现的,SystemServer的启动是由zygoteInit通过反射的方式启动SystemServer的main方法。
2023-07-19 14:57:22 583
原创 Zygote进程分析
从init的启动流程中得知,init进程会通过解析init.rc文件执行tigger中的nonecrypted 找到文件对应的main方法。具体文件名称为:/framework/base/cmds/app_process/app_main.cpp。
2023-07-18 15:08:11 205
原创 aidl原理
binder基于AIDL的通信流程图如下:Client端:MainActivity;Server端:Service;Service的对外aidl接口如上面的案例所示,MainActivity已经通过BindService拿到了Service的IBinder对象。Client通过ServiceConnection获取到Server的Binder,并且封装成一个Proxy。
2023-07-06 15:06:39 293
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人