android wifiService 启动慢的问题规避记录

针对Android系统中WiFiService启动慢的问题进行分析与优化。通过调整WiFiContext获取方式,利用并发技术减少启动时间。

frameworks/base/services/java/com/android/server/SystemServer.java

因为wifiservice在system_server里启动,在这儿监测的时间,总共用了2s,暂时高通基线只用了100多ms, 与高通基线代码无任何修改,所以wifiservice代码本身的代码没问题

最后经各种加日志分析,发现是一个获取wifiContext对象的时候,用了2s

尝试解决办法一:

使用了android 系统的perf来监测system_server的各个线程使用情况,想知道哪个具体的加载函数出的问题,但是貌似没怎么生效

尝试解决办法二:

1、尝试将WifiContext获取的时候使用另一个线程获取,但是后面会遇到各种crash

2、尝试在Wifiservice构造的时候延迟,会发生后续WifiScanService的crash

尝试解决办法三:

1、尝试在system_server一开始的时候获取WifiContext资源,然后在Wifiservice的启动的时候将mContext对象传进WifiService里,结果发现WifiService通过jar包加载,无法传入参数

2、尝试在system_server一开始的时候创建WifiContext资源,将这个资源对象写入一个单例里,然后使用资源对象的时候,阻塞的获取,但是因为创建对象的地方放在了PackageManage

 service启动之前,所以出现了各种crash,尤其是在get的时候crash,

3、最后成功的是,基于解决办法三里的2, 创建的时候放在PackageManageService启动之后

首先创建一个WifiHelper.java, 用一个线程获取资源,另一个线程可以获取到拿到的资源

frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiHelp.java

/*
 * Copyright (C) 2019 The Android Open Source Project
 *
 * Licensed under the Apache Lic
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值