framwork学习
文章平均质量分 65
framwork层的学习
LingoA
手握日月摘星辰,归来仍是打工人
展开
-
车载系统启动流程以及如何去配置一个随系统启动的程序,并实现跨系统通信
两个系统中都需要有中间件,中间件技术用到fdbus,先要建立连接,之后服务端暴露一些接口给客户端,客户端通过接口与服务端进行通信。通过在init.rc中的配置会在系统启动时把xiangxueservice拉起来。这里在xiangxueservice应用程序的group中配置了inet用户组。应用安装后pms会给分配一个uid可在proc目录下找到对应uid的文件。不同系统如何通信(车载中android(AAOS)如何与qnx通信?给应用声明一个权限后用户组发生变化(以internet为例)原创 2023-07-18 15:58:25 · 361 阅读 · 0 评论 -
SearchManager使用以及源码解析
getSearchables(int userId, boolean forceUpdate)内部会通过userId判断当前用户是否获取过searchables,如果没有则创建新的searchables对象并调用updateSearchableList()进行数据的初始化操作之后会存入SparseArray mSearchables中。内部会去解析activity中注册的meta-data对象,找到对应的searchable.xml并解析里面的信息。原创 2023-06-13 11:12:25 · 445 阅读 · 0 评论 -
CarService工作流程
这时就完成了应用层拿到想要的xxxManager对象,xxxManager拿到了xxxService对象,之后想要做具体的事情应用层只要调用xxManager提供的API,xxxManager再调用xxxService的api就行了。通过调用mService(也就是CarService,在Android13中改为ICarimpl)的getCarService方法拿到想要的binder对象(例如mCarInputService)中的服务,名称上存在对应关系,所以很好理解。原创 2023-05-19 18:12:47 · 998 阅读 · 0 评论 -
Framwork学习:View绘制流程
之后设置标志位mprivateFlags判断是否刷新,然后调用父布局(viewgroup)的invalidatechild,不能每个view单独刷新,gpu会乱套,所以丢给它的parent统一管理。当ActivityB在ActivityA下面,刷新ActivityB的页面时,能否刷新成功?因为设置了跳过(skipinvalidate图2),页面不可见时UI是不会刷新的。webview是硬件加速丢给GPU为了快速刷新。view刷新有两种:硬件个软件。原创 2023-04-23 22:56:53 · 80 阅读 · 0 评论 -
framwork学习:应用启动流程&wms
为了拿到ams,wms等服务,因为ams,wms在systemserver中,一旦ams wms创建后就会把binder自己的binder存到sm,app创建后也会把自己的binder给到ams由ams进行管理(也就是存到systemServer)(如图3)手机启动时会启动init进程,init会启动sm进程(属于app的守护进程,由sm帮我们拿到ams或wms服务的binder),再通过binder调用ams的代码,再由ams发送socket请求让zygote fork一个进程。app为什么能一直运行?原创 2023-04-23 22:39:46 · 232 阅读 · 0 评论