<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mark_shui的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mark_shui</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mark_shui]]></copyright><item><title><![CDATA[Android bp 条件编译]]></title><link>https://blog.youkuaiyun.com/mark_shui/article/details/144611551</link><guid>https://blog.youkuaiyun.com/mark_shui/article/details/144611551</guid><author>mark_shui</author><pubDate>Fri, 20 Dec 2024 15:22:10 +0800</pubDate><description><![CDATA[Android 7.0 之前的模块都是使用 Android.mk 来定义的，本质上就是 makefile，自然是支持条件编译的。最后我们指定了 hello 模块的 defaults 为 hello_defaults, 这样我们对 hello_defaults 模块的配置，就会附加到 hello 模块上。模块 soong-hello， 指定源文件为 hello.go， 在解析到这个模块的 Android.bp 时，会对 hello.go 进行编译。这个类型是我们在 hello.go 中定义的。]]></description><category></category></item><item><title><![CDATA[Linux 动态调试]]></title><link>https://blog.youkuaiyun.com/mark_shui/article/details/138304665</link><guid>https://blog.youkuaiyun.com/mark_shui/article/details/138304665</guid><author>mark_shui</author><pubDate>Mon, 29 Apr 2024 11:22:24 +0800</pubDate><description><![CDATA[调试android 内核的可能清楚，对于一些概率性的问题，能够正确抓到日志是有多么重要。但是，为了不影响用户的正常使用，保证良好的使用性能，log必须控制在一定的量。但是对于一些涉及到协议相关的，为了方便调试，又必须加入一些打印数据的日志。1） 打印一个文件中的所有动态打印语句，以gadget.c为例。2)		打印一个模块中所有动态打印语句。3	打开一个函数中所有动态打印语句。需要根据自己的需要，开启日志等级。最后一点需要主要，这里的打印都是。Linux 内核的动态调试。什么是动态打印语句？]]></description><category></category></item><item><title><![CDATA[android wifi 架构学习]]></title><link>https://blog.youkuaiyun.com/mark_shui/article/details/117994740</link><guid>https://blog.youkuaiyun.com/mark_shui/article/details/117994740</guid><author>mark_shui</author><pubDate>Thu, 17 Jun 2021 16:09:05 +0800</pubDate><description><![CDATA[最近在学习android 系统中的WiFi架构，但是个人记忆力较差，总是忘记代码路径，因此想写一篇博文记录一下android 9下，WiFi的代码路径。当然也借鉴了一些网上的博文，总结出来的。哈哈哈哈！
代码路劲如下：
首先是app层的，以setting为例吧。
packages/apps/Settings/src/com/android/settings/wifi/

然后是framework层的。framework是wifi Android 架构中主要的逻辑实现场所，所以wifi的代码和路径都有些多。
]]></description><category></category></item><item><title><![CDATA[Android WIFI 连接调用流程]]></title><link>https://blog.youkuaiyun.com/mark_shui/article/details/117520171</link><guid>https://blog.youkuaiyun.com/mark_shui/article/details/117520171</guid><author>mark_shui</author><pubDate>Thu, 03 Jun 2021 14:10:59 +0800</pubDate><description><![CDATA[wifi 连接流程记录
connectToUserSelectNetwork 包括请求连接的netid号，请求的app uid ，已经是否是属于已经保存的app hasCredentialChanged
case WifiManager.CONNECT_NETWORK:
     if (!connectToUserSelectNetwork(
          netId, message.sendingUid, hasCredentialChanged))
		      mWifiConfigMan]]></description><category></category></item><item><title><![CDATA[2021-04-28]]></title><link>https://blog.youkuaiyun.com/mark_shui/article/details/116224893</link><guid>https://blog.youkuaiyun.com/mark_shui/article/details/116224893</guid><author>mark_shui</author><pubDate>Wed, 28 Apr 2021 09:18:27 +0800</pubDate><description><![CDATA[分享一篇博客

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &amp;&amp; pwd )"详解

https://blog.youkuaiyun.com/davidhopper/article/details/78989369
]]></description><category></category></item><item><title><![CDATA[I2C 总线驱动]]></title><link>https://blog.youkuaiyun.com/mark_shui/article/details/115393659</link><guid>https://blog.youkuaiyun.com/mark_shui/article/details/115393659</guid><author>mark_shui</author><pubDate>Fri, 02 Apr 2021 10:59:39 +0800</pubDate><description><![CDATA[I2C 学习笔记一、从地址映射二、I2C 驱动注册过程2.1 module_init(mt_i2c_init); 模块注册流程：2.2 i2c init 函数操作2.3 平台驱动注册2.4 I2C 驱动Probe 流程device 与drv 注册流程图
一、从地址映射
例如：实际地址0x08（0001000） 打印出来的从地址写：0x11（00010001），读0x10（00010000）
原因：映射时，从地址向左移一位，写则在最低位写1，读则写0.因此，对于i2c有两个地址
参考资料：
https://w]]></description><category></category></item></channel></rss>