Android
文章平均质量分 70
牧天lunar
wifi工程师
展开
-
Android13 Wifi Scan流程梳理
遇到面试官让我讲讲Android的wifi框架,这一块没仔细看过,排查问题一般都是从wpa_supplicant开始,上层一个wifimanager,几个services和他们对应的几个状态机,简单看过一遍感觉没什么特别复杂的东西,这次简单梳理一下.scannerImpl.scan(settings)这里通过aidl调用c++的服务,这里的流程也不复杂,就是打包,然后通过netlink将NL80211_CMD_TRIGGER_SCAN发送到内核。通过aidl暴露给上端的api。调用对应的service。原创 2023-06-05 11:11:05 · 1838 阅读 · 0 评论 -
Android在线源码网站
推荐一些在线看Android源码网站原创 2021-10-17 10:21:42 · 2698 阅读 · 0 评论 -
Android11 GPS 流程代码走读
android11 gps代码走读原创 2022-10-05 02:23:22 · 2146 阅读 · 0 评论 -
蓝牙连接流程图
#mermaid-svg-o0FBV7ER2l5kSGUa {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-o0FBV7ER2l5kSGUa .error-icon{fill:#552222;}#mermaid-svg-o0FBV7ER2l5kSGUa .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-o0FBV7E原创 2022-04-24 11:02:22 · 1870 阅读 · 1 评论 -
蓝牙关闭流程
#mermaid-svg-SkXVuKe1qkaW9Nbz {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SkXVuKe1qkaW9Nbz .error-icon{fill:#552222;}#mermaid-svg-SkXVuKe1qkaW9Nbz .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-SkXVuKe原创 2022-04-20 14:48:35 · 2297 阅读 · 0 评论 -
蓝牙打开流程
#mermaid-svg-TwTVQWqebajoz7K0 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-TwTVQWqebajoz7K0 .error-icon{fill:#552222;}#mermaid-svg-TwTVQWqebajoz7K0 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-TwTVQWq原创 2022-04-20 14:04:06 · 2257 阅读 · 0 评论 -
Activity流程:从ActivityThread开始(一)
一个activity启动是从activityThread#main开始的,这里省掉一些判断,只看我们需要重点关注的。 public static void main(String[] args) { // 创建一个消息队列 Looper.prepareMainLooper(); //创建一个ActivityThread实例 ActivityThread thread = new ActivityThread(); thread原创 2021-10-19 01:24:47 · 384 阅读 · 0 评论 -
Setting 主界面加载以及外部注入
Setting 主界面加载以及外部注入原创 2021-09-13 16:54:15 · 527 阅读 · 0 评论 -
AMS防止优先级反转
ActivityManagerService中有这么两个方法,resetPriorityAfterLockedSection()和boostPriorityForLockedSection()。直接搜是看不到这两个方法在哪被调用的,这个涉及到ASM插桩,详细可以见:Google教你用ASM:lockedregioncodeinjection。再此之前我们先理解一下什么叫优先级反转。我们先假设三个任务准备执行,A,B,C,它们的优先级依次是A>B>C;首先:C处于运行状态,获得CPU正在原创 2021-09-08 15:07:39 · 424 阅读 · 0 评论 -
Android获取半透明属性
起因做8.0适配的时候,发现8.0上不能同时开启windowsIsTranslucent和固定屏幕方向,所以在BaseActivity中将设有半透明属性的Activity取消固定屏幕方向。解决方案1.加入版本判断,取消屏幕固定if (Build.VERSION.SDK_INT == Build.VERSION_CODES.O) { requestionOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;}2.获取半透明属性由于原创 2021-08-31 01:06:20 · 391 阅读 · 0 评论 -
Android 显示档位
/frameworks/base/packages/SettingsLib/src/com/android/settingslib/display/DisplayDensityUtils.java简化计算公式:x = (最短边px / 2)/ 默认dpi小: 默认显示默认: 默认显示大: x > 1.09较大:x > 1.18最大:x> 1.27默认dpi获取:adb shell wm densityadb shell getprop ro.sf.lcd_density原创 2021-09-07 00:24:25 · 530 阅读 · 0 评论 -
Google教你用ASM:lockedregioncodeinjection
boost的部分直接参考AMS中优先级调整的方法就好了。重点在于这个lockedregioncodeinjection工具具体在干嘛?原创 2021-07-26 00:21:15 · 424 阅读 · 0 评论